aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java')
-rw-r--r--src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java b/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
index b403103d49..175a7e396e 100644
--- a/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
+++ b/src/main/java/goodgenerator/blocks/tileEntity/PreciseAssembler.java
@@ -6,6 +6,7 @@ import static com.github.bartimaeusnek.bartworks.util.RecipeFinderForParallel.ha
import static com.gtnewhorizon.structurelib.structure.StructureUtility.*;
import static goodgenerator.util.DescTextLocalization.BLUE_PRINT_INFO;
import static gregtech.api.enums.GT_HatchElement.*;
+import static gregtech.api.metatileentity.BaseTileEntity.TOOLTIP_DELAY;
import static gregtech.api.util.GT_StructureUtility.ofFrame;
import java.util.ArrayList;
@@ -27,8 +28,13 @@ import com.gtnewhorizon.structurelib.structure.IItemSource;
import com.gtnewhorizon.structurelib.structure.IStructureDefinition;
import com.gtnewhorizon.structurelib.structure.StructureDefinition;
import com.gtnewhorizon.structurelib.structure.StructureUtility;
+import com.gtnewhorizons.modularui.api.drawable.IDrawable;
+import com.gtnewhorizons.modularui.api.screen.ModularWindow;
+import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
+import com.gtnewhorizons.modularui.common.widget.CycleButtonWidget;
import goodgenerator.blocks.tileEntity.base.GT_MetaTileEntity_LongPowerUsageBase;
+import goodgenerator.client.GUI.GG_UITextures;
import goodgenerator.loader.Loaders;
import goodgenerator.util.DescTextLocalization;
import goodgenerator.util.MyRecipeAdder;
@@ -36,6 +42,7 @@ import gregtech.api.GregTech_API;
import gregtech.api.enums.GT_Values;
import gregtech.api.enums.Materials;
import gregtech.api.enums.Textures;
+import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.interfaces.IIconContainer;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
@@ -445,4 +452,26 @@ public class PreciseAssembler extends GT_MetaTileEntity_LongPowerUsageBase<Preci
TextureFactory.builder().addIcon(textureFontOff_Glow).glow().build() };
} else return new ITexture[] { Textures.BlockIcons.getCasingTextureForId(1539 + t) };
}
+
+ @Override
+ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildContext) {
+ super.addUIWidgets(builder, buildContext);
+ builder.widget(
+ new CycleButtonWidget().setToggle(() -> mode % 2 == 0, val -> mode = val ? 0 : 1)
+ .setPlayClickSound(true).setVariableBackgroundGetter((state) -> {
+ if (state == 0) {
+ return new IDrawable[] { GT_UITextures.BUTTON_STANDARD,
+ GG_UITextures.OVERLAY_BUTTON_ASSEMBLER_MODE };
+ }
+ return new IDrawable[] { GT_UITextures.BUTTON_STANDARD,
+ GG_UITextures.OVERLAY_BUTTON_PRECISE_MODE };
+ }).setPos(80, 91).setSize(16, 16)
+ .addTooltip(StatCollector.translateToLocal("gui.PreciseAssembler.mode"))
+ .setTooltipShowUpDelay(TOOLTIP_DELAY));
+ }
+
+ @Override
+ protected boolean isInputSeparationEnabled() {
+ return true;
+ }
}