|
|
@@ -8,17 +8,24 @@ import net.minecraft.entity.player.PlayerInventory;
|
|
|
import net.minecraft.inventory.ItemStackHelper;
|
|
|
import net.minecraft.inventory.container.Container;
|
|
|
import net.minecraft.item.ItemStack;
|
|
|
+import net.minecraft.item.Items;
|
|
|
import net.minecraft.nbt.CompoundNBT;
|
|
|
import net.minecraft.network.NetworkManager;
|
|
|
import net.minecraft.network.play.server.SUpdateTileEntityPacket;
|
|
|
import net.minecraft.tileentity.LockableLootTileEntity;
|
|
|
import net.minecraft.tileentity.TileEntityType;
|
|
|
+import net.minecraft.util.Direction;
|
|
|
import net.minecraft.util.IWorldPosCallable;
|
|
|
import net.minecraft.util.NonNullList;
|
|
|
import net.minecraft.util.text.ITextComponent;
|
|
|
import net.minecraft.util.text.TranslationTextComponent;
|
|
|
+import net.minecraftforge.common.capabilities.Capability;
|
|
|
import net.minecraftforge.common.util.Constants;
|
|
|
+import net.minecraftforge.common.util.LazyOptional;
|
|
|
+import net.minecraftforge.items.CapabilityItemHandler;
|
|
|
+import net.minecraftforge.items.ItemStackHandler;
|
|
|
|
|
|
+import javax.annotation.Nonnull;
|
|
|
import javax.annotation.Nullable;
|
|
|
|
|
|
// 铁砧 TileEntity,用于引导自定义模型与存储物品 NBT
|
|
|
@@ -91,20 +98,23 @@ public class AnvilTileEntity extends LockableLootTileEntity {
|
|
|
}
|
|
|
|
|
|
// TODO : [难顶] 让漏斗只能从上方注入物品(由于 Forge 接管了漏斗代码,需要使用它的 Capability,什么 SidedInventory 不管用),不过这个写起来还是不太对的样子
|
|
|
- /*@Nonnull @Override public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
|
|
|
+ @Nonnull @Override public <T> LazyOptional<T> getCapability(@Nonnull Capability<T> cap, @Nullable Direction side) {
|
|
|
if (cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) {
|
|
|
return LazyOptional.of(() -> new ItemStackHandler() {
|
|
|
@Override public ItemStack insertItem(int slot, @Nonnull ItemStack stack, boolean simulate) {
|
|
|
- if (side != Direction.UP) return ItemStack.EMPTY;
|
|
|
- return super.insertItem(slot, stack, simulate);
|
|
|
+ if (side == Direction.UP) {
|
|
|
+ return new ItemStack(Items.APPLE);
|
|
|
+ } else {
|
|
|
+ return stack;
|
|
|
+ }
|
|
|
}
|
|
|
}).cast();
|
|
|
}
|
|
|
return super.getCapability(cap, side);
|
|
|
- }*/
|
|
|
+ }
|
|
|
|
|
|
// TODO : 让目前的机制修改根据游戏难度略有变化
|
|
|
- // TODO : 由于目前的铁砧判断方式,它现在不接受线,因为线有对应的方块……
|
|
|
+ // TODO : 由于目前的铁砧判断方式,它现在不接受线,因为线有对应的方块……是不是有一个 tag 可以解决这个问题?
|
|
|
// TODO : 让铁砧可以根据物品栏里的物品数量向比较器输出红石信号
|
|
|
|
|
|
}
|