4个版本
0.3.2 | 2023年10月26日 |
---|---|
0.3.1 | 2023年10月26日 |
0.3.0 | 2023年10月25日 |
0.2.0 | 2023年10月25日 |
450 在 WebAssembly 中排名
每月下载量 21
13KB
167 行
mcinterface
使用 wasmcraft2 编写用于Minecraft的程序Rust库。
有关使用示例,请参阅 https://github.com/arthomnix/mc_mandelbrot。
lib.rs
:
用于Rust编写的wasmcraft2数据包的包装库。
wasmcraft2 是一个WebAssembly到Minecraft数据包的转换器。此库提供对wasmcraft API的安全访问,包含wasmcraft的 mcinterface.h
中的所有函数以及一些额外的辅助函数和宏。
在编写针对wasmcraft2的程序时,请注意其限制 - 尤其是浮点运算不受支持,因此如果整数不够用,建议使用 fixed
crate。Minecraft程序必须是 #![no_main]
和 #![no_std]
;此crate提供与Minecraft兼容的panic处理器,但没有分配器。建议减小默认堆栈大小 - 您可以通过将以下内容添加到您的 .cargo/config
[target.wasm32-unknown-unknown]
rustflags = [ "-C", "link-args=-z stack-size=4096" ]
需要更多堆栈空间时,您可以更改 4096 为更大的数字。
当您在 .cargo/config
中时,还应将默认目标设置为 wasm32-unknown-unknown
[build]
target = "wasm32-unknown-unknown"
建议即使在调试构建中启用一些优化,因为Minecraft命令不是最快的编译目标 - 将以下内容添加到您的 Cargo.toml
[profile.dev]
opt-level = 1
wasmcraft2 不支持 main
函数 - 您的入口点必须声明如下
#[no_mangle]
pub extern fn _start() -> i32 {
// Your code goes here...
return 0;
}