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

相关条目