diff options
author | Kogepan229 <73163994+Kogepan229@users.noreply.github.com> | 2024-09-11 00:59:33 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-10 17:59:33 +0200 |
commit | 1fcec6135c57d9396deebceda04cdac8924be43d (patch) | |
tree | 7e98efb0969fd64c8d3442d3995412a4997fedf3 /src/main/java/gregtech/common | |
parent | 4552bd73175270d941e1af88208d156276751fb4 (diff) | |
download | GT5-Unofficial-1fcec6135c57d9396deebceda04cdac8924be43d.tar.gz GT5-Unofficial-1fcec6135c57d9396deebceda04cdac8924be43d.tar.bz2 GT5-Unofficial-1fcec6135c57d9396deebceda04cdac8924be43d.zip |
Fix copying multiblock configuration and support Crafting Input Proxy (#3115)
Co-authored-by: Martin Robertz <dream-master@gmx.net>
Diffstat (limited to 'src/main/java/gregtech/common')
-rw-r--r-- | src/main/java/gregtech/common/tileentities/machines/MTEHatchCraftingInputSlave.java | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/src/main/java/gregtech/common/tileentities/machines/MTEHatchCraftingInputSlave.java b/src/main/java/gregtech/common/tileentities/machines/MTEHatchCraftingInputSlave.java index 92cbb0d6e8..35db434a32 100644 --- a/src/main/java/gregtech/common/tileentities/machines/MTEHatchCraftingInputSlave.java +++ b/src/main/java/gregtech/common/tileentities/machines/MTEHatchCraftingInputSlave.java @@ -20,6 +20,7 @@ import net.minecraft.world.World; import net.minecraftforge.common.util.ForgeDirection; import gregtech.api.enums.ItemList; +import gregtech.api.interfaces.IDataCopyable; import gregtech.api.interfaces.ITexture; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.MetaTileEntity; @@ -28,8 +29,9 @@ import gregtech.api.render.TextureFactory; import mcp.mobius.waila.api.IWailaConfigHandler; import mcp.mobius.waila.api.IWailaDataAccessor; -public class MTEHatchCraftingInputSlave extends MTEHatchInputBus implements IDualInputHatch { +public class MTEHatchCraftingInputSlave extends MTEHatchInputBus implements IDualInputHatch, IDataCopyable { + public static final String COPIED_DATA_IDENTIFIER = "craftingInputProxy"; private MTEHatchCraftingInputME master; // use getMaster() to access private int masterX, masterY, masterZ; private boolean masterSet = false; // indicate if values of masterX, masterY, masterZ are valid @@ -220,6 +222,38 @@ public class MTEHatchCraftingInputSlave extends MTEHatchInputBus implements IDua } @Override + public String getCopiedDataIdentifier(EntityPlayer player) { + return COPIED_DATA_IDENTIFIER; + } + + @Override + public boolean pasteCopiedData(EntityPlayer player, NBTTagCompound nbt) { + if (nbt == null || !COPIED_DATA_IDENTIFIER.equals(nbt.getString("type"))) return false; + if (nbt.hasKey("master")) { + NBTTagCompound masterNBT = nbt.getCompoundTag("master"); + masterX = masterNBT.getInteger("x"); + masterY = masterNBT.getInteger("y"); + masterZ = masterNBT.getInteger("z"); + masterSet = true; + } + return true; + } + + @Override + public NBTTagCompound getCopiedData(EntityPlayer player) { + NBTTagCompound tag = new NBTTagCompound(); + tag.setString("type", COPIED_DATA_IDENTIFIER); + if (masterSet) { + NBTTagCompound masterNBT = new NBTTagCompound(); + masterNBT.setInteger("x", masterX); + masterNBT.setInteger("y", masterY); + masterNBT.setInteger("z", masterZ); + tag.setTag("master", masterNBT); + } + return tag; + } + + @Override public void getWailaBody(ItemStack itemStack, List<String> currenttip, IWailaDataAccessor accessor, IWailaConfigHandler config) { NBTTagCompound tag = accessor.getNBTData(); |