aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/main/java/gregtech/api/enums/ItemList.java3
-rw-r--r--src/main/java/gregtech/api/items/GT_BreederCell_Item.java124
-rw-r--r--src/main/java/gregtech/loaders/postload/GT_MachineRecipeLoader.java3
-rw-r--r--src/main/java/gregtech/loaders/preload/GT_Loader_Item_Block_And_Fluid.java21
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.glowstoneCell.pngbin0 -> 1842 bytes
-rw-r--r--src/main/resources/assets/gregtech/textures/items/gt.sunnariumCell.pngbin0 -> 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
new file mode 100644
index 0000000000..78298a61c5
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.glowstoneCell.png
Binary files differ
diff --git a/src/main/resources/assets/gregtech/textures/items/gt.sunnariumCell.png b/src/main/resources/assets/gregtech/textures/items/gt.sunnariumCell.png
new file mode 100644
index 0000000000..1d813f1983
--- /dev/null
+++ b/src/main/resources/assets/gregtech/textures/items/gt.sunnariumCell.png
Binary files differ