Skip to content

Commit 44b1b7f

Browse files
committed
clean up duplicated code in energy hatch
1 parent 0163764 commit 44b1b7f

File tree

2 files changed

+14
-60
lines changed

2 files changed

+14
-60
lines changed

src/main/java/gregtech/common/metatileentities/electric/multiblockpart/MetaTileEntityAdjustableEnergyHatch.java

+8-58
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,9 @@
55
import codechicken.lib.render.pipeline.IVertexOperation;
66
import codechicken.lib.vec.Matrix4;
77
import gregtech.api.GTValues;
8-
import gregtech.api.capability.IEnergyContainer;
98
import gregtech.api.capability.impl.EnergyContainerHandler;
10-
import gregtech.api.gui.ModularUI;
119
import gregtech.api.metatileentity.MetaTileEntity;
1210
import gregtech.api.metatileentity.MetaTileEntityHolder;
13-
import gregtech.api.metatileentity.multiblock.IMultiblockAbilityPart;
14-
import gregtech.api.metatileentity.multiblock.MultiblockAbility;
1511
import gregtech.api.render.SimpleOverlayRenderer;
1612
import gregtech.api.render.Textures;
1713
import gregtech.api.util.PipelineUtil;
@@ -29,24 +25,15 @@
2925
import javax.annotation.Nullable;
3026
import java.util.List;
3127

