aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kekztech
diff options
context:
space:
mode:
authorkekzdealer <kekzdealer@gmail.com>2019-10-09 02:43:07 +0200
committerkekzdealer <kekzdealer@gmail.com>2019-10-09 02:43:07 +0200
commit820ca984d2dea005a126ef585661503f8cc992f5 (patch)
treebca38b81b17c435e493bf8030fad31ffe5d6d9bc /src/main/java/kekztech
parent187fbf985078ee89f12a287a6754f2023c5e16be (diff)
downloadGT5-Unofficial-820ca984d2dea005a126ef585661503f8cc992f5.tar.gz
GT5-Unofficial-820ca984d2dea005a126ef585661503f8cc992f5.tar.bz2
GT5-Unofficial-820ca984d2dea005a126ef585661503f8cc992f5.zip
improved T.F.F.T code; Prepared for MultiHatch
Diffstat (limited to 'src/main/java/kekztech')
-rw-r--r--src/main/java/kekztech/GTMultiController.java610
-rw-r--r--src/main/java/kekztech/GTRecipe.java208
-rw-r--r--src/main/java/kekztech/Items.java96
-rw-r--r--src/main/java/kekztech/KekzCore.java688
-rw-r--r--src/main/java/kekztech/MultiFluidHandler.java138
5 files changed, 928 insertions, 812 deletions
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<GT_MetaTileEntity_Hatch_Dynamo> mDynamoHatches = new ArrayList<>();
- public final ArrayList<GT_MetaTileEntity_Hatch_Energy> mEnergyHatches = new ArrayList<>();
- public final ArrayList<GT_MetaTileEntity_Hatch_Input> mInputHatches = new ArrayList<>();
- public final ArrayList<GT_MetaTileEntity_Hatch_Output> mOutputHatches = new ArrayList<>();
- public final ArrayList<GT_MetaTileEntity_Hatch_InputBus> mInputBusses = new ArrayList<>();
- public final ArrayList<GT_MetaTileEntity_Hatch_OutputBus> mOutputBusses = new ArrayList<>();
- public final ArrayList<GT_MetaTileEntity_Hatch_Muffler> mMufflerHatches = new ArrayList<>();
- public final ArrayList<GT_MetaTileEntity_Hatch_Maintenance> 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<GT_MetaTileEntity_Hatch_Dynamo> mDynamoHatches = new ArrayList<>();
+ public final ArrayList<GT_MetaTileEntity_Hatch_Energy> mEnergyHatches = new ArrayList<>();
+ public final ArrayList<GT_MetaTileEntity_Hatch_Input> mInputHatches = new ArrayList<>();
+ public final ArrayList<GT_MetaTileEntity_Hatch_Output> mOutputHatches = new ArrayList<>();
+ public final ArrayList<GT_MetaTileEntity_Hatch_InputBus> mInputBusses = new ArrayList<>();
+ public final ArrayList<GT_MetaTileEntity_Hatch_OutputBus> mOutputBusses = new ArrayList<>();
+ public final ArrayList<GT_MetaTileEntity_Hatch_Muffler> mMufflerHatches = new ArrayList<>();
+ public final ArrayList<GT_MetaTileEntity_Hatch_Maintenance> 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;
+ }
+ }
+ }
+}
diff --git a/src/main/java/kekztech/GTRecipe.java b/src/main/java/kekztech/GTRecipe.java
index 2add4d3c0e..1939afc8ff 100644
--- a/src/main/java/kekztech/GTRecipe.java
+++ b/src/main/java/kekztech/GTRecipe.java
@@ -1,104 +1,104 @@
-package kekztech;
-
-import java.util.ArrayList;
-
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.fluids.FluidStack;
-import util.Util;
-
-public class GTRecipe {
-
- private int euPerTick = 0;
- private int duration = 0;
-
- private ArrayList<ItemStack> inputItems;
- private ArrayList<FluidStack> inputFluids;
- private ArrayList<ItemStack> outputItems;
- private ArrayList<FluidStack> outputFluids;
-
- public int getEuPerTick() {
- return euPerTick;
- }
- public int getDuration() {
- return duration;
- }
- public ItemStack[] getInputItems() {
- return Util.toItemStackArray(inputItems);
- }
- public FluidStack[] getInputFluids() {
- return Util.toFluidStackArray(inputFluids);
- }
- public ItemStack[] getOutputItems() {
- return Util.toItemStackArray(outputItems);
- }
- public FluidStack[] getOutputFluids() {
- return Util.toFluidStackArray(outputFluids);
- }
- public ItemStack getInputItem() {
- final ItemStack[] s = Util.toItemStackArray(inputItems);
- return s[0];
- }
- public FluidStack getInputFluid() {
- final FluidStack[] s = Util.toFluidStackArray(inputFluids);
- return s[0];
- }
- public ItemStack getOutputItem() {
- final ItemStack[] s = Util.toItemStackArray(outputItems);
- return s[0];
- }
- public FluidStack getOutputFluid() {
- final FluidStack[] s = Util.toFluidStackArray(outputFluids);
- return s[0];
- }
-
- public GTRecipe addInputItem(ItemStack inputItem) {
- if(inputItems == null) {
- inputItems = new ArrayList<ItemStack>();
- inputItems.add(inputItem);
- } else {
- inputItems.add(inputItem);
- }
- return this;
- }
-
- public GTRecipe addOutputItem(ItemStack outputItem) {
- if(outputItems == null) {
- outputItems = new ArrayList<ItemStack>();
- outputItems.add(outputItem);
- } else {
- outputItems.add(outputItem);
- }
- return this;
- }
-
- public GTRecipe addInputFluid(FluidStack inputFluid) {
- if(inputFluids == null) {
- inputFluids = new ArrayList<FluidStack>();
- inputFluids.add(inputFluid);
- } else {
- inputFluids.add(inputFluid);
- }
- return this;
- }
-
- public GTRecipe addOutputFluid(FluidStack outputFluid) {
- if(outputFluids == null) {
- outputFluids = new ArrayList<FluidStack>();
- outputFluids.add(outputFluid);
- } else {
- outputFluids.add(outputFluid);
- }
- return this;
- }
-
- public GTRecipe setEUPerTick(int euPerTick) {
- this.euPerTick = euPerTick;
- return this;
- }
-
- public GTRecipe setDuration(int duration) {
- this.duration = duration;
- return this;
- }
-
-}
+package kekztech;
+
+import java.util.ArrayList;
+
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidStack;
+import util.Util;
+
+public class GTRecipe {
+
+ private int euPerTick = 0;
+ private int duration = 0;
+
+ private ArrayList<ItemStack> inputItems;
+ private ArrayList<FluidStack> inputFluids;
+ private ArrayList<ItemStack> outputItems;
+ private ArrayList<FluidStack> outputFluids;
+
+ public int getEuPerTick() {
+ return euPerTick;
+ }
+ public int getDuration() {
+ return duration;
+ }
+ public ItemStack[] getInputItems() {
+ return Util.toItemStackArray(inputItems);
+ }
+ public FluidStack[] getInputFluids() {
+ return Util.toFluidStackArray(inputFluids);
+ }
+ public ItemStack[] getOutputItems() {
+ return Util.toItemStackArray(outputItems);
+ }
+ public FluidStack[] getOutputFluids() {
+ return Util.toFluidStackArray(outputFluids);
+ }
+ public ItemStack getInputItem() {
+ final ItemStack[] s = Util.toItemStackArray(inputItems);
+ return s[0];
+ }
+ public FluidStack getInputFluid() {
+ final FluidStack[] s = Util.toFluidStackArray(inputFluids);
+ return s[0];
+ }
+ public ItemStack getOutputItem() {
+ final ItemStack[] s = Util.toItemStackArray(outputItems);
+ return s[0];
+ }
+ public FluidStack getOutputFluid() {
+ final FluidStack[] s = Util.toFluidStackArray(outputFluids);
+ return s[0];
+ }
+
+ public GTRecipe addInputItem(ItemStack inputItem) {
+ if(inputItems == null) {
+ inputItems = new ArrayList<ItemStack>();
+ inputItems.add(inputItem);
+ } else {
+ inputItems.add(inputItem);
+ }
+ return this;
+ }
+
+ public GTRecipe addOutputItem(ItemStack outputItem) {
+ if(outputItems == null) {
+ outputItems = new ArrayList<ItemStack>();
+ outputItems.add(outputItem);
+ } else {
+ outputItems.add(outputItem);
+ }
+ return this;
+ }
+
+ public GTRecipe addInputFluid(FluidStack inputFluid) {
+ if(inputFluids == null) {
+ inputFluids = new ArrayList<FluidStack>();
+ inputFluids.add(inputFluid);
+ } else {
+ inputFluids.add(inputFluid);
+ }
+ return this;
+ }
+
+ public GTRecipe addOutputFluid(FluidStack outputFluid) {
+ if(outputFluids == null) {
+ outputFluids = new ArrayList<FluidStack>();
+ outputFluids.add(outputFluid);
+ } else {
+ outputFluids.add(outputFluid);
+ }
+ return this;
+ }
+
+ public GTRecipe setEUPerTick(int euPerTick) {
+ this.euPerTick = euPerTick;
+ return this;
+ }
+
+ public GTRecipe setDuration(int duration) {
+ this.duration = duration;
+ return this;
+ }
+
+}
diff --git a/src/main/java/kekztech/Items.java b/src/main/java/kekztech/Items.java
index 47708971c7..52539222e7 100644
--- a/src/main/java/kekztech/Items.java
+++ b/src/main/java/kekztech/Items.java
@@ -1,48 +1,48 @@
-package kekztech;
-
-public enum Items {
- // Heat Vents
- T1HeatVent(0), T2HeatVent(1), T3HeatVent(2), T4HeatVent(3),
- T1ComponentHeatVent(4), T2ComponentHeatVent(5), T3ComponentHeatVent(6), T4ComponentHeatVent(7),
- T1OverclockedHeatVent(8), T2OverclockedHeatVent(9), T3OverclockedHeatVent(10), T4OverclockedHeatVent(11),
- // Heat Exchanger
- T1HeatExchanger(12), T2HeatExchanger(13), T3HeatExchanger(14), T4HeatExchanger(15),
- // Fuel Rods
- UraniumFuelRod(16), UraniumDualFuelRod(17), UraniumQuadFuelRod(18),
- ThoriumFuelRod(19), ThoriumDualFuelRod(20), ThoriumQuadFuelRod(21),
- MOXFuelRod(22), MOXDualFuelRod(23), MOXQuadFuelRod(24),
- NaquadahFuelRod(25), NaquadahDualFuelRod(26), NaquadahQuadFuelRod(27),
- Th_MOXFuelRod(28), Th_MOXDualFuelRod(29), Th_MOXQuadFuelRod(30),
- // Depleted Fuel Rods
- DepletedUraniumFuelRod(31), DepletedUraniumDualFuelRod(32), DepletedUraniumQuadFuelRod(33),
- DepletedThoriumFuelRod(34), DepletedThoriumDualFuelRod(35), DepletedThoriumQuadFuelRod(36),
- DepletedMOXFuelRod(37), DepletedMOXDualFuelRod(38), DepletedMOXQuadFuelRod(39),
- DepletedNaquadahFuelRod(40), DepletedNaquadahDualFuelRod(41), DepletedNaquadahQuadFuelRod(42),
- Th_DepletedMOXFuelRod(43), Th_DepletedMOXDualFuelRod(44), Th_DepletedMOXQuadFuelRod(45),
- // Neutron Reflectors
- T1NeutronReflector(46), T2NeutronReflector(47),
- // Coolant Cells
- HeliumCoolantCell360k(48), NaKCoolantCell360k(49),
-
- // Heat Pipes
- CopperHeatPipe(0), SilverHeatPipe(1), BoronArsenideHeatPipe(2), DiamondHeatPipe(3),
- BoronArsenideDust(4), IsotopicallyPureDiamondDust(5), AmineCarbamiteDust(6),
- BoronArsenideCrystal(7), IsotopicallyPureDiamondCrystal(8),
- // Ceramics
- YSZCeramicDust(9), GDCCeramicDust(10),
- YttriaDust(11), ZirconiaDust(12), CeriaDust(13),
- YSZCeramicPlate(14), GDCCeramicPlate(15),
- // Error Item
- Error(0);
-
- private final int metaID;
-
- private Items(int metaID) {
- this.metaID = metaID;
- }
-
- public int getMetaID() {
- return metaID;
- }
-
-}
+package kekztech;
+
+public enum Items {
+ // Heat Vents
+ T1HeatVent(0), T2HeatVent(1), T3HeatVent(2), T4HeatVent(3),
+ T1ComponentHeatVent(4), T2ComponentHeatVent(5), T3ComponentHeatVent(6), T4ComponentHeatVent(7),
+ T1OverclockedHeatVent(8), T2OverclockedHeatVent(9), T3OverclockedHeatVent(10), T4OverclockedHeatVent(11),
+ // Heat Exchanger
+ T1HeatExchanger(12), T2HeatExchanger(13), T3HeatExchanger(14), T4HeatExchanger(15),
+ // Fuel Rods
+ UraniumFuelRod(16), UraniumDualFuelRod(17), UraniumQuadFuelRod(18),
+ ThoriumFuelRod(19), ThoriumDualFuelRod(20), ThoriumQuadFuelRod(21),
+ MOXFuelRod(22), MOXDualFuelRod(23), MOXQuadFuelRod(24),
+ NaquadahFuelRod(25), NaquadahDualFuelRod(26), NaquadahQuadFuelRod(27),
+ Th_MOXFuelRod(28), Th_MOXDualFuelRod(29), Th_MOXQuadFuelRod(30),
+ // Depleted Fuel Rods
+ DepletedUraniumFuelRod(31), DepletedUraniumDualFuelRod(32), DepletedUraniumQuadFuelRod(33),
+ DepletedThoriumFuelRod(34), DepletedThoriumDualFuelRod(35), DepletedThoriumQuadFuelRod(36),
+ DepletedMOXFuelRod(37), DepletedMOXDualFuelRod(38), DepletedMOXQuadFuelRod(39),
+ DepletedNaquadahFuelRod(40), DepletedNaquadahDualFuelRod(41), DepletedNaquadahQuadFuelRod(42),
+ Th_DepletedMOXFuelRod(43), Th_DepletedMOXDualFuelRod(44), Th_DepletedMOXQuadFuelRod(45),
+ // Neutron Reflectors
+ T1NeutronReflector(46), T2NeutronReflector(47),
+ // Coolant Cells
+ HeliumCoolantCell360k(48), NaKCoolantCell360k(49),
+
+ // Heat Pipes
+ CopperHeatPipe(0), SilverHeatPipe(1), BoronArsenideHeatPipe(2), DiamondHeatPipe(3),
+ BoronArsenideDust(4), IsotopicallyPureDiamondDust(5), AmineCarbamiteDust(6),
+ BoronArsenideCrystal(7), IsotopicallyPureDiamondCrystal(8),
+ // Ceramics
+ YSZCeramicDust(9), GDCCeramicDust(10),
+ YttriaDust(11), ZirconiaDust(12), CeriaDust(13),
+ YSZCeramicPlate(14), GDCCeramicPlate(15),
+ // Error Item
+ Error(0);
+
+ private final int metaID;
+
+ private Items(int metaID) {
+ this.metaID = metaID;
+ }
+
+ public int getMetaID() {
+ return metaID;
+ }
+
+}
diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java
index e84b428219..5eb2916e02 100644
--- a/src/main/java/kekztech/KekzCore.java
+++ b/src/main/java/kekztech/KekzCore.java
@@ -1,355 +1,333 @@
-package kekztech;
-
-import blocks.Block_GDCUnit;
-import blocks.Block_TFFTCasing;
-import blocks.Block_TFFTStorageFieldBlockT1;
-import blocks.Block_TFFTStorageFieldBlockT2;
-import blocks.Block_TFFTStorageFieldBlockT3;
-import blocks.Block_TFFTStorageFieldBlockT4;
-import blocks.Block_YSZUnit;
-import cpw.mods.fml.common.Mod;
-import cpw.mods.fml.common.event.FMLInitializationEvent;
-import cpw.mods.fml.common.event.FMLPostInitializationEvent;
-import cpw.mods.fml.common.event.FMLPreInitializationEvent;
-import gregtech.api.enums.GT_Values;
-import gregtech.api.enums.ItemList;
-import gregtech.api.enums.Materials;
-import gregtech.api.enums.OrePrefixes;
-import gregtech.api.util.GT_ModHandler;
-import gregtech.api.util.GT_OreDictUnificator;
-import gregtech.api.util.GT_Utility;
-import items.ErrorItem;
-import items.MetaItem_CraftingComponent;
-import items.MetaItem_ReactorComponent;
-import net.minecraft.item.ItemStack;
-import net.minecraftforge.fluids.FluidRegistry;
-import tileentities.GTMTE_FluidMultiStorage;
-import tileentities.GTMTE_ModularNuclearReactor;
-import tileentities.GTMTE_SOFuelCellMK1;
-import tileentities.GTMTE_SOFuelCellMK2;
-import util.Util;
-
-@Mod(modid = KekzCore.MODID, name = KekzCore.NAME, version = KekzCore.VERSION,
- dependencies = "required-after:IC2; "
- + "required-after:gregtech"
- )
-public class KekzCore {
-
- public static final String NAME = "KekzTech";
- public static final String MODID = "kekztech";
- public static final String VERSION = "0.1a";
-
- private GTMTE_SOFuelCellMK1 sofc1;
- private GTMTE_SOFuelCellMK2 sofc2;
- private GTMTE_ModularNuclearReactor mdr;
- private GTMTE_FluidMultiStorage fms;
-
- @Mod.Instance("kekztech")
- public static KekzCore instance;
-
- @Mod.EventHandler
- public void preInit(FMLPreInitializationEvent event) {
- // Items
- ErrorItem.getInstance().registerItem();
- MetaItem_ReactorComponent.getInstance().registerItem();
- MetaItem_CraftingComponent.getInstance().registerItem();
- // Blocks
- Block_YSZUnit.getInstance().registerBlock();
- Block_GDCUnit.getInstance().registerBlock();
- Block_TFFTCasing.getInstance().registerBlock();
- Block_TFFTStorageFieldBlockT1.getInstance().registerBlock();
- Block_TFFTStorageFieldBlockT2.getInstance().registerBlock();
- Block_TFFTStorageFieldBlockT3.getInstance().registerBlock();
- Block_TFFTStorageFieldBlockT4.getInstance().registerBlock();
- }
-
- @Mod.EventHandler
- public void init(FMLInitializationEvent event ) {
- sofc1 = new GTMTE_SOFuelCellMK1(5000, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I");
- sofc2 = new GTMTE_SOFuelCellMK2(5001, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II");
- mdr = new GTMTE_ModularNuclearReactor(5002, "multimachine.nuclearreactor", "Nuclear Reactor");
- fms = new GTMTE_FluidMultiStorage(5003, "multimachine.tf_fluidtank", "T.F.F.T");
-
- }
-
- @Mod.EventHandler
- public void postInit(FMLPostInitializationEvent event) {
- System.out.println("Registering KekzTech recipes...");
-
- final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
- final MetaItem_ReactorComponent reactorItem = MetaItem_ReactorComponent.getInstance();
-
- // Multiblock Controllers
- final Object[] mk1_recipe = {
- "CCC", "PHP", "FBL",
- 'C', OrePrefixes.circuit.get(Materials.Advanced),
- 'P', ItemList.Electric_Pump_HV.get(1L, (Object[]) null),
- 'H', ItemList.Hull_HV.get(1L, (Object[]) null),
- 'F', GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.StainlessSteel, 1),
- 'B', GT_OreDictUnificator.get(OrePrefixes.cableGt02, Materials.Gold, 1),
- 'L', GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.StainlessSteel, 1)
- };
- GT_ModHandler.addCraftingRecipe(sofc1.getStackForm(1), mk1_recipe);
- final Object[] mk2_recipe = {
- "CCC", "PHP", "FBL",
- 'C', OrePrefixes.circuit.get(Materials.Master),
- 'P', ItemList.Electric_Pump_IV.get(1L, (Object[]) null),
- 'H', ItemList.Hull_IV.get(1L, (Object[]) null),
- 'F', GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.Ultimate, 1),
- 'B', Util.getStackofAmountFromOreDict("wireGt04SuperconductorEV", 1),
- 'L', GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 1)
- };
- GT_ModHandler.addCraftingRecipe(sofc2.getStackForm(1), mk2_recipe);
- final Object[] tfft_recipe = {
- "HFH", "PVP", "CFC",
- 'H', OrePrefixes.pipeMedium.get(Materials.StainlessSteel),
- 'F', ItemList.Field_Generator_LV.get(1L, (Object[]) null),
- 'P', ItemList.Electric_Pump_HV.get(1L, (Object[]) null),
- 'V', OrePrefixes.rotor.get(Materials.VibrantAlloy),
- 'C', OrePrefixes.circuit.get(Materials.Advanced)
- };
- GT_ModHandler.addCraftingRecipe(fms.getStackForm(1), tfft_recipe);
-
- // Ceramic Electrolyte Units
- final ItemStack[] yszUnit = {
- GT_Utility.getIntegratedCircuit(6),
- craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 4),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Yttrium, 1),
- GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.StainlessSteel, 1),
- ItemList.Electric_Motor_HV.get(1L, (Object[]) null),
- };
- GT_Values.RA.addAssemblerRecipe(
- yszUnit,
- Materials.Hydrogen.getGas(4000),
- new ItemStack(Block_YSZUnit.getInstance(), 1),
- 1200, 480);
- final ItemStack[] gdcUnit = {
- GT_Utility.getIntegratedCircuit(6),
- craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicPlate.getMetaID(), 8),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Gadolinium, new ItemStack(ErrorItem.getInstance(), 1), 1),
- GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Desh, new ItemStack(ErrorItem.getInstance(), 1), 1),
- ItemList.Electric_Motor_IV.get(1L, (Object[]) null),
- };
- GT_Values.RA.addAssemblerRecipe(
- gdcUnit,
- Materials.Hydrogen.getGas(16000),
- new ItemStack(Block_GDCUnit.getInstance(), 1),
- 2400, 1920);
-
- // T.F.F.T Structure blocks
- final ItemStack[] tfftcasing = {
- GT_Utility.getIntegratedCircuit(6),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.DarkSteel, 3),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnderPearl, 3),
- GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.StainlessSteel, 1),
- };
- GT_Values.RA.addAssemblerRecipe(
- tfftcasing,
- FluidRegistry.getFluidStack("molten.polytetrafluoroethylene", 144),
- new ItemStack(Block_TFFTCasing.getInstance(), 1),
- 200, 256);
- final ItemStack[] tfftstoragefield1 = {
- GT_Utility.getIntegratedCircuit(6),
- GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 4),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.PulsatingIron, 1),
- GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Steel, 1),
- ItemList.Electric_Pump_LV.get(1L, (Object[]) null)
- };
- GT_Values.RA.addAssemblerRecipe(
- tfftstoragefield1,
- FluidRegistry.getFluidStack("molten.glass", 144),
- new ItemStack(Block_TFFTStorageFieldBlockT1.getInstance(), 1),
- 200, 256);
- final ItemStack[] tfftstoragefield2 = {
- GT_Utility.getIntegratedCircuit(6),
- GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 4),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.PulsatingIron, 4),
- GT_OreDictUnificator.get(OrePrefixes.pipeHuge, Materials.StainlessSteel, 1),
- ItemList.Electric_Pump_MV.get(1L, (Object[]) null)
- };
- GT_Values.RA.addAssemblerRecipe(
- tfftstoragefield2,
- FluidRegistry.getFluidStack("molten.plastic", 144),
- new ItemStack(Block_TFFTStorageFieldBlockT2.getInstance(), 1),
- 200, 480);
- final ItemStack[] tfftstoragefield3 = {
- GT_Utility.getIntegratedCircuit(6),
- GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 4),
- GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VibrantAlloy, 2),
- GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Titanium, 1),
- ItemList.Field_Generator_LV.get(1L, (Object[]) null),
- ItemList.Electric_Pump_HV.get(1L, (Object[]) null)
- };
- GT_Values.RA.addAssemblerRecipe(
- tfftstoragefield3,
- FluidRegistry.getFluidStack("molten.epoxid", 576),
- new ItemStack(Block_TFFTStorageFieldBlockT3.getInstance(), 1),
- 300, 1920);
- final ItemStack[] tfftstoragefield4 = {
- GT_Utility.getIntegratedCircuit(6),
- GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 4),
- GT_OreDictUnificator.get(OrePrefixes.plateTriple, Materials.NiobiumTitanium, 1),
- GT_OreDictUnificator.get(OrePrefixes.pipeHuge, Materials.TungstenSteel, 1),
- ItemList.Field_Generator_HV.get(1L, (Object[]) null),
- ItemList.Electric_Pump_EV.get(1L, (Object[]) null)
- };
- GT_Values.RA.addAssemblerRecipe(
- tfftstoragefield4,
- FluidRegistry.getFluidStack("molten.epoxid", 1152),
- new ItemStack(Block_TFFTStorageFieldBlockT4.getInstance(), 1),
- 400, 4098);
-
- // Ceramic plates
- GT_Values.RA.addAlloySmelterRecipe(
- craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicDust.getMetaID(), 10),
- ItemList.Shape_Mold_Plate.get(1, (Object[]) null),
- craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 1),
- 400, 480);
- GT_Values.RA.addFormingPressRecipe(
- craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10),
- ItemList.Shape_Mold_Plate.get(1, (Object[]) null),
- craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicPlate.getMetaID(), 1),
- 800, 480);
-
- // Dusts
- GT_Values.RA.addMixerRecipe(Materials.Boron.getDust(1), Materials.Arsenic.getDust(1), GT_Utility.getIntegratedCircuit(6), null,
- null, null, craftingItem.getStackOfAmountFromDamage(Items.BoronArsenideDust.getMetaID(), 2),
- 100, 1920);
- GT_Values.RA.addChemicalRecipe(
- Materials.Ammonia.getCells(2),
- Materials.CarbonDioxide.getCells(1),
- null,
- null,
- craftingItem.getStackOfAmountFromDamage(Items.AmineCarbamiteDust.getMetaID(), 1),
- Util.getStackofAmountFromOreDict("cellEmpty", 3),
- 400, 30);
- GT_Values.RA.addChemicalRecipe(
- craftingItem.getStackOfAmountFromDamage(Items.AmineCarbamiteDust.getMetaID(), 1),
- Materials.Diamond.getDust(16),
- Materials.CarbonDioxide.getGas(1000),
- null,
- craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondDust.getMetaID(), 1),
- null, 1200, 480);
- GT_Values.RA.addChemicalRecipe(
- Materials.Yttrium.getDust(1), GT_Utility.getIntegratedCircuit(6), Materials.Oxygen.getGas(3000),
- null, craftingItem.getStackOfAmountFromDamage(Items.YttriaDust.getMetaID(), 1), null,
- 400, 30);
- GT_Values.RA.addChemicalRecipe(
- Util.getStackofAmountFromOreDict("dustZirconium", 1), GT_Utility.getIntegratedCircuit(6), Materials.Oxygen.getGas(2000),
- null, craftingItem.getStackOfAmountFromDamage(Items.ZirconiaDust.getMetaID(), 1), null,
- 400, 30);
- GT_Values.RA.addChemicalRecipe(
- Materials.Cerium.getDust(2), GT_Utility.getIntegratedCircuit(6), Materials.Oxygen.getGas(3000),
- null, craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 2), null,
- 400, 30);
- GT_Values.RA.addMixerRecipe(
- craftingItem.getStackOfAmountFromDamage(Items.YttriaDust.getMetaID(), 1),
- craftingItem.getStackOfAmountFromDamage(Items.ZirconiaDust.getMetaID(), 5),
- GT_Utility.getIntegratedCircuit(6), null, null, null,
- craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicDust.getMetaID(), 6),
- 400, 96);
- GT_Values.RA.addMixerRecipe(
- GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gadolinium, new ItemStack(ErrorItem.getInstance(), 1), 1),
- craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 9),
- GT_Utility.getIntegratedCircuit(6), null, null, null,
- craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10),
- 400, 1920);
-
- // Crystals
- GT_Values.RA.addAutoclaveRecipe(
- craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondDust.getMetaID(), 4),
- Materials.CarbonDioxide.getGas(16000),
- craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondCrystal.getMetaID(), 1), 10000, 2400, 7680);
- GT_Values.RA.addAutoclaveRecipe(
- craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondDust.getMetaID(), 4),
- Materials.CarbonDioxide.getGas(16000),
- craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondCrystal.getMetaID(), 1), 10000, 2400, 1920);
-
- // Heat Pipes
- GT_Values.RA.addLatheRecipe(
- GT_OreDictUnificator.get(OrePrefixes.stick, Materials.AnnealedCopper, 1),
- craftingItem.getStackFromDamage(Items.CopperHeatPipe.getMetaID()),
- null, 120, 120);
- GT_Values.RA.addLatheRecipe(
- GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Silver, 1),
- craftingItem.getStackFromDamage(Items.SilverHeatPipe.getMetaID()),
- null, 120, 480);
- GT_Values.RA.addLatheRecipe(
- craftingItem.getStackOfAmountFromDamage(Items.BoronArsenideCrystal.getMetaID(), 4),
- craftingItem.getStackFromDamage(Items.BoronArsenideHeatPipe.getMetaID()),
- null, 1200, 1920);
- GT_Values.RA.addLatheRecipe(
- craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondCrystal.getMetaID(), 4),
- craftingItem.getStackFromDamage(Items.DiamondHeatPipe.getMetaID()),
- null, 1200, 7680);
-
- // Heat Vents
- final ItemStack[] t1HeatVent = {
- craftingItem.getStackOfAmountFromDamage(Items.CopperHeatPipe.getMetaID(), 2),
- ItemList.Electric_Motor_MV.get(1L, (Object[]) null),
- GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Steel, new ItemStack(ErrorItem.getInstance(), 1), 1),
- GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Steel, new ItemStack(ErrorItem.getInstance(), 1), 2),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, new ItemStack(ErrorItem.getInstance(), 1), 8),
- GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1),
- GT_Utility.getIntegratedCircuit(6)
- };
- GT_Values.RA.addAssemblerRecipe(
- t1HeatVent,
- FluidRegistry.getFluidStack("molten.copper", 144),
- reactorItem.getStackFromDamage(Items.T1HeatVent.getMetaID()),
- 200, 120);
- final ItemStack[] t2HeatVent = {
- craftingItem.getStackOfAmountFromDamage(Items.SilverHeatPipe.getMetaID(), 2),
- ItemList.Electric_Motor_HV.get(1L, (Object[]) null),
- GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Aluminium, new ItemStack(ErrorItem.getInstance(), 1), 1),
- GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Aluminium, new ItemStack(ErrorItem.getInstance(), 1), 2),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Aluminium, new ItemStack(ErrorItem.getInstance(), 1), 8),
- GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1),
- GT_Utility.getIntegratedCircuit(6)
- };
- GT_Values.RA.addAssemblerRecipe(
- t2HeatVent,
- FluidRegistry.getFluidStack("molten.silver", 144),
- reactorItem.getStackFromDamage(Items.T2HeatVent.getMetaID()),
- 400, 480);
- final ItemStack[] t3HeatVent = {
- craftingItem.getStackOfAmountFromDamage(Items.BoronArsenideHeatPipe.getMetaID(), 2),
- ItemList.Electric_Motor_IV.get(1L, (Object[]) null),
- GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.TungstenSteel, new ItemStack(ErrorItem.getInstance(), 1), 1),
- GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.TungstenSteel, new ItemStack(ErrorItem.getInstance(), 1), 2),
- GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Tungsten, new ItemStack(ErrorItem.getInstance(), 1), 8),
- GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 1),
- GT_Utility.getIntegratedCircuit(6)
- };
- GT_Values.RA.addAssemblerRecipe(
- t3HeatVent,
- FluidRegistry.getFluidStack("molten.gallium", 576),
- reactorItem.getStackFromDamage(Items.T3HeatVent.getMetaID()),
- 800, 7680);
-
- System.out.println("...done");
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-}
+package kekztech;
+
+import blocks.Block_GDCUnit;
+import blocks.Block_TFFTCasing;
+import blocks.Block_TFFTStorageFieldBlockT1;
+import blocks.Block_TFFTStorageFieldBlockT2;
+import blocks.Block_TFFTStorageFieldBlockT3;
+import blocks.Block_TFFTStorageFieldBlockT4;
+import blocks.Block_YSZUnit;
+import cpw.mods.fml.common.Mod;
+import cpw.mods.fml.common.event.FMLInitializationEvent;
+import cpw.mods.fml.common.event.FMLPostInitializationEvent;
+import cpw.mods.fml.common.event.FMLPreInitializationEvent;
+import gregtech.api.enums.GT_Values;
+import gregtech.api.enums.ItemList;
+import gregtech.api.enums.Materials;
+import gregtech.api.enums.OrePrefixes;
+import gregtech.api.util.GT_ModHandler;
+import gregtech.api.util.GT_OreDictUnificator;
+import gregtech.api.util.GT_Utility;
+import items.ErrorItem;
+import items.MetaItem_CraftingComponent;
+import items.MetaItem_ReactorComponent;
+import net.minecraft.item.ItemStack;
+import net.minecraftforge.fluids.FluidRegistry;
+import tileentities.GTMTE_FluidMultiStorage;
+import tileentities.GTMTE_ModularNuclearReactor;
+import tileentities.GTMTE_SOFuelCellMK1;
+import tileentities.GTMTE_SOFuelCellMK2;
+import util.Util;
+
+@Mod(modid = KekzCore.MODID, name = KekzCore.NAME, version = KekzCore.VERSION,
+ dependencies = "required-after:IC2; "
+ + "required-after:gregtech"
+ )
+public class KekzCore {
+
+ public static final String NAME = "KekzTech";
+ public static final String MODID = "kekztech";
+ public static final String VERSION = "0.1a";
+
+ @Mod.Instance("kekztech")
+ public static KekzCore instance;
+
+ private GTMTE_SOFuelCellMK1 sofc1;
+ private GTMTE_SOFuelCellMK2 sofc2;
+ private GTMTE_ModularNuclearReactor mdr;
+ private GTMTE_FluidMultiStorage fms;
+
+ @Mod.EventHandler
+ public void preInit(FMLPreInitializationEvent event) {
+ // Items
+ ErrorItem.getInstance().registerItem();
+ MetaItem_ReactorComponent.getInstance().registerItem();
+ MetaItem_CraftingComponent.getInstance().registerItem();
+ // Blocks
+ Block_YSZUnit.getInstance().registerBlock();
+ Block_GDCUnit.getInstance().registerBlock();
+ Block_TFFTCasing.getInstance().registerBlock();
+ Block_TFFTStorageFieldBlockT1.getInstance().registerBlock();
+ Block_TFFTStorageFieldBlockT2.getInstance().registerBlock();
+ Block_TFFTStorageFieldBlockT3.getInstance().registerBlock();
+ Block_TFFTStorageFieldBlockT4.getInstance().registerBlock();
+ }
+
+ @Mod.EventHandler
+ public void init(FMLInitializationEvent event ) {
+ // Multiblock controllers
+ sofc1 = new GTMTE_SOFuelCellMK1(5000, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I");
+ sofc2 = new GTMTE_SOFuelCellMK2(5001, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II");
+ mdr = new GTMTE_ModularNuclearReactor(5002, "multimachine.nuclearreactor", "Nuclear Reactor");
+ fms = new GTMTE_FluidMultiStorage(5003, "multimachine.tf_fluidtank", "T.F.F.T");
+ }
+
+ @Mod.EventHandler
+ public void postInit(FMLPostInitializationEvent event) {
+ System.out.println("Registering KekzTech recipes...");
+
+ final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance();
+ final MetaItem_ReactorComponent reactorItem = MetaItem_ReactorComponent.getInstance();
+
+ // Multiblock Controllers
+ final Object[] mk1_recipe = {
+ "CCC", "PHP", "FBL",
+ 'C', OrePrefixes.circuit.get(Materials.Advanced),
+ 'P', ItemList.Electric_Pump_HV.get(1L, (Object[]) null),
+ 'H', ItemList.Hull_HV.get(1L, (Object[]) null),
+ 'F', GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.StainlessSteel, 1),
+ 'B', GT_OreDictUnificator.get(OrePrefixes.cableGt02, Materials.Gold, 1),
+ 'L', GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.StainlessSteel, 1)
+ };
+ GT_ModHandler.addCraftingRecipe(sofc1.getStackForm(1), mk1_recipe);
+ final Object[] mk2_recipe = {
+ "CCC", "PHP", "FBL",
+ 'C', OrePrefixes.circuit.get(Materials.Master),
+ 'P', ItemList.Electric_Pump_IV.get(1L, (Object[]) null),
+ 'H', ItemList.Hull_IV.get(1L, (Object[]) null),
+ 'F', GT_OreDictUnificator.get(OrePrefixes.pipeSmall, Materials.Ultimate, 1),
+ 'B', Util.getStackofAmountFromOreDict("wireGt04SuperconductorEV", 1),
+ 'L', GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Ultimate, 1)
+ };
+ GT_ModHandler.addCraftingRecipe(sofc2.getStackForm(1), mk2_recipe);
+ final Object[] tfft_recipe = {
+ "HFH", "PVP", "CFC",
+ 'H', OrePrefixes.pipeMedium.get(Materials.StainlessSteel),
+ 'F', ItemList.Field_Generator_LV.get(1L, (Object[]) null),
+ 'P', ItemList.Electric_Pump_HV.get(1L, (Object[]) null),
+ 'V', OrePrefixes.rotor.get(Materials.VibrantAlloy),
+ 'C', OrePrefixes.circuit.get(Materials.Advanced)
+ };
+ GT_ModHandler.addCraftingRecipe(fms.getStackForm(1), tfft_recipe);
+
+ // Ceramic Electrolyte Units
+ final ItemStack[] yszUnit = {
+ GT_Utility.getIntegratedCircuit(6),
+ craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 4),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Yttrium, 1),
+ GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.StainlessSteel, 1),
+ ItemList.Electric_Motor_HV.get(1L, (Object[]) null),
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ yszUnit,
+ Materials.Hydrogen.getGas(4000),
+ new ItemStack(Block_YSZUnit.getInstance(), 1),
+ 1200, 480);
+ final ItemStack[] gdcUnit = {
+ GT_Utility.getIntegratedCircuit(6),
+ craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicPlate.getMetaID(), 8),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.Gadolinium, new ItemStack(ErrorItem.getInstance(), 1), 1),
+ GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Desh, new ItemStack(ErrorItem.getInstance(), 1), 1),
+ ItemList.Electric_Motor_IV.get(1L, (Object[]) null),
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ gdcUnit,
+ Materials.Hydrogen.getGas(16000),
+ new ItemStack(Block_GDCUnit.getInstance(), 1),
+ 2400, 1920);
+
+ // T.F.F.T Structure blocks
+ final ItemStack[] tfftcasing = {
+ GT_Utility.getIntegratedCircuit(6),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.DarkSteel, 3),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.EnderPearl, 3),
+ GT_OreDictUnificator.get(OrePrefixes.frameGt, Materials.StainlessSteel, 1),
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ tfftcasing,
+ FluidRegistry.getFluidStack("molten.polytetrafluoroethylene", 144),
+ new ItemStack(Block_TFFTCasing.getInstance(), 1),
+ 200, 256);
+ final ItemStack[] tfftstoragefield1 = {
+ GT_Utility.getIntegratedCircuit(6),
+ GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Basic, 4),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.PulsatingIron, 1),
+ GT_OreDictUnificator.get(OrePrefixes.pipeLarge, Materials.Steel, 1),
+ ItemList.Electric_Pump_LV.get(1L, (Object[]) null)
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ tfftstoragefield1,
+ FluidRegistry.getFluidStack("molten.glass", 144),
+ new ItemStack(Block_TFFTStorageFieldBlockT1.getInstance(), 1),
+ 200, 256);
+ final ItemStack[] tfftstoragefield2 = {
+ GT_Utility.getIntegratedCircuit(6),
+ GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 4),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.PulsatingIron, 4),
+ GT_OreDictUnificator.get(OrePrefixes.pipeHuge, Materials.StainlessSteel, 1),
+ ItemList.Electric_Pump_MV.get(1L, (Object[]) null)
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ tfftstoragefield2,
+ FluidRegistry.getFluidStack("molten.plastic", 144),
+ new ItemStack(Block_TFFTStorageFieldBlockT2.getInstance(), 1),
+ 200, 480);
+ final ItemStack[] tfftstoragefield3 = {
+ GT_Utility.getIntegratedCircuit(6),
+ GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 4),
+ GT_OreDictUnificator.get(OrePrefixes.plate, Materials.VibrantAlloy, 2),
+ GT_OreDictUnificator.get(OrePrefixes.pipeMedium, Materials.Titanium, 1),
+ ItemList.Field_Generator_LV.get(1L, (Object[]) null),
+ ItemList.Electric_Pump_HV.get(1L, (Object[]) null)
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ tfftstoragefield3,
+ FluidRegistry.getFluidStack("molten.epoxid", 576),
+ new ItemStack(Block_TFFTStorageFieldBlockT3.getInstance(), 1),
+ 300, 1920);
+ final ItemStack[] tfftstoragefield4 = {
+ GT_Utility.getIntegratedCircuit(6),
+ GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Elite, 4),
+ GT_OreDictUnificator.get(OrePrefixes.plateTriple, Materials.NiobiumTitanium, 1),
+ GT_OreDictUnificator.get(OrePrefixes.pipeHuge, Materials.TungstenSteel, 1),
+ ItemList.Field_Generator_HV.get(1L, (Object[]) null),
+ ItemList.Electric_Pump_EV.get(1L, (Object[]) null)
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ tfftstoragefield4,
+ FluidRegistry.getFluidStack("molten.epoxid", 1152),
+ new ItemStack(Block_TFFTStorageFieldBlockT4.getInstance(), 1),
+ 400, 4098);
+
+ // Ceramic plates
+ GT_Values.RA.addAlloySmelterRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicDust.getMetaID(), 10),
+ ItemList.Shape_Mold_Plate.get(1, (Object[]) null),
+ craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 1),
+ 400, 480);
+ GT_Values.RA.addFormingPressRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10),
+ ItemList.Shape_Mold_Plate.get(1, (Object[]) null),
+ craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicPlate.getMetaID(), 1),
+ 800, 480);
+
+ // Dusts
+ GT_Values.RA.addMixerRecipe(Materials.Boron.getDust(1), Materials.Arsenic.getDust(1), GT_Utility.getIntegratedCircuit(6), null,
+ null, null, craftingItem.getStackOfAmountFromDamage(Items.BoronArsenideDust.getMetaID(), 2),
+ 100, 1920);
+ GT_Values.RA.addChemicalRecipe(
+ Materials.Ammonia.getCells(2),
+ Materials.CarbonDioxide.getCells(1),
+ null,
+ null,
+ craftingItem.getStackOfAmountFromDamage(Items.AmineCarbamiteDust.getMetaID(), 1),
+ Util.getStackofAmountFromOreDict("cellEmpty", 3),
+ 400, 30);
+ GT_Values.RA.addChemicalRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.AmineCarbamiteDust.getMetaID(), 1),
+ Materials.Diamond.getDust(16),
+ Materials.CarbonDioxide.getGas(1000),
+ null,
+ craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondDust.getMetaID(), 1),
+ null, 1200, 480);
+ GT_Values.RA.addChemicalRecipe(
+ Materials.Yttrium.getDust(1), GT_Utility.getIntegratedCircuit(6), Materials.Oxygen.getGas(3000),
+ null, craftingItem.getStackOfAmountFromDamage(Items.YttriaDust.getMetaID(), 1), null,
+ 400, 30);
+ GT_Values.RA.addChemicalRecipe(
+ Util.getStackofAmountFromOreDict("dustZirconium", 1), GT_Utility.getIntegratedCircuit(6), Materials.Oxygen.getGas(2000),
+ null, craftingItem.getStackOfAmountFromDamage(Items.ZirconiaDust.getMetaID(), 1), null,
+ 400, 30);
+ GT_Values.RA.addChemicalRecipe(
+ Materials.Cerium.getDust(2), GT_Utility.getIntegratedCircuit(6), Materials.Oxygen.getGas(3000),
+ null, craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 2), null,
+ 400, 30);
+ GT_Values.RA.addMixerRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.YttriaDust.getMetaID(), 1),
+ craftingItem.getStackOfAmountFromDamage(Items.ZirconiaDust.getMetaID(), 5),
+ GT_Utility.getIntegratedCircuit(6), null, null, null,
+ craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicDust.getMetaID(), 6),
+ 400, 96);
+ GT_Values.RA.addMixerRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Gadolinium, new ItemStack(ErrorItem.getInstance(), 1), 1),
+ craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 9),
+ GT_Utility.getIntegratedCircuit(6), null, null, null,
+ craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10),
+ 400, 1920);
+
+ // Crystals
+ GT_Values.RA.addAutoclaveRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondDust.getMetaID(), 4),
+ Materials.CarbonDioxide.getGas(16000),
+ craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondCrystal.getMetaID(), 1), 10000, 2400, 7680);
+ GT_Values.RA.addAutoclaveRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondDust.getMetaID(), 4),
+ Materials.CarbonDioxide.getGas(16000),
+ craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondCrystal.getMetaID(), 1), 10000, 2400, 1920);
+
+ // Heat Pipes
+ GT_Values.RA.addLatheRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.stick, Materials.AnnealedCopper, 1),
+ craftingItem.getStackFromDamage(Items.CopperHeatPipe.getMetaID()),
+ null, 120, 120);
+ GT_Values.RA.addLatheRecipe(
+ GT_OreDictUnificator.get(OrePrefixes.stick, Materials.Silver, 1),
+ craftingItem.getStackFromDamage(Items.SilverHeatPipe.getMetaID()),
+ null, 120, 480);
+ GT_Values.RA.addLatheRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.BoronArsenideCrystal.getMetaID(), 4),
+ craftingItem.getStackFromDamage(Items.BoronArsenideHeatPipe.getMetaID()),
+ null, 1200, 1920);
+ GT_Values.RA.addLatheRecipe(
+ craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondCrystal.getMetaID(), 4),
+ craftingItem.getStackFromDamage(Items.DiamondHeatPipe.getMetaID()),
+ null, 1200, 7680);
+
+ // Heat Vents
+ final ItemStack[] t1HeatVent = {
+ craftingItem.getStackOfAmountFromDamage(Items.CopperHeatPipe.getMetaID(), 2),
+ ItemList.Electric_Motor_MV.get(1L, (Object[]) null),
+ GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Steel, new ItemStack(ErrorItem.getInstance(), 1), 1),
+ GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Steel, new ItemStack(ErrorItem.getInstance(), 1), 2),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Steel, new ItemStack(ErrorItem.getInstance(), 1), 8),
+ GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Good, 1),
+ GT_Utility.getIntegratedCircuit(6)
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ t1HeatVent,
+ FluidRegistry.getFluidStack("molten.copper", 144),
+ reactorItem.getStackFromDamage(Items.T1HeatVent.getMetaID()),
+ 200, 120);
+ final ItemStack[] t2HeatVent = {
+ craftingItem.getStackOfAmountFromDamage(Items.SilverHeatPipe.getMetaID(), 2),
+ ItemList.Electric_Motor_HV.get(1L, (Object[]) null),
+ GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.Aluminium, new ItemStack(ErrorItem.getInstance(), 1), 1),
+ GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.Aluminium, new ItemStack(ErrorItem.getInstance(), 1), 2),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Aluminium, new ItemStack(ErrorItem.getInstance(), 1), 8),
+ GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Advanced, 1),
+ GT_Utility.getIntegratedCircuit(6)
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ t2HeatVent,
+ FluidRegistry.getFluidStack("molten.silver", 144),
+ reactorItem.getStackFromDamage(Items.T2HeatVent.getMetaID()),
+ 400, 480);
+ final ItemStack[] t3HeatVent = {
+ craftingItem.getStackOfAmountFromDamage(Items.BoronArsenideHeatPipe.getMetaID(), 2),
+ ItemList.Electric_Motor_IV.get(1L, (Object[]) null),
+ GT_OreDictUnificator.get(OrePrefixes.rotor, Materials.TungstenSteel, new ItemStack(ErrorItem.getInstance(), 1), 1),
+ GT_OreDictUnificator.get(OrePrefixes.plateDouble, Materials.TungstenSteel, new ItemStack(ErrorItem.getInstance(), 1), 2),
+ GT_OreDictUnificator.get(OrePrefixes.screw, Materials.Tungsten, new ItemStack(ErrorItem.getInstance(), 1), 8),
+ GT_OreDictUnificator.get(OrePrefixes.circuit, Materials.Data, 1),
+ GT_Utility.getIntegratedCircuit(6)
+ };
+ GT_Values.RA.addAssemblerRecipe(
+ t3HeatVent,
+ FluidRegistry.getFluidStack("molten.gallium", 576),
+ reactorItem.getStackFromDamage(Items.T3HeatVent.getMetaID()),
+ 800, 7680);
+
+ System.out.println("...done");
+ }
+
+}
diff --git a/src/main/java/kekztech/MultiFluidHandler.java b/src/main/java/kekztech/MultiFluidHandler.java
new file mode 100644
index 0000000000..9b4d8b1bc4
--- /dev/null
+++ b/src/main/java/kekztech/MultiFluidHandler.java
@@ -0,0 +1,138 @@
+package kekztech;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import net.minecraft.nbt.NBTTagCompound;
+import net.minecraft.util.EnumChatFormatting;
+import net.minecraftforge.fluids.FluidStack;
+
+public class MultiFluidHandler {
+
+ private static final int MAX_DISTINCT_FLUIDS = 25;
+
+ private final List<FluidStack> fluids = new ArrayList<>();
+ private final int capacityPerFluid;
+
+ public MultiFluidHandler(int capacityPerFluid) {
+ this.capacityPerFluid = capacityPerFluid;
+ }
+
+ public MultiFluidHandler(int capacityPerFluid, List<FluidStack> fluids) {
+ this.capacityPerFluid = capacityPerFluid;
+ this.fluids.addAll(fluids);
+ }
+
+ public boolean contains(FluidStack fluid) {
+ return fluids.contains(fluid);
+ }
+
+ public int getCapacity() {
+ return capacityPerFluid;
+ }
+
+ public List<FluidStack> getFluids(){
+ return fluids;
+ }
+
+ public FluidStack getFluid(int slot) {
+ return fluids.get(slot);
+ }
+
+ public NBTTagCompound getAsNBTTag(NBTTagCompound nbt) {
+ nbt = (nbt == null) ? new NBTTagCompound() : nbt;
+ int c = 0;
+ for(FluidStack f : fluids) {
+ nbt.setTag("" + c, f.writeToNBT(new NBTTagCompound()));
+ }
+ return nbt;
+ }
+
+ public ArrayList<String> getInfoData() {
+ final ArrayList<String> lines = new ArrayList<>(fluids.size() + 1);
+ lines.add(EnumChatFormatting.YELLOW + "Stored Fluids:" + EnumChatFormatting.RESET);
+ for(int i = 0; i < fluids.size(); i++) {
+ lines.add(i + " - " + fluids.get(i).getLocalizedName() + ": "
+ + fluids.get(i).amount + "L ("
+ + (Math.round(100.0f * fluids.get(i).amount / getCapacity())) + "%)");
+ }
+ lines.add(EnumChatFormatting.YELLOW + "Operational Data:" + EnumChatFormatting.RESET);
+
+ return lines;
+ }
+
+ public int pushFluid(FluidStack push) {
+ if(fluids.size() == MAX_DISTINCT_FLUIDS && !contains(push)) {
+ return 0;
+ } else if (fluids.size() < MAX_DISTINCT_FLUIDS && !contains(push)) {
+ final int fit = Math.min(getCapacity(), push.amount);
+ fluids.add(new FluidStack(push.getFluid(), fit));
+ return fit;
+ } else {
+ final FluidStack fs = fluids.get(fluids.indexOf(push));
+ final int remcap = getCapacity() - fs.amount;
+ final int fit = Math.min(remcap, push.amount);
+ fs.amount += fit;
+ return fit;
+ }
+ }
+
+ public int pushFluid(FluidStack push, int slot) {
+ if(slot < 0 || slot >= MAX_DISTINCT_FLUIDS) {
+ return 0;
+ }
+ if(!fluids.get(slot).equals(push)) {
+ return 0;
+ } else {
+ final FluidStack fs = fluids.get(slot);
+ final int remcap = getCapacity() - fs.amount;
+ final int fit = Math.min(remcap, push.amount);
+ fs.amount += fit;
+ return fit;
+ }
+ }
+
+ public int pullFluid(FluidStack pull) {
+ if(!contains(pull)) {
+ return 0;
+ } else {
+ final FluidStack pulled = fluids.get(fluids.indexOf(pull));
+ final int rec = Math.min(pull.amount, pulled.amount);
+ if(pulled.amount <= rec) {
+ fluids.remove(pulled);
+ } else {
+ pulled.amount -= rec;
+ }
+ return rec;
+ }
+ }
+
+ public int pullFluid(FluidStack pull, int slot) {
+ if(slot < 0 || slot >= MAX_DISTINCT_FLUIDS) {
+ return 0;
+ }
+ if(!fluids.get(slot).equals(pull)) {
+ return 0;
+ } else {
+ final FluidStack pulled = fluids.get(slot);
+ final int rec = Math.min(pull.amount, pulled.amount);
+ if(pulled.amount <= rec) {
+ fluids.remove(pulled);
+ } else {
+ pulled.amount -= rec;
+ }
+ return rec;
+ }
+ }
+
+ public boolean couldPush(FluidStack push) {
+ if(fluids.size() == MAX_DISTINCT_FLUIDS && !contains(push)) {
+ return false;
+ } else if (fluids.size() < MAX_DISTINCT_FLUIDS && !contains(push)) {
+ return Math.min(getCapacity(), push.amount) > 0;
+ } else {
+ final int remcap = getCapacity() - fluids.get(fluids.indexOf(push)).amount;
+ return Math.min(remcap, push.amount) > 0;
+ }
+ }
+}