diff options
Diffstat (limited to 'src/main/java/reactor')
-rw-r--r-- | src/main/java/reactor/ButtonSlot.java | 14 | ||||
-rw-r--r-- | src/main/java/reactor/Container_ModularNuclearReactor.java | 68 | ||||
-rw-r--r-- | src/main/java/reactor/GTMTE_ModularNuclearReactor.java | 188 | ||||
-rw-r--r-- | src/main/java/reactor/GUIContainer_ModularNuclearReactor.java | 53 | ||||
-rw-r--r-- | src/main/java/reactor/items/CoolantCell.java | 26 | ||||
-rw-r--r-- | src/main/java/reactor/items/FuelRod.java | 114 | ||||
-rw-r--r-- | src/main/java/reactor/items/HeatExchanger.java | 60 | ||||
-rw-r--r-- | src/main/java/reactor/items/HeatPipe.java | 29 | ||||
-rw-r--r-- | src/main/java/reactor/items/HeatVent.java | 111 | ||||
-rw-r--r-- | src/main/java/reactor/items/NeutronReflector.java | 26 |
10 files changed, 689 insertions, 0 deletions
diff --git a/src/main/java/reactor/ButtonSlot.java b/src/main/java/reactor/ButtonSlot.java new file mode 100644 index 0000000000..6d777ca280 --- /dev/null +++ b/src/main/java/reactor/ButtonSlot.java @@ -0,0 +1,14 @@ +package reactor; + +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; + +public class ButtonSlot extends Slot { + + public ButtonSlot(IInventory playerIventory, int slotID, int posX, int posY) { + super(playerIventory, slotID, posX, posY); + + + } + +} diff --git a/src/main/java/reactor/Container_ModularNuclearReactor.java b/src/main/java/reactor/Container_ModularNuclearReactor.java new file mode 100644 index 0000000000..4ecfe61836 --- /dev/null +++ b/src/main/java/reactor/Container_ModularNuclearReactor.java @@ -0,0 +1,68 @@ +package reactor; + +import gregtech.api.gui.GT_Container_MultiMachine; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.inventory.IInventory; +import net.minecraft.inventory.Slot; + +public class Container_ModularNuclearReactor extends GT_Container_MultiMachine { + + private final GTMTE_ModularNuclearReactor REACTOR_TILE; + private final IInventory PLAYER_INVENTORY; + + private int nextSlotID = 0; + private final Slot[] REACTOR_SLOTS = new Slot[54]; + private final Slot SLOT_CONFIGURATION; + private final Slot BUTTON_EU_MODE; + private final Slot BUTTON_FLUID_MODE; + private final Slot BUTTON_CONDITION; + private final Slot BUTTON_CONFIGURE; + private final Slot BUTTON_RESET; + + + public Container_ModularNuclearReactor(InventoryPlayer inventoryPlayer, IGregTechTileEntity reactorTile) { + + super(inventoryPlayer, reactorTile); + + this.REACTOR_TILE = (GTMTE_ModularNuclearReactor) reactorTile; + this.PLAYER_INVENTORY = inventoryPlayer; + + // Add the reactor chamber + for(int x = 0; x < 9; x++) { + for(int y = 0; y < 6; y++){ + REACTOR_SLOTS[nextSlotID] = super.addSlotToContainer(new Slot(PLAYER_INVENTORY, getNextSlotID(), (16 + 67 * x), (16 + 67 * y))); + } + } + // Add the configuration slot + SLOT_CONFIGURATION = super.addSlotToContainer(new Slot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); + + // Add buttons (they're also slots) + BUTTON_EU_MODE = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); + BUTTON_FLUID_MODE = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); + BUTTON_CONDITION = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); + BUTTON_CONFIGURE = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); + BUTTON_RESET = super.addSlotToContainer(new ButtonSlot(PLAYER_INVENTORY, getNextSlotID(), 0, 0)); + + } + + private int getNextSlotID() { + nextSlotID++; + return nextSlotID - 1; + } + + @Override + public boolean canInteractWith(EntityPlayer p_75145_1_) { + return true; + } + + @Override + public void detectAndSendChanges() { + super.detectAndSendChanges(); + if (REACTOR_TILE.getBaseMetaTileEntity().isServerSide() == false) { + return; + } + } + +} diff --git a/src/main/java/reactor/GTMTE_ModularNuclearReactor.java b/src/main/java/reactor/GTMTE_ModularNuclearReactor.java new file mode 100644 index 0000000000..f3d9a2a00c --- /dev/null +++ b/src/main/java/reactor/GTMTE_ModularNuclearReactor.java @@ -0,0 +1,188 @@ +package reactor; + +import gregtech.api.GregTech_API; +import gregtech.api.enums.Textures; +import gregtech.api.interfaces.ITexture; +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 net.minecraft.block.Block; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.item.ItemStack; +import net.minecraftforge.common.util.ForgeDirection; + +public class GTMTE_ModularNuclearReactor extends GT_MetaTileEntity_MultiBlockBase { + + final Block CASING = GregTech_API.sBlockCasings3; + final int CASING_META = 12; + final int CASING_TEXTURE_ID = 44; + + private boolean euMode = true; + + public GTMTE_ModularNuclearReactor(int aID, String aName, String aNameRegional) { + super(aID, aName, aNameRegional); + + } + + public GTMTE_ModularNuclearReactor(String aName) { + super(aName); + + } + + @Override + public IMetaTileEntity newMetaEntity(IGregTechTileEntity var1) { + return new GTMTE_ModularNuclearReactor(super.mName); + } + + @Override + public String[] getDescription() { + return new String[] { + "Modular Nuclear Reactor", + "------------------------------------------", + "EU-MODE - Turn nuclear fuel into directly into electricity.", + "", + "COOLANT-MODE - Heat up coolant for other applications", + "HU to Hot Coolant ratio is 1HU = 1L Hot Coolant", + "------------------------------------------", + "Dimensions: 5x5x5 (WxHxL)", + "Structure:", + " 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)" + }; + } + + @Override + public ITexture[] getTexture(final IGregTechTileEntity aBaseMetaTileEntity, final byte aSide, final byte aFacing, + final byte aColorIndex, final boolean aActive, final boolean aRedstone) { + return aSide == aFacing + ? new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID], + new GT_RenderedTexture(aActive ? + Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER_ACTIVE + : Textures.BlockIcons.OVERLAY_FRONT_HEAT_EXCHANGER)} + : new ITexture[]{Textures.BlockIcons.CASING_BLOCKS[CASING_TEXTURE_ID]}; + } + + public Object getClientGUI(int aID, InventoryPlayer aPlayerInventory, IGregTechTileEntity aBaseMetaTileEntity) { + return new GUIContainer_ModularNuclearReactor(aPlayerInventory, aBaseMetaTileEntity, this.getLocalName(), + "MultiblockDisplay.png"); + } + + @Override + public boolean isCorrectMachinePart(ItemStack stack) { + return true; + } + + @Override + public boolean checkRecipe(ItemStack stack) { + return false; + } + + @Override + public boolean checkMachine(IGregTechTileEntity thisController, ItemStack guiSlotItem) { + + final byte SIDE_LENGTH = 5; + final byte MAX_OFFSET = (byte) Math.floor(SIDE_LENGTH / 2); + final int XDIR_BACKFACE = ForgeDirection.getOrientation(thisController.getBackFacing()).offsetX * MAX_OFFSET; + final int ZDIR_BACKFACE = ForgeDirection.getOrientation(thisController.getBackFacing()).offsetZ * MAX_OFFSET; + + int minCasingAmount = 92; + boolean checklist = true; // if this is still true at the end, machine is good to go :) + + for (int leftToRight = -MAX_OFFSET; leftToRight <= MAX_OFFSET; leftToRight++) { + + for (int frontToBack = -MAX_OFFSET; frontToBack <= MAX_OFFSET; frontToBack++) { + + for (int thisY = -MAX_OFFSET; thisY <= MAX_OFFSET; thisY++) { + + // Center 3x3x3 air cube + if((leftToRight > -2 && leftToRight < 2) && (frontToBack > -2 && frontToBack < 2) && (thisY > -2 && thisY < 2)) { + if(!thisController.getAirOffset(XDIR_BACKFACE + leftToRight, thisY, ZDIR_BACKFACE + frontToBack)) { + checklist = false; + } + } else if (!(XDIR_BACKFACE + leftToRight == 0 && ZDIR_BACKFACE + frontToBack == 0 && thisY == 0)) { // Make sure this isn't the controller + // Get next TE + final int THIS_X = XDIR_BACKFACE + leftToRight; + final int THIS_Z = ZDIR_BACKFACE + frontToBack; + IGregTechTileEntity currentTE = + thisController.getIGregTechTileEntityOffset(THIS_X, thisY, THIS_Z);// x, y ,z + + // Tries to add TE as either of those kinds of hatches. + // The number is the texture index number for the texture that needs to be painted over the hatch texture (TAE for GT++) + if ( !super.addMaintenanceToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addInputToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addOutputToMachineList(currentTE, CASING_TEXTURE_ID) + && !super.addDynamoToMachineList(currentTE, CASING_TEXTURE_ID)) { + + // If it's not a hatch, is it the right casing for this machine? Check block and block meta. + if ((thisController.getBlockOffset(THIS_X, thisY, THIS_Z) == CASING) && (thisController.getMetaIDOffset(THIS_X, thisY, THIS_Z) == CASING_META)) { + // Seems to be valid casing. Decrement counter. + minCasingAmount--; + } else { + checklist = false; + } + } + } + } + } + } + + if(minCasingAmount > 0) { + checklist = false; + } + + if(euMode) { + if(this.mDynamoHatches.size() == 0) { + System.out.println("Dynamo hatches are required in EU mode!"); + checklist = false; + } + if(this.mInputHatches.size() > 0) { + System.out.println("Input hatches are only allowed in coolant mode!"); + checklist = false; + } + if(this.mOutputHatches.size() > 0) { + System.out.println("Output hatches are only allowed in coolant mode!"); + checklist = false; + } + } else { + if(this.mDynamoHatches.size() > 0) { + System.out.println("Dynamo hatches are only allowed in EU mode!"); + checklist = false; + } + if(this.mInputHatches.size() == 0) { + System.out.println("Coolant input hatches are required in coolant mode!"); + checklist = false; + } + if(this.mOutputHatches.size() == 0) { + System.out.println("Hot coolant output hatches are required in coolant mode!"); + checklist = false; + } + } + + return checklist; + } + + @Override + public int getMaxEfficiency(ItemStack stack) { + return 10000; + } + + @Override + public int getPollutionPerTick(ItemStack stack) { + return 0; + } + + @Override + public int getDamageToComponent(ItemStack stack) { + return 0; + } + + @Override + public boolean explodesOnComponentBreak(ItemStack stack) { + return false; + } + +} diff --git a/src/main/java/reactor/GUIContainer_ModularNuclearReactor.java b/src/main/java/reactor/GUIContainer_ModularNuclearReactor.java new file mode 100644 index 0000000000..1f8248e5bb --- /dev/null +++ b/src/main/java/reactor/GUIContainer_ModularNuclearReactor.java @@ -0,0 +1,53 @@ +package reactor; + +import org.lwjgl.opengl.GL11; + +import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; +import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import kekztech.KekzCore; +import net.minecraft.client.Minecraft; +import net.minecraft.client.gui.GuiButton; +import net.minecraft.entity.player.InventoryPlayer; +import net.minecraft.util.ResourceLocation; + +public class GUIContainer_ModularNuclearReactor extends GT_GUIContainerMetaTile_Machine { + + private final String resourceName; + private final ResourceLocation texture; + + public GUIContainer_ModularNuclearReactor(InventoryPlayer aInventoryPlayer, IGregTechTileEntity aTileEntity, + String aName, String aTextureFile) { + + super(new Container_ModularNuclearReactor(aInventoryPlayer, aTileEntity), aTextureFile); + + this.resourceName = aTextureFile; + this.texture = new ResourceLocation(KekzCore.MODID, "textures/gui/" + resourceName); + } + + @SuppressWarnings("unchecked") + @Override + public void initGui() { + super.initGui(); + + // The parameters of GuiButton are (id, x, y, width, height, text) + super.buttonList.add(new GuiButton(1, 100, 200, 100, 20, "Hello")); + } + + @Override + protected void drawGuiContainerBackgroundLayer(float f, int mouseX, int mouseY) { + + Minecraft.getMinecraft().renderEngine.bindTexture(texture); + GL11.glColor4f(1.0f, 1.0f, 1.0f, 1.0f); + + final int x = (super.width - super.xSize); + final int y = (super.height - super.ySize); + + super.drawTexturedModalRect(x, y, 0, 0, super.xSize, super.ySize); + } + + @Override + protected void drawGuiContainerForegroundLayer(int par1, int par2) { + + } + +} diff --git a/src/main/java/reactor/items/CoolantCell.java b/src/main/java/reactor/items/CoolantCell.java new file mode 100644 index 0000000000..64b979acc4 --- /dev/null +++ b/src/main/java/reactor/items/CoolantCell.java @@ -0,0 +1,26 @@ +package reactor.items; + +import kekztech.GTRecipe; +import kekztech.Items; +import kekztech.MetaItem_ReactorComponent; + +public class CoolantCell { + + public static String TYPE = "CoolantCell"; + + public static String[] RESOURCE_NAME = { + "HeliumCoolantCell360k", "NaKCoolantCell360k" + }; + + public static int[] HEAT_CAPACITY = { + 360000, 360000 + }; + + public static GTRecipe[] RECIPE = { + new GTRecipe().setDuration(1200).setEUPerTick(480) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.HeliumCoolantCell360k.getMetaID())), + new GTRecipe().setDuration(1200).setEUPerTick(480) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.NaKCoolantCell360k.getMetaID())) + }; + +} diff --git a/src/main/java/reactor/items/FuelRod.java b/src/main/java/reactor/items/FuelRod.java new file mode 100644 index 0000000000..adef6f3409 --- /dev/null +++ b/src/main/java/reactor/items/FuelRod.java @@ -0,0 +1,114 @@ +package reactor.items; + +import kekztech.GTRecipe; +import kekztech.Items; +import kekztech.MetaItem_ReactorComponent; + +public class FuelRod { + + public static final int METAOFFSET = 17; + public static final int METAOFFSET_DEPLETED = 29; + + public static final String TYPE = "FuelRod"; + public static final String TYPE_DEPLETED = "DepletedFuelRod"; + public static final String LIFETIME = "LIFETIME"; + public static final String PULSES = "PULSES"; + public static final String HEAT_PER_SECOND = "HEAT_PER_SECOND"; + public static final String HEAT_PER_PULSE = "HEAT_PER_PULSE"; + public static final String HEAT_BOOST_RATE = "HEAT_BOOST_RATE"; + public static final String EU_PER_TICK = "EU_PER_TICK"; + public static final String EU_PER_PULSE = "EU_PER_PULSE"; + + + public static final String[] RESOURCE_NAME = { + "UraniumFuelRod", "UraniumDualFuelRod", "UraniumQuadFuelRod", + "ThoriumFuelRod", "ThoriumDualFuelRod", "ThoriumQuadFuelRod", + "MOXFuelRod", "MOXDualFuelRod", "MOXQuadFuelRod", + "NaquadahFuelRod", "NaquadahDualFuelRod", "NaquadahQuadFuelRod", + "Th_MOXFuelRod", "Th_MOXDualFuelRod", "Th_MOXQuadFuelRod" + }; + + public static final String[] RESOURCE_NAME_DEPLETED = { + "DepletedUraniumFuelRod", "DepletedUraniumDualFuelRod", "DepletedUraniumQuadFuelRod", + "DepletedThoriumFuelRod", "DepletedThoriumDualFuelRod", "DepletedThoriumQuadFuelRod", + "DepletedMOXFuelRod", "DepletedMOXDualFuelRod", "DepletedMOXQuadFuelRod", + "DepletedNaquadahFuelRod", "DepletedNaquadahDualFuelRod", "DepletedNaquadahQuadFuelRod", + "Th_DepletedMOXFuelRod", "Th_DepletedMOXDualFuelRod", "Th_DepletedMOXQuadFuelRod" + }; + + public static final int[] VALUES_LIFETIME = { + 20000, 20000, 20000, 100000, 100000, 100000, + 10000, 10000, 10000, 100000, 100000, 100000, + 50000, 50000, 50000 + }; + + public static final int[] VALUES_PULSES = { + 1, 2, 4, 1, 2, 4, + 1, 2, 4, 1, 2, 4, + 1, 2, 4 + }; + + public static final int[] VALUES_HEAT_PER_SECOND = { + 4, 24, 96, 1, 6, 24, + 4, 24, 96, 80, 480, 1920, + 1, 6, 24 + }; + + public static final int[] VALUES_HEAT_PER_PULSE = { + 4, 4, 4, 1, 1, 1, + 4, 4, 4, 80, 80, 80, + 1, 1, 1 + + }; + + public static final double[] VALUES_HEAT_BOOST_RATE = { + 1, 1, 1, 1, 1, 1, + 5, 5, 5, 1, 1, 1, + 2, 2, 2 + }; + + public static final int[] VALUES_EU_PER_TICK = { + 50, 200, 600, 10, 40, 120, + 50, 200, 600, 100, 400, 1200, + 10, 40, 120 + }; + + public static final int[] VALUES_EU_PER_PULSE = { + 50, 50, 50, 10, 10, 10, + 50, 50, 50, 100, 100, 100, + 10, 10, 10 + }; + + public static final GTRecipe[] RECIPE = { + // Uranium Fuel Rod + new GTRecipe().setDuration(600).setEUPerTick(480) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.UraniumFuelRod.getMetaID())), + new GTRecipe().setDuration(800).setEUPerTick(480) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.UraniumDualFuelRod.getMetaID())), + new GTRecipe().setDuration(1000).setEUPerTick(480) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.UraniumQuadFuelRod.getMetaID())), + // Thorium Fuel Rod + new GTRecipe().setDuration(600).setEUPerTick(480) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.ThoriumFuelRod.getMetaID())), + new GTRecipe().setDuration(800).setEUPerTick(480) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.ThoriumDualFuelRod.getMetaID())), + new GTRecipe().setDuration(1000).setEUPerTick(480) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.ThoriumQuadFuelRod.getMetaID())), + // MOX Fuel Rod + new GTRecipe().setDuration(600).setEUPerTick(1920) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.MOXFuelRod.getMetaID())), + new GTRecipe().setDuration(800).setEUPerTick(1920) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.MOXDualFuelRod.getMetaID())), + new GTRecipe().setDuration(1000).setEUPerTick(1920) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.MOXQuadFuelRod.getMetaID())), + // Naquadah Fuel Rod + new GTRecipe().setDuration(600).setEUPerTick(7680) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.NaquadahFuelRod.getMetaID())), + new GTRecipe().setDuration(800).setEUPerTick(7680) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.NaquadahDualFuelRod.getMetaID())), + new GTRecipe().setDuration(1000).setEUPerTick(7680) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.NaquadahQuadFuelRod.getMetaID())), + // Thorium MOX Fuel Rod + }; + +} diff --git a/src/main/java/reactor/items/HeatExchanger.java b/src/main/java/reactor/items/HeatExchanger.java new file mode 100644 index 0000000000..b34baf25cf --- /dev/null +++ b/src/main/java/reactor/items/HeatExchanger.java @@ -0,0 +1,60 @@ +package reactor.items; + +import kekztech.GTRecipe; +import kekztech.Items; +import kekztech.MetaItem_CraftingComponent; +import kekztech.MetaItem_ReactorComponent; +import kekztech.Util; +import net.minecraftforge.fluids.FluidRegistry; + +public class HeatExchanger { + + public static String TYPE = "HeatExchanger"; + + public static String[] RESOURCE_NAME = { + "T1HeatExchanger", "T2HeatExchanger", "T3HeatExchanger", "T4HeatExchanger" + }; + + public static int[] HEAT_CAPACITY = { + 2000, 8000, 32000, 128000 + }; + + public static int[] COMPONENT_EXCHANGE_RATE = { + 12, 24, 96, 384 + }; + + public static int[] HULL_EXCHANGE_RATE = { + 4, 8, 32, 128 + }; + + public static GTRecipe[] RECIPE = { + new GTRecipe().setDuration(200).setEUPerTick(120) + .addInputItem(MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.CopperHeatPipe.getMetaID(), 4)) + .addInputItem(Util.getStackofAmountFromOreDict("plateDenseCopper", 1)) + .addInputFluid(FluidRegistry.getFluidStack("molten.copper", 576)) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T1HeatExchanger.getMetaID())), + new GTRecipe().setDuration(400).setEUPerTick(480) + .addInputItem(MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.SilverHeatPipe.getMetaID(), 4)) + .addInputItem(Util.getStackofAmountFromOreDict("plateDenseSilver", 1)) + .addInputFluid(FluidRegistry.getFluidStack("molten.silver", 576)) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T2HeatExchanger.getMetaID())), + new GTRecipe().setDuration(800).setEUPerTick(7680) + .addInputItem(MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.BoronArsenideHeatPipe.getMetaID(), 4)) + .addInputItem(Util.getStackofAmountFromOreDict("pipeTinyCopper", 4)) + .addInputItem(Util.getStackofAmountFromOreDict("wireFineSilver", 16)) + //.addInputItem(new ItemStack(ItemList.Pump_EV.getItem(), 1)) + .addInputFluid(FluidRegistry.getFluidStack("ic2coolant", 720)) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T3HeatExchanger.getMetaID())), + new GTRecipe().setDuration(1600).setEUPerTick(30720) + .addInputItem(MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.DiamondHeatPipe.getMetaID(), 4)) + .addInputItem(Util.getStackofAmountFromOreDict("frameGTHSSE", 1)) + .addInputItem(Util.getStackofAmountFromOreDict("plateHSSE", 6)) + .addInputItem(Util.getStackofAmountFromOreDict("screwOsmiridium", 24)) + .addInputItem(Util.getStackofAmountFromOreDict("pipeTinyEnderium", 4)) + //.addInputItem(new ItemStack(ItemList.Pump_LuV.getItem(), 1)) + .addInputFluid(FluidRegistry.getFluidStack("molten.gallium", 1152)) + .addInputFluid(FluidRegistry.getFluidStack("helium", 10000)) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T4HeatExchanger.getMetaID())) + }; + +} diff --git a/src/main/java/reactor/items/HeatPipe.java b/src/main/java/reactor/items/HeatPipe.java new file mode 100644 index 0000000000..5f907b02fc --- /dev/null +++ b/src/main/java/reactor/items/HeatPipe.java @@ -0,0 +1,29 @@ +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 new file mode 100644 index 0000000000..e6ad50fb95 --- /dev/null +++ b/src/main/java/reactor/items/HeatVent.java @@ -0,0 +1,111 @@ +package reactor.items; + +import kekztech.GTRecipe; +import kekztech.Items; +import kekztech.MetaItem_CraftingComponent; +import kekztech.MetaItem_ReactorComponent; +import kekztech.Util; +import net.minecraftforge.fluids.FluidRegistry; + +public class HeatVent { + + public static final String TYPE = "HeatVent"; + public static final String HEAT = "HEAT"; + public static final String RESOURCE_NAME = "RESOURCE_NAME"; + public static final String HEAT_CAPACITY = "HEAT_CAPACITY"; + public static final String COMPONENT_VENT_RATE = "COMPONENT_VENT_RATE"; + public static final String HULL_DRAW_RATE = "HULL_DRAW_RATE"; + public static final String SELF_COOL_RATE = "SELF_COOL_RATE"; + + + public static String[] RESOURCE_NAMES = { + "T1HeatVent", "T2HeatVent", "T3HeatVent", "T4HeatVent", + "T1ComponentHeatVent", "T2ComponentHeatVent", "T3ComponentHeatVent", "T4ComponentHeatVent", + "T1OverclockedHeatVent", "T2OverclockedHeatVent", "T3OverclockedHeatVent", "T4OverclockedHeatVent" + }; + + public static int[] HEAT_CAPACITIES = { + 1000, 4000, 8000, 32000, + 1000, 4000, 8000, 32000, + 1000, 4000, 8000, 32000 + }; + + public static int[] COMPONENT_VENT_RATES = { + 0, 0, 0, 0, + 6, 12, 48, 96, + 0, 0, 0, 0 + }; + + public static int[] HULL_DRAW_RATES = { + 0, 0, 0, 0, + 0, 0, 0, 0, + 18, 36, 144, 288 + }; + + public static int[] SELF_COOL_RATES = { + 6, 12, 48, 96, + 0, 0, 0, 0, + 10, 20, 80, 160 + }; + + public static final GTRecipe[] RECIPE = { + // Heat Vents + new GTRecipe().setDuration(200).setEUPerTick(120) + .addInputItem(MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.CopperHeatPipe.getMetaID(), 2)) + // MV Motor + .addInputItem(Util.getStackofAmountFromOreDict("rotorSteel", 1)) + .addInputItem(Util.getStackofAmountFromOreDict("plateDoubleSteel", 2)) + .addInputItem(Util.getStackofAmountFromOreDict("screwSteel", 8)) + .addInputItem(Util.getStackofAmountFromOreDict("circuitGood", 1)) + .addInputFluid(FluidRegistry.getFluidStack("molten.copper", 144)) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T1HeatVent.getMetaID())), + new GTRecipe().setDuration(400).setEUPerTick(480) + .addInputItem(MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.SilverHeatPipe.getMetaID(), 2)) + // HV Motor + .addInputItem(Util.getStackofAmountFromOreDict("rotorAluminium", 1)) + .addInputItem(Util.getStackofAmountFromOreDict("plateDoubleAluminium", 2)) + .addInputItem(Util.getStackofAmountFromOreDict("screwAluminium", 8)) + .addInputItem(Util.getStackofAmountFromOreDict("circuitAdvanced", 1)) + .addInputFluid(FluidRegistry.getFluidStack("molten.silver", 144)) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T2HeatVent.getMetaID())), + new GTRecipe().setDuration(800).setEUPerTick(7680) + .addInputItem(MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.BoronArsenideHeatPipe.getMetaID(), 2)) + // EV Motor + .addInputItem(Util.getStackofAmountFromOreDict("rotorTungstenSteel", 1)) + .addInputItem(Util.getStackofAmountFromOreDict("plateDoubleTungstenSteel", 2)) + .addInputItem(Util.getStackofAmountFromOreDict("screwTungsten", 8)) + .addInputItem(Util.getStackofAmountFromOreDict("circuitData", 1)) + .addInputFluid(FluidRegistry.getFluidStack("molten.gallium", 288)) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T3HeatVent.getMetaID())), + new GTRecipe().setDuration(400).setEUPerTick(30720) + .addInputItem(MetaItem_CraftingComponent.getInstance().getStackOfAmountFromDamage(Items.DiamondHeatPipe.getMetaID(), 2)) + // LuV Motor + .addInputItem(Util.getStackofAmountFromOreDict("rotorHSSS", 1)) + .addInputItem(Util.getStackofAmountFromOreDict("frameGTHSSS", 1)) + .addInputItem(Util.getStackofAmountFromOreDict("plateDoubleIridium", 6)) + .addInputItem(Util.getStackofAmountFromOreDict("screwOsmiridium", 24)) + .addInputItem(Util.getStackofAmountFromOreDict("circuitMaster", 1)) + .addInputFluid(FluidRegistry.getFluidStack("lubricant", 1000)) + .addInputFluid(FluidRegistry.getFluidStack("molten.gallium", 1152)) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T4HeatVent.getMetaID())), + // Component Heat Vents + new GTRecipe().setDuration(200).setEUPerTick(120) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T1ComponentHeatVent.getMetaID())), + new GTRecipe().setDuration(400).setEUPerTick(480) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T2ComponentHeatVent.getMetaID())), + new GTRecipe().setDuration(800).setEUPerTick(7680) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T3ComponentHeatVent.getMetaID())), + new GTRecipe().setDuration(1600).setEUPerTick(30720) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T4ComponentHeatVent.getMetaID())), + // OC Heat Vents + new GTRecipe().setDuration(200).setEUPerTick(120) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T1OverclockedHeatVent.getMetaID())), + new GTRecipe().setDuration(400).setEUPerTick(480) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T2OverclockedHeatVent.getMetaID())), + new GTRecipe().setDuration(800).setEUPerTick(7680) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T3OverclockedHeatVent.getMetaID())), + new GTRecipe().setDuration(1600).setEUPerTick(30720) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T4OverclockedHeatVent.getMetaID())), + }; + +} diff --git a/src/main/java/reactor/items/NeutronReflector.java b/src/main/java/reactor/items/NeutronReflector.java new file mode 100644 index 0000000000..0066a93917 --- /dev/null +++ b/src/main/java/reactor/items/NeutronReflector.java @@ -0,0 +1,26 @@ +package reactor.items; + +import kekztech.GTRecipe; +import kekztech.Items; +import kekztech.MetaItem_ReactorComponent; + +public class NeutronReflector { + + public static String TYPE = "NeutronReflector"; + + public static String[] RESOURCE_NAME = { + "T1NeutronReflector", "T2NeutronReflector" + }; + + public static int[] DURABILITY = { + 512000, 2147483647 + }; + + public static GTRecipe[] RECIPE = { + new GTRecipe().setDuration(1200).setEUPerTick(480) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T1NeutronReflector.getMetaID())), + new GTRecipe().setDuration(4800).setEUPerTick(7680) + .addOutputItem(MetaItem_ReactorComponent.getInstance().getStackFromDamage(Items.T2NeutronReflector.getMetaID())) + }; + +} |