Campfire

基本信息

属性 值
注册名 adventurebackpack:blockCampFire
方块类 BlockCampFire (extends BlockContainer)
TileEntity TileCampfire
材料 rock
亮度 11
是否床铺 是(isBed = true)
透明 否(自定义边界 0.2×0×0.2 → 0.8×0.15×0.8)
渲染 是(getRenderType=-1 → 使用 TileEntitySpecialRenderer)

功能

GTNH 模组包内替代传统床铺的"野外重生点"方块;在禁止睡觉的维度或玩家需要重新设重生点时启用。当玩家睡在睡袋上且附近 8×2×8 范围内存在此方块时,BlockSleepingBag 自动把重生点指向此方块坐标。渲染时随机喷出大火/烟雾粒子。

摆放要求

  • 1 个方块高,0.2 → 0.8 单位的边界框
  • 玩家在 [-5, +5] Y 轴范围内寻找最贴近的空位决定床铺生成点
  • 配方:3 根木棍 / 煤炭 / 3 个圆石拼成 H 形(详见 ModRecipes)

数值

数值名 值
亮度 11
TileEntity tickRate 30(继承默认)
温度 非是光源但发光(lightValue=11)

交互

触发 行为
放置 通过 ShapedOreRecipe:stickWood × 4、coal × 1、cobblestone × 3
玩家右键 跳到 getBedSpawnPosition(player),从 y-5 到 y+5 螺旋查找最近的 1 格高空气;返回最近的可站立坐标作为床铺位置
玩家睡眠 床位识别为 isBed=true,玩家睡下后将「Bed Spawn」指向最近空气坐标,由 BlockSleepingBag 持久化到 BackpackProperty
Tick 渲染 每 tick 喷出 4 朵 flame 粒子 + 1 朵 largesmoke 烟柱

TileEntity

TileCampfire 内含:

  • int burnTicks - 燃烧计时器(未实际实现加热,仅字段保留)
  • ItemStack[4] foodCooking - 计划烹饪 4 种食物的槽位(未实际实现,仅字段保留)

⚠️ 当前版本只把该方块作为「可睡觉」的最简机制处理;烹饪/加热逻辑仍为占位字段。

相关条目