diff options
author | Christina Berchtold <kekzdealer@gmail.com> | 2019-06-09 23:41:14 +0200 |
---|---|---|
committer | Christina Berchtold <kekzdealer@gmail.com> | 2019-06-09 23:41:14 +0200 |
commit | e806e19f3b42df2759231880afff02648908239f (patch) | |
tree | 1cba8a919ee261f2f03f1f6f1aac381017d0544a /src | |
parent | 133b330fecda75943ab3b1e379a08e3b9ba37fc3 (diff) | |
download | GT5-Unofficial-e806e19f3b42df2759231880afff02648908239f.tar.gz GT5-Unofficial-e806e19f3b42df2759231880afff02648908239f.tar.bz2 GT5-Unofficial-e806e19f3b42df2759231880afff02648908239f.zip |
gradle building and recipes. SOFC fully functional. Probably first release :)
Diffstat (limited to 'src')
20 files changed, 373 insertions, 121 deletions
diff --git a/src/main/java/fuelcell/Block_GDCUnit.java b/src/main/java/blocks/Block_GDCUnit.java index 6107e017a1..d11681b1d6 100644 --- a/src/main/java/fuelcell/Block_GDCUnit.java +++ b/src/main/java/blocks/Block_GDCUnit.java @@ -1,4 +1,4 @@ -package fuelcell; +package blocks; import cpw.mods.fml.common.registry.GameRegistry; import kekztech.KekzCore; diff --git a/src/main/java/fuelcell/Block_YSZUnit.java b/src/main/java/blocks/Block_YSZUnit.java index c93f6f374a..1e4df40c67 100644 --- a/src/main/java/fuelcell/Block_YSZUnit.java +++ b/src/main/java/blocks/Block_YSZUnit.java @@ -1,4 +1,4 @@ -package fuelcell; +package blocks; import cpw.mods.fml.common.registry.GameRegistry; import kekztech.KekzCore; diff --git a/src/main/java/reactor/Container_ModularNuclearReactor.java b/src/main/java/container/Container_ModularNuclearReactor.java index 4ecfe61836..41b686c901 100644 --- a/src/main/java/reactor/Container_ModularNuclearReactor.java +++ b/src/main/java/container/Container_ModularNuclearReactor.java @@ -1,4 +1,4 @@ -package reactor; +package container; import gregtech.api.gui.GT_Container_MultiMachine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; @@ -6,6 +6,8 @@ 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 { diff --git a/src/main/java/reactor/GUIContainer_ModularNuclearReactor.java b/src/main/java/container/GUIContainer_ModularNuclearReactor.java index 1f8248e5bb..58a9ff6caf 100644 --- a/src/main/java/reactor/GUIContainer_ModularNuclearReactor.java +++ b/src/main/java/container/GUIContainer_ModularNuclearReactor.java @@ -1,4 +1,4 @@ -package reactor; +package container; import org.lwjgl.opengl.GL11; diff --git a/src/main/java/kekztech/ErrorItem.java b/src/main/java/items/ErrorItem.java index 7047d3f057..5694b4e800 100644 --- a/src/main/java/kekztech/ErrorItem.java +++ b/src/main/java/items/ErrorItem.java @@ -1,8 +1,9 @@ -package 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; diff --git a/src/main/java/kekztech/MetaItem_CraftingComponent.java b/src/main/java/items/MetaItem_CraftingComponent.java index 89a015998f..29b8e8ac1f 100644 --- a/src/main/java/kekztech/MetaItem_CraftingComponent.java +++ b/src/main/java/items/MetaItem_CraftingComponent.java @@ -1,15 +1,15 @@ -package kekztech; +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; -import reactor.items.HeatPipe; public class MetaItem_CraftingComponent extends Item { @@ -37,10 +37,10 @@ public class MetaItem_CraftingComponent extends Item { public void registerIcons(IIconRegister reg) { int counter = 0; // Raw heat pipes - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + HeatPipe.RESOURCE_NAMES[0]); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + HeatPipe.RESOURCE_NAMES[1]); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + HeatPipe.RESOURCE_NAMES[2]); - icons[counter++] = reg.registerIcon(KekzCore.MODID + ":" + HeatPipe.RESOURCE_NAMES[3]); + 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"); diff --git a/src/main/java/kekztech/MetaItem_ReactorComponent.java b/src/main/java/items/MetaItem_ReactorComponent.java index 16f3f1403f..458de48a00 100644 --- a/src/main/java/kekztech/MetaItem_ReactorComponent.java +++ b/src/main/java/items/MetaItem_ReactorComponent.java @@ -1,8 +1,9 @@ -package kekztech; +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; diff --git a/src/main/java/kekztech/GTMultiController.java b/src/main/java/kekztech/GTMultiController.java index e27c2c39bd..d824077201 100644 --- a/src/main/java/kekztech/GTMultiController.java +++ b/src/main/java/kekztech/GTMultiController.java @@ -17,6 +17,11 @@ 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(); diff --git a/src/main/java/kekztech/Items.java b/src/main/java/kekztech/Items.java index f7ce2e883a..47708971c7 100644 --- a/src/main/java/kekztech/Items.java +++ b/src/main/java/kekztech/Items.java @@ -23,12 +23,17 @@ public enum Items { 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(9); + Error(0); private final int metaID; diff --git a/src/main/java/kekztech/KekzCore.java b/src/main/java/kekztech/KekzCore.java index bfcd382577..bb65090625 100644 --- a/src/main/java/kekztech/KekzCore.java +++ b/src/main/java/kekztech/KekzCore.java @@ -1,20 +1,24 @@ package kekztech; +import blocks.Block_GDCUnit; +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 fuelcell.Block_GDCUnit; -import fuelcell.Block_YSZUnit; -import fuelcell.GTMTE_SOFuelCellMK1; -import fuelcell.GTMTE_SOFuelCellMK2; +import cpw.mods.fml.common.registry.GameRegistry; import gregtech.api.enums.GT_Values; import gregtech.api.enums.ItemList; +import gregtech.api.enums.Materials; +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 reactor.GTMTE_ModularNuclearReactor; -import reactor.items.HeatExchanger; -import reactor.items.HeatPipe; +import tileentities.GTMTE_ModularNuclearReactor; +import tileentities.GTMTE_SOFuelCellMK1; +import tileentities.GTMTE_SOFuelCellMK2; @Mod(modid = KekzCore.MODID, name = KekzCore.NAME, version = KekzCore.VERSION, dependencies = "required-after:IC2; " @@ -25,6 +29,10 @@ 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; @Mod.Instance("kekztech") public static KekzCore instance; @@ -42,38 +50,186 @@ public class KekzCore { @Mod.EventHandler public void init(FMLInitializationEvent event ) { - final GTMTE_SOFuelCellMK1 sofc1 = new GTMTE_SOFuelCellMK1(5000, "multimachine.fuelcellmk1", "Solid-Oxide Fuel Cell Mk I"); - final GTMTE_SOFuelCellMK2 sofc2 = new GTMTE_SOFuelCellMK2(5001, "multimachine.fuelcellmk2", "Solid-Oxide Fuel Cell Mk II"); - final GTMTE_ModularNuclearReactor mdr = new GTMTE_ModularNuclearReactor(5002, "multimachine.nuclearreactor", "Nuclear Reactor"); + 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"); } @Mod.EventHandler public void postInit(FMLPostInitializationEvent event) { - for(GTRecipe recipe : HeatPipe.RECIPE) { - GT_Values.RA.addLatheRecipe(recipe.getInputItem(), recipe.getOutputItem(), null, recipe.getDuration(), recipe.getEuPerTick()); - } + System.out.println("Registering KekzTech recipes..."); + + final MetaItem_CraftingComponent craftingItem = MetaItem_CraftingComponent.getInstance(); + final MetaItem_ReactorComponent reactorItem = MetaItem_ReactorComponent.getInstance(); + + // Multiblock Controllers + GameRegistry.addShapedRecipe(sofc1.getStackForm(1), + "CCC", "PHP", "FBL", + 'C', Util.getStackofAmountFromOreDict("circuitAdvanced", 1), + 'P', ItemList.Electric_Pump_HV.get(1L, (Object[]) null), + 'H', ItemList.Hull_HV.get(1L, (Object[]) null), + 'F', Util.getStackofAmountFromOreDict("pipeSmallStainlessSteel", 1), + 'B', Util.getStackofAmountFromOreDict("cableGt02Gold", 1), + 'L', Util.getStackofAmountFromOreDict("pipeLargeStainlessSteel", 1)); + GameRegistry.addShapedRecipe(sofc2.getStackForm(1), + "CCC", "PHP", "FBL", + 'C', Util.getStackofAmountFromOreDict("circuitMaster", 1), + 'P', ItemList.Electric_Pump_IV.get(1L, (Object[]) null), + 'H', ItemList.Hull_IV.get(1L, (Object[]) null), + 'F', Util.getStackofAmountFromOreDict("pipeSmallUltimate", 1), + 'B', Util.getStackofAmountFromOreDict("wireGt04SuperconductorEV", 1), + 'L', Util.getStackofAmountFromOreDict("pipeMediumUltimate", 1)); + + // Ceramic Electrolyte Units + final ItemStack[] yszUnit = { + GT_Utility.getIntegratedCircuit(6), + craftingItem.getStackOfAmountFromDamage(Items.YSZCeramicPlate.getMetaID(), 4), + Util.getStackofAmountFromOreDict("frameGtYttrium", 1), + Util.getStackofAmountFromOreDict("rotorStainlessSteel", 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), + Util.getStackofAmountFromOreDict("frameGtGadolinium", 1), + Util.getStackofAmountFromOreDict("rotorDesh", 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); + + // 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.addAutoclaveRecipe( + craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondDust.getMetaID(), 4), + Materials.CarbonDioxide.getGas(16000), + craftingItem.getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondCrystal.getMetaID(), 1), 10000, 2400, 7680); + 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( + Util.getStackofAmountFromOreDict("dustGadolinium", 1), + craftingItem.getStackOfAmountFromDamage(Items.CeriaDust.getMetaID(), 9), + GT_Utility.getIntegratedCircuit(6), null, null, null, + craftingItem.getStackOfAmountFromDamage(Items.GDCCeramicDust.getMetaID(), 10), + 400, 1920); - for(GTRecipe recipe : HeatExchanger.RECIPE) { - GT_Values.RA.addAssemblerRecipe( - recipe.getInputItems(), recipe.getInputFluid(), recipe.getOutputItem(), recipe.getDuration(), recipe.getEuPerTick()); - } + // Heat Pipes + GT_Values.RA.addLatheRecipe( + Util.getStackofAmountFromOreDict("stickCopper", 1), + craftingItem.getStackFromDamage(Items.CopperHeatPipe.getMetaID()), + null, 120, 120); + GT_Values.RA.addLatheRecipe( + Util.getStackofAmountFromOreDict("stickSilver", 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 = { - MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.CopperHeatPipe.getMetaID(), 2), + craftingItem.getStackOfAmountFromDamage(Items.CopperHeatPipe.getMetaID(), 2), ItemList.Electric_Motor_MV.get(1L, (Object[]) null), Util.getStackofAmountFromOreDict("rotorSteel", 1), Util.getStackofAmountFromOreDict("plateDoubleSteel", 2), Util.getStackofAmountFromOreDict("screwSteel", 8), - Util.getStackofAmountFromOreDict("circuitGood", 1) + Util.getStackofAmountFromOreDict("circuitGood", 1), + GT_Utility.getIntegratedCircuit(6) }; - GT_Values.RA.addAssemblerRecipe(t1HeatVent, + GT_Values.RA.addAssemblerRecipe( + t1HeatVent, FluidRegistry.getFluidStack("molten.copper", 144), - MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T1HeatVent.getMetaID()), - 200, 120 - ); + reactorItem.getStackFromDamage(Items.T1HeatVent.getMetaID()), + 200, 120); + final ItemStack[] t2HeatVent = { + craftingItem.getStackOfAmountFromDamage(Items.SilverHeatPipe.getMetaID(), 2), + ItemList.Electric_Motor_HV.get(1L, (Object[]) null), + Util.getStackofAmountFromOreDict("rotorAluminium", 1), + Util.getStackofAmountFromOreDict("plateDoubleAluminium", 2), + Util.getStackofAmountFromOreDict("screwAluminium", 8), + Util.getStackofAmountFromOreDict("circuitAdvanced", 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), + Util.getStackofAmountFromOreDict("rotorTungstenSteel", 1), + Util.getStackofAmountFromOreDict("plateDoubleTungstenSteel", 2), + Util.getStackofAmountFromOreDict("screwTungsten", 8), + Util.getStackofAmountFromOreDict("circuitData", 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/Util.java b/src/main/java/kekztech/Util.java index c1243cadd8..ccbcc799e6 100644 --- a/src/main/java/kekztech/Util.java +++ b/src/main/java/kekztech/Util.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import items.ErrorItem; import net.minecraft.item.ItemStack; import net.minecraftforge.fluids.FluidStack; import net.minecraftforge.oredict.OreDictionary; diff --git a/src/main/java/reactor/items/CoolantCell.java b/src/main/java/reactor/items/CoolantCell.java index 64b979acc4..04122fef33 100644 --- a/src/main/java/reactor/items/CoolantCell.java +++ b/src/main/java/reactor/items/CoolantCell.java @@ -1,8 +1,8 @@ package reactor.items; +import items.MetaItem_ReactorComponent; import kekztech.GTRecipe; import kekztech.Items; -import kekztech.MetaItem_ReactorComponent; public class CoolantCell { diff --git a/src/main/java/reactor/items/FuelRod.java b/src/main/java/reactor/items/FuelRod.java index adef6f3409..d0f9cb5e17 100644 --- a/src/main/java/reactor/items/FuelRod.java +++ b/src/main/java/reactor/items/FuelRod.java @@ -1,8 +1,8 @@ package reactor.items; +import items.MetaItem_ReactorComponent; import kekztech.GTRecipe; import kekztech.Items; -import kekztech.MetaItem_ReactorComponent; public class FuelRod { diff --git a/src/main/java/reactor/items/HeatExchanger.java b/src/main/java/reactor/items/HeatExchanger.java index b34baf25cf..33825b7ac6 100644 --- a/src/main/java/reactor/items/HeatExchanger.java +++ b/src/main/java/reactor/items/HeatExchanger.java @@ -1,9 +1,9 @@ package reactor.items; +import items.MetaItem_CraftingComponent; +import items.MetaItem_ReactorComponent; import kekztech.GTRecipe; import kekztech.Items; -import kekztech.MetaItem_CraftingComponent; -import kekztech.MetaItem_ReactorComponent; import kekztech.Util; import net.minecraftforge.fluids.FluidRegistry; diff --git a/src/main/java/reactor/items/HeatPipe.java b/src/main/java/reactor/items/HeatPipe.java deleted file mode 100644 index 5f907b02fc..0000000000 --- a/src/main/java/reactor/items/HeatPipe.java +++ /dev/null @@ -1,29 +0,0 @@ -package reactor.items; - -import kekztech.GTRecipe; -import kekztech.Items; -import kekztech.MetaItem_CraftingComponent; -import kekztech.Util; - -public class HeatPipe { - - public static String[] RESOURCE_NAMES = { - "CopperHeatPipe", "SilverHeatPipe", "BoronArsenideHeatPipe", "DiamondHeatPipe" - }; - - public static final GTRecipe[] RECIPE = { - new GTRecipe().setEUPerTick(120).setDuration(120) - .addInputItem(Util.getStackofAmountFromOreDict("stickCopper", 1)) - .addOutputItem(MetaItem_CraftingComponent.getInstance().getStackFromDamage(Items.CopperHeatPipe.getMetaID())), - new GTRecipe().setEUPerTick(480).setDuration(120) - .addInputItem(Util.getStackofAmountFromOreDict("stickSilver", 1)) - .addOutputItem(MetaItem_CraftingComponent.getInstance().getStackFromDamage(Items.SilverHeatPipe.getMetaID())), - new GTRecipe().setEUPerTick(1920).setDuration(1200) - .addInputItem(MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.BoronArsenideCrystal.getMetaID(), 4)) - .addOutputItem(MetaItem_CraftingComponent.getInstance().getStackFromDamage(Items.BoronArsenideHeatPipe.getMetaID())), - new GTRecipe().setEUPerTick(7680).setDuration(1200) - .addInputItem(MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.IsotopicallyPureDiamondCrystal.getMetaID(), 4)) - .addOutputItem(MetaItem_CraftingComponent.getInstance().getStackFromDamage(Items.DiamondHeatPipe.getMetaID())) - }; - -} diff --git a/src/main/java/reactor/items/HeatVent.java b/src/main/java/reactor/items/HeatVent.java index e6ad50fb95..670efaeb86 100644 --- a/src/main/java/reactor/items/HeatVent.java +++ b/src/main/java/reactor/items/HeatVent.java @@ -1,9 +1,9 @@ package reactor.items; +import items.MetaItem_CraftingComponent; +import items.MetaItem_ReactorComponent; import kekztech.GTRecipe; import kekztech.Items; -import kekztech.MetaItem_CraftingComponent; -import kekztech.MetaItem_ReactorComponent; import kekztech.Util; import net.minecraftforge.fluids.FluidRegistry; diff --git a/src/main/java/reactor/items/NeutronReflector.java b/src/main/java/reactor/items/NeutronReflector.java index 0066a93917..5766cb41e9 100644 --- a/src/main/java/reactor/items/NeutronReflector.java +++ b/src/main/java/reactor/items/NeutronReflector.java @@ -1,8 +1,8 @@ package reactor.items; +import items.MetaItem_ReactorComponent; import kekztech.GTRecipe; import kekztech.Items; -import kekztech.MetaItem_ReactorComponent; public class NeutronReflector { diff --git a/src/main/java/reactor/GTMTE_ModularNuclearReactor.java b/src/main/java/tileentities/GTMTE_ModularNuclearReactor.java index f7572d589b..c4a54ec472 100644 --- a/src/main/java/reactor/GTMTE_ModularNuclearReactor.java +++ b/src/main/java/tileentities/GTMTE_ModularNuclearReactor.java @@ -1,5 +1,6 @@ -package reactor; +package tileentities; +import container.GUIContainer_ModularNuclearReactor; import gregtech.api.GregTech_API; import gregtech.api.enums.Textures; import gregtech.api.interfaces.ITexture; @@ -38,15 +39,15 @@ public class GTMTE_ModularNuclearReactor extends GT_MetaTileEntity_MultiBlockBas @Override public String[] getDescription() { return new String[] { - "does things", + "I'm not quite finished yet", "------------------------------------------", "Dimensions: 5x5x5 (WxHxL)", "Structure:", + " Controller: Front center", " 80x Radiation Proof Machine Casing (at least)", - " Controller front center", - " Dynamo Hatch (ONLY in EU-mode, at least one)", - " Input Bus, Output Bus (optional)", - " Input Hatch, Output Hatch (ONLY in Coolant-Mode, at least one each)" + " Dynamo Hatch: ONLY in EU-mode, at least one", + " Input Bus, Output Bus: Optional but required for automation", + " Input Hatch, Output Hatch: ONLY in Coolant-Mode, at least one each" }; } @@ -61,6 +62,7 @@ public class GTMTE_ModularNuclearReactor extends GT_MetaTileEntity_MultiBlockBas : new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID]}; } + // TODO: Opening UI crashes server. Controller isn't craftable right now. public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { return new GUIContainer_ModularNuclearReactor(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), "MultiblockDisplay.png"); diff --git a/src/main/java/fuelcell/GTMTE_SOFuelCellMK1.java b/src/main/java/tileentities/GTMTE_SOFuelCellMK1.java index c99f4e7dbc..f5fa228392 100644 --- a/src/main/java/fuelcell/GTMTE_SOFuelCellMK1.java +++ b/src/main/java/tileentities/GTMTE_SOFuelCellMK1.java @@ -1,6 +1,12 @@ -package fuelcell; +package tileentities; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; + +import blocks.Block_YSZUnit; import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; @@ -8,17 +14,25 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_ModHandler; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; -import reactor.GUIContainer_ModularNuclearReactor; +import net.minecraftforge.fluids.FluidStack; public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase { - final Block CASING = GregTech_API.sBlockCasings4; - final int CASING_META = 1; - final int CASING_TEXTURE_ID = 49; + private final Block CASING = GregTech_API.sBlockCasings4; + private final int CASING_META = 1; + private final int CASING_TEXTURE_ID = 49; + + private final int OXYGEN_PER_TICK = 20; + private final int EU_PER_TICK = 1024; + private final int STEAM_PER_TICK = 900; public GTMTE_SOFuelCellMK1(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); @@ -39,21 +53,22 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase { public String[] getDescription() { return new String[] { "Oxidizes gas fuels to generate electricity without polluting the environment", - "29,480EU worth of fuel are consumed each second", - "Outputs 1024EU/t and 18,000L/s Steam", - "Additionally requires 360L/s Oxygen gas", + "Consumes 29,480EU worth of fuel with up to 97% efficiency each second", + "Steam production requires the SOFC to heat up completely first", + "Outputs " + EU_PER_TICK + "EU/t and " + STEAM_PER_TICK + "L/t Steam", + "Additionally requires " + OXYGEN_PER_TICK + "L/t Oxygen gas", "------------------------------------------", "Dimensions: 3x3x5 (WxHxL)", "Structure:", - " 3x YSZ Ceramic Electrolyte Unit (center 1x1x3)", + " Controller: Front center", + " Dynamo Hatch: Back center", + " 3x YSZ Ceramic Electrolyte Unit: Center 1x1x3", " 12x Clean Stainless Steel Machine Casing (at least)", - " Controller front center", - " Dynamo Hatch back center", - " Maintenance Hatch, Input Hatches, Output Hatches" + " 6x Reinforced Glass: Touching the Electrolyte Units on the horizontal sides", + " Maintenance Hatch, Input Hatches, Output Hatches: Instead of any casing" }; } - //TODO @Override public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) { @@ -65,10 +80,9 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase { : new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID]}; } - //TODO public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), - "LargeTurbine.png"); + "MultiblockDisplay.png"); } @Override @@ -78,10 +92,52 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase { @Override public boolean checkRecipe(ItemStack stack) { + final ArrayList<FluidStack> storedFluids = super.getStoredFluids(); + Collection<GT_Recipe> recipeList = GT_Recipe_Map.sTurbineFuels.mRecipeList; + + if((storedFluids.size() > 0 && recipeList != null)) { + + final Iterator<FluidStack> fluidsIterator = storedFluids.iterator(); + while(fluidsIterator.hasNext()) { + + final FluidStack hatchFluid = fluidsIterator.next(); + final Iterator<GT_Recipe> recipeIterator = recipeList.iterator(); + while(recipeIterator.hasNext()) { + + final GT_Recipe aFuel = recipeIterator.next(); + FluidStack liquid; + if((liquid = GT_Utility.getFluidForFilledItem(aFuel.getRepresentativeInput(0), true)) != null + && hatchFluid.isFluidEqual(liquid)) { + + liquid.amount = EU_PER_TICK / aFuel.mSpecialValue; + + if(super.depleteInput(liquid)) { + + if(!super.depleteInput(Materials.Oxygen.getGas(OXYGEN_PER_TICK))) { + super.mEUt = 0; + super.mEfficiency = 0; + return false; + } + + super.mEUt = EU_PER_TICK; + super.mProgresstime = 1; + super.mMaxProgresstime = 1; + super.mEfficiencyIncrease = 5; + if(super.mEfficiency == getMaxEfficiency(null)) { + super.addOutput(GT_ModHandler.getSteam(STEAM_PER_TICK)); + } + return true; + } + } + } + } + } + + super.mEUt = 0; + super.mEfficiency = 0; return false; } - //TODO @Override public boolean checkMachine(IGregTechTileEntity thisController, ItemStack guiSlotItem) { @@ -119,7 +175,6 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase { } } } - System.out.println("Front slice status: " +checklist +" / casings left of 12: " +minCasingAmount); // Middle three slices for(int X = -1; X <= 1; X++) { @@ -129,17 +184,15 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase { final int THIS_Z = ZDIR_BACKFACE + Z; if(X == 0 && Y == 0) { if(!thisController.getBlockOffset(THIS_X, 0, THIS_Z).getUnlocalizedName() - .equals("kekztech_yszceramicelectrolyteunit_block")) { + .equals(Block_YSZUnit.getInstance().getUnlocalizedName())) { checklist = false; - System.out.println("Expected YSZ Ceramic"); } continue; } if(Y == 0 && (X == -1 || X == 1)) { - if(!thisController.getBlockOffset(XDIR_BACKFACE, 0, ZDIR_BACKFACE * Z).getUnlocalizedName() + if(!thisController.getBlockOffset(THIS_X, 0, THIS_Z).getUnlocalizedName() .equals("blockAlloyGlass")) { checklist = false; - System.out.println("Expected Reinforced Glass"); } continue; } @@ -164,7 +217,6 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase { } } } - System.out.println("Middle slices status: " +checklist); // Back slice for(int X = -1; X <= 1; X++) { @@ -192,14 +244,13 @@ public class GTMTE_SOFuelCellMK1 extends GT_MetaTileEntity_MultiBlockBase { } } } - System.out.println("Back slice status: " +checklist); if(minCasingAmount > 0) { checklist = false; } - if(this.mDynamoHatches.size() < 1) { - System.out.println("At least one dynamo hatch is required!"); + if(this.mDynamoHatches.size() != 1) { + System.out.println("Exactly one dynamo hatch is required!"); checklist = false; } if(this.mInputHatches.size() < 2) { diff --git a/src/main/java/fuelcell/GTMTE_SOFuelCellMK2.java b/src/main/java/tileentities/GTMTE_SOFuelCellMK2.java index 030e926867..b3cee6da6a 100644 --- a/src/main/java/fuelcell/GTMTE_SOFuelCellMK2.java +++ b/src/main/java/tileentities/GTMTE_SOFuelCellMK2.java @@ -1,6 +1,12 @@ -package fuelcell; +package tileentities; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; + +import blocks.Block_GDCUnit; import gregtech.api.GregTech_API; +import gregtech.api.enums.Materials; import gregtech.api.enums.Textures; import gregtech.api.gui.GT_GUIContainer_MultiMachine; import gregtech.api.interfaces.ITexture; @@ -8,11 +14,15 @@ import gregtech.api.interfaces.metatileentity.IMetaTileEntity; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; import gregtech.api.metatileentity.implementations.GT_MetaTileEntity_MultiBlockBase; import gregtech.api.objects.GT_RenderedTexture; +import gregtech.api.util.GT_Recipe; +import gregtech.api.util.GT_Utility; +import gregtech.api.util.GT_Recipe.GT_Recipe_Map; import net.minecraft.block.Block; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraftforge.common.util.ForgeDirection; -import reactor.GUIContainer_ModularNuclearReactor; +import net.minecraftforge.fluids.FluidRegistry; +import net.minecraftforge.fluids.FluidStack; public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase { @@ -20,6 +30,10 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase { final int CASING_META = 0; final int CASING_TEXTURE_ID = 48; + private final int OXYGEN_PER_TICK = 100; + private final int EU_PER_TICK = 24576; // 100% Efficiency, 3A IV + private final int STEAM_PER_TICK = 4800; // SH Steam (10,800EU/t @ 150% Efficiency) + public GTMTE_SOFuelCellMK2(int aID, String aName, String aNameRegional) { super(aID, aName, aNameRegional); @@ -39,9 +53,10 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase { public String[] getDescription() { return new String[] { "Oxidizes gas fuels to generate electricity without polluting the environment", - "375,680EU worth of fuel are consumed each second", - "Outputs 16,384EU/t and 96,000L/s Steam", - "Additionally requires 1920L/s Oxygen gas", + "Consumes 442,200EU worth of fuel with up to 160% efficiency each second", + "Steam production requires the SOFC to heat up completely first", + "Outputs " + EU_PER_TICK + "EU/t and " + STEAM_PER_TICK + "L/t Superheated Steam", + "Additionally requires " + OXYGEN_PER_TICK + "L/t Oxygen gas", "------------------------------------------", "Dimensions: 3x3x5 (WxHxL)", "Structure:", @@ -53,7 +68,6 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase { }; } - //TODO @Override public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, final byte aColorIndex, final boolean aActive, final boolean aRedstone) { @@ -65,10 +79,9 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase { : new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID]}; } - //TODO public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { return new GT_GUIContainer_MultiMachine(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), - "LargeTurbine.png"); + "MultiblockDisplay.png"); } @Override @@ -78,13 +91,55 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase { @Override public boolean checkRecipe(ItemStack stack) { + final ArrayList<FluidStack> storedFluids = super.getStoredFluids(); + Collection<GT_Recipe> recipeList = GT_Recipe_Map.sTurbineFuels.mRecipeList; + + if((storedFluids.size() > 0 && recipeList != null)) { + + final Iterator<FluidStack> fluidsIterator = storedFluids.iterator(); + while(fluidsIterator.hasNext()) { + + final FluidStack hatchFluid = fluidsIterator.next(); + final Iterator<GT_Recipe> recipeIterator = recipeList.iterator(); + while(recipeIterator.hasNext()) { + + final GT_Recipe aFuel = recipeIterator.next(); + FluidStack liquid; + if((liquid = GT_Utility.getFluidForFilledItem(aFuel.getRepresentativeInput(0), true)) != null + && hatchFluid.isFluidEqual(liquid)) { + + liquid.amount = EU_PER_TICK / aFuel.mSpecialValue; + + if(super.depleteInput(liquid)) { + + if(!super.depleteInput(Materials.Oxygen.getGas(OXYGEN_PER_TICK))) { + super.mEUt = 0; + super.mEfficiency = 0; + return false; + } + + super.mEUt = EU_PER_TICK; + super.mProgresstime = 1; + super.mMaxProgresstime = 1; + super.mEfficiencyIncrease = 20; + if(super.mEfficiency == getMaxEfficiency(null)) { + super.addOutput(FluidRegistry.getFluidStack("ic2superheatedsteam", STEAM_PER_TICK)); + } + return true; + } + } + } + } + } + + super.mEUt = 0; + super.mEfficiency = 0; return false; } - //TODO @Override public boolean checkMachine(IGregTechTileEntity thisController, ItemStack guiSlotItem) { - + final int XDIR_BACKFACE = ForgeDirection.getOrientation(thisController.getBackFacing()).offsetX; final int ZDIR_BACKFACE = ForgeDirection.getOrientation(thisController.getBackFacing()).offsetZ; @@ -99,7 +154,7 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase { } // Get next TE final int THIS_X = XDIR_BACKFACE + X; - final int THIS_Z = ZDIR_BACKFACE + 0; + final int THIS_Z = ZDIR_BACKFACE + -1; IGregTechTileEntity currentTE = thisController.getIGregTechTileEntityOffset(THIS_X, Y, THIS_Z);// x, y ,z @@ -123,22 +178,24 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase { // Middle three slices for(int X = -1; X <= 1; X++) { for(int Y = -1; Y <= 1; Y++) { - for(int Z = 1; Z <= 3; Z++) { + for(int Z = 0; Z < 3; Z++) { + final int THIS_X = XDIR_BACKFACE + X; + final int THIS_Z = ZDIR_BACKFACE + Z; if(X == 0 && Y == 0) { - if(!thisController.getBlockOffset(XDIR_BACKFACE, 0, ZDIR_BACKFACE * Z).getUnlocalizedName() - .equals("kekztech_yszceramicelectrolyteunit_block")) { + if(!thisController.getBlockOffset(THIS_X, 0, THIS_Z).getUnlocalizedName() + .equals(Block_GDCUnit.getInstance().getUnlocalizedName())) { checklist = false; } + continue; } if(Y == 0 && (X == -1 || X == 1)) { - if(!thisController.getBlockOffset(XDIR_BACKFACE, 0, ZDIR_BACKFACE * Z).getUnlocalizedName() + if(!thisController.getBlockOffset(THIS_X, 0, THIS_Z).getUnlocalizedName() .equals("blockAlloyGlass")) { checklist = false; } + continue; } // Get next TE - final int THIS_X = XDIR_BACKFACE + X; - final int THIS_Z = ZDIR_BACKFACE + Z; IGregTechTileEntity currentTE = thisController.getIGregTechTileEntityOffset(THIS_X, Y, THIS_Z);// x, y ,z @@ -165,7 +222,7 @@ public class GTMTE_SOFuelCellMK2 extends GT_MetaTileEntity_MultiBlockBase { for(int Y = -1; Y <= 1; Y++) { // Get next TE final int THIS_X = XDIR_BACKFACE + X; - final int THIS_Z = ZDIR_BACKFACE + 0; + final int THIS_Z = ZDIR_BACKFACE + 3; IGregTechTileEntity currentTE = thisController.getIGregTechTileEntityOffset(THIS_X, Y, THIS_Z);// x, y ,z |