🚀 初级开发
装加载器、写出第一个模组、事件 / 命令 / 世界 / 调度四大主题。全部示例可直接复制编译。
上一版列的是「目标设计」,里面有相当一部分方法从来没有实现过 —— player.connection_request()、player.start_using_item()、player.current_active_shield() 之类,照着写会直接编译不过。Ability 那张索引表也是错的(AttackMobs 和 AttackPlayers 反了,VerticalFlySpeed 写成 15 实际是 19),而 FFI 边界上是个裸 f64,设错槽不会报错,只是不生效。
这一版按代码逐条核对重写,并补上了此前完全没有文档的几块:
拿到 Player 之后怎么读位置和血量?
它们在 Actor 那一层(原生继承链 Player : Mob : Actor),转过去:
let actor = player.get_actor()?;
let (x, y, z) = actor.pos()?;
let hp = actor.health()?;Actor 是 Entity 的别名,同一个类型两个名字 —— 原生叫 Actor,本 crate 早期叫 Entity。详见 Actor / Entity。