aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
authorminecraft7771 <maxim235@gmx.de>2023-01-01 17:51:25 +0100
committerminecraft7771 <maxim235@gmx.de>2023-01-01 17:51:25 +0100
commit753886d280d4bf171a759f419fbd5eb3a4f741f5 (patch)
treeb07e8c39a4fab72afa3b14d2aac19c79bbf0347a /src/main
parent70587f1332126e762303431306f68d9f28ce79a4 (diff)
downloadGT5-Unofficial-753886d280d4bf171a759f419fbd5eb3a4f741f5.tar.gz
GT5-Unofficial-753886d280d4bf171a759f419fbd5eb3a4f741f5.tar.bz2
GT5-Unofficial-753886d280d4bf171a759f419fbd5eb3a4f741f5.zip
Added pop up to manipulate input parameters
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java53
1 files changed, 45 insertions, 8 deletions
diff --git a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java
index b9da45c5d9..86b577fe43 100644
--- a/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java
+++ b/src/main/java/com/github/technus/tectech/thing/metaTileEntity/multi/base/GT_MetaTileEntity_MultiblockBase_EM.java
@@ -34,19 +34,19 @@ import com.gtnewhorizon.structurelib.structure.IStructureElement;
import com.gtnewhorizon.structurelib.util.Vec3Impl;
import com.gtnewhorizons.modularui.api.drawable.IDrawable;
import com.gtnewhorizons.modularui.api.drawable.UITexture;
+import com.gtnewhorizons.modularui.api.math.Alignment;
+import com.gtnewhorizons.modularui.api.math.Color;
import com.gtnewhorizons.modularui.api.math.Pos2d;
import com.gtnewhorizons.modularui.api.screen.ModularWindow;
import com.gtnewhorizons.modularui.api.screen.UIBuildContext;
import com.gtnewhorizons.modularui.api.widget.Widget;
-import com.gtnewhorizons.modularui.common.widget.ButtonWidget;
-import com.gtnewhorizons.modularui.common.widget.DrawableWidget;
-import com.gtnewhorizons.modularui.common.widget.DynamicPositionedColumn;
-import com.gtnewhorizons.modularui.common.widget.FakeSyncWidget;
-import com.gtnewhorizons.modularui.common.widget.SlotWidget;
+import com.gtnewhorizons.modularui.common.widget.*;
+import com.gtnewhorizons.modularui.common.widget.textfield.TextFieldWidget;
import cpw.mods.fml.common.network.NetworkRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import gregtech.api.enums.Textures;
+import gregtech.api.gui.modularui.GT_UITextures;
import gregtech.api.interfaces.IHatchElement;
import gregtech.api.interfaces.ITexture;
import gregtech.api.interfaces.metatileentity.IMetaTileEntity;
@@ -86,6 +86,9 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
protected static Textures.BlockIcons.CustomIcon ScreenOFF;
protected static Textures.BlockIcons.CustomIcon ScreenON;
+ /** Base ID for the LED window popup. LED 1 I0 will have ID 100, LED 1 I1 101... */
+ protected static int LED_WINDOW_BASE_ID = 100;
+
// Sound resource - same as with screen but override getActivitySound
public static final ResourceLocation activitySound = new ResourceLocation(Reference.MODID + ":fx_lo_freq");
@@ -2960,6 +2963,9 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
.setSize(166, 12));
for (int hatch = 0; hatch < 10; hatch++) {
for (int param = 0; param < 2; param++) {
+ int ledID = hatch + param * 10;
+ buildContext.addSyncedWindow(
+ LED_WINDOW_BASE_ID + ledID, (player) -> createLEDConfigurationWindow(ledID));
addParameterLED(builder, hatch, param, true);
addParameterLED(builder, hatch, param, false);
}
@@ -3118,10 +3124,36 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
return (ButtonWidget) button;
}
+ private ModularWindow createLEDConfigurationWindow(int ledID) {
+ return ModularWindow.builder(100, 40)
+ .setBackground(TecTechUITextures.BACKGROUND_SCREEN_BLUE)
+ .widget(ButtonWidget.closeWindowButton(true).setPos(85, 3))
+ .widget(new TextFieldWidget()
+ .setTextColor(Color.LIGHT_BLUE.normal)
+ .setNumbersDouble((val) -> val)
+ .setGetter(() -> Double.toString(parametrization.iParamsIn[ledID]))
+ .setSetter(val -> {
+ try {
+ parametrization.iParamsIn[ledID] = Double.parseDouble(val);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ })
+ .setTextAlignment(Alignment.CenterLeft)
+ .setBackground(GT_UITextures.BACKGROUND_TEXT_FIELD)
+ .setPos(5, 20)
+ .setSize(90, 15))
+ .widget(new TextWidget((ledID % 10) + ":" + (ledID / 10) + ":I")
+ .setDefaultColor(Color.WHITE.normal)
+ .setTextAlignment(Alignment.Center)
+ .setPos(5, 5))
+ .build();
+ }
+
private void addParameterLED(ModularWindow.Builder builder, int hatch, int param, boolean input) {
final int parameterIndex = hatch + param * 10;
final int posIndex = hatch * 2 + param;
- DrawableWidget ledWidget = new DrawableWidget() {
+ ButtonWidget ledWidget = new ButtonWidget() {
@Override
public void draw(float partialTicks) {
IDrawable texture = null;
@@ -3201,11 +3233,16 @@ public abstract class GT_MetaTileEntity_MultiblockBase_EM extends GT_MetaTileEnt
// no-op
break;
}
- setDrawable(texture);
+ setBackground(texture);
super.draw(partialTicks);
GL11.glColor4f(1f, 1f, 1f, 1f);
}
- };
+ }.setOnClick((clickData, widget) -> {
+ if (!widget.isClient()
+ && input
+ && parametrization.eParamsInStatus[parameterIndex] != LedStatus.STATUS_UNUSED)
+ widget.getContext().openSyncedWindow(LED_WINDOW_BASE_ID + parameterIndex);
+ });
builder.widget(ledWidget
.dynamicTooltip(() -> {
if (input) {