aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gregtech/api/items
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/gregtech/api/items')
-rw-r--r--src/main/java/gregtech/api/items/GT_BreederCell_Item.java25
-rw-r--r--src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java11
2 files changed, 32 insertions, 4 deletions
diff --git a/src/main/java/gregtech/api/items/GT_BreederCell_Item.java b/src/main/java/gregtech/api/items/GT_BreederCell_Item.java
index 93bd95086f..05b73d730c 100644
--- a/src/main/java/gregtech/api/items/GT_BreederCell_Item.java
+++ b/src/main/java/gregtech/api/items/GT_BreederCell_Item.java
@@ -3,6 +3,7 @@ package gregtech.api.items;
import static gregtech.api.util.GT_Utility.formatNumbers;
import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
import gregtech.api.util.GT_Utility;
import ic2.api.reactor.IReactor;
import ic2.api.reactor.IReactorComponent;
@@ -25,6 +26,9 @@ public class GT_BreederCell_Item extends GT_Generic_Item implements IReactorComp
protected final int mHeatBonusStep;
protected final int mHeatBonusMultiplier;
protected ItemStack mProduct;
+ protected boolean deflector = false;
+ protected boolean hidden = false;
+ protected boolean neiAdded = false;
public GT_BreederCell_Item(
String aUnlocalized,
@@ -39,7 +43,24 @@ public class GT_BreederCell_Item extends GT_Generic_Item implements IReactorComp
this.mHeatBonusMultiplier = aHeatBonusMultiplier;
this.setMaxDamage(aRequiredPulse);
setNoRepair();
- GregTech_API.sAfterGTServerstart.add(() -> mProduct = aProduct.get());
+ GregTech_API.sAfterGTPostload.add(() -> {
+ mProduct = aProduct.get();
+ if (!hidden && !neiAdded) {
+ GT_Values.RA.addIC2ReactorBreederCell(
+ new ItemStack(this), mProduct, deflector, mHeatBonusStep, mHeatBonusMultiplier, getMaxDamage());
+ neiAdded = true;
+ }
+ });
+ }
+
+ public GT_BreederCell_Item setDeflector() {
+ deflector = true;
+ return this;
+ }
+
+ public GT_BreederCell_Item setHidden() {
+ hidden = true;
+ return this;
}
@Override
@@ -100,7 +121,7 @@ public class GT_BreederCell_Item extends GT_Generic_Item implements IReactorComp
else yourStack.setItemDamage(myLevel);
}
- return false;
+ return deflector;
}
protected int getNewDamage(IReactor reactor, ItemStack stack) {
diff --git a/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java b/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java
index 894c03db90..95c584fd6a 100644
--- a/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java
+++ b/src/main/java/gregtech/api/items/GT_RadioactiveCellIC_Item.java
@@ -1,6 +1,7 @@
package gregtech.api.items;
import gregtech.api.GregTech_API;
+import gregtech.api.enums.GT_Values;
import gregtech.api.util.GT_Utility;
import ic2.api.reactor.IReactor;
import ic2.api.reactor.IReactorComponent;
@@ -12,6 +13,7 @@ import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
public class GT_RadioactiveCellIC_Item extends GT_RadioactiveCell_Item implements IReactorComponent {
+ private static final int MYSTERIOUS_MULTIPLIER_HEAT = 4;
public final int numberOfCells;
public final float sEnergy;
public final int sRadiation;
@@ -38,6 +40,11 @@ public class GT_RadioactiveCellIC_Item extends GT_RadioactiveCell_Item implement
this.sHeat = aHeat;
this.sDepleted = aDepleted;
this.sMox = aMox;
+ if (aDepleted != null && aEnergy > 0 && aHeat > 0) {
+ // avoid adding depleted cells to recipe map
+ GT_Values.RA.addIC2ReactorFuelCell(
+ new ItemStack(this), aDepleted, aMox, aHeat * MYSTERIOUS_MULTIPLIER_HEAT, aEnergy, aCellcount);
+ }
}
private static int checkPulseable(IReactor reactor, int x, int y, ItemStack me, int mex, int mey, boolean heatrun) {
@@ -74,11 +81,11 @@ public class GT_RadioactiveCellIC_Item extends GT_RadioactiveCell_Item implement
// int heat = sumUp(pulses) * 4;
- int heat = triangularNumber(pulses) * 4;
+ int heat = triangularNumber(pulses) * MYSTERIOUS_MULTIPLIER_HEAT;
heat = getFinalHeat(reactor, yourStack, x, y, heat);
- ArrayList<ItemStackCoord> heatAcceptors = new ArrayList();
+ ArrayList<ItemStackCoord> heatAcceptors = new ArrayList<>();
checkHeatAcceptor(reactor, x - 1, y, heatAcceptors);
checkHeatAcceptor(reactor, x + 1, y, heatAcceptors);
checkHeatAcceptor(reactor, x, y - 1, heatAcceptors);