11package com .github .gtexpert .core .common .metatileentities .multi ;
22
3+ import static gregtech .api .recipes .logic .OverclockingLogic .*;
4+
35import java .util .List ;
46
57import net .minecraft .block .state .IBlockState ;
1820import gregtech .api .metatileentity .MetaTileEntity ;
1921import gregtech .api .metatileentity .interfaces .IGregTechTileEntity ;
2022import gregtech .api .metatileentity .multiblock .IMultiblockPart ;
23+ import gregtech .api .metatileentity .multiblock .RecipeMapMultiblockController ;
2124import gregtech .api .pattern .BlockPattern ;
2225import gregtech .api .pattern .FactoryBlockPattern ;
2326import gregtech .api .pattern .TraceabilityPredicate ;
2427import gregtech .api .recipes .RecipeMaps ;
28+ import gregtech .api .recipes .recipeproperties .IRecipePropertyStorage ;
2529import gregtech .client .renderer .ICubeRenderer ;
2630import gregtech .client .renderer .texture .Textures ;
31+ import gregtech .client .utils .TooltipHelper ;
2732import gregtech .common .blocks .BlockBoilerCasing ;
2833import gregtech .common .blocks .BlockMetalCasing ;
2934import gregtech .common .blocks .MetaBlocks ;
3035import gregtech .core .sound .GTSoundEvents ;
3136
37+ import gregicality .multiblocks .api .capability .impl .GCYMMultiblockRecipeLogic ;
3238import gregicality .multiblocks .api .metatileentity .GCYMRecipeMapMultiblockController ;
3339
3440import com .github .gtexpert .core .api .gui .GTEGuiTextures ;
@@ -37,6 +43,7 @@ public class MetaTileEntityAdvancedChemicalPlant extends GCYMRecipeMapMultiblock
3743
3844 public MetaTileEntityAdvancedChemicalPlant (ResourceLocation metaTileEntityId ) {
3945 super (metaTileEntityId , RecipeMaps .LARGE_CHEMICAL_RECIPES );
46+ this .recipeMapWorkable = new AdvancedChemicalPlantWorkableHandler (this );
4047 }
4148
4249 @ Override
@@ -64,16 +71,6 @@ protected BlockPattern createStructurePattern() {
6471 .build ();
6572 }
6673
67- @ Override
68- public boolean allowsExtendedFacing () {
69- return false ;
70- }
71-
72- @ Override
73- public boolean allowsFlip () {
74- return false ;
75- }
76-
7774 @ Override
7875 public boolean isTiered () {
7976 return true ;
@@ -112,6 +109,7 @@ public SoundEvent getBreakdownSound() {
112109 public void addInformation (ItemStack stack , @ Nullable World player , List <String > tooltip , boolean advanced ) {
113110 super .addInformation (stack , player , tooltip , advanced );
114111 tooltip .add (I18n .format ("gtexpert.machine.advanced_chemical_plant.tooltip.1" ));
112+ tooltip .add (TooltipHelper .RAINBOW_SLOW + I18n .format ("gregtech.machine.perfect_oc" ));
115113 }
116114
117115 @ Override
@@ -135,4 +133,31 @@ public void addInformation(ItemStack stack, @Nullable World player, List<String>
135133 protected ICubeRenderer getFrontOverlay () {
136134 return Textures .CHEMICAL_REACTOR_OVERLAY ;
137135 }
136+
137+ @ SuppressWarnings ("InnerClassMayBeStatic" )
138+ private class AdvancedChemicalPlantWorkableHandler extends GCYMMultiblockRecipeLogic {
139+
140+ public AdvancedChemicalPlantWorkableHandler (RecipeMapMultiblockController tileEntity ) {
141+ super (tileEntity );
142+ }
143+
144+ protected int [] runOverclockingLogic (@ NotNull IRecipePropertyStorage propertyStorage , int recipeEUt ,
145+ long maxVoltage , int duration , int amountOC ) {
146+ return standardOverclockingLogic (
147+ Math .abs (recipeEUt ),
148+ maxVoltage ,
149+ duration ,
150+ amountOC ,
151+ getOverclockingDurationDivisor (),
152+ getOverclockingVoltageMultiplier ());
153+ }
154+
155+ protected double getOverclockingDurationDivisor () {
156+ return PERFECT_OVERCLOCK_DURATION_DIVISOR ;
157+ }
158+
159+ protected double getOverclockingVoltageMultiplier () {
160+ return STANDARD_OVERCLOCK_VOLTAGE_MULTIPLIER ;
161+ }
162+ }
138163}
0 commit comments