From 820ca984d2dea005a126ef585661503f8cc992f5 Mon Sep 17 00:00:00 2001 From: kekzdealer Date: Wed, 9 Oct 2019 02:43:07 +0200 Subject: improved T.F.F.T code; Prepared for MultiHatch --- src/main/java/blocks/Block_GDCUnit.java | 60 +- src/main/java/blocks/Block_TFFTCasing.java | 60 +- .../java/blocks/Block_TFFTStorageFieldBlockT1.java | 64 +- .../java/blocks/Block_TFFTStorageFieldBlockT2.java | 60 +- .../java/blocks/Block_TFFTStorageFieldBlockT3.java | 60 +- .../java/blocks/Block_TFFTStorageFieldBlockT4.java | 60 +- src/main/java/blocks/Block_YSZUnit.java | 60 +- .../container/Container_ModularNuclearReactor.java | 140 +-- .../GUIContainer_ModularNuclearReactor.java | 106 +- src/main/java/items/ErrorItem.java | 93 +- .../java/items/MetaItem_CraftingComponent.java | 206 ++-- src/main/java/items/MetaItem_ReactorComponent.java | 280 +++--- src/main/java/kekztech/GTMultiController.java | 610 ++++++------ src/main/java/kekztech/GTRecipe.java | 208 ++-- src/main/java/kekztech/Items.java | 96 +- src/main/java/kekztech/KekzCore.java | 688 +++++++------ src/main/java/kekztech/MultiFluidHandler.java | 138 +++ src/main/java/reactor/ButtonSlot.java | 28 +- src/main/java/reactor/items/CoolantCell.java | 52 +- src/main/java/reactor/items/FuelRod.java | 228 ++--- src/main/java/reactor/items/HeatExchanger.java | 120 +-- src/main/java/reactor/items/HeatVent.java | 100 +- src/main/java/reactor/items/NeutronReflector.java | 52 +- .../java/tileentities/GTMTE_FluidMultiStorage.java | 1021 ++++++++++---------- .../tileentities/GTMTE_ModularNuclearReactor.java | 380 ++++---- .../java/tileentities/GTMTE_SOFuelCellMK1.java | 656 ++++++------- .../java/tileentities/GTMTE_SOFuelCellMK2.java | 656 ++++++------- src/main/java/tileentities/TFFTMultiHatch.java | 138 +++ src/main/java/util/Util.java | 102 +- src/main/java/util/Vector3i.java | 64 +- src/main/java/util/Vector3ic.java | 16 +- 31 files changed, 3431 insertions(+), 3171 deletions(-) create mode 100644 src/main/java/kekztech/MultiFluidHandler.java create mode 100644 src/main/java/tileentities/TFFTMultiHatch.java (limited to 'src/main/java') diff --git a/src/main/java/blocks/Block_GDCUnit.java b/src/main/java/blocks/Block_GDCUnit.java index d11681b1d6..ed778b5e8d 100644 --- a/src/main/java/blocks/Block_GDCUnit.java +++ b/src/main/java/blocks/Block_GDCUnit.java @@ -1,29 +1,31 @@ -package blocks; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class Block_GDCUnit extends Block { - - private static Block_GDCUnit instance = new Block_GDCUnit(); - - private Block_GDCUnit() { - // I am a singleton - super(Material.iron); - } - - public static Block_GDCUnit getInstance() { - return instance; - } - - public void registerBlock() { - final String blockName = "kekztech_gdcceramicelectrolyteunit_block"; - super.setBlockName(blockName); - super.setCreativeTab(CreativeTabs.tabMisc); - super.setBlockTextureName(KekzCore.MODID + ":" + "GDCCeramicElectrolyteUnit"); - GameRegistry.registerBlock(getInstance(), blockName); - } -} +package blocks; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; + +public class Block_GDCUnit extends Block { + + private static Block_GDCUnit instance = new Block_GDCUnit(); + + private Block_GDCUnit() { + // I am a singleton + super(Material.iron); + } + + public static Block_GDCUnit getInstance() { + return instance; + } + + public void registerBlock() { + final String blockName = "kekztech_gdcceramicelectrolyteunit_block"; + super.setBlockName(blockName); + super.setCreativeTab(CreativeTabs.tabMisc); + super.setBlockTextureName(KekzCore.MODID + ":" + "GDCCeramicElectrolyteUnit"); + super.setHardness(5.0f); + super.setResistance(6.0f); + GameRegistry.registerBlock(getInstance(), blockName); + } +} diff --git a/src/main/java/blocks/Block_TFFTCasing.java b/src/main/java/blocks/Block_TFFTCasing.java index eb47860418..f2011a8bae 100644 --- a/src/main/java/blocks/Block_TFFTCasing.java +++ b/src/main/java/blocks/Block_TFFTCasing.java @@ -1,29 +1,31 @@ -package blocks; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class Block_TFFTCasing extends Block { - - private static Block_TFFTCasing instance = new Block_TFFTCasing(); - - private Block_TFFTCasing() { - // I am a singleton - super(Material.iron); - } - - public static Block_TFFTCasing getInstance() { - return instance; - } - - public void registerBlock() { - final String blockName = "kekztech_tfftcasing_block"; - super.setBlockName(blockName); - super.setCreativeTab(CreativeTabs.tabMisc); - super.setBlockTextureName(KekzCore.MODID + ":" + "TFFTCasing"); - GameRegistry.registerBlock(getInstance(), blockName); - } -} +package blocks; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; + +public class Block_TFFTCasing extends Block { + + private static Block_TFFTCasing instance = new Block_TFFTCasing(); + + private Block_TFFTCasing() { + // I am a singleton + super(Material.iron); + } + + public static Block_TFFTCasing getInstance() { + return instance; + } + + public void registerBlock() { + final String blockName = "kekztech_tfftcasing_block"; + super.setBlockName(blockName); + super.setCreativeTab(CreativeTabs.tabMisc); + super.setBlockTextureName(KekzCore.MODID + ":" + "TFFTCasing"); + super.setHardness(5.0f); + super.setResistance(6.0f); + GameRegistry.registerBlock(getInstance(), blockName); + } +} diff --git a/src/main/java/blocks/Block_TFFTStorageFieldBlockT1.java b/src/main/java/blocks/Block_TFFTStorageFieldBlockT1.java index 9a94f06121..28d23eec73 100644 --- a/src/main/java/blocks/Block_TFFTStorageFieldBlockT1.java +++ b/src/main/java/blocks/Block_TFFTStorageFieldBlockT1.java @@ -1,31 +1,33 @@ -package blocks; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class Block_TFFTStorageFieldBlockT1 extends Block { - - private static Block_TFFTStorageFieldBlockT1 instance = new Block_TFFTStorageFieldBlockT1(); - - private Block_TFFTStorageFieldBlockT1() { - // I am a singleton - super(Material.iron); - } - - public static Block_TFFTStorageFieldBlockT1 getInstance() { - return instance; - } - - public void registerBlock() { - final String blockName = "kekztech_tfftstoragefieldblock1_block"; - super.setBlockName(blockName); - super.setCreativeTab(CreativeTabs.tabMisc); - super.setBlockTextureName(KekzCore.MODID + ":" + "TFFTStorageFieldBlock1"); - GameRegistry.registerBlock(getInstance(), blockName); - } - - -} +package blocks; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; + +public class Block_TFFTStorageFieldBlockT1 extends Block { + + private static Block_TFFTStorageFieldBlockT1 instance = new Block_TFFTStorageFieldBlockT1(); + + private Block_TFFTStorageFieldBlockT1() { + // I am a singleton + super(Material.iron); + } + + public static Block_TFFTStorageFieldBlockT1 getInstance() { + return instance; + } + + public void registerBlock() { + final String blockName = "kekztech_tfftstoragefieldblock1_block"; + super.setBlockName(blockName); + super.setCreativeTab(CreativeTabs.tabMisc); + super.setBlockTextureName(KekzCore.MODID + ":" + "TFFTStorageFieldBlock1"); + super.setHardness(5.0f); + super.setResistance(6.0f); + GameRegistry.registerBlock(getInstance(), blockName); + } + + +} diff --git a/src/main/java/blocks/Block_TFFTStorageFieldBlockT2.java b/src/main/java/blocks/Block_TFFTStorageFieldBlockT2.java index 965e06dc54..51ddd93a7b 100644 --- a/src/main/java/blocks/Block_TFFTStorageFieldBlockT2.java +++ b/src/main/java/blocks/Block_TFFTStorageFieldBlockT2.java @@ -1,29 +1,31 @@ -package blocks; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class Block_TFFTStorageFieldBlockT2 extends Block { - - private static Block_TFFTStorageFieldBlockT2 instance = new Block_TFFTStorageFieldBlockT2(); - - private Block_TFFTStorageFieldBlockT2() { - // I am a singleton - super(Material.iron); - } - - public static Block_TFFTStorageFieldBlockT2 getInstance() { - return instance; - } - - public void registerBlock() { - final String blockName = "kekztech_tfftstoragefieldblock2_block"; - super.setBlockName(blockName); - super.setCreativeTab(CreativeTabs.tabMisc); - super.setBlockTextureName(KekzCore.MODID + ":" + "TFFTStorageFieldBlock2"); - GameRegistry.registerBlock(getInstance(), blockName); - } -} +package blocks; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; + +public class Block_TFFTStorageFieldBlockT2 extends Block { + + private static Block_TFFTStorageFieldBlockT2 instance = new Block_TFFTStorageFieldBlockT2(); + + private Block_TFFTStorageFieldBlockT2() { + // I am a singleton + super(Material.iron); + } + + public static Block_TFFTStorageFieldBlockT2 getInstance() { + return instance; + } + + public void registerBlock() { + final String blockName = "kekztech_tfftstoragefieldblock2_block"; + super.setBlockName(blockName); + super.setCreativeTab(CreativeTabs.tabMisc); + super.setBlockTextureName(KekzCore.MODID + ":" + "TFFTStorageFieldBlock2"); + super.setHardness(5.0f); + super.setResistance(6.0f); + GameRegistry.registerBlock(getInstance(), blockName); + } +} diff --git a/src/main/java/blocks/Block_TFFTStorageFieldBlockT3.java b/src/main/java/blocks/Block_TFFTStorageFieldBlockT3.java index 79647c99b7..174812bc48 100644 --- a/src/main/java/blocks/Block_TFFTStorageFieldBlockT3.java +++ b/src/main/java/blocks/Block_TFFTStorageFieldBlockT3.java @@ -1,29 +1,31 @@ -package blocks; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class Block_TFFTStorageFieldBlockT3 extends Block { - - private static Block_TFFTStorageFieldBlockT3 instance = new Block_TFFTStorageFieldBlockT3(); - - private Block_TFFTStorageFieldBlockT3() { - // I am a singleton - super(Material.iron); - } - - public static Block_TFFTStorageFieldBlockT3 getInstance() { - return instance; - } - - public void registerBlock() { - final String blockName = "kekztech_tfftstoragefieldblock3_block"; - super.setBlockName(blockName); - super.setCreativeTab(CreativeTabs.tabMisc); - super.setBlockTextureName(KekzCore.MODID + ":" + "TFFTStorageFieldBlock3"); - GameRegistry.registerBlock(getInstance(), blockName); - } -} +package blocks; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; + +public class Block_TFFTStorageFieldBlockT3 extends Block { + + private static Block_TFFTStorageFieldBlockT3 instance = new Block_TFFTStorageFieldBlockT3(); + + private Block_TFFTStorageFieldBlockT3() { + // I am a singleton + super(Material.iron); + } + + public static Block_TFFTStorageFieldBlockT3 getInstance() { + return instance; + } + + public void registerBlock() { + final String blockName = "kekztech_tfftstoragefieldblock3_block"; + super.setBlockName(blockName); + super.setCreativeTab(CreativeTabs.tabMisc); + super.setBlockTextureName(KekzCore.MODID + ":" + "TFFTStorageFieldBlock3"); + super.setHardness(5.0f); + super.setResistance(6.0f); + GameRegistry.registerBlock(getInstance(), blockName); + } +} diff --git a/src/main/java/blocks/Block_TFFTStorageFieldBlockT4.java b/src/main/java/blocks/Block_TFFTStorageFieldBlockT4.java index 5dd20cabcf..0ea69237e6 100644 --- a/src/main/java/blocks/Block_TFFTStorageFieldBlockT4.java +++ b/src/main/java/blocks/Block_TFFTStorageFieldBlockT4.java @@ -1,29 +1,31 @@ -package blocks; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class Block_TFFTStorageFieldBlockT4 extends Block { - - private static Block_TFFTStorageFieldBlockT4 instance = new Block_TFFTStorageFieldBlockT4(); - - private Block_TFFTStorageFieldBlockT4() { - // I am a singleton - super(Material.iron); - } - - public static Block_TFFTStorageFieldBlockT4 getInstance() { - return instance; - } - - public void registerBlock() { - final String blockName = "kekztech_tfftstoragefieldblock4_block"; - super.setBlockName(blockName); - super.setCreativeTab(CreativeTabs.tabMisc); - super.setBlockTextureName(KekzCore.MODID + ":" + "TFFTStorageFieldBlock4"); - GameRegistry.registerBlock(getInstance(), blockName); - } -} +package blocks; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; + +public class Block_TFFTStorageFieldBlockT4 extends Block { + + private static Block_TFFTStorageFieldBlockT4 instance = new Block_TFFTStorageFieldBlockT4(); + + private Block_TFFTStorageFieldBlockT4() { + // I am a singleton + super(Material.iron); + } + + public static Block_TFFTStorageFieldBlockT4 getInstance() { + return instance; + } + + public void registerBlock() { + final String blockName = "kekztech_tfftstoragefieldblock4_block"; + super.setBlockName(blockName); + super.setCreativeTab(CreativeTabs.tabMisc); + super.setBlockTextureName(KekzCore.MODID + ":" + "TFFTStorageFieldBlock4"); + super.setHardness(5.0f); + super.setResistance(6.0f); + GameRegistry.registerBlock(getInstance(), blockName); + } +} diff --git a/src/main/java/blocks/Block_YSZUnit.java b/src/main/java/blocks/Block_YSZUnit.java index 1e4df40c67..a32b28e94d 100644 --- a/src/main/java/blocks/Block_YSZUnit.java +++ b/src/main/java/blocks/Block_YSZUnit.java @@ -1,29 +1,31 @@ -package blocks; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -import net.minecraft.block.Block; -import net.minecraft.block.material.Material; -import net.minecraft.creativetab.CreativeTabs; - -public class Block_YSZUnit extends Block { - - private static Block_YSZUnit instance = new Block_YSZUnit(); - - private Block_YSZUnit() { - // I am a singleton - super(Material.iron); - } - - public static Block_YSZUnit getInstance() { - return instance; - } - - public void registerBlock() { - final String blockName = "kekztech_yszceramicelectrolyteunit_block"; - super.setBlockName(blockName); - super.setCreativeTab(CreativeTabs.tabMisc); - super.setBlockTextureName(KekzCore.MODID + ":" + "YSZCeramicElectrolyteUnit"); - GameRegistry.registerBlock(getInstance(), blockName); - } -} +package blocks; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.block.Block; +import net.minecraft.block.material.Material; +import net.minecraft.creativetab.CreativeTabs; + +public class Block_YSZUnit extends Block { + + private static Block_YSZUnit instance = new Block_YSZUnit(); + + private Block_YSZUnit() { + // I am a singleton + super(Material.iron); + } + + public static Block_YSZUnit getInstance() { + return instance; + } + + public void registerBlock() { + final String blockName = "kekztech_yszceramicelectrolyteunit_block"; + super.setBlockName(blockName); + super.setCreativeTab(CreativeTabs.tabMisc); + super.setBlockTextureName(KekzCore.MODID + ":" + "YSZCeramicElectrolyteUnit"); + super.setHardness(5.0f); + super.setResistance(6.0f); + GameRegistry.registerBlock(getInstance(), blockName); + } +} diff --git a/src/main/java/container/Container_ModularNuclearReactor.java b/src/main/java/container/Container_ModularNuclearReactor.java index 41b686c901..a8fdd5f25a 100644 --- a/src/main/java/container/Container_ModularNuclearReactor.java +++ b/src/main/java/container/Container_ModularNuclearReactor.java @@ -1,70 +1,70 @@ -package container; - -import gregtech.api.gui.GT_Container_MultiMachine; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.inventory.IInventory; -import net.minecraft.inventory.Slot; -import reactor.ButtonSlot; -import tileentities.GTMTE_ModularNuclearReactor; - -public class Container_ModularNuclearReactor extends GT_Container_MultiMachine { - - private final GTMTE_ModularNuclearReactor REACTOR_TILE; - private final IInventory PLAYER_INVENTORY; - - private int nextSlotID = 0; - private final Slot[] REACTOR_SLOTS = new Slot[54]; - private final Slot SLOT_CONFIGURATION; - private final Slot BUTTON_EU_MODE; - private final Slot BUTTON_FLUID_MODE; - private final Slot BUTTON_CONDITION; - private final Slot BUTTON_CONFIGURE; - private final Slot BUTTON_RESET; - - - public Container_ModularNuclearReactor(InventoryPlayer inventoryPlayer, IGregTechTileEntity reactorTile) { - - super(inventoryPlayer, reactorTile); - - this.REACTOR_TILE = (GTMTE_ModularNuclearReactor) reactorTile; - this.PLAYER_INVENTORY = inventoryPlayer; - - // Add the reactor chamber - for(int x = 0; x < 9; x++) { - for(int y = 0; y < 6; y++){ - REACTOR_SLOTS[nextSlotID] = super.addSlotToContainer(new Slot(PLAYER_INVENTORY, getNextSlotID(), (16 + 67 * x), (16 + 67 * y))); - } - } - // Add the configuration slot - SLOT_CONFIGURATION = super.addSlotToContainer(new Slot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); - - // Add buttons (they're also slots) - BUTTON_EU_MODE = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); - BUTTON_FLUID_MODE = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); - BUTTON_CONDITION = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); - BUTTON_CONFIGURE = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); - BUTTON_RESET = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); - - } - - private int getNextSlotID() { - nextSlotID++; - return nextSlotID - 1; - } - - @Override - public boolean canInteractWith(EntityPlayer p_75145_1_) { - return true; - } - - @Override - public void detectAndSendChanges() { - super.detectAndSendChanges(); - if (REACTOR_TILE.getBaseMetaTileEntity().isServerSide() == false) { - return; - } - } - -} +package container; + +import gregtech.api.gui.GT_Container_MultiMachine; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; +import reactor.ButtonSlot; +import tileentities.GTMTE_ModularNuclearReactor; + +public class Container_ModularNuclearReactor extends GT_Container_MultiMachine { + + private final GTMTE_ModularNuclearReactor REACTOR_TILE; + private final IInventory PLAYER_INVENTORY; + + private int nextSlotID = 0; + private final Slot[] REACTOR_SLOTS = new Slot[54]; + private final Slot SLOT_CONFIGURATION; + private final Slot BUTTON_EU_MODE; + private final Slot BUTTON_FLUID_MODE; + private final Slot BUTTON_CONDITION; + private final Slot BUTTON_CONFIGURE; + private final Slot BUTTON_RESET; + + + public Container_ModularNuclearReactor(InventoryPlayer inventoryPlayer, IGregTechTileEntity reactorTile) { + + super(inventoryPlayer, reactorTile); + + this.REACTOR_TILE = (GTMTE_ModularNuclearReactor) reactorTile; + this.PLAYER_INVENTORY = inventoryPlayer; + + // Add the reactor chamber + for(int x = 0; x < 9; x++) { + for(int y = 0; y < 6; y++){ + REACTOR_SLOTS[nextSlotID] = super.addSlotToContainer(new Slot(PLAYER_INVENTORY, getNextSlotID(), (16 + 67 * x), (16 + 67 * y))); + } + } + // Add the configuration slot + SLOT_CONFIGURATION = super.addSlotToContainer(new Slot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); + + // Add buttons (they're also slots) + BUTTON_EU_MODE = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); + BUTTON_FLUID_MODE = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); + BUTTON_CONDITION = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); + BUTTON_CONFIGURE = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); + BUTTON_RESET = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); + + } + + private int getNextSlotID() { + nextSlotID++; + return nextSlotID - 1; + } + + @Override + public boolean canInteractWith(EntityPlayer p_75145_1_) { + return true; + } + + @Override + public void detectAndSendChanges() { + super.detectAndSendChanges(); + if (REACTOR_TILE.getBaseMetaTileEntity().isServerSide() == false) { + return; + } + } + +} diff --git a/src/main/java/container/GUIContainer_ModularNuclearReactor.java b/src/main/java/container/GUIContainer_ModularNuclearReactor.java index 58a9ff6caf..9bea52badc 100644 --- a/src/main/java/container/GUIContainer_ModularNuclearReactor.java +++ b/src/main/java/container/GUIContainer_ModularNuclearReactor.java @@ -1,53 +1,53 @@ -package container; - -import org.lwjgl.opengl.GL11; - -import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import kekztech.KekzCore; -import net.minecraft.client.Minecraft; -import net.minecraft.client.gui.GuiButton; -import net.minecraft.entity.player.InventoryPlayer; -import net.minecraft.util.ResourceLocation; - -public class GUIContainer_ModularNuclearReactor extends GT_GUIContainerMetaTile_Machine { - - private final String resourceName; - private final ResourceLocation texture; - - public GUIContainer_ModularNuclearReactor(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, - String aName, String aTextureFile) { - - super(new Container_ModularNuclearReactor(aInventoryPlayer, aTileEntity), aTextureFile); - - this.resourceName = aTextureFile; - this.texture = new ResourceLocation(KekzCore.MODID, "textures/gui/" + resourceName); - } - - @SuppressWarnings("unchecked") - @Override - public void initGui() { - super.initGui(); - - // The parameters of GuiButton are (id, x, y, width, height, text) - super.buttonList.add(new GuiButton(1, 100, 200, 100, 20, "Hello")); - } - - @Override - protected void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { - - Minecraft.getMinecraft().renderEngine.bindTexture(texture); - GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); - - final int x = (super.width - super.xSize); - final int y = (super.height - super.ySize); - - super.drawTexturedModalRect(x, y, 0, 0, super.xSize, super.ySize); - } - - @Override - protected void drawGuiContainerForegroundLayer(int par1, int par2) { - - } - -} +package container; + +import org.lwjgl.opengl.GL11; + +import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import kekztech.KekzCore; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIContainer_ModularNuclearReactor extends GT_GUIContainerMetaTile_Machine { + + private final String resourceName; + private final ResourceLocation texture; + + public GUIContainer_ModularNuclearReactor(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, + String aName, String aTextureFile) { + + super(new Container_ModularNuclearReactor(aInventoryPlayer, aTileEntity), aTextureFile); + + this.resourceName = aTextureFile; + this.texture = new ResourceLocation(KekzCore.MODID, "textures/gui/" + resourceName); + } + + @SuppressWarnings("unchecked") + @Override + public void initGui() { + super.initGui(); + + // The parameters of GuiButton are (id, x, y, width, height, text) + super.buttonList.add(new GuiButton(1, 100, 200, 100, 20, "Hello")); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + + final int x = (super.width - super.xSize); + final int y = (super.height - super.ySize); + + super.drawTexturedModalRect(x, y, 0, 0, super.xSize, super.ySize); + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + + } + +} diff --git a/src/main/java/items/ErrorItem.java b/src/main/java/items/ErrorItem.java index e622197565..0ab41873f1 100644 --- a/src/main/java/items/ErrorItem.java +++ b/src/main/java/items/ErrorItem.java @@ -1,43 +1,50 @@ -package items; - -import java.util.List; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; - -public class ErrorItem extends Item { - - private static final ErrorItem instance = new ErrorItem(); - - private ErrorItem() { - // I am a singleton - } - - public static ErrorItem getInstance() { - return instance; - } - - public void registerItem() { - super.setHasSubtypes(false); - final String unlocalizedName = "kekztech_error_item"; - super.setUnlocalizedName(unlocalizedName); - super.setCreativeTab(CreativeTabs.tabMisc); - super.setMaxStackSize(64); - super.setTextureName(KekzCore.MODID + ":" + "Error"); - GameRegistry.registerItem(getInstance(), unlocalizedName); - } - - @SuppressWarnings({"unchecked", "rawtypes"}) - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { - list.add("REMINDER: KekzTech recipes are only confirmed to work in GTNH!"); - list.add("Placeholder item in case something went wrong"); - list.add("If this item shows up in GTNH, you may report it to:"); - list.add("https://github.com/kekzdealer/KekzTech"); - } - -} +package items; + +import java.util.List; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.world.World; + +public class ErrorItem extends Item { + + private static final ErrorItem instance = new ErrorItem(); + + private ErrorItem() { + // I am a singleton + } + + public static ErrorItem getInstance() { + return instance; + } + + public void registerItem() { + super.setHasSubtypes(false); + final String unlocalizedName = "kekztech_error_item"; + super.setUnlocalizedName(unlocalizedName); + super.setCreativeTab(CreativeTabs.tabMisc); + super.setMaxStackSize(64); + super.setTextureName(KekzCore.MODID + ":" + "Error"); + GameRegistry.registerItem(getInstance(), unlocalizedName); + } + + @SuppressWarnings({"unchecked", "rawtypes"}) + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { + list.add("REMINDER: KekzTech recipes are only confirmed to work in GTNH!"); + list.add("Placeholder item in case something went wrong"); + list.add("If this item shows up in GTNH, you may report it to:"); + list.add("https://github.com/kekzdealer/KekzTech"); + } + + @Override + public ItemStack onItemRightClick(ItemStack item, World world, EntityPlayer player) { + player.swingItem(); + return item; + } + +} diff --git a/src/main/java/items/MetaItem_CraftingComponent.java b/src/main/java/items/MetaItem_CraftingComponent.java index 29b8e8ac1f..0d6a1897f0 100644 --- a/src/main/java/items/MetaItem_CraftingComponent.java +++ b/src/main/java/items/MetaItem_CraftingComponent.java @@ -1,103 +1,103 @@ -package items; - -import java.util.List; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.util.IIcon; - -public class MetaItem_CraftingComponent extends Item { - - private static MetaItem_CraftingComponent instance = new MetaItem_CraftingComponent(); - private final IIcon[] icons = new IIcon[16]; - - private MetaItem_CraftingComponent() { - // I am a singleton - } - - public static MetaItem_CraftingComponent getInstance() { - return instance; - } - - public void registerItem() { - super.setHasSubtypes(true); - final String unlocalizedName = "kekztech_crafting_item"; - super.setUnlocalizedName(unlocalizedName); - super.setCreativeTab(CreativeTabs.tabMisc); - super.setMaxStackSize(64); - GameRegistry.registerItem(getInstance(), unlocalizedName); - } - - @Override - public void registerIcons(IIconRegister reg) { - int counter = 0; - // Raw heat pipes - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "CopperHeatPipe"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "SilverHeatPipe"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideHeatPipe"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "DiamondHeatPipe"); - // Dust - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideDust"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "IsotopicallyPureDiamondDust"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "AmineCarbamateDust"); - // Crystal - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideCrystal"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "IsotopicallyPureDiamondCrystal"); - // Ceramics - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "YSZCeramicDust"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "GDCCeramicDust"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "YttriaDust"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "ZirconiaDust"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "CeriaDust"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "YSZCeramicPlate"); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "GDCCeramicPlate"); - } - - @Override - public IIcon getIconFromDamage(int meta) { - return icons[meta]; - } - - @SuppressWarnings({"unchecked", "rawtypes"}) - @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { - for(int i = 0; i < icons.length; i++) { - list.add(new ItemStack(item, 1, i)); - } - } - - @Override - public String getUnlocalizedName(ItemStack stack) { - return super.getUnlocalizedName() + "." + stack.getItemDamage(); - } - - @SuppressWarnings({"unchecked", "rawtypes"}) - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { - list.add("Crafting component for KekzTech things"); - } - - @Override - public double getDurabilityForDisplay(ItemStack stack) { - return 0.0d; - } - - @Override - public boolean showDurabilityBar(ItemStack stack) { - return false; - } - - public ItemStack getStackFromDamage(int meta) { - return new ItemStack(getInstance(), 1, meta); - } - - public ItemStack getStackOfAmountFromDamage(int meta, int amount) { - return new ItemStack(getInstance(), amount, meta); - } - -} +package items; + +import java.util.List; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.util.IIcon; + +public class MetaItem_CraftingComponent extends Item { + + private static MetaItem_CraftingComponent instance = new MetaItem_CraftingComponent(); + private final IIcon[] icons = new IIcon[16]; + + private MetaItem_CraftingComponent() { + // I am a singleton + } + + public static MetaItem_CraftingComponent getInstance() { + return instance; + } + + public void registerItem() { + super.setHasSubtypes(true); + final String unlocalizedName = "kekztech_crafting_item"; + super.setUnlocalizedName(unlocalizedName); + super.setCreativeTab(CreativeTabs.tabMisc); + super.setMaxStackSize(64); + GameRegistry.registerItem(getInstance(), unlocalizedName); + } + + @Override + public void registerIcons(IIconRegister reg) { + int counter = 0; + // Raw heat pipes + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "CopperHeatPipe"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "SilverHeatPipe"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideHeatPipe"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "DiamondHeatPipe"); + // Dust + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideDust"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "IsotopicallyPureDiamondDust"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "AmineCarbamateDust"); + // Crystal + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "BoronArsenideCrystal"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "IsotopicallyPureDiamondCrystal"); + // Ceramics + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "YSZCeramicDust"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "GDCCeramicDust"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "YttriaDust"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "ZirconiaDust"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "CeriaDust"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "YSZCeramicPlate"); + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + "GDCCeramicPlate"); + } + + @Override + public IIcon getIconFromDamage(int meta) { + return icons[meta]; + } + + @SuppressWarnings({"unchecked", "rawtypes"}) + @Override + public void getSubItems(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < icons.length; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return super.getUnlocalizedName() + "." + stack.getItemDamage(); + } + + @SuppressWarnings({"unchecked", "rawtypes"}) + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { + list.add("Crafting component for KekzTech things"); + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + return 0.0d; + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + return false; + } + + public ItemStack getStackFromDamage(int meta) { + return new ItemStack(getInstance(), 1, meta); + } + + public ItemStack getStackOfAmountFromDamage(int meta, int amount) { + return new ItemStack(getInstance(), amount, meta); + } + +} diff --git a/src/main/java/items/MetaItem_ReactorComponent.java b/src/main/java/items/MetaItem_ReactorComponent.java index 458de48a00..9a8d668a40 100644 --- a/src/main/java/items/MetaItem_ReactorComponent.java +++ b/src/main/java/items/MetaItem_ReactorComponent.java @@ -1,140 +1,140 @@ -package items; - -import java.util.List; - -import cpw.mods.fml.common.registry.GameRegistry; -import kekztech.KekzCore; -import net.minecraft.client.renderer.texture.IIconRegister; -import net.minecraft.creativetab.CreativeTabs; -import net.minecraft.entity.player.EntityPlayer; -import net.minecraft.item.Item; -import net.minecraft.item.ItemStack; -import net.minecraft.nbt.NBTTagCompound; -import net.minecraft.util.IIcon; -import reactor.items.CoolantCell; -import reactor.items.FuelRod; -import reactor.items.HeatExchanger; -import reactor.items.HeatVent; -import reactor.items.NeutronReflector; - -public class MetaItem_ReactorComponent extends Item { - - private static MetaItem_ReactorComponent instance = new MetaItem_ReactorComponent(); - private final IIcon[] icons = new IIcon[50]; - - private MetaItem_ReactorComponent() { - // I am a singleton - } - - public static MetaItem_ReactorComponent getInstance() { - return instance; - } - - public void registerItem() { - super.setHasSubtypes(true); - final String unlocalizedName = "kekztech_reactor_item"; - super.setUnlocalizedName(unlocalizedName); - super.setCreativeTab(CreativeTabs.tabMisc); - super.setMaxStackSize(1); - GameRegistry.registerItem(getInstance(), unlocalizedName); - } - - @Override - public void registerIcons(IIconRegister reg) { - int counter = 0; - for(String s : HeatVent.RESOURCE_NAMES) { - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); - } - for(String s : HeatExchanger.RESOURCE_NAME) { - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); - } - for(String s : FuelRod.RESOURCE_NAME) { - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); - } - for(String s : FuelRod.RESOURCE_NAME_DEPLETED) { - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); - } - for(String s : NeutronReflector.RESOURCE_NAME) { - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); - } - for(String s : CoolantCell.RESOURCE_NAME) { - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); - } - } - - @Override - public IIcon getIconFromDamage(int meta) { - return icons[meta]; - } - - @SuppressWarnings({"unchecked", "rawtypes"}) - @Override - public void getSubItems(Item item, CreativeTabs tab, List list) { - for(int i = 0; i < icons.length; i++) { - list.add(new ItemStack(item, 1, i)); - } - } - - @Override - public String getUnlocalizedName(ItemStack stack) { - return super.getUnlocalizedName() + "." + stack.getItemDamage(); - } - - @SuppressWarnings({"unchecked", "rawtypes"}) - @Override - public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { - list.add("Part for the Modular Nuclear Reactor"); - } - - @Override - public double getDurabilityForDisplay(ItemStack stack) { - NBTTagCompound nbt = (stack.getTagCompound() == null) ? new NBTTagCompound() : stack.getTagCompound(); - if(nbt.getInteger("HEALTH") != 0 && nbt.getInteger("MAXHEALTH") != 0) { - return 1 - (double) (nbt.getInteger("HEALTH") / nbt.getInteger("MAXHEALTH")); - } else { - return 0.0d; - } - } - - @Override - public boolean showDurabilityBar(ItemStack stack) { - final int meta = stack.getItemDamage(); - if(meta >= 31 && meta <= 45) { - return false; - } else { - return true; - } - } - - public ItemStack getStackFromDamage(int meta) { - return new ItemStack(getInstance(), 1, meta); - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - -} +package items; + +import java.util.List; + +import cpw.mods.fml.common.registry.GameRegistry; +import kekztech.KekzCore; +import net.minecraft.client.renderer.texture.IIconRegister; +import net.minecraft.creativetab.CreativeTabs; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.Item; +import net.minecraft.item.ItemStack; +import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.util.IIcon; +import reactor.items.CoolantCell; +import reactor.items.FuelRod; +import reactor.items.HeatExchanger; +import reactor.items.HeatVent; +import reactor.items.NeutronReflector; + +public class MetaItem_ReactorComponent extends Item { + + private static MetaItem_ReactorComponent instance = new MetaItem_ReactorComponent(); + private final IIcon[] icons = new IIcon[50]; + + private MetaItem_ReactorComponent() { + // I am a singleton + } + + public static MetaItem_ReactorComponent getInstance() { + return instance; + } + + public void registerItem() { + super.setHasSubtypes(true); + final String unlocalizedName = "kekztech_reactor_item"; + super.setUnlocalizedName(unlocalizedName); + super.setCreativeTab(CreativeTabs.tabMisc); + super.setMaxStackSize(1); + GameRegistry.registerItem(getInstance(), unlocalizedName); + } + + @Override + public void registerIcons(IIconRegister reg) { + int counter = 0; + for(String s : HeatVent.RESOURCE_NAMES) { + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); + } + for(String s : HeatExchanger.RESOURCE_NAME) { + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); + } + for(String s : FuelRod.RESOURCE_NAME) { + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); + } + for(String s : FuelRod.RESOURCE_NAME_DEPLETED) { + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); + } + for(String s : NeutronReflector.RESOURCE_NAME) { + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); + } + for(String s : CoolantCell.RESOURCE_NAME) { + icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + s); + } + } + + @Override + public IIcon getIconFromDamage(int meta) { + return icons[meta]; + } + + @SuppressWarnings({"unchecked", "rawtypes"}) + @Override + public void getSubItems(Item item, CreativeTabs tab, List list) { + for(int i = 0; i < icons.length; i++) { + list.add(new ItemStack(item, 1, i)); + } + } + + @Override + public String getUnlocalizedName(ItemStack stack) { + return super.getUnlocalizedName() + "." + stack.getItemDamage(); + } + + @SuppressWarnings({"unchecked", "rawtypes"}) + @Override + public void addInformation(ItemStack stack, EntityPlayer player, List list, boolean b) { + list.add("Part for the Modular Nuclear Reactor"); + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + NBTTagCompound nbt = (stack.getTagCompound() == null) ? new NBTTagCompound() : stack.getTagCompound(); + if(nbt.getInteger("HEALTH") != 0 && nbt.getInteger("MAXHEALTH") != 0) { + return 1 - (double) (nbt.getInteger("HEALTH") / nbt.getInteger("MAXHEALTH")); + } else { + return 0.0d; + } + } + + @Override + public boolean showDurabilityBar(ItemStack stack) { + final int meta = stack.getItemDamage(); + if(meta >= 31 && meta <= 45) { + return false; + } else { + return true; + } + } + + public ItemStack getStackFromDamage(int meta) { + return new ItemStack(getInstance(), 1, meta); + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + +} diff --git a/src/main/java/kekztech/GTMultiController.java b/src/main/java/kekztech/GTMultiController.java index d824077201..2138907faa 100644 --- a/src/main/java/kekztech/GTMultiController.java +++ b/src/main/java/kekztech/GTMultiController.java @@ -1,305 +1,305 @@ -package kekztech; - -import java.util.ArrayList; - -import gregtech.api.interfaces.metatileentity.IMetaTileEntity; -import gregtech.api.interfaces.tileentity.IGregTechTileEntity; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; -import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus; -import gregtech.api.util.GT_Utility; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -/** - * Only purpose of this class is to make me learn about GT multis :) - * @author Kekzdealer - * - */ -public abstract class GTMultiController { - - private final GTRecipe GT_RECIPE = new GTRecipe(); - - private boolean running = false; - private boolean structureValid = false; - - public final ArrayList mDynamoHatches = new ArrayList<>(); - public final ArrayList mEnergyHatches = new ArrayList<>(); - public final ArrayList mInputHatches = new ArrayList<>(); - public final ArrayList mOutputHatches = new ArrayList<>(); - public final ArrayList mInputBusses = new ArrayList<>(); - public final ArrayList mOutputBusses = new ArrayList<>(); - public final ArrayList mMufflerHatches = new ArrayList<>(); - public final ArrayList mMaintenanceHatches = new ArrayList<>(); - - protected GTRecipe getGT_RECIPE() { - return GT_RECIPE; - } - - protected abstract boolean checkStructure(); - protected abstract String[] getDescription(); - - protected long getMaxInputVoltage() { - long voltage = 0L; - for(GT_MetaTileEntity_Hatch_Energy energyHatch : mEnergyHatches) { - voltage += energyHatch.getBaseMetaTileEntity().getInputVoltage(); - } - return voltage; - } - - private void updateDynamoHatches() { - if(GT_RECIPE.getEuPerTick() > 0) { - long remOutput = GT_RECIPE.getEuPerTick(); - for(GT_MetaTileEntity_Hatch_Dynamo dynamoHatch : mDynamoHatches) { - final long deltaCapacity = dynamoHatch.getBaseMetaTileEntity().getEUCapacity() - - dynamoHatch.getBaseMetaTileEntity().getStoredEU(); - final long toOutput = Math.min(deltaCapacity, GT_RECIPE.getEuPerTick()); - dynamoHatch.getBaseMetaTileEntity().increaseStoredEnergyUnits(toOutput, false); - remOutput -= toOutput; - } - } - } - - private void updateEnergyHatches() { - if(GT_RECIPE.getEuPerTick() < 0) { - long remConsumption = GT_RECIPE.getEuPerTick(); - for(GT_MetaTileEntity_Hatch_Energy energyHatch : mEnergyHatches) { - if(remConsumption > 0) { - final long toConsume = Math.min(remConsumption, energyHatch.getBaseMetaTileEntity().getStoredEU()); - energyHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(toConsume, false); - remConsumption -= toConsume; - } - } - } - } - - private void updateInputBusses() { - if(GT_RECIPE.getInputItems() != null) { - // Check for each input stack... - for(ItemStack inputStack : GT_RECIPE.getInputItems()) { - int remainingRequired = inputStack.stackSize; - // ...Each slot in each input bus... - for(GT_MetaTileEntity_Hatch_InputBus inputBus : mInputBusses) { - for(int slot = 0; slot <= inputBus.getBaseMetaTileEntity().getSizeInventory(); slot++) { - - final ItemStack slotStack = inputBus.getBaseMetaTileEntity().getStackInSlot(slot); - if(GT_Utility.isStackValid(slotStack)) { - if(GT_Utility.areStacksEqual(inputStack, slotStack)) { - // Found correct slot - final int toConsume = Math.min(slotStack.stackSize, inputStack.stackSize); - final ItemStack retrievedStack = inputBus.getBaseMetaTileEntity().decrStackSize(slot, toConsume); - } - } - } - } - } - } - } - - private void updateInputHatches() { - if(GT_RECIPE.getInputFluids() != null) { - // Check for each input stack - for(FluidStack inputStack : GT_RECIPE.getInputFluids()) { - int remainingRequired = inputStack.amount; - // ...In each input hatch... - for(GT_MetaTileEntity_Hatch_Input inputHatch : mInputHatches) { - - FluidStack slotStack = inputHatch.getFluid(); - if(slotStack.amount > 0 && slotStack.isFluidEqual(inputStack)) { - // Found correct hatch - final int toConsume = Math.min(slotStack.amount, remainingRequired); - inputHatch.drain(toConsume, true); - remainingRequired -= toConsume; - } - } - } - } - } - - private void updateOutputBusses() { - if(GT_RECIPE.getOutputItems() != null) { - - } - } - - private void updateOutputHatches() { - if(GT_RECIPE.getOutputFluids() != null) { - // Find for each output stack... - for(FluidStack outputStack : GT_RECIPE.getOutputFluids()) { - // ...an output hatch that can accept the stack - for(GT_MetaTileEntity_Hatch_Output outputHatch : mOutputHatches) { - - } - } - } - } - - protected boolean tryAddHatch(IGregTechTileEntity hatch, int aBaseCasingIndex) { - if (hatch == null) { - return false; - } else { - final IMetaTileEntity aMetaTileEntity = hatch.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else { - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - } - - if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { - return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus) { - return this.mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus) aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { - return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output) aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus) { - return this.mOutputBusses.add((GT_MetaTileEntity_Hatch_OutputBus) aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) { - return this.mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy) aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) { - return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo) aMetaTileEntity); - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) { - return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity); - } else { - return aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler - ? this.mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler) aMetaTileEntity) - : false; - } - } - } - } - - protected boolean tryAddMaintenanceHatch(IGregTechTileEntity hatch, int aBaseCasingIndex) { - if (hatch == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = hatch.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity); - } else { - return false; - } - } - } - - protected boolean tryAddEnergyHatch(IGregTechTileEntity hatch, int aBaseCasingIndex) { - if (hatch == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = hatch.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy) aMetaTileEntity); - } else { - return false; - } - } - } - - protected boolean tryAddDynamoHatch(IGregTechTileEntity hatch, int aBaseCasingIndex) { - if (hatch == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = hatch.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo) aMetaTileEntity); - } else { - return false; - } - } - } - - protected boolean tryAddMufflerHatch(IGregTechTileEntity hatch, int aBaseCasingIndex) { - if (hatch == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = hatch.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler) aMetaTileEntity); - } else { - return false; - } - } - } - - protected boolean tryAddInputBus(IGregTechTileEntity hatch, int aBaseCasingIndex) { - if (hatch == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = hatch.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus) aMetaTileEntity); - } else { - return false; - } - } - } - - protected boolean tryAddInputHatch(IGregTechTileEntity hatch, int aBaseCasingIndex) { - if (hatch == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = hatch.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity); - } else { - return false; - } - } - } - - protected boolean tryAddOutputBus(IGregTechTileEntity hatch, int aBaseCasingIndex) { - if (hatch == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = hatch.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mOutputBusses.add((GT_MetaTileEntity_Hatch_OutputBus) aMetaTileEntity); - } else { - return false; - } - } - } - - protected boolean tryAddOutputHatch(IGregTechTileEntity hatch, int aBaseCasingIndex) { - if (hatch == null) { - return false; - } else { - IMetaTileEntity aMetaTileEntity = hatch.getMetaTileEntity(); - if (aMetaTileEntity == null) { - return false; - } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { - ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); - return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output) aMetaTileEntity); - } else { - return false; - } - } - } -} +package kekztech; + +import java.util.ArrayList; + +import gregtech.api.interfaces.metatileentity.IMetaTileEntity; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Dynamo; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Energy; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Input; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_InputBus; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Maintenance; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Muffler; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_Output; +import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_Hatch_OutputBus; +import gregtech.api.util.GT_Utility; +import net.minecraft.item.ItemStack; +import net.minecraftforge.fluids.FluidStack; + +/** + * Only purpose of this class is to make me learn about GT multis :) + * @author Kekzdealer + * + */ +public abstract class GTMultiController { + + private final GTRecipe GT_RECIPE = new GTRecipe(); + + private boolean running = false; + private boolean structureValid = false; + + public final ArrayList mDynamoHatches = new ArrayList<>(); + public final ArrayList mEnergyHatches = new ArrayList<>(); + public final ArrayList mInputHatches = new ArrayList<>(); + public final ArrayList mOutputHatches = new ArrayList<>(); + public final ArrayList mInputBusses = new ArrayList<>(); + public final ArrayList mOutputBusses = new ArrayList<>(); + public final ArrayList mMufflerHatches = new ArrayList<>(); + public final ArrayList mMaintenanceHatches = new ArrayList<>(); + + protected GTRecipe getGT_RECIPE() { + return GT_RECIPE; + } + + protected abstract boolean checkStructure(); + protected abstract String[] getDescription(); + + protected long getMaxInputVoltage() { + long voltage = 0L; + for(GT_MetaTileEntity_Hatch_Energy energyHatch : mEnergyHatches) { + voltage += energyHatch.getBaseMetaTileEntity().getInputVoltage(); + } + return voltage; + } + + private void updateDynamoHatches() { + if(GT_RECIPE.getEuPerTick() > 0) { + long remOutput = GT_RECIPE.getEuPerTick(); + for(GT_MetaTileEntity_Hatch_Dynamo dynamoHatch : mDynamoHatches) { + final long deltaCapacity = dynamoHatch.getBaseMetaTileEntity().getEUCapacity() + - dynamoHatch.getBaseMetaTileEntity().getStoredEU(); + final long toOutput = Math.min(deltaCapacity, GT_RECIPE.getEuPerTick()); + dynamoHatch.getBaseMetaTileEntity().increaseStoredEnergyUnits(toOutput, false); + remOutput -= toOutput; + } + } + } + + private void updateEnergyHatches() { + if(GT_RECIPE.getEuPerTick() < 0) { + long remConsumption = GT_RECIPE.getEuPerTick(); + for(GT_MetaTileEntity_Hatch_Energy energyHatch : mEnergyHatches) { + if(remConsumption > 0) { + final long toConsume = Math.min(remConsumption, energyHatch.getBaseMetaTileEntity().getStoredEU()); + energyHatch.getBaseMetaTileEntity().decreaseStoredEnergyUnits(toConsume, false); + remConsumption -= toConsume; + } + } + } + } + + private void updateInputBusses() { + if(GT_RECIPE.getInputItems() != null) { + // Check for each input stack... + for(ItemStack inputStack : GT_RECIPE.getInputItems()) { + int remainingRequired = inputStack.stackSize; + // ...Each slot in each input bus... + for(GT_MetaTileEntity_Hatch_InputBus inputBus : mInputBusses) { + for(int slot = 0; slot <= inputBus.getBaseMetaTileEntity().getSizeInventory(); slot++) { + + final ItemStack slotStack = inputBus.getBaseMetaTileEntity().getStackInSlot(slot); + if(GT_Utility.isStackValid(slotStack)) { + if(GT_Utility.areStacksEqual(inputStack, slotStack)) { + // Found correct slot + final int toConsume = Math.min(slotStack.stackSize, inputStack.stackSize); + final ItemStack retrievedStack = inputBus.getBaseMetaTileEntity().decrStackSize(slot, toConsume); + } + } + } + } + } + } + } + + private void updateInputHatches() { + if(GT_RECIPE.getInputFluids() != null) { + // Check for each input stack + for(FluidStack inputStack : GT_RECIPE.getInputFluids()) { + int remainingRequired = inputStack.amount; + // ...In each input hatch... + for(GT_MetaTileEntity_Hatch_Input inputHatch : mInputHatches) { + + FluidStack slotStack = inputHatch.getFluid(); + if(slotStack.amount > 0 && slotStack.isFluidEqual(inputStack)) { + // Found correct hatch + final int toConsume = Math.min(slotStack.amount, remainingRequired); + inputHatch.drain(toConsume, true); + remainingRequired -= toConsume; + } + } + } + } + } + + private void updateOutputBusses() { + if(GT_RECIPE.getOutputItems() != null) { + + } + } + + private void updateOutputHatches() { + if(GT_RECIPE.getOutputFluids() != null) { + // Find for each output stack... + for(FluidStack outputStack : GT_RECIPE.getOutputFluids()) { + // ...an output hatch that can accept the stack + for(GT_MetaTileEntity_Hatch_Output outputHatch : mOutputHatches) { + + } + } + } + } + + protected boolean tryAddHatch(IGregTechTileEntity hatch, int aBaseCasingIndex) { + if (hatch == null) { + return false; + } else { + final IMetaTileEntity aMetaTileEntity = hatch.getMetaTileEntity(); + if (aMetaTileEntity == null) { + return false; + } else { + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); + } + + if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Input) { + return this.mInputHatches.add((GT_MetaTileEntity_Hatch_Input) aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_InputBus) { + return this.mInputBusses.add((GT_MetaTileEntity_Hatch_InputBus) aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Output) { + return this.mOutputHatches.add((GT_MetaTileEntity_Hatch_Output) aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_OutputBus) { + return this.mOutputBusses.add((GT_MetaTileEntity_Hatch_OutputBus) aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) { + return this.mEnergyHatches.add((GT_MetaTileEntity_Hatch_Energy) aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Dynamo) { + return this.mDynamoHatches.add((GT_MetaTileEntity_Hatch_Dynamo) aMetaTileEntity); + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) { + return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity); + } else { + return aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Muffler + ? this.mMufflerHatches.add((GT_MetaTileEntity_Hatch_Muffler) aMetaTileEntity) + : false; + } + } + } + } + + protected boolean tryAddMaintenanceHatch(IGregTechTileEntity hatch, int aBaseCasingIndex) { + if (hatch == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = hatch.getMetaTileEntity(); + if (aMetaTileEntity == null) { + return false; + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Maintenance) { + ((GT_MetaTileEntity_Hatch) aMetaTileEntity).updateTexture(aBaseCasingIndex); + return this.mMaintenanceHatches.add((GT_MetaTileEntity_Hatch_Maintenance) aMetaTileEntity); + } else { + return false; + } + } + } + + protected boolean tryAddEnergyHatch(IGregTechTileEntity hatch, int aBaseCasingIndex) { + if (hatch == null) { + return false; + } else { + IMetaTileEntity aMetaTileEntity = hatch.getMetaTileEntity(); + if (aMetaTileEntity == null) { + return false; + } else if (aMetaTileEntity instanceof GT_MetaTileEntity_Hatch_Energy) { +