Little Color Tube
基本信息
| 属性 | 值 |
|---|---|
| 注册名 | littletiles:colorTube |
| 内部名 | LTColorTube |
| 显示名 | Little Color Tube |
| 类 | com.creativemd.littletiles.common.items.ItemColorTube |
| 最大堆叠 | 1(setMaxStackSize(1)) |
| 贴图 | LTColorTube + LTColorTube-Overlay(双渲染通道) |
| GUI | SubGuiColorTube / SubContainerColorTube(CreativeCore) |
功能
Little Color Tube(微砖颜料管)给微砖染色,颜色存在物品 NBT 的 color 整数键上(ItemColorTube.setColor / getColor)。
它使用 Minecraft 的多渲染通道:物品模型本体在 pass 0 输出 ColorUtils.WHITE,pass 1 输出 overlay 贴图并叠加 getColor(stack) 的染色值,因此物品外观会随 NBT 颜色变化(getColorFromItemStack + requiresMultipleRenderPasses())。
服务端 LittleBlockPacket.Action.COLOR 的逻辑(LittleBlockPacket.java:178-200):
- 右键微砖:把微砖替换为同尺寸的
LittleTileBlockColored(染色版微砖),颜色取自当前 NBT - 潜行 + 右键:从指向的微砖吸色回颜料管;若指向的是
LittleTileBlockColored则取其颜色,否则重置为白色
目标微砖必须是 LittleTileBlock.class 或 LittleTileBlockColored 子类,否则无效。失败时 System.out.println("Failed to use color tube!")。
⚠️ 物品提示与实现不一致:
addInformation写的是Right Click: dyes a tile/Shift + Right Click: copies tile's color,但实际染色逻辑写在onItemUse(左键点击方块)中,而onItemRightClick(右键空气)会打开选色 GUI。潜行与吸色的分流在服务端LittleBlockPacket.Action.COLOR分支里由player.isSneaking()判定。两处行为均以源码为准。
数值
| 数值名 | 值 |
|---|---|
| 最大堆叠 | 1 |
| 默认颜色 | ColorUtils.WHITE(NBT 无 color 键时自动写入白色) |
| 耐久 | 无(类中无 setMaxDamage) |
交互
| 触发 | 行为 |
|---|---|
左键微砖(onItemUse) |
发送 COLOR 包,把该微砖替换为 LittleTileBlockColored 并染色 |
| 潜行 + 左键微砖 | 服务端改为吸色:把微砖颜色写回颜料管(普通微砖则重置为白) |
右键空气(onItemRightClick) |
打开 SubGuiColorTube 选色 GUI(GUI ID 1) |
| 左键非微砖方块 | 返回 false |
合成配方
3×3 有序配方(LittleTiles.java:167-169):
XXX
XLX
XXX
| 字符 | 数量 | 物品 |
|---|---|---|
X |
8 | 任意染料(Items.dye,不限 meta) |
L |
1 | 铁锭(Items.iron_ingot) |
产出 1 个 Little Color Tube。
相关条目
- 微砖类型与 TileEntity -
LittleTileBlockColored由本物品生成 - 副 GUI 体系 -
SubGuiColorTube选色界面