玩家接口

基本信息

属性 值
注册名 RandomThings:playerinterface(注意全小写)
类 lumien.randomthings.Blocks.BlockPlayerInterface
TileEntity 无(直接代理玩家容器)
材质 Material.rock
硬度 4.0F(BlockPlayerInterface.java:25)
脚步声 Block.soundTypeStone(:24)
创造标签 RandomThings.creativeTab(BlockBase.java:17)
纹理 3 张独立贴图(底/顶/侧,BlockPlayerInterface.java:31-34)
GUI ID GuiIds.PLAYER_INTERFACE = 0(GuiIds.java:5)
开关 Blocks.PlayerInterface(RTConfiguration.java:198)

功能

玩家接口是一个只读地暴露自己背包的方块。右键打开的 GUI 直接绑定到放置者的 EntityPlayerMP 容器,而不是复制一份物品 —— 这是它与所有"储物方块"的根本区别:没有独立库存,也没有掉落物。

TileEntityPlayerInterface 实现了 ISidedInventory(TileEntityPlayerInterface.java:18),但 getSizeInventory() 直接返回 playerEntity.inventory.getSizeInventory()(:117),即把玩家自己的 36 格背包原样代理出来。getInventoryStackLimit() 同样透传玩家背包上限(:165)。

onBlockPlacedBy 在服务器端记录放置者,写入方块 TileEntity 侧的持有者信息(BlockPlayerInterface.java:59-60 起),后续 getPlayerEntity() 据此决定代理哪一个玩家。

数值

数值名 值
代理槽位数 玩家背包原值(36:9 快捷栏 + 27 背包)
槽位上限 透传玩家背包(TileEntityPlayerInterface.java:165)
独立库存 无

交互

触发 行为
右键 打开 GUI ID 0,内容为放置者自身背包(BlockPlayerInterface.java:49-53)
比较器 ISidedInventory + 标准 calcRedstoneFromInventory
破坏 无掉落物需要处理(不含物品)

合成配方

oeo
omo
ono
字符 物品
o 黑曜石(Block.getBlockFromName("obsidian"))
e 末影箱(Blocks.ender_chest)
m 玩家核心(RandomThings:ingredient meta 0)
n 下界之星(Items.nether_star)

来源:Library/Recipes.java:139-152。整个方块共用 Blocks.PlayerInterface 一个开关(RTConfiguration.java:198)。

相关条目