aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/common/tileentities/casings
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/common/tileentities/casings')
-rw-r--r--src/main/java/gregtech/common/tileentities/casings/upgrade/Ampere.java47
-rw-r--r--src/main/java/gregtech/common/tileentities/casings/upgrade/Cleanroom.java26
-rw-r--r--src/main/java/gregtech/common/tileentities/casings/upgrade/Heater.java21
-rw-r--r--src/main/java/gregtech/common/tileentities/casings/upgrade/Insulator.java22
-rw-r--r--src/main/java/gregtech/common/tileentities/casings/upgrade/Inventory.java93
-rw-r--r--src/main/java/gregtech/common/tileentities/casings/upgrade/Laser.java26
-rw-r--r--src/main/java/gregtech/common/tileentities/casings/upgrade/Tank.java61
-rw-r--r--src/main/java/gregtech/common/tileentities/casings/upgrade/Wireless.java26
8 files changed, 287 insertions, 35 deletions
diff --git a/src/main/java/gregtech/common/tileentities/casings/upgrade/Ampere.java b/src/main/java/gregtech/common/tileentities/casings/upgrade/Ampere.java
new file mode 100644
index 0000000000..1644f8fde0
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/casings/upgrade/Ampere.java
@@ -0,0 +1,47 @@
+package gregtech.common.tileentities.casings.upgrade;
+
+import java.util.List;
+
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.multitileentity.interfaces.IMultiBlockController;
+import gregtech.api.multitileentity.multiblock.casing.UpgradeCasing;
+import gregtech.api.util.GT_Utility;
+
+public class Ampere extends UpgradeCasing {
+
+ private long amperage;
+
+ @Override
+ public String getTileEntityName() {
+ return "gt.multitileentity.multiblock.functional.amperage";
+ }
+
+ @Override
+ public void readMultiTileNBT(NBTTagCompound aNBT) {
+ super.readMultiTileNBT(aNBT);
+ amperage = aNBT.getInteger(GT_Values.NBT.UPGRADE_AMPERAGE);
+ }
+
+ @Override
+ protected void customWork(IMultiBlockController target) {
+ target.setMaxAmperage(amperage);
+ }
+
+ @Override
+ public boolean breakBlock() {
+ final IMultiBlockController controller = getTarget(false);
+ if (controller != null) {
+ controller.setMaxAmperage(2);
+ }
+ return super.breakBlock();
+ }
+
+ @Override
+ public void addToolTips(List<String> list, ItemStack stack, boolean f3_h) {
+ super.addToolTips(list, stack, f3_h);
+ list.add("Increases allowed amperage to " + GT_Utility.formatNumbers(amperage));
+ }
+}
diff --git a/src/main/java/gregtech/common/tileentities/casings/upgrade/Cleanroom.java b/src/main/java/gregtech/common/tileentities/casings/upgrade/Cleanroom.java
new file mode 100644
index 0000000000..641327b427
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/casings/upgrade/Cleanroom.java
@@ -0,0 +1,26 @@
+package gregtech.common.tileentities.casings.upgrade;
+
+import gregtech.api.multitileentity.interfaces.IMultiBlockController;
+import gregtech.api.multitileentity.multiblock.casing.UpgradeCasing;
+
+public class Cleanroom extends UpgradeCasing {
+
+ @Override
+ public String getTileEntityName() {
+ return "gt.multitileentity.multiblock.functional.cleanroom";
+ }
+
+ @Override
+ protected void customWork(IMultiBlockController target) {
+ target.setCleanroom(true);
+ }
+
+ @Override
+ public boolean breakBlock() {
+ final IMultiBlockController controller = getTarget(false);
+ if (controller != null) {
+ controller.setCleanroom(false);
+ }
+ return super.breakBlock();
+ }
+}
diff --git a/src/main/java/gregtech/common/tileentities/casings/upgrade/Heater.java b/src/main/java/gregtech/common/tileentities/casings/upgrade/Heater.java
new file mode 100644
index 0000000000..6d8bd81d0f
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/casings/upgrade/Heater.java
@@ -0,0 +1,21 @@
+package gregtech.common.tileentities.casings.upgrade;
+
+import gregtech.api.multitileentity.interfaces.IMultiBlockController;
+import gregtech.api.multitileentity.interfaces.UpgradableModularMuTE;
+import gregtech.api.multitileentity.multiblock.casing.UpgradeCasing;
+import gregtech.api.util.GT_StructureUtilityMuTE.UpgradeCasings;
+
+public class Heater extends UpgradeCasing {
+
+ @Override
+ public String getTileEntityName() {
+ return "gt.multitileentity.multiblock.modular.heater";
+ }
+
+ @Override
+ protected void customWork(IMultiBlockController target) {
+ if (target instanceof UpgradableModularMuTE upgradable) {
+ upgradable.increaseMucCount(UpgradeCasings.Heater, this.tier);
+ }
+ }
+}
diff --git a/src/main/java/gregtech/common/tileentities/casings/upgrade/Insulator.java b/src/main/java/gregtech/common/tileentities/casings/upgrade/Insulator.java
new file mode 100644
index 0000000000..6cb0b630d6
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/casings/upgrade/Insulator.java
@@ -0,0 +1,22 @@
+package gregtech.common.tileentities.casings.upgrade;
+
+import gregtech.api.multitileentity.interfaces.IMultiBlockController;
+import gregtech.api.multitileentity.interfaces.UpgradableModularMuTE;
+import gregtech.api.multitileentity.multiblock.casing.UpgradeCasing;
+import gregtech.api.util.GT_StructureUtilityMuTE.UpgradeCasings;
+
+public class Insulator extends UpgradeCasing {
+
+ @Override
+ public String getTileEntityName() {
+ return "gt.multitileentity.multiblock.modular.insulator";
+ }
+
+ @Override
+ protected void customWork(IMultiBlockController target) {
+ if (target instanceof UpgradableModularMuTE upgradable) {
+ upgradable.increaseMucCount(UpgradeCasings.Insulator, this.tier);
+ }
+ }
+
+}
diff --git a/src/main/java/gregtech/common/tileentities/casings/upgrade/Inventory.java b/src/main/java/gregtech/common/tileentities/casings/upgrade/Inventory.java
index e42f0bfb86..5087c7f09e 100644
--- a/src/main/java/gregtech/common/tileentities/casings/upgrade/Inventory.java
+++ b/src/main/java/gregtech/common/tileentities/casings/upgrade/Inventory.java
@@ -1,7 +1,9 @@
package gregtech.common.tileentities.casings.upgrade;
+import java.util.List;
import java.util.UUID;
+import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraftforge.common.util.ForgeDirection;
@@ -10,35 +12,45 @@ import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
import com.gtnewhorizons.modularui.common.widget.textfield.TextFieldWidget;
import gregtech.api.enums.GT_Values.NBT;
+import gregtech.api.enums.InventoryType;
import gregtech.api.multitileentity.interfaces.IMultiBlockController;
import gregtech.api.multitileentity.multiblock.casing.UpgradeCasing;
import gregtech.api.net.GT_Packet_MultiTileEntity;
public class Inventory extends UpgradeCasing {
- public UUID mInventoryID;
- public static final int INPUT = 0;
- public static final int OUTPUT = 1;
- public static final int BOTH = 2;
- private String mInventoryName = "inventory";
- private int mInventorySize;
- private final int mType = BOTH;
+ public UUID inventoryID;
- public String getInventoryName() {
- return mInventoryName;
+ private String inventoryName = "inventory";
+ private int inventorySize;
+ private InventoryType type = InventoryType.Both;
+
+ public String getCustomInventoryName() {
+ return inventoryName;
+ }
+
+ public String getInventoryID() {
+ return inventoryID.toString();
}
public void setInventoryName(String aInventoryName) {
- mInventoryName = aInventoryName;
+ inventoryName = aInventoryName;
+ }
+
+ public InventoryType getType() {
+ return type;
}
@Override
- protected void customWork(IMultiBlockController aTarget) {
- int tInvSize = mInventorySize;
- if (mType == BOTH) {
- tInvSize /= 2;
+ protected void customWork(IMultiBlockController target) {
+ int invSize = inventorySize;
+ if (type == InventoryType.Both) {
+ invSize /= 2;
+ }
+ target.registerItemInventory(invSize, tier, type, true);
+ if (isServerSide()) {
+ issueClientUpdate();
}
- aTarget.registerInventory(mInventoryName, mInventoryID.toString(), tInvSize, mType);
}
@Override
@@ -49,34 +61,28 @@ public class Inventory extends UpgradeCasing {
@Override
public void readMultiTileNBT(NBTTagCompound aNBT) {
super.readMultiTileNBT(aNBT);
- if (aNBT.hasKey(NBT.UPGRADE_INVENTORY_UUID)) {
- mInventoryID = UUID.fromString(aNBT.getString(NBT.UPGRADE_INVENTORY_UUID));
+ if (aNBT.hasKey(NBT.UPGRADE_INVENTORY_NAME)) {
+ inventoryName = aNBT.getString(NBT.UPGRADE_INVENTORY_NAME);
} else {
- mInventoryID = UUID.randomUUID();
+ inventoryName = "inventory";
}
- mInventorySize = aNBT.getInteger(NBT.UPGRADE_INVENTORY_SIZE);
- mInventoryName = aNBT.getString(NBT.UPGRADE_INVENTORY_NAME);
-
+ inventorySize = aNBT.getInteger(NBT.UPGRADE_INVENTORY_SIZE);
}
@Override
public void writeMultiTileNBT(NBTTagCompound aNBT) {
super.writeMultiTileNBT(aNBT);
- aNBT.setString(NBT.UPGRADE_INVENTORY_UUID, mInventoryID.toString());
- aNBT.setString(NBT.UPGRADE_INVENTORY_NAME, mInventoryName);
+ aNBT.setString(NBT.UPGRADE_INVENTORY_UUID, inventoryID.toString());
+ aNBT.setString(NBT.UPGRADE_INVENTORY_NAME, inventoryName);
}
@Override
- protected void onBaseTEDestroyed() {
- super.onBaseTEDestroyed();
- unregisterInventories();
- }
-
- private void unregisterInventories() {
+ public boolean breakBlock() {
final IMultiBlockController controller = getTarget(false);
if (controller != null) {
- controller.unregisterInventory(mInventoryName, mInventoryID.toString(), mType);
+ controller.unregisterItemInventory(inventoryID, type);
}
+ return super.breakBlock();
}
@Override
@@ -87,12 +93,12 @@ public class Inventory extends UpgradeCasing {
@Override
public void addUIWidgets(Builder builder, UIBuildContext buildContext) {
builder.widget(
- new TextFieldWidget().setGetter(() -> mInventoryName)
+ new TextFieldWidget().setGetter(() -> inventoryName)
.setSetter((val) -> {
- mInventoryName = val;
+ inventoryName = val;
final IMultiBlockController controller = getTarget(false);
if (controller != null) {
- controller.changeInventoryName(mInventoryName, mInventoryID.toString(), mType);
+ controller.changeItemInventoryDisplayName(inventoryID, inventoryName, type);
}
})
.setSize(100, 25)
@@ -100,10 +106,27 @@ public class Inventory extends UpgradeCasing {
}
@Override
+ protected boolean canOpenControllerGui() {
+ return false;
+ }
+
+ @Override
public GT_Packet_MultiTileEntity getClientDataPacket() {
final GT_Packet_MultiTileEntity packet = super.getClientDataPacket();
- String name = getInventoryName();
- packet.setInventoryName(name);
+ String name = getCustomInventoryName();
+ packet.setInventoryName(name, inventoryID.toString());
return packet;
}
+
+ @Override
+ public void addToolTips(List<String> list, ItemStack stack, boolean f3_h) {
+ super.addToolTips(list, stack, f3_h);
+ list.add("Adds another item inventory");
+ list.add("Inventory size: " + inventorySize);
+ list.add("Inventory Type: " + type);
+ }
+
+ public void setInventoryId(String inventoryID) {
+ this.inventoryID = UUID.fromString(inventoryID);
+ }
}
diff --git a/src/main/java/gregtech/common/tileentities/casings/upgrade/Laser.java b/src/main/java/gregtech/common/tileentities/casings/upgrade/Laser.java
new file mode 100644
index 0000000000..ab66281f54
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/casings/upgrade/Laser.java
@@ -0,0 +1,26 @@
+package gregtech.common.tileentities.casings.upgrade;
+
+import gregtech.api.multitileentity.interfaces.IMultiBlockController;
+import gregtech.api.multitileentity.multiblock.casing.UpgradeCasing;
+
+public class Laser extends UpgradeCasing {
+
+ @Override
+ public String getTileEntityName() {
+ return "gt.multitileentity.multiblock.functional.laser";
+ }
+
+ @Override
+ protected void customWork(IMultiBlockController target) {
+ target.setLaserSupport(true);
+ }
+
+ @Override
+ public boolean breakBlock() {
+ final IMultiBlockController controller = getTarget(false);
+ if (controller != null) {
+ controller.setLaserSupport(false);
+ }
+ return super.breakBlock();
+ }
+}
diff --git a/src/main/java/gregtech/common/tileentities/casings/upgrade/Tank.java b/src/main/java/gregtech/common/tileentities/casings/upgrade/Tank.java
new file mode 100644
index 0000000000..ebc84be38a
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/casings/upgrade/Tank.java
@@ -0,0 +1,61 @@
+package gregtech.common.tileentities.casings.upgrade;
+
+import java.util.List;
+import java.util.UUID;
+
+import net.minecraft.item.ItemStack;
+import net.minecraft.nbt.NBTTagCompound;
+
+import gregtech.api.enums.GT_Values;
+import gregtech.api.multitileentity.interfaces.IMultiBlockController;
+import gregtech.api.multitileentity.multiblock.casing.UpgradeCasing;
+import gregtech.api.util.GT_Utility;
+
+public class Tank extends UpgradeCasing {
+
+ private int tankCount;
+ private int tankCapacity;
+ public UUID tankID;
+ public static final int INPUT = 0;
+ public static final int OUTPUT = 1;
+ public static final int BOTH = 2;
+ private String tankName = "tank";
+ private int type = BOTH;
+
+ @Override
+ protected void customWork(IMultiBlockController aTarget) {
+
+ }
+
+ @Override
+ public String getTileEntityName() {
+ return "gt.multitileentity.multiblock.tank";
+ }
+
+ public String getCustomTankName() {
+ return tankName;
+ }
+
+ public String getTankID() {
+ return tankID.toString();
+ }
+
+ public int getType() {
+ return type;
+ }
+
+ @Override
+ public void readMultiTileNBT(NBTTagCompound aNBT) {
+ super.readMultiTileNBT(aNBT);
+ tankCount = aNBT.getInteger(GT_Values.NBT.UPGRADE_TANK_COUNT);
+ tankCapacity = aNBT.getInteger(GT_Values.NBT.UPGRADE_TANK_CAPACITY);
+ }
+
+ @Override
+ public void addToolTips(List<String> list, ItemStack stack, boolean f3_h) {
+ super.addToolTips(list, stack, f3_h);
+ list.add("Adds another tank inventory");
+ list.add("Number of tanks: " + tankCount);
+ list.add("Tank capacity: " + GT_Utility.formatNumbers(tankCapacity) + " L");
+ }
+}
diff --git a/src/main/java/gregtech/common/tileentities/casings/upgrade/Wireless.java b/src/main/java/gregtech/common/tileentities/casings/upgrade/Wireless.java
new file mode 100644
index 0000000000..0cb6a595bf
--- /dev/null
+++ b/src/main/java/gregtech/common/tileentities/casings/upgrade/Wireless.java
@@ -0,0 +1,26 @@
+package gregtech.common.tileentities.casings.upgrade;
+
+import gregtech.api.multitileentity.interfaces.IMultiBlockController;
+import gregtech.api.multitileentity.multiblock.casing.UpgradeCasing;
+
+public class Wireless extends UpgradeCasing {
+
+ @Override
+ public String getTileEntityName() {
+ return "gt.multitileentity.multiblock.functional.wireless";
+ }
+
+ @Override
+ protected void customWork(IMultiBlockController target) {
+ target.setWirelessSupport(true);
+ }
+
+ @Override
+ public boolean breakBlock() {
+ final IMultiBlockController controller = getTarget(false);
+ if (controller != null) {
+ controller.setWirelessSupport(false);
+ }
+ return super.breakBlock();
+ }
+}