Pins cleanup (#1181)

This commit is contained in:
lc-1337 authored and GitHub committed 2026-04-05 14:30:34 +02:00
1 parent f2070ef0d1
commit 33d6241129
10 files changed
+53 -133

No files matched your search

@@ -37,5 +37,6 @@ public enum ActionItems {
TOGGLE_SHOW_ONLY_SUBSTITUTE_OFF,
NEXT_PARTITION,
CONTROL_BUTTON_VALUES_OFF,
CONTROL_BUTTON_VALUES_ON
CONTROL_BUTTON_VALUES_ON,
PINS
}
@@ -90,9 +90,6 @@ public enum Settings {
CRAFTING_ALLOW(EnumSet.allOf(CraftingAllow.class)),
CRAFTING_PINS_ROWS(EnumSet.allOf(PinsRows.class)),
PLAYER_PINS_ROWS(EnumSet.allOf(PinsRows.class)),
PAUSE_WHEN_HOLDING_SHIFT(EnumSet.of(YesNo.YES, YesNo.NO));
private final EnumSet<? extends Enum<?>> values;
@@ -38,6 +38,7 @@ import net.minecraftforge.common.MinecraftForge;
import org.lwjgl.input.Keyboard;
import org.lwjgl.input.Mouse;
import appeng.api.config.ActionItems;
import appeng.api.config.CraftingStatus;
import appeng.api.config.PinSectionOrder;
import appeng.api.config.PinsRows;
@@ -178,8 +179,8 @@ public class GuiMEMonitorable extends AEBaseGui
this.configSrc = ((IConfigurableObject) this.inventorySlots).getConfigManager();
craftingPinsRows = (PinsRows) configSrc.getSetting(Settings.CRAFTING_PINS_ROWS);
playerPinsRows = (PinsRows) configSrc.getSetting(Settings.PLAYER_PINS_ROWS);
craftingPinsRows = PinsRows.DISABLED;
playerPinsRows = PinsRows.DISABLED;
(this.monitorableContainer = (ContainerMEMonitorable) this.inventorySlots).setGui(this);
@@ -251,19 +252,7 @@ public class GuiMEMonitorable extends AEBaseGui
NetworkHandler.instance.sendToServer(new PacketSwitchGuis(GuiBridge.GUI_CRAFTING_STATUS));
}
if (!(btn instanceof GuiImgButton iBtn) || iBtn.getSetting() == Settings.ACTIONS) return;
final Enum cv = iBtn.getCurrentValue();
final boolean backwards = Mouse.isButtonDown(1);
final Enum next = Platform.rotateEnum(cv, backwards, iBtn.getSetting().getPossibleValues());
if (btn == this.terminalStyleBox) {
AEConfig.instance.settings.putSetting(iBtn.getSetting(), next);
} else if (btn == this.searchBoxSettings) {
AEConfig.instance.settings.putSetting(iBtn.getSetting(), next);
} else if (btn == this.searchStringSave) {
AEConfig.instance.preserveSearchBar = next == YesNo.YES;
} else if (btn == this.pinsStateButton) {
if (btn == this.pinsStateButton) {
try {
boolean rmb = Mouse.isButtonDown(1);
boolean ctrl = GuiScreen.isCtrlKeyDown();
@@ -286,6 +275,20 @@ public class GuiMEMonitorable extends AEBaseGui
}
reinitalize();
return;
}
if (!(btn instanceof GuiImgButton iBtn) || iBtn.getSetting() == Settings.ACTIONS) return;
final Enum cv = iBtn.getCurrentValue();
final boolean backwards = Mouse.isButtonDown(1);
final Enum next = Platform.rotateEnum(cv, backwards, iBtn.getSetting().getPossibleValues());
if (btn == this.terminalStyleBox) {
AEConfig.instance.settings.putSetting(iBtn.getSetting(), next);
} else if (btn == this.searchBoxSettings) {
AEConfig.instance.settings.putSetting(iBtn.getSetting(), next);
} else if (btn == this.searchStringSave) {
AEConfig.instance.preserveSearchBar = next == YesNo.YES;
} else {
try {
NetworkHandler.instance.sendToServer(new PacketValueConfig(iBtn.getSetting().name(), next.name()));
@@ -508,11 +511,9 @@ public class GuiMEMonitorable extends AEBaseGui
this.pinsStateButton = new GuiImgButton(
getPinButtonX(),
getPinButtonY(),
Settings.CRAFTING_PINS_ROWS,
PinsRows.ONE));
this.repo.setVisiblePinRows(
((PinsRows) configSrc.getSetting(Settings.CRAFTING_PINS_ROWS)).ordinal(),
((PinsRows) configSrc.getSetting(Settings.PLAYER_PINS_ROWS)).ordinal());
Settings.ACTIONS,
ActionItems.PINS));
this.repo.setVisiblePinRows(this.craftingPinsRows.ordinal(), this.playerPinsRows.ordinal());
}
// Enum setting = AEConfig.INSTANCE.getSetting( "Terminal", SearchBoxMode.class, SearchBoxMode.AUTOSEARCH );
@@ -1011,13 +1012,6 @@ public class GuiMEMonitorable extends AEBaseGui
this.ViewBox.set(this.configSrc.getSetting(Settings.VIEW_MODE));
}
if (this.pinsStateButton != null) {
craftingPinsRows = (PinsRows) this.configSrc.getSetting(Settings.CRAFTING_PINS_ROWS);
playerPinsRows = (PinsRows) this.configSrc.getSetting(Settings.PLAYER_PINS_ROWS);
this.repo.setVisiblePinRows(craftingPinsRows.ordinal(), playerPinsRows.ordinal());
reinitalize();
}
this.repo.updateView();
}
@@ -1136,16 +1130,13 @@ public class GuiMEMonitorable extends AEBaseGui
}
@Override
public void setCraftingPinsRows(PinsRows rows) {
configSrc.putSetting(Settings.CRAFTING_PINS_ROWS, rows);
repo.setVisiblePinRows(rows.ordinal(), ((PinsRows) configSrc.getSetting(Settings.PLAYER_PINS_ROWS)).ordinal());
}
@Override
public void setPlayerPinsRows(PinsRows rows) {
configSrc.putSetting(Settings.PLAYER_PINS_ROWS, rows);
repo.setVisiblePinRows(
((PinsRows) configSrc.getSetting(Settings.CRAFTING_PINS_ROWS)).ordinal(),
rows.ordinal());
public void setPinsRows(PinsRows craftingRows, PinsRows playerRows) {
if (this.pinsStateButton != null) {
if (craftingRows != craftingPinsRows || playerRows != playerPinsRows) {
craftingPinsRows = craftingRows;
playerPinsRows = playerRows;
reinitalize();
}
}
}
}
@@ -42,7 +42,6 @@ import appeng.api.config.LockCraftingMode;
import appeng.api.config.OperationMode;
import appeng.api.config.PatternBeSubstitution;
import appeng.api.config.PatternSlotConfig;
import appeng.api.config.PinsRows;
import appeng.api.config.PowerUnits;
import appeng.api.config.PriorityCardMode;
import appeng.api.config.RedstoneMode;
@@ -59,7 +58,6 @@ import appeng.api.config.TerminalStyle;
import appeng.api.config.ViewItems;
import appeng.api.config.YesNo;
import appeng.client.texture.ExtraBlockTextures;
import appeng.core.AEConfig;
import appeng.core.localization.ButtonToolTips;
import appeng.core.localization.GuiText;
import appeng.util.Platform;
@@ -877,44 +875,12 @@ public class GuiImgButton extends GuiButton implements ITooltip {
ButtonToolTips.CPUOnlyAllowNonPlayerDesc);
this.registerApp(
16 * 15 + 14,
Settings.CRAFTING_PINS_ROWS,
PinsRows.DISABLED,
16 * 15 + 13,
Settings.ACTIONS,
ActionItems.PINS,
ButtonToolTips.PinsSection,
ButtonToolTips.PinsSection);
int maxCrafting = AEConfig.instance != null ? AEConfig.instance.maxCraftingPinRows
: PinsRows.values().length - 1;
for (PinsRows r : PinsRows.values()) {
if (r == PinsRows.DISABLED) continue;
if (r.ordinal() > maxCrafting) continue;
this.registerApp(
16 * 15 + 13,
Settings.CRAFTING_PINS_ROWS,
r,
ButtonToolTips.PinsSection,
ButtonToolTips.PinsSectionActive,
ButtonToolTips.PinsSectionHint);
}
this.registerApp(
16 * 15 + 14,
Settings.PLAYER_PINS_ROWS,
PinsRows.DISABLED,
ButtonToolTips.PinsSection,
ButtonToolTips.PinsSection);
int maxPlayer = AEConfig.instance != null ? AEConfig.instance.maxPlayerPinRows
: PinsRows.values().length - 1;
for (PinsRows r : PinsRows.values()) {
if (r == PinsRows.DISABLED) continue;
if (r.ordinal() > maxPlayer) continue;
this.registerApp(
16 * 15 + 13,
Settings.PLAYER_PINS_ROWS,
r,
ButtonToolTips.PinsSection,
ButtonToolTips.PinsSectionActive,
ButtonToolTips.PinsSectionHint);
}
ButtonToolTips.PinsSectionActive,
ButtonToolTips.PinsSectionHint);
this.registerApp(
16 * 3 + 7,
@@ -142,8 +142,6 @@ public class ContainerMEMonitorable extends AEBaseContainer
this.clientCM.registerSetting(Settings.SORT_BY, SortOrder.NAME);
this.clientCM.registerSetting(Settings.VIEW_MODE, ViewItems.ALL);
this.clientCM.registerSetting(Settings.SORT_DIRECTION, SortDir.ASCENDING);
this.clientCM.registerSetting(Settings.CRAFTING_PINS_ROWS, PinsRows.DISABLED);
this.clientCM.registerSetting(Settings.PLAYER_PINS_ROWS, PinsRows.DISABLED);
if (Platform.isServer()) {
if (monitorable instanceof ITerminalPins t) {
@@ -235,14 +233,7 @@ public class ContainerMEMonitorable extends AEBaseContainer
}
if (pinsHandler != null) {
if (clientCM.getSetting(Settings.CRAFTING_PINS_ROWS) != pinsHandler.getCraftingPinsRows()
|| clientCM.getSetting(Settings.PLAYER_PINS_ROWS) != pinsHandler.getPlayerPinsRows()) {
this.clientCM.putSetting(Settings.CRAFTING_PINS_ROWS, pinsHandler.getCraftingPinsRows());
this.clientCM.putSetting(Settings.PLAYER_PINS_ROWS, pinsHandler.getPlayerPinsRows());
updatePins(true);
} else {
updatePins(false);
}
updatePins(false);
}
if (this.needListUpdate) {
@@ -498,7 +489,7 @@ public class ContainerMEMonitorable extends AEBaseContainer
return getMonitor(ITEM_STACK_TYPE);
}
private int lastUpdate = 0;
private int lastUpdate = 20;
public void updatePins(boolean forceUpdate) {
if (pinsHandler == null || !(host instanceof ITerminalPins itp)) return;
@@ -562,17 +553,10 @@ public class ContainerMEMonitorable extends AEBaseContainer
return pinsHandler.getPin(idx);
}
public void setCraftingPinsRows(PinsRows rows) {
@Override
public void setPinsRows(PinsRows craftingRows, PinsRows playerRows) {
if (pinsHandler == null) return;
clientCM.putSetting(Settings.CRAFTING_PINS_ROWS, rows);
pinsHandler.setCraftingPinsRows(rows);
updatePins(true);
}
public void setPlayerPinsRows(PinsRows rows) {
if (pinsHandler == null) return;
clientCM.putSetting(Settings.PLAYER_PINS_ROWS, rows);
pinsHandler.setPlayerPinsRows(rows);
pinsHandler.setPinsRows(craftingRows, playerRows);
updatePins(true);
}
-3
View File
@@ -26,7 +26,6 @@ import appeng.api.config.CondenserOutput;
import appeng.api.config.CraftingSortOrder;
import appeng.api.config.CraftingStatus;
import appeng.api.config.PinSectionOrder;
import appeng.api.config.PinsRows;
import appeng.api.config.PowerMultiplier;
import appeng.api.config.PowerUnits;
import appeng.api.config.SearchBoxFocusPriority;
@@ -185,8 +184,6 @@ public final class AEConfig extends Configuration implements IConfigurableObject
this.settings.registerSetting(Settings.SORT_DIRECTION, SortDir.ASCENDING);
this.settings.registerSetting(Settings.TERMINAL_FONT_SIZE, TerminalFontSize.SMALL);
this.settings.registerSetting(Settings.INTERFACE_TERMINAL_SECTION_ORDER, StringOrder.NATURAL);
this.settings.registerSetting(Settings.CRAFTING_PINS_ROWS, PinsRows.DISABLED);
this.settings.registerSetting(Settings.PLAYER_PINS_ROWS, PinsRows.DISABLED);
this.settings.registerSetting(Settings.PAUSE_WHEN_HOLDING_SHIFT, YesNo.YES);
this.spawnChargedChance = (float) (1.0
@@ -85,8 +85,7 @@ public class PacketPinsUpdate extends AppEngPacket {
if (gs instanceof IPinsHandler iph) {
int craftOrd = Math.max(0, Math.min(craftingRowsOrdinal, PinsRows.values().length - 1));
int playerOrd = Math.max(0, Math.min(playerRowsOrdinal, PinsRows.values().length - 1));
iph.setCraftingPinsRows(PinsRows.values()[craftOrd]);
iph.setPlayerPinsRows(PinsRows.values()[playerOrd]);
iph.setPinsRows(PinsRows.values()[craftOrd], PinsRows.values()[playerOrd]);
if (list != null) iph.setAEPins(list);
}
}
@@ -97,8 +96,7 @@ public class PacketPinsUpdate extends AppEngPacket {
if (sender.openContainer instanceof IPinsHandler container) {
int craftOrd = Math.max(0, Math.min(craftingRowsOrdinal, PinsRows.values().length - 1));
int playerOrd = Math.max(0, Math.min(playerRowsOrdinal, PinsRows.values().length - 1));
container.setCraftingPinsRows(PinsRows.values()[craftOrd]);
container.setPlayerPinsRows(PinsRows.values()[playerOrd]);
container.setPinsRows(PinsRows.values()[craftOrd], PinsRows.values()[playerOrd]);
}
}
}
@@ -30,15 +30,11 @@ public interface IPinsHandler {
return PinsRows.DISABLED;
}
default void setCraftingPinsRows(PinsRows rows) {
throw new UnsupportedOperationException("setCraftingPinsRows is not supported by this handler");
}
default PinsRows getPlayerPinsRows() {
return PinsRows.DISABLED;
}
default void setPlayerPinsRows(PinsRows rows) {
default void setPinsRows(PinsRows craftingRows, PinsRows playerRows) {
throw new UnsupportedOperationException("setPlayerPinsRows is not supported by this handler");
}
}
@@ -90,18 +90,12 @@ public class PinsHandler {
holder.markDirty();
}
public void setCraftingPinsRows(PinsRows rows) {
if (craftingPinsRows == rows) return;
craftingPinsRows = rows;
holder.setCraftingPinsRows(player, rows);
update(false);
}
public void setPlayerPinsRows(PinsRows rows) {
if (playerPinsRows == rows) return;
playerPinsRows = rows;
holder.setPlayerPinsRows(player, rows);
update(false);
public void setPinsRows(PinsRows craftingRows, PinsRows playerRows) {
if (craftingPinsRows == craftingRows && playerPinsRows == playerRows) return;
craftingPinsRows = craftingRows;
playerPinsRows = playerRows;
holder.setPinsRows(player, craftingRows, playerRows);
update(true);
}
public PinsRows getCraftingPinsRows() {
@@ -142,8 +142,9 @@ public class PinsHolder implements IAEAppEngInventory {
return this.craftingPinsRowsMap.computeIfAbsent(player.getPersistentID(), k -> PinsRows.DISABLED);
}
public void setCraftingPinsRows(EntityPlayer player, PinsRows rows) {
this.craftingPinsRowsMap.put(player.getPersistentID(), rows);
public void setPinsRows(EntityPlayer player, PinsRows craftingRows, PinsRows playerRows) {
this.craftingPinsRowsMap.put(player.getPersistentID(), craftingRows);
this.playerPinsRowsMap.put(player.getPersistentID(), playerRows);
markDirty();
}
@@ -151,11 +152,6 @@ public class PinsHolder implements IAEAppEngInventory {
return this.playerPinsRowsMap.computeIfAbsent(player.getPersistentID(), k -> PinsRows.DISABLED);
}
public void setPlayerPinsRows(EntityPlayer player, PinsRows rows) {
this.playerPinsRowsMap.put(player.getPersistentID(), rows);
markDirty();
}
public void markDirty() {
if (holder == null || !initialized) return;
this.writeToNBT(Platform.openNbtData(holder), "pins");