#minecraft #api-bindings #no-alloc #wasmcraft

无需std mcinterface

Rust对wasmcraft2 API的绑定,允许你在Minecraft中运行Rust代码

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日

450WebAssembly 中排名

每月下载量 21

MIT 许可证

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;
}

无运行时依赖项

功能