Copter Pack
基本信息
| 属性 |
值 |
| 注册名 |
adventurebackpack:copterPack |
| 类 |
ItemCopterPack (extends ItemAdventure) |
| 燃料槽容量 |
16000 mB(Copter.FUEL_CAPACITY = BUCKET × 16) |
| 最高海拔 |
250 m |
| 状态机 |
OFF_MODE=0 / NORMAL_MODE=1 / HOVER_MODE=2 |
功能
穿戴后可穿戴式直升机背包。它从背包的左流体槽(getLeftTank)作为燃料,在玩家佩戴后通过服务端流体池执行两类行为:
- NORMAL Mode(默认):跳跃即起飞;不在地面并不 sneak 时
motionY *= 0.6 做减缓下落。踩在地上会把周围 4×4×4 内的 EntityItem 推开。
- HOVER Mode:sneak 时下降 -0.3 m/t;否则
motionY = 0.0f,同时燃料消耗 ×2。
- OFF Mode:关闭,处于陆地上且无燃料 → 提示 “off”;处于水中 → 立刻关闭。
切换使用 Minecraft.gameSettings.keyBindJump 的"按下"在客户端做抬高(实际加速度由 elevate(player, copter) 计算),同时给玩家增加推进 moveFlying(0.02) 让空中移动更快。
使用方式
| 触发 |
行为 |
| 快捷栏右键 |
客户端发送 GUI 消息,服务端回应打开 GuiCopterPack 界面(CopterPack GUI) |
| 装备中 |
onEquippedUpdate 每 3 tick 消耗一次(getFuelSpent),并在服务端列表内广播 COPTER_PARTICLE |
| Action 键(在空中按住 Shift) |
HOVER / NORMAL 切换 |
| 飞行时进入水 |
关闭 + 提示 cantwater |
燃料系统
- 燃料来源:
ConfigHandler.copterFuels(默认 15 种液态燃料,如 “biofuel”, “fuel”, “rocket_fuel”, “nitrofuel”, “lava” 等,附 rate 消耗倍率)
- 燃料生效:
GeneralReference.isValidFuel(name) 与 getFuelRate(name) 控制消耗倍率(0.05 ~ 20.0 之间)
- 燃料耗尽:当 tank getFluidAmount = 0 并且 onGround,自动 OFF;否则 HOVER → NORMAL → 关闭
- 在水/雨:不重启
数值
| 数值 |
值 |
| 燃料槽 |
16000 mB |
| 起飞点(Y < 100) |
motionY = max(.motionY, 0.18) |
| 起飞点(100~250) |
motionY = 0.18 - (posY-100)/1000 |
| 起飞点(>250) |
不再增加 |
| 玩家加速度 |
moveFlying(x, y, 0.02) |
| 燃料 tick 间隔 |
3 |
相关条目