32-
public class MetaTileEntityAdjustableEnergyHatch extends MetaTileEntityMultiblockPart implements IMultiblockAbilityPart<IEnergyContainer> {
28+
public class MetaTileEntityAdjustableEnergyHatch extends MetaTileEntityEnergyHatch {
3329

3430
private static final int[] ampRange = {2, 4, 8, 16};
3531
private int ampIndex;
3632

37-
private final boolean isExportHatch;
38-
private IEnergyContainer energyContainer;
39-
4033
public MetaTileEntityAdjustableEnergyHatch(ResourceLocation metaTileEntityId, int tier, boolean isExportHatch) {
41-
super(metaTileEntityId, tier);
42-
this.isExportHatch = isExportHatch;
34+
super(metaTileEntityId, tier, isExportHatch);
4335
this.ampIndex = 1;
44-
if (isExportHatch) {
45-
this.energyContainer = EnergyContainerHandler.emitterContainer(this, GTValues.V[tier] * 32L, GTValues.V[tier], 2);
46-
((EnergyContainerHandler) this.energyContainer).setSideOutputCondition(s -> s == getFrontFacing());
47-
} else {
48-
this.energyContainer = EnergyContainerHandler.receiverContainer(this, GTValues.V[tier] * 32L, GTValues.V[tier], 2);
49-
}
36+
reinitializeEnergyContainer();
5037
}
5138

5239
@Override
@@ -55,15 +42,13 @@ public MetaTileEntity createMetaTileEntity(MetaTileEntityHolder holder) {
5542
}
5643

5744
@Override
58-
public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, IVertexOperation[] pipeline) {
59-
super.renderMetaTileEntity(renderState, translation, pipeline);
45+
protected void renderOverlay(CCRenderState renderState, Matrix4 translation, IVertexOperation[] pipeline) {
6046
if (shouldRenderOverlay()) {
6147
SimpleOverlayRenderer renderer;
6248
switch (ampIndex) {
6349
case 1:
6450
renderer = isExportHatch ? Textures.ENERGY_OUT_MULTI : Textures.ENERGY_IN_MULTI;
6551
break;
66-
6752
case 2:
6853
renderer = isExportHatch ? Textures.ENERGY_OUT_HI : Textures.ENERGY_IN_HI;
6954
break;
@@ -73,7 +58,6 @@ public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation,
7358
default:
7459
renderer = isExportHatch ? Textures.ENERGY_OUT : Textures.ENERGY_IN;
7560
}
76-
7761
renderer.renderSided(getFrontFacing(), renderState, translation, PipelineUtil.color(pipeline, GTValues.VC[getTier()]));
7862
}
7963
}
@@ -125,11 +109,12 @@ protected void incrementAmpIndex() {
125109

126110
protected void reinitializeEnergyContainer() {
127111
long tierVoltage = GTValues.V[getTier()];
112+
int amperage = ampRange[ampIndex];
128113
if (isExportHatch) {
129-
this.energyContainer = EnergyContainerHandler.emitterContainer(this, tierVoltage * 32L, tierVoltage, ampRange[ampIndex]);
114+
this.energyContainer = EnergyContainerHandler.emitterContainer(this, amperage * tierVoltage * 32L, tierVoltage, amperage);
130115
((EnergyContainerHandler) this.energyContainer).setSideOutputCondition(s -> s == getFrontFacing());
131116
} else {
132-
this.energyContainer = EnergyContainerHandler.receiverContainer(this, tierVoltage * 32L, tierVoltage, ampRange[ampIndex]);
117+
this.energyContainer = EnergyContainerHandler.receiverContainer(this, amperage * tierVoltage * 32L, tierVoltage, amperage);
133118
}
134119
}
135120

@@ -139,50 +124,15 @@ public boolean onScrewdriverClick(EntityPlayer playerIn, EnumHand hand, EnumFaci
139124
scheduleRenderUpdate();
140125
return true;
141126
}
142-
143127
incrementAmpIndex();
144128
playerIn.sendMessage(new TextComponentTranslation("gregtech.machine.energy_hatch_adjustable.message_adjust",
145129
isExportHatch ? energyContainer.getOutputAmperage() : energyContainer.getInputAmperage()));
146-
147130
return true;
148131
}
149132

150-
@Override
151-
public MultiblockAbility<IEnergyContainer> getAbility() {
152-
return isExportHatch ? MultiblockAbility.OUTPUT_ENERGY : MultiblockAbility.INPUT_ENERGY;
153-
}
154-
155-
@Override
156-
public void registerAbilities(List<IEnergyContainer> abilityList) {
157-
abilityList.add(energyContainer);
158-
}
159-
160-
@Override
161-
protected boolean openGUIOnRightClick() {
162-
return false;
163-
}
164-
165-
@Override
166-
protected ModularUI createUI(EntityPlayer entityPlayer) {
167-
return null;
168-
}
169-
170133
@Override
171134
public void addInformation(ItemStack stack, @Nullable World player, List<String> tooltip, boolean advanced) {
172-
String tierName = GTValues.VN[getTier()];
173-
174135
tooltip.add(I18n.format("gregtech.machine.transformer_adjustable.tooltip_tool_usage"));
175-
176-
if (isExportHatch) {
177-
tooltip.add(I18n.format("gregtech.machine.energy_hatch.adjustable.output.tooltip"));
178-
tooltip.add(I18n.format("gregtech.universal.tooltip.voltage_out", energyContainer.getOutputVoltage(), tierName));
179-
tooltip.add(I18n.format("gregtech.universal.tooltip.amperage_out_till", energyContainer.getOutputAmperage()));
180-
} else {
181-
tooltip.add(I18n.format("gregtech.machine.energy_hatch.adjustable.input.tooltip"));
182-
tooltip.add(I18n.format("gregtech.universal.tooltip.voltage_in", energyContainer.getInputVoltage(), tierName));
183-
tooltip.add(I18n.format("gregtech.universal.tooltip.amperage_in_till", energyContainer.getInputAmperage()));
184-
}
185-
tooltip.add(I18n.format("gregtech.universal.tooltip.energy_storage_capacity", energyContainer.getEnergyCapacity()));
186-
tooltip.add(I18n.format("gregtech.universal.enabled"));
136+
super.addInformation(stack, player, tooltip, advanced);
187137
}
188138
}

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

+6-2
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525

2626
public class MetaTileEntityEnergyHatch extends MetaTileEntityMultiblockPart implements IMultiblockAbilityPart<IEnergyContainer> {
2727

28-
private final boolean isExportHatch;
29-
private final IEnergyContainer energyContainer;
28+
protected final boolean isExportHatch;
29+
protected IEnergyContainer energyContainer;
3030

3131
public MetaTileEntityEnergyHatch(ResourceLocation metaTileEntityId, int tier, boolean isExportHatch) {
3232
super(metaTileEntityId, tier);
@@ -47,6 +47,10 @@ public MetaTileEntity createMetaTileEntity(MetaTileEntityHolder holder) {
4747
@Override
4848
public void renderMetaTileEntity(CCRenderState renderState, Matrix4 translation, IVertexOperation[] pipeline) {
4949
super.renderMetaTileEntity(renderState, translation, pipeline);
50+
renderOverlay(renderState, translation, pipeline);
51+
}
52+
53+
protected void renderOverlay(CCRenderState renderState, Matrix4 translation, IVertexOperation[] pipeline) {
5054
if (shouldRenderOverlay()) {
5155
SimpleOverlayRenderer renderer = isExportHatch ? Textures.ENERGY_OUT_MULTI : Textures.ENERGY_IN_MULTI;
5256
renderer.renderSided(getFrontFacing(), renderState, translation, PipelineUtil.color(pipeline, GTValues.VC[getTier()]));

0 commit comments

Comments
 (0)