Skip to content

Commit b6722d1

Browse files
committed
Fix 64a converter renderer
1 parent 48a96d0 commit b6722d1

File tree

2 files changed

+107
-10
lines changed

2 files changed

+107
-10
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
package net.neganote.gtutilities.client.renderer.machine;
2+
3+
import com.gregtechceu.gtceu.GTCEu;
4+
import com.gregtechceu.gtceu.api.machine.MachineDefinition;
5+
import com.gregtechceu.gtceu.api.machine.MetaMachine;
6+
import com.gregtechceu.gtceu.client.renderer.machine.OverlayEnergyIORenderer;
7+
import com.gregtechceu.gtceu.client.renderer.machine.TieredHullMachineRenderer;
8+
import com.gregtechceu.gtceu.client.util.StaticFaceBakery;
9+
import com.gregtechceu.gtceu.common.machine.electric.ConverterMachine;
10+
11+
import com.lowdragmc.lowdraglib.client.model.ModelFactory;
12+
13+
import net.minecraft.client.renderer.block.model.BakedQuad;
14+
import net.minecraft.client.renderer.texture.TextureAtlas;
15+
import net.minecraft.client.resources.model.ModelState;
16+
import net.minecraft.core.Direction;
17+
import net.minecraft.resources.ResourceLocation;
18+
import net.minecraft.util.RandomSource;
19+
import net.minecraftforge.api.distmarker.Dist;
20+
import net.minecraftforge.api.distmarker.OnlyIn;
21+
22+
import org.jetbrains.annotations.Nullable;
23+
24+
import java.util.List;
25+
import java.util.function.Consumer;
26+
27+
import static com.gregtechceu.gtceu.client.renderer.machine.OverlayEnergyIORenderer.*;
28+
import static com.gregtechceu.gtceu.client.renderer.machine.OverlayEnergyIORenderer.ENERGY_OUT_1A;
29+
30+
// Copied wholesale and slightly modified from GTm
31+
public class UtilConverterRenderer extends TieredHullMachineRenderer {
32+
33+
private static final ResourceLocation CONVERTER_FE_IN = GTCEu.id("block/overlay/converter/converter_native_in");
34+
private static final ResourceLocation CONVERTER_FE_OUT = GTCEu.id("block/overlay/converter/converter_native_out");
35+
private final OverlayEnergyIORenderer ENERGY_IN;
36+
private final OverlayEnergyIORenderer ENERGY_OUT;
37+
38+
public UtilConverterRenderer(int tier, int baseAmp) {
39+
super(tier, GTCEu.id("block/machine/hull_machine"));
40+
switch (baseAmp) {
41+
case 4:
42+
ENERGY_IN = ENERGY_IN_4A;
43+
ENERGY_OUT = ENERGY_OUT_4A;
44+
break;
45+
case 8:
46+
ENERGY_IN = ENERGY_IN_8A;
47+
ENERGY_OUT = ENERGY_OUT_8A;
48+
break;
49+
case 16:
50+
ENERGY_IN = ENERGY_IN_16A;
51+
ENERGY_OUT = ENERGY_OUT_16A;
52+
break;
53+
case 64:
54+
ENERGY_IN = ENERGY_IN_64A;
55+
ENERGY_OUT = ENERGY_OUT_64A;
56+
break;
57+
default:
58+
ENERGY_IN = ENERGY_IN_1A;
59+
ENERGY_OUT = ENERGY_OUT_1A;
60+
break;
61+
}
62+
}
63+
64+
@Override
65+
@OnlyIn(Dist.CLIENT)
66+
public void renderMachine(List<BakedQuad> quads, MachineDefinition definition, @Nullable MetaMachine machine,
67+
Direction frontFacing, @Nullable Direction side, RandomSource rand, Direction modelFacing,
68+
ModelState modelState) {
69+
super.renderMachine(quads, definition, machine, frontFacing, side, rand, modelFacing, modelState);
70+
var isFeToEu = false;
71+
if (machine instanceof ConverterMachine converter) {
72+
isFeToEu = converter.isFeToEu();
73+
}
74+
if (side == frontFacing && modelFacing != null) {
75+
if (isFeToEu) {
76+
ENERGY_OUT.renderOverlay(quads, modelFacing, modelState, 2);
77+
} else {
78+
quads.add(StaticFaceBakery.bakeFace(modelFacing, ModelFactory.getBlockSprite(CONVERTER_FE_OUT),
79+
modelState, -1));
80+
}
81+
} else if (side != null && modelFacing != null) {
82+
if (isFeToEu) {
83+
quads.add(StaticFaceBakery.bakeFace(modelFacing, ModelFactory.getBlockSprite(CONVERTER_FE_IN),
84+
modelState, -1));
85+
} else {
86+
ENERGY_IN.renderOverlay(quads, modelFacing, modelState, 2);
87+
}
88+
}
89+
}
90+
91+
@Override
92+
@SuppressWarnings("all")
93+
public void onPrepareTextureAtlas(ResourceLocation atlasName, Consumer<ResourceLocation> register) {
94+
super.onPrepareTextureAtlas(atlasName, register);
95+
if (atlasName.equals(TextureAtlas.LOCATION_BLOCKS)) {
96+
register.accept(CONVERTER_FE_IN);
97+
register.accept(CONVERTER_FE_OUT);
98+
}
99+
}
100+
}

