55import codechicken .lib .render .pipeline .IVertexOperation ;
66import codechicken .lib .vec .Matrix4 ;
77import gregtech .api .GTValues ;
8- import gregtech .api .capability .IEnergyContainer ;
98import gregtech .api .capability .impl .EnergyContainerHandler ;
10- import gregtech .api .gui .ModularUI ;
119import gregtech .api .metatileentity .MetaTileEntity ;
1210import gregtech .api .metatileentity .MetaTileEntityHolder ;
13- import gregtech .api .metatileentity .multiblock .IMultiblockAbilityPart ;
14- import gregtech .api .metatileentity .multiblock .MultiblockAbility ;
1511import gregtech .api .render .SimpleOverlayRenderer ;
1612import gregtech .api .render .Textures ;
1713import gregtech .api .util .PipelineUtil ;
2925import javax .annotation .Nullable ;
3026import 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}
0 commit comments