Skip to content

Commit ae65dfe

Browse files
authored
High-tier fixes (#2497)
1 parent 32d2c2d commit ae65dfe

25 files changed

+220
-56
lines changed

src/main/java/gregtech/api/GTValues.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -122,11 +122,12 @@ public class GTValues {
122122
* The short names for the voltages, formatted for text
123123
*/
124124
public static final String[] VNF = new String[] {
125-
DARK_GRAY + "ULV", GRAY + "LV", AQUA + "MV",
126-
GOLD + "HV", DARK_PURPLE + "EV", DARK_BLUE + "IV",
127-
LIGHT_PURPLE + "LuV", RED + "ZPM", DARK_AQUA + "UV",
128-
DARK_RED + "UHV", GREEN + "UEV", DARK_GREEN + "UIV",
129-
YELLOW + "UXV", BLUE + "OpV", RED.toString() + BOLD + "MAX" };
125+
RED + "ULV", GRAY + "LV", GOLD + "MV",
126+
YELLOW + "HV", DARK_GRAY + "EV", WHITE + "IV",
127+
LIGHT_PURPLE + "LuV", AQUA + "ZPM", DARK_GREEN + "UV",
128+
DARK_RED + "UHV", DARK_BLUE + "UEV", DARK_GREEN.toString() + BOLD + "UIV",
129+
DARK_PURPLE.toString() + BOLD + "UXV", DARK_RED.toString() + BOLD + "OpV",
130+
RED.toString() + BOLD + "MAX" };
130131

131132
/**
132133
* The short names for the voltages, up to max Long, formatted for text
@@ -146,7 +147,7 @@ public class GTValues {
146147
* Color values for the voltages
147148
*/
148149
public static final int[] VC = new int[] { 0xC80000, 0xDCDCDC, 0xFF6400, 0xFFFF1E, 0x808080, 0xF0F0F5, 0xE99797,
149-
0x7EC3C4, 0x7EB07E, 0xBF74C0, 0x0B5CFE, 0x914E91, 0x488748, 0x8C0000, 0x2828F5 };
150+
0x7EC3C4, 0x7EB07E, 0xBF74C0, 0x0B5CFE, 0x488748, 0x914E91, 0x8C0000, 0x2828F5 };
150151

151152
/**
152153
* The long names for the voltages

src/main/java/gregtech/common/metatileentities/MetaTileEntities.java

Lines changed: 65 additions & 40 deletions
Large diffs are not rendered by default.

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityEnergyHatch.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ public boolean canRenderFrontFaceX() {
177177
@Override
178178
public void getSubItems(CreativeTabs creativeTab, NonNullList<ItemStack> subItems) {
179179
// override here is gross, but keeps things in order despite
180-
// IDs being out of order, due to EV 4A hatches being added later
180+
// IDs being out of order, due to EV 4A and UEV+ 4A+ hatches being added later
181181
if (this == MetaTileEntities.ENERGY_INPUT_HATCH[0]) {
182182
for (MetaTileEntityEnergyHatch hatch : MetaTileEntities.ENERGY_INPUT_HATCH) {
183183
if (hatch != null) subItems.add(hatch.getStackForm());
@@ -203,7 +203,11 @@ public void getSubItems(CreativeTabs creativeTab, NonNullList<ItemStack> subItem
203203
for (MetaTileEntityEnergyHatch hatch : MetaTileEntities.SUBSTATION_ENERGY_OUTPUT_HATCH) {
204204
if (hatch != null) subItems.add(hatch.getStackForm());
205205
}
206-
}
206+
} else if (this.getClass() != MetaTileEntityEnergyHatch.class &&
207+
this.getClass() != MetaTileEntitySubstationEnergyHatch.class) {
208+
// let subclasses fall through this override
209+
super.getSubItems(creativeTab, subItems);
210+
}
207211
}
208212

209213
@Override

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityFluidHatch.java

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,17 @@
1313
import gregtech.api.mui.GTGuis;
1414
import gregtech.client.renderer.texture.Textures;
1515
import gregtech.client.renderer.texture.cube.SimpleOverlayRenderer;
16+
import gregtech.common.metatileentities.MetaTileEntities;
1617
import gregtech.common.metatileentities.storage.MetaTileEntityQuantumTank;
1718
import gregtech.common.mui.widget.GTFluidSlot;
1819

1920
import net.minecraft.client.resources.I18n;
21+
import net.minecraft.creativetab.CreativeTabs;
2022
import net.minecraft.item.ItemStack;
2123
import net.minecraft.nbt.NBTTagCompound;
2224
import net.minecraft.network.PacketBuffer;
2325
import net.minecraft.util.EnumFacing;
26+
import net.minecraft.util.NonNullList;
2427
import net.minecraft.util.ResourceLocation;
2528
import net.minecraft.world.World;
2629
import net.minecraftforge.common.capabilities.Capability;
@@ -185,7 +188,7 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation,
185188
}
186189

187190
protected int getInventorySize() {
188-
return INITIAL_INVENTORY_SIZE * (1 << Math.min(9, getTier()));
191+
return INITIAL_INVENTORY_SIZE * Math.min(Integer.MAX_VALUE, 1 << getTier());
189192
}
190193

191194
@Override
@@ -338,6 +341,21 @@ private void setLocked(boolean locked) {
338341
fluidTank.onContentsChanged();
339342
}
340343

344+
@Override
345+
public void getSubItems(CreativeTabs creativeTab, NonNullList<ItemStack> subItems) {
346+
if (this == MetaTileEntities.FLUID_IMPORT_HATCH[0]) {
347+
for (var hatch : MetaTileEntities.FLUID_IMPORT_HATCH) {
348+
if (hatch != null) subItems.add(hatch.getStackForm());
349+
}
350+
for (var hatch : MetaTileEntities.FLUID_EXPORT_HATCH) {
351+
if (hatch != null) subItems.add(hatch.getStackForm());
352+
}
353+
} else if (this.getClass() != MetaTileEntityFluidHatch.class) {
354+
// let subclasses fall through this override
355+
super.getSubItems(creativeTab, subItems);
356+
}
357+
}
358+
341359
protected class HatchFluidTank extends NotifiableFluidTank implements IFilteredFluidContainer, IFilter<FluidStack> {
342360

343361
public HatchFluidTank(int capacity, MetaTileEntity entityToNotify, boolean isExport) {

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityItemBus.java

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package gregtech.common.metatileentities.multi.multiblockpart;
22

3+
import gregtech.api.GTValues;
34
import gregtech.api.capability.*;
45
import gregtech.api.capability.impl.GhostCircuitItemStackHandler;
56
import gregtech.api.capability.impl.ItemHandlerList;
@@ -16,14 +17,17 @@
1617
import gregtech.api.util.GTHashMaps;
1718
import gregtech.client.renderer.texture.Textures;
1819
import gregtech.client.renderer.texture.cube.SimpleOverlayRenderer;
20+
import gregtech.common.metatileentities.MetaTileEntities;
1921

2022
import net.minecraft.client.resources.I18n;
23+
import net.minecraft.creativetab.CreativeTabs;
2124
import net.minecraft.entity.player.EntityPlayer;
2225
import net.minecraft.item.ItemStack;
2326
import net.minecraft.nbt.NBTTagCompound;
2427
import net.minecraft.network.PacketBuffer;
2528
import net.minecraft.util.EnumFacing;
2629
import net.minecraft.util.EnumHand;
30+
import net.minecraft.util.NonNullList;
2731
import net.minecraft.util.ResourceLocation;
2832
import net.minecraft.util.text.TextComponentTranslation;
2933
import net.minecraft.world.World;
@@ -180,7 +184,7 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation,
180184
}
181185

182186
private int getInventorySize() {
183-
int sizeRoot = 1 + Math.min(9, getTier());
187+
int sizeRoot = 1 + Math.min(GTValues.UHV, getTier());
184188
return sizeRoot * sizeRoot;
185189
}
186190

@@ -453,4 +457,21 @@ public void addToolUsages(ItemStack stack, @Nullable World world, List<String> t
453457
tooltip.add(I18n.format("gregtech.tool_action.wrench.set_facing"));
454458
super.addToolUsages(stack, world, tooltip, advanced);
455459
}
460+
461+
@Override
462+
public void getSubItems(CreativeTabs creativeTab, NonNullList<ItemStack> subItems) {
463+
// override here is gross, but keeps things in order despite
464+
// IDs being out of order, due to UEV+ being added later
465+
if (this == MetaTileEntities.ITEM_IMPORT_BUS[0]) {
466+
for (var hatch : MetaTileEntities.ITEM_IMPORT_BUS) {
467+
if (hatch != null) subItems.add(hatch.getStackForm());
468+
}
469+
for (var hatch : MetaTileEntities.ITEM_EXPORT_BUS) {
470+
if (hatch != null) subItems.add(hatch.getStackForm());
471+
}
472+
} else if (this.getClass() != MetaTileEntityItemBus.class) {
473+
// let subclasses fall through this override
474+
super.getSubItems(creativeTab, subItems);
475+
}
476+
}
456477
}

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityLaserHatch.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import java.util.List;
3030

3131
import static gregtech.api.GTValues.V;
32-
import static gregtech.api.GTValues.VN;
32+
import static gregtech.api.GTValues.VNF;
3333

3434
public class MetaTileEntityLaserHatch extends MetaTileEntityMultiblockPart
3535
implements IMultiblockAbilityPart<ILaserContainer>, IDataInfoProvider {
@@ -95,10 +95,10 @@ public void addInformation(ItemStack stack, @Nullable World world, @NotNull List
9595
tooltip.add(I18n.format("gregtech.machine.laser_hatch.tooltip2"));
9696

9797
if (isOutput) {
98-
tooltip.add(I18n.format("gregtech.universal.tooltip.voltage_out", V[tier], VN[tier]));
98+
tooltip.add(I18n.format("gregtech.universal.tooltip.voltage_out", V[tier], VNF[tier]));
9999
tooltip.add(I18n.format("gregtech.universal.tooltip.amperage_out_till", amperage));
100100
} else {
101-
tooltip.add(I18n.format("gregtech.universal.tooltip.voltage_in", V[tier], VN[tier]));
101+
tooltip.add(I18n.format("gregtech.universal.tooltip.voltage_in", V[tier], VNF[tier]));
102102
tooltip.add(I18n.format("gregtech.universal.tooltip.amperage_in_till", amperage));
103103
}
104104
tooltip.add(I18n.format("gregtech.universal.tooltip.energy_storage_capacity", buffer.getEnergyCapacity()));

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMufflerHatch.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public class MetaTileEntityMufflerHatch extends MetaTileEntityMultiblockPart imp
5656

5757
public MetaTileEntityMufflerHatch(ResourceLocation metaTileEntityId, int tier) {
5858
super(metaTileEntityId, tier);
59-
this.recoveryChance = Math.max(1, tier * 10);
59+
this.recoveryChance = (int) Math.ceil((tier - 1.0f) / 8 * 100);
6060
this.inventory = new GTItemStackHandler(this, (int) Math.pow(tier + 1, 2));
6161
this.frontFaceFree = false;
6262
}

src/main/java/gregtech/common/metatileentities/multi/multiblockpart/MetaTileEntityMultiFluidHatch.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package gregtech.common.metatileentities.multi.multiblockpart;
22

3-
import gregtech.api.GTValues;
43
import gregtech.api.capability.GregtechDataCodes;
54
import gregtech.api.capability.GregtechTileCapabilities;
65
import gregtech.api.capability.IControllable;
@@ -13,13 +12,16 @@
1312
import gregtech.api.mui.GTGuis;
1413
import gregtech.client.renderer.texture.Textures;
1514
import gregtech.client.renderer.texture.cube.SimpleOverlayRenderer;
15+
import gregtech.common.metatileentities.MetaTileEntities;
1616
import gregtech.common.mui.widget.GTFluidSlot;
1717

1818
import net.minecraft.client.resources.I18n;
19+
import net.minecraft.creativetab.CreativeTabs;
1920
import net.minecraft.item.ItemStack;
2021
import net.minecraft.nbt.NBTTagCompound;
2122
import net.minecraft.network.PacketBuffer;
2223
import net.minecraft.util.EnumFacing;
24+
import net.minecraft.util.NonNullList;
2325
import net.minecraft.util.ResourceLocation;
2426
import net.minecraft.world.World;
2527
import net.minecraftforge.common.capabilities.Capability;
@@ -59,7 +61,7 @@ public MetaTileEntityMultiFluidHatch(ResourceLocation metaTileEntityId, int tier
5961
this.numSlots = numSlots;
6062
// Quadruple: 1/4th the capacity of a fluid hatch of this tier
6163
// Nonuple: 1/8th the capacity of a fluid hatch of this tier
62-
this.tankSize = (BASE_TANK_SIZE * (1 << Math.min(GTValues.UHV, tier))) / (numSlots == 4 ? 4 : 8);
64+
this.tankSize = BASE_TANK_SIZE * (1 << tier) / (numSlots == 4 ? 4 : 8);
6365
FluidTank[] fluidsHandlers = new FluidTank[numSlots];
6466
for (int i = 0; i < fluidsHandlers.length; i++) {
6567
fluidsHandlers[i] = new NotifiableFluidTank(tankSize, this, isExportHatch);
@@ -227,4 +229,27 @@ public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager guiSyncManager)
227229
.coverChildren())
228230
.bindPlayerInventory();
229231
}
232+
233+
@Override
234+
public void getSubItems(CreativeTabs creativeTab, NonNullList<ItemStack> subItems) {
235+
// override here is gross, but keeps things in order despite
236+
// IDs being out of order, due to IV+ hatches being added later
237+
if (this == MetaTileEntities.QUADRUPLE_IMPORT_HATCH[0]) {
238+
for (var hatch : MetaTileEntities.QUADRUPLE_IMPORT_HATCH) {
239+
if (hatch != null) subItems.add(hatch.getStackForm());
240+
}
241+
for (var hatch : MetaTileEntities.QUADRUPLE_EXPORT_HATCH) {
242+
if (hatch != null) subItems.add(hatch.getStackForm());
243+
}
244+
for (var hatch : MetaTileEntities.NONUPLE_IMPORT_HATCH) {
245+
if (hatch != null) subItems.add(hatch.getStackForm());
246+
}
247+
for (var hatch : MetaTileEntities.NONUPLE_EXPORT_HATCH) {
248+
if (hatch != null) subItems.add(hatch.getStackForm());
249+
}
250+
} else if (this.getClass() != MetaTileEntityMultiFluidHatch.class) {
251+
// let subclasses fall through this override
252+
super.getSubItems(creativeTab, subItems);
253+
}
254+
}
230255
}

0 commit comments

Comments
 (0)