Crates.io | minecraft_end_generation |
lib.rs | minecraft_end_generation |
version | 0.3.2 |
source | src |
created_at | 2020-08-02 15:56:14.510344 |
updated_at | 2021-05-05 20:01:15.702077 |
description | The minecraft end generation implemented in rust |
homepage | |
repository | |
max_upload_size | |
id | 272260 |
size | 57,858 |
Warning by default you need rust 1.47.0+ since I use const fn but if you want to use another version just pass
--no-default-features
on your build/test/run command or as a dependency do default-features = false
.
The MSRV is 1.40.0 if you disable default-features because of the use non exhaustive memchr #45394.
You can run this in C, C++, Rust and Python.
First thing: Get rust: https://rustup.rs
Second thing: Run Cargo: cargo build --release
Third thing: Install python bindings (optional): python3 setup.py install --user
You can then use it in python as usual:
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
Fourth thing: Use Rust:
let mut gen: EndGen = EndGen::new(seed);
let biome=gen.get_final_biome(x, 251, z);
Fifth thing: Use C/C++: You have a shared library (.so/.dll) in target/release and a header file in target, you have three functions, just use them like any other functions ;) 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);
Six thing (you can also run that in go, ruby and much more, rust/cbindings are awesome !)