aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/machines/MTEHatchCraftingInputSlave.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/machines/MTEHatchCraftingInputSlave.java')
-rw-r--r--src/main/java/gregtech/common/tileentities/machines/MTEHatchCraftingInputSlave.java36
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();