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 种食物的槽位(未实际实现,仅字段保留)
⚠️ 当前版本只把该方块作为「可睡觉」的最简机制处理;烹饪/加热逻辑仍为占位字段。
相关条目
- Sleeping Bag - 共享同一个床铺摆放检测逻辑