Skip to content

Commit aca7196

Browse files
committed
added FuelType record
1 parent 1d970b2 commit aca7196

File tree

4 files changed

+32
-45
lines changed

4 files changed

+32
-45
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package org.gtreimagined.gt4r.reactor.components;
2+
3+
import org.gtreimagined.gt4r.reactor.Config;
4+
5+
public record FuelType(double energyMult, double heatMult, int pulsesPerTick, boolean isMox, double moxHeatCoefficient, double moxEUCoefficient) {
6+
7+
public static final FuelType URANIUM = new FuelType(1.0, 4.0, 1, false);
8+
9+
public FuelType(double energyMult, double heatMult, int pulsesPerTick, boolean isMox){
10+
this(energyMult, heatMult, pulsesPerTick, isMox, 2.0, Config.MOX_EU_COEFFICIENT);
11+
}
12+
}

src/main/java/org/gtreimagined/gt4r/reactor/components/adapters/FuelRodAdapter.java

+7-7
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,8 @@ public ItemStack getItemStack() {
4242
protected double getEUMultiplier() {
4343
double mult = Config.ROD_EU_MULTIPLIER;
4444

45-
if (fuelRod.isMox(itemStack)) {
46-
mult *= 1 + fuelRod.getMoxEUCoefficient(itemStack) * reactor.getHeatRatio();
45+
if (fuelRod.getFuelType().isMox()) {
46+
mult *= 1 + fuelRod.getFuelType().moxEUCoefficient() * reactor.getHeatRatio();
4747
}
4848

4949
return mult;
@@ -52,8 +52,8 @@ protected double getEUMultiplier() {
5252
protected double getHeatMultiplier() {
5353
double mult = Config.ROD_HU_MULTIPLIER;
5454

55-
if (fuelRod.isMox(itemStack) && reactor.isFluid() && reactor.getHeatRatio() >= 0.5) {
56-
mult *= fuelRod.getMoxHeatCoefficient(itemStack);
55+
if (fuelRod.getFuelType().isMox() && reactor.isFluid() && reactor.getHeatRatio() >= 0.5) {
56+
mult *= fuelRod.getFuelType().moxHeatCoefficient();
5757
}
5858

5959
return mult;
@@ -71,7 +71,7 @@ public void onHeatTick() {
7171
}
7272

7373
int pulses = this.getPulseCount();
74-
int heat = (int) (fuelRod.getHeatMult(itemStack) * fuelRod.getRodCount(itemStack)
74+
int heat = (int) (fuelRod.getFuelType().heatMult() * fuelRod.getRodCount(itemStack)
7575
* getHeatMultiplier()
7676
* pulses
7777
* (pulses + 1)
@@ -111,7 +111,7 @@ public void onEnergyTick() {
111111
}
112112

113113
int pulses = this.getPulseCount();
114-
double energy = fuelRod.getEnergyMult(itemStack) * fuelRod.getRodCount(itemStack) * getEUMultiplier() * pulses;
114+
double energy = fuelRod.getFuelType().energyMult() * fuelRod.getRodCount(itemStack) * getEUMultiplier() * pulses;
115115

116116
reactor.addEU(energy);
117117
fuelRod.applyDamage(itemStack, 1);
@@ -128,7 +128,7 @@ public int getFuelRodCount() {
128128
}
129129

130130
private int getPulseCount() {
131-
int pulses = 1 + this.getFuelRodCount() / 2;
131+
int pulses = (1 + (this.getFuelRodCount() / 2)) * this.fuelRod.getFuelType().pulsesPerTick();
132132

133133
for (var dir : InventoryDirection.values()) {
134134
int x2 = dir.offsetX(x);

src/main/java/org/gtreimagined/gt4r/reactor/item/foreign/ForeignFuelRodItem.java

+7-20
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import net.minecraft.world.item.Item;
77
import net.minecraft.world.item.ItemStack;
8+
import org.gtreimagined.gt4r.reactor.components.FuelType;
89
import org.gtreimagined.gt4r.reactor.components.IComponentAdapter;
910
import org.gtreimagined.gt4r.reactor.components.IComponentAdapterFactory;
1011
import org.gtreimagined.gt4r.reactor.components.IReactorGrid;
@@ -15,22 +16,18 @@ public class ForeignFuelRodItem implements IBasicFuelRod, IComponentAdapterFacto
1516

1617
@Nonnull
1718
protected final Item item;
18-
protected final double energyMult;
19-
protected final double heatMult;
19+
protected final FuelType fuelType;
2020
protected final int rodCount;
21-
protected final boolean isMox;
2221
protected final int maxHealth;
2322

2423
@Nullable
2524
protected ItemStack product;
2625

27-
public ForeignFuelRodItem(@Nonnull Item item, double energyMult, double heatMult, int rodCount, boolean isMox,
28-
int maxHealth) {
26+
public ForeignFuelRodItem(@Nonnull Item item, FuelType fuelType, int rodCount,
27+
int maxHealth) {
2928
this.item = item;
30-
this.energyMult = energyMult;
31-
this.heatMult = heatMult;
29+
this.fuelType = fuelType;
3230
this.rodCount = rodCount;
33-
this.isMox = isMox;
3431
this.maxHealth = maxHealth;
3532
}
3633

@@ -50,25 +47,15 @@ public boolean canAdaptItem(@Nonnull ItemStack itemStack) {
5047
}
5148

5249
@Override
53-
public double getEnergyMult(@Nonnull ItemStack itemStack) {
54-
return energyMult;
55-
}
56-
57-
@Override
58-
public double getHeatMult(@Nonnull ItemStack itemStack) {
59-
return heatMult;
50+
public FuelType getFuelType() {
51+
return fuelType;
6052
}
6153

6254
@Override
6355
public int getRodCount(@Nonnull ItemStack itemStack) {
6456
return rodCount;
6557
}
6658

67-
@Override
68-
public boolean isMox(@Nonnull ItemStack itemStack) {
69-
return isMox;
70-
}
71-
7259
@Override
7360
public int getRemainingHealth(@Nonnull ItemStack itemStack) {
7461
return maxHealth - itemStack.getDamageValue();

src/main/java/org/gtreimagined/gt4r/reactor/item/interfaces/IBasicFuelRod.java

+6-18
Original file line numberDiff line numberDiff line change
@@ -5,29 +5,17 @@
55

66
import net.minecraft.world.item.ItemStack;
77
import org.gtreimagined.gt4r.reactor.Config;
8+
import org.gtreimagined.gt4r.reactor.components.FuelType;
89

910
public interface IBasicFuelRod {
1011

11-
public double getEnergyMult(@Nonnull ItemStack itemStack);
12+
FuelType getFuelType();
1213

13-
public double getHeatMult(@Nonnull ItemStack itemStack);
14+
int getRodCount(@Nonnull ItemStack itemStack);
1415

15-
public int getRodCount(@Nonnull ItemStack itemStack);
16+
int getRemainingHealth(@Nonnull ItemStack itemStack);
1617

17-
public boolean isMox(@Nonnull ItemStack itemStack);
18-
19-
public default double getMoxHeatCoefficient(@Nonnull ItemStack itemStack) {
20-
return 2.0;
21-
}
22-
23-
public default double getMoxEUCoefficient(@Nonnull ItemStack itemStack) {
24-
return Config.MOX_EU_COEFFICIENT;
25-
}
26-
27-
public int getRemainingHealth(@Nonnull ItemStack itemStack);
28-
29-
public void applyDamage(@Nonnull ItemStack itemStack, int damage);
30-
31-
public @Nullable ItemStack getProduct(@Nonnull ItemStack itemStack);
18+
void applyDamage(@Nonnull ItemStack itemStack, int damage);
3219

20+
@Nullable ItemStack getProduct(@Nonnull ItemStack itemStack);
3321
}

0 commit comments

Comments
 (0)