src/main/java/net/neganote/gtutilities/common/machine/UtilMachines.java

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
import com.gregtechceu.gtceu.api.machine.multiblock.CleanroomType;
1010
import com.gregtechceu.gtceu.api.machine.multiblock.PartAbility;
1111
import com.gregtechceu.gtceu.api.registry.registrate.MachineBuilder;
12-
import com.gregtechceu.gtceu.client.renderer.machine.ConverterRenderer;
1312
import com.gregtechceu.gtceu.client.renderer.machine.MaintenanceHatchPartRenderer;
1413
import com.gregtechceu.gtceu.common.machine.electric.ConverterMachine;
1514
import com.gregtechceu.gtceu.common.machine.multiblock.part.CleaningMaintenanceHatchPartMachine;
1615

1716
import net.minecraft.ChatFormatting;
1817
import net.minecraft.network.chat.Component;
1918
import net.neganote.gtutilities.GregTechModernUtilities;
19+
import net.neganote.gtutilities.client.renderer.machine.UtilConverterRenderer;
2020

2121
import java.util.Locale;
2222
import java.util.function.BiFunction;
@@ -42,15 +42,12 @@ public class UtilMachines {
4242
.tooltips(Component.translatable("gtceu.universal.disabled"),
4343
Component.translatable("gtceu.machine.maintenance_hatch_cleanroom_auto.tooltip.0"),
4444
Component.translatable("gtceu.machine.maintenance_hatch_cleanroom_auto.tooltip.1"))
45-
.tooltipBuilder((stack, tooltips) -> {
46-
tooltips.add(Component.literal(" ").append(Component
47-
.translatable(CleanroomType.STERILE_CLEANROOM.getTranslationKey())
48-
.withStyle(ChatFormatting.GREEN)));
49-
})
45+
.tooltipBuilder((stack, tooltips) -> tooltips.add(Component.literal(" ").append(Component
46+
.translatable(CleanroomType.STERILE_CLEANROOM.getTranslationKey())
47+
.withStyle(ChatFormatting.GREEN))))
5048
.renderer(() -> new MaintenanceHatchPartRenderer(GTValues.UHV,
51-
GregTechModernUtilities.id("block/machine/part/maintenance.sterile_cleaning"))) // Tier can always
52-
// be
53-
// changed later
49+
GregTechModernUtilities.id("block/machine/part/maintenance.sterile_cleaning")))
50+
// Tier can always be changed later
5451
.register();
5552

5653
// Copied from GTMachineUtils
@@ -61,7 +58,7 @@ public static MachineDefinition[] registerConverter(int amperage) {
6158
.rotationState(RotationState.ALL)
6259
.langValue("%s %s§eA§r Energy Converter".formatted(VCF[tier] + VN[tier] + ChatFormatting.RESET,
6360
amperage))
64-
.renderer(() -> new ConverterRenderer(tier, amperage))
61+
.renderer(() -> new UtilConverterRenderer(tier, amperage))
6562
.tooltips(Component.translatable("gtceu.machine.energy_converter.description"),
6663
Component.translatable("gtceu.machine.energy_converter.tooltip_tool_usage"),
6764
Component.translatable("gtceu.machine.energy_converter.tooltip_conversion_native",

0 commit comments

Comments
 (0)