From 37dc449471b70317a4acaad97e068caa9fa43390 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 24 May 2024 22:02:37 -0400 Subject: [PATCH] Processor list bugfixes --- .../mindustry/editor/MapProcessorsDialog.java | 2 +- core/src/mindustry/logic/LogicDialog.java | 2 +- .../world/blocks/logic/LogicBlock.java | 20 +++++++++++++++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/editor/MapProcessorsDialog.java b/core/src/mindustry/editor/MapProcessorsDialog.java index 593ef429bb..dd0f73d3f7 100644 --- a/core/src/mindustry/editor/MapProcessorsDialog.java +++ b/core/src/mindustry/editor/MapProcessorsDialog.java @@ -92,7 +92,7 @@ public class MapProcessorsDialog extends BaseDialog{ t.button((log.tag == null ? "\n" : "[accent]" + log.tag + "\n") + "[lightgray][[" + log.tile.x + ", " + log.tile.y + "]", Styles.grayt, () -> { //TODO: bug: if you edit name inside of the edit dialog, it won't show up in the list properly - log.showEditDialog(); + log.showEditDialog(true); }).size(Vars.mobile ? 390f : 450f, h).margin(10f).with(b -> { b.getLabel().setAlignment(Align.left, Align.left); }); diff --git a/core/src/mindustry/logic/LogicDialog.java b/core/src/mindustry/logic/LogicDialog.java index d35d040870..c6e227b424 100644 --- a/core/src/mindustry/logic/LogicDialog.java +++ b/core/src/mindustry/logic/LogicDialog.java @@ -93,7 +93,7 @@ public class LogicDialog extends BaseDialog{ TextButtonStyle style = Styles.flatt; t.defaults().size(280f, 60f).left(); - if(privileged && executor != null && executor.build != null){// && !ui.editor.isShown() + if(privileged && executor != null && executor.build != null && !ui.editor.isShown()){ t.button("@editor.worldprocessors.editname", Icon.edit, style, () -> { ui.showTextInput("", "@editor.name", LogicBlock.maxNameLength, executor.build.tag == null ? "" : executor.build.tag, tag -> { if(privileged && executor != null && executor.build != null){ diff --git a/core/src/mindustry/world/blocks/logic/LogicBlock.java b/core/src/mindustry/world/blocks/logic/LogicBlock.java index 764126991b..dc2b67aa31 100644 --- a/core/src/mindustry/world/blocks/logic/LogicBlock.java +++ b/core/src/mindustry/world/blocks/logic/LogicBlock.java @@ -60,7 +60,7 @@ public class LogicBlock extends Block{ build.readCompressed(data, true); }); - config(String.class,(LogicBuild build, String data) -> { + config(String.class, (LogicBuild build, String data) -> { if(!accessible() || !privileged) return; if(data != null && data.length() < maxNameLength){ @@ -68,6 +68,12 @@ public class LogicBlock extends Block{ } }); + config(Character.class, (LogicBuild build, Character data) -> { + if(!accessible() || !privileged) return; + + build.iconTag = data; + }); + config(Integer.class, (LogicBuild entity, Integer pos) -> { if(!accessible()) return; @@ -634,7 +640,17 @@ public class LogicBlock extends Block{ } public void showEditDialog(){ - ui.logic.show(code, executor, privileged, code -> configure(compress(code, relativeConnections()))); + showEditDialog(false); + } + + public void showEditDialog(boolean forceEditor){ + ui.logic.show(code, executor, privileged, code -> { + boolean prev = state.rules.editor; + //this is a hack to allow configuration to work correctly in the editor for privileged processors + if(forceEditor) state.rules.editor = true; + configure(compress(code, relativeConnections())); + state.rules.editor = prev; + }); } @Override