13 个版本
0.3.2 | 2021 年 5 月 5 日 |
---|---|
0.3.1 | 2021 年 5 月 5 日 |
0.3.0 | 2021 年 2 月 17 日 |
0.2.1 | 2021 年 2 月 15 日 |
0.1.2 | 2020 年 8 月 9 日 |
#2253 in 算法
每月 43 次下载
15KB
270 行
myworld 末地生成在 Rust 中
警告:默认情况下,您需要 rust 1.47.0+,因为我使用了 const fn。但如果你想使用其他版本,只需在构建/测试/运行命令中传递 --no-default-features
或作为依赖项 default-features = false
。如果您禁用默认功能,因为使用了非穷尽性 memchr #45394,MSRV 是 1.40.0。
您可以在 C、C++、Rust 和 Python 中运行此程序。
第一件事:获取 rust:https://rustup.rs
第二件事:运行 Cargo:cargo build --release
第三件事:安装 python 绑定(可选):python3 setup.py install --user
然后,您可以在 Python 中像往常一样使用它
from minecraft_end_gen_rs import EndGen,create_new_end,get_biome,get_biome_2d,EndBiomes
from ctypes import *
end_gen:POINTER(EndGen)=create_new_end(1551515151585454)
assert get_biome(end_gen,10000,251,10000)==EndBiomes.SmallEndIslands
第四件事:使用 Rust
let mut gen: EndGen = EndGen::new(seed);
let biome=gen.get_final_biome(x, 251, z);
第五件事:使用 C/C++:您在 target/release 中有一个共享库 (.so/.dll) 和在 target 中的一个头文件,您有三个函数,就像使用其他任何函数一样使用它们 ;) see example.c
struct EndGen *create_new_end(uint64_t seed);
EndBiomes get_biome_2d(struct EndGen *end_gen, int32_t x, int32_t z);
EndBiomes get_biome(struct EndGen *end_gen, int32_t x, int32_t y, int32_t z);
第六件事(您还可以在 go、ruby 等中运行它,Rust/cbindings 真棒!)
依赖项
~0.5–2MB
~30K SLoC