diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/gregtech/api/enums/ItemList.java | 3 | ||||
-rw-r--r-- | src/main/java/gregtech/api/items/GT_BreederCell_Item.java | 124 | ||||
-rw-r--r-- | src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java | 3 | ||||
-rw-r--r-- | src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java | 21 | ||||
-rw-r--r-- | src/main/resources/assets/gregtech/textures/items/gt.glowstoneCell.png | bin | 0 -> 1842 bytes | |||
-rw-r--r-- | src/main/resources/assets/gregtech/textures/items/gt.sunnariumCell.png | bin | 0 -> 1844 bytes |
6 files changed, 142 insertions, 9 deletions
diff --git a/src/main/java/gregtech/api/enums/ItemList.java b/src/main/java/gregtech/api/enums/ItemList.java index b2b03a56ca..b874f1df2e 100644 --- a/src/main/java/gregtech/api/enums/ItemList.java +++ b/src/main/java/gregtech/api/enums/ItemList.java @@ -1402,6 +1402,9 @@ public enum ItemList implements IItemContainer { Reactor_Coolant_NaK_6, neutroniumHeatCapacitor, + GlowstoneCell, + SunnariumCell, + ThoriumCell_1, ThoriumCell_2, ThoriumCell_4, diff --git a/src/main/java/gregtech/api/items/GT_BreederCell_Item.java b/src/main/java/gregtech/api/items/GT_BreederCell_Item.java new file mode 100644 index 0000000000..bb65a9a057 --- /dev/null +++ b/src/main/java/gregtech/api/items/GT_BreederCell_Item.java @@ -0,0 +1,124 @@ +package gregtech.api.items; + +import gregtech.api.GregTech_API; +import gregtech.api.util.GT_Utility; +import ic2.api.reactor.IReactor; +import ic2.api.reactor.IReactorComponent; +import ic2.core.IC2Potion; +import net.minecraft.entity.Entity; +import net.minecraft.entity.EntityLivingBase; +import net.minecraft.entity.player.EntityPlayer; +import net.minecraft.item.ItemStack; +import net.minecraft.util.EnumChatFormatting; +import net.minecraft.world.World; + +import java.util.List; +import java.util.function.Supplier; + +/** + * A {@link ic2.core.item.reactor.ItemReactorLithiumCell}, but can be used to produce anything! + * + * @author glee8e + */ +public class GT_BreederCell_Item extends GT_Generic_Item implements IReactorComponent { + protected final int mHeatBonusStep; + protected final int mHeatBonusMultiplier; + protected ItemStack mProduct; + + public GT_BreederCell_Item(String aUnlocalized, String aEnglish, String aEnglishTooltip, int aHeatBonusStep, int aHeatBonusMultiplier, int aRequiredPulse, Supplier<ItemStack> aProduct) { + super(aUnlocalized, aEnglish, aEnglishTooltip); + this.mHeatBonusStep = aHeatBonusStep; + this.mHeatBonusMultiplier = aHeatBonusMultiplier; + this.setMaxDamage(aRequiredPulse); + setNoRepair(); + GregTech_API.sAfterGTServerstart.add(() -> mProduct = aProduct.get()); + } + + @Override + public void onUpdate(ItemStack stack, World world, Entity entity, int slotIndex, boolean isCurrentItem) { + if ((entity instanceof EntityLivingBase)) { + EntityLivingBase entityLiving = (EntityLivingBase) entity; + if (!GregTech_API.mIC2Classic && !GT_Utility.isWearingFullRadioHazmat(entityLiving)) { + IC2Potion.radiation.applyTo(entityLiving, 20, 1); + } + } + } + + @Override + public void addAdditionalToolTips(List aList, ItemStack aStack, EntityPlayer aPlayer) { + aList.add(transItem("019", "Bath with neutron in a hot reactor")); + int rDmg = aStack.getItemDamage() * 4 / getMaxDamage(); + EnumChatFormatting color2; + switch (rDmg) { + case 0: + color2 = EnumChatFormatting.DARK_GRAY; + break; + case 1: + case 2: + color2 = EnumChatFormatting.GRAY; + break; + default: + color2 = EnumChatFormatting.WHITE; + break; + } + aList.add(String.format(transItem("020", "Progress: %s/%s"), "" + color2 + aStack.getItemDamage() + EnumChatFormatting.RESET, "" + getMaxDamage())); + if (aStack.getItemDamage() > 0) + aList.add(EnumChatFormatting.RED + transItem("021", "Radiation Hazard")); + } + + @Override + public int getItemStackLimit(ItemStack stack) { + return stack.getItemDamage() == 0 ? maxStackSize : 1; + } + + @Override + public void processChamber(IReactor reactor, ItemStack yourStack, int x, int y, boolean heatrun) { + } + + @Override + public boolean acceptUraniumPulse(IReactor reactor, ItemStack yourStack, ItemStack pulsingStack, int youX, int youY, int pulseX, int pulseY, boolean heatrun) { + if (heatrun) { + int myLevel = getNewDamage(reactor, yourStack); + if (myLevel >= getMaxDamage()) + reactor.setItemAt(youX, youY, mProduct.copy()); + else + yourStack.setItemDamage(myLevel); + } + + return true; + } + + protected int getNewDamage(IReactor reactor, ItemStack stack) { + return stack.getItemDamage() + 1 + reactor.getHeat() / mHeatBonusStep * mHeatBonusMultiplier; + } + + @Override + public boolean canStoreHeat(IReactor reactor, ItemStack yourStack, int x, int y) { + return false; + } + + @Override + public int getMaxHeat(IReactor reactor, ItemStack yourStack, int x, int y) { + return 0; + } + + @Override + public int getCurrentHeat(IReactor reactor, ItemStack yourStack, int x, int y) { + return 0; + } + + @Override + public int alterHeat(IReactor reactor, ItemStack yourStack, int x, int y, int heat) { + return heat; + } + + @Override + public float influenceExplosion(IReactor reactor, ItemStack yourStack) { + return 0.0F; + } + + @Override + public double getDurabilityForDisplay(ItemStack stack) { + return 1.0D - (double) stack.getItemDamageForDisplay() / (double) stack.getMaxDamage(); + } +} diff --git a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java index 17d3caddc6..dc1a878ab7 100644 --- a/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java +++ b/src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java @@ -1130,6 +1130,9 @@ public class GT_MachineRecipeLoader implements Runnable { GT_Values.RA.addCannerRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("UranFuel", 1), ItemList.Uraniumcell_1.get(1), null, 30, 16); GT_Values.RA.addCannerRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), GT_ModHandler.getIC2Item("MOXFuel", 1), ItemList.Moxcell_1.get(1), null, 30, 16); + // radiation manufacturing + GT_Values.RA.addMixerRecipe(GT_ModHandler.getIC2Item("fuelRod", 1), new ItemStack(Items.glowstone_dust, 9), NI, NI, Materials.Helium.getGas(250), NF, ItemList.GlowstoneCell.get(1), 30, 16); + RA.addThermalCentrifugeRecipe(ItemList.SunnariumCell.get(1), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Sunnarium, 1L), new ItemStack(Items.glowstone_dust, 2), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L), 500, 48); //Fusion tiering -T1 32768EU/t -T2 65536EU/t - T3 131073EU/t //Fusion with margin 32700 65450 131000 //Startup max 160M EU 320M EU 640M EU diff --git a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java index 599d110d97..4ee47d7af8 100644 --- a/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java +++ b/src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java @@ -7,6 +7,7 @@ import gregtech.GT_Mod; import gregtech.api.GregTech_API; import gregtech.api.enums.*; import gregtech.api.items.GT_Block_LongDistancePipe; +import gregtech.api.items.GT_BreederCell_Item; import gregtech.api.items.GT_Generic_Item; import gregtech.api.items.GT_RadioactiveCellIC_Item; import gregtech.api.metatileentity.BaseMetaPipeEntity; @@ -109,16 +110,18 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { ItemList.Reactor_Coolant_NaK_6.set(GregTech_API.constructCoolantCellItem("360k_NaK_Coolantcell", "360k NaK Coolantcell", 360000)); GT_ModHandler.addCraftingRecipe(ItemList.Reactor_Coolant_NaK_6.get(1L, new Object[0]), GT_ModHandler.RecipeBits.BUFFERED | GT_ModHandler.RecipeBits.NOT_REMOVABLE, new Object[]{"PCP", "PDP", "PCP", 'C', ItemList.Reactor_Coolant_NaK_3, 'P', OrePrefixes.plate.get(Materials.Tin), 'D', OrePrefixes.plateDense.get(Materials.Copper)}); - + ItemList.Reactor_Coolant_Sp_1.set(GregTech_API.constructCoolantCellItem("180k_Space_Coolantcell", "180k Sp Coolant Cell", 180000)); - + ItemList.Reactor_Coolant_Sp_2.set(GregTech_API.constructCoolantCellItem("360k_Space_Coolantcell", "360k Sp Coolant Cell", 360000)); - + ItemList.Reactor_Coolant_Sp_3.set(GregTech_API.constructCoolantCellItem("540k_Space_Coolantcell", "540k Sp Coolant Cell", 540000)); - + ItemList.Reactor_Coolant_Sp_6.set(GregTech_API.constructCoolantCellItem("1080k_Space_Coolantcell", "1080k Sp Coolant Cell", 1080000)); - - + + ItemList.GlowstoneCell.set(new GT_BreederCell_Item("glowstoneCell", "Glowstone Fuel Rod", "Source of sunnarium", 3000, 1, 10000, () -> ItemList.SunnariumCell.get(1))); + ItemList.SunnariumCell.set(new GT_DepletetCell_Item("sunnariumCell", "Sunnarium Fuel Rod", 1)); + if (!GregTech_API.mIC2Classic) { ItemList.neutroniumHeatCapacitor.set(GregTech_API.constructCoolantCellItem("neutroniumHeatCapacitor", "1G Neutronium Heat Capacitor", 1000000000)); @@ -128,18 +131,18 @@ public class GT_Loader_Item_Block_And_Fluid implements Runnable { ItemList.ThoriumCell_1.set(new GT_RadioactiveCellIC_Item("Thoriumcell", "Fuel Rod (Thorium)", 1, 50000, 0.4F, 0, 0.25F, ItemList.Depleted_Thorium_1.get(1, new Object[0]), false)); ItemList.ThoriumCell_2.set(new GT_RadioactiveCellIC_Item("Double_Thoriumcell", "Dual Fuel Rod (Thorium)", 2, 50000, 0.4F, 0, 0.25F, ItemList.Depleted_Thorium_2.get(1, new Object[0]), false)); ItemList.ThoriumCell_4.set(new GT_RadioactiveCellIC_Item("Quad_Thoriumcell", "Quad Fuel Rod (Thorium)", 4, 50000, 0.4F, 0, 0.25F, ItemList.Depleted_Thorium_4.get(1, new Object[0]), false)); - + GT_ModHandler.addThermalCentrifugeRecipe(ItemList.Depleted_Thorium_1.get(1, new Object[0]), 5000, new Object[]{GT_OreDictUnificator.get(OrePrefixes.dustSmall, Materials.Lutetium, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 1L)}); GT_ModHandler.addThermalCentrifugeRecipe(ItemList.Depleted_Thorium_2.get(1, new Object[0]), 5000, new Object[]{GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lutetium, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 3L)}); GT_ModHandler.addThermalCentrifugeRecipe(ItemList.Depleted_Thorium_4.get(1, new Object[0]), 5000, new Object[]{GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Lutetium, 2L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Thorium, 4L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Iron, 6L)}); - + ItemList.Depleted_Naquadah_1.set(new GT_DepletetCell_Item("NaquadahcellDep", "Fuel Rod (Depleted Naquadah)", 1)); ItemList.Depleted_Naquadah_2.set(new GT_DepletetCell_Item("Double_NaquadahcellDep", "Dual Fuel Rod (Depleted Naquadah)", 1)); ItemList.Depleted_Naquadah_4.set(new GT_DepletetCell_Item("Quad_NaquadahcellDep", "Quad Fuel Rod (Depleted Naquadah)", 1)); ItemList.NaquadahCell_1.set(new GT_RadioactiveCellIC_Item("Naquadahcell", "Fuel Rod (Naquadah)", 1, 100000, 4F, 1, 1F, ItemList.Depleted_Naquadah_1.get(1, new Object[0]), false)); ItemList.NaquadahCell_2.set(new GT_RadioactiveCellIC_Item("Double_Naquadahcell", "Dual Fuel Rod (Naquadah)", 2, 100000, 4F, 1, 1F, ItemList.Depleted_Naquadah_2.get(1, new Object[0]), false)); ItemList.NaquadahCell_4.set(new GT_RadioactiveCellIC_Item("Quad_Naquadahcell", "Quad Fuel Rod (Naquadah)", 4, 100000, 4F, 1, 1F, ItemList.Depleted_Naquadah_4.get(1, new Object[0]), false)); - + GT_Values.RA.addCentrifugeRecipe(ItemList.Depleted_Naquadah_1.get(1), null,null,null, GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 1L), GT_OreDictUnificator.get(OrePrefixes.dust, Materials.Naquadah, 1L), diff --git a/src/main/resources/assets/gregtech/textures/items/gt.glowstoneCell.png b/src/main/resources/assets/gregtech/textures/items/gt.glowstoneCell.png Binary files differnew file mode 100644 index 0000000000..78298a61c5 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.glowstoneCell.png diff --git a/src/main/resources/assets/gregtech/textures/items/gt.sunnariumCell.png b/src/main/resources/assets/gregtech/textures/items/gt.sunnariumCell.png Binary files differnew file mode 100644 index 0000000000..1d813f1983 --- /dev/null +++ b/src/main/resources/assets/gregtech/textures/items/gt.sunnariumCell.png |