黏土牛奶桶 Clay Bucket (Milk)
- 注册名:
clayBucketMilk - 类:
iguanaman.iguanatweakstconstruct.claybuckets.items.ClayBucketMilk→net.minecraft.item.ItemBucketMilk - 本地化名:
iguana.tcon.clayBucket.Milk - 纹理:
iguanatweakstconstruct:clayBucketMilk - 堆叠上限:默认 64(
ItemBucketMilk允许堆叠) - 容器物品:烧制黏土桶
双重效果
牛奶桶同时具备两条互不相关的功能。
1. 饮用
onEaten 覆写的做法是构造一个原版牛奶桶喂给父类,再翻译返回值:
ItemStack vanillaMilkStack = new ItemStack(Items.milk_bucket);
ItemStack result = super.onEaten(vanillaMilkStack, world, player);
if (result.getItem() == Items.bucket) return new ItemStack(IguanaItems.clayBucketFired);
return result;
super.onEaten 会清除一切负面效果(中毒、凋零、缓慢),并把 milk_bucket 变成 bucket;此覆写再把铁桶换成烧制黏土桶。因此奶桶可以被回收并再次挤奶。
2. 挤奶容器
ClayBucketHandler.EntityInteract 中,玩家手持 烧制黏土桶 右键 EntityCow 时产出本物品 1 个。若背包已满则 dropPlayerItemWithRandomChoice 掉落在地。
OreDict
OreDictionary.registerOre("listAllmilk", clayBucketMilk)——注释直言「i suppose this is for pams harvestcraft」,沿用 Pam’s HarvestCraft 的 ore 名。
本物品没有注册进
FluidContainerRegistry(牛奶不是 Forge 流体),仅靠上述两条路径参与游戏。