From c2261276487c3dc52990c1f603fa757c0d0cded0 Mon Sep 17 00:00:00 2001 From: Anuken Date: Thu, 30 Sep 2021 17:33:17 -0400 Subject: [PATCH] Display jump statement destination --- core/src/mindustry/logic/LCanvas.java | 12 +++++++++++- core/src/mindustry/logic/LStatements.java | 15 +++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java index da604532cb..2537296566 100644 --- a/core/src/mindustry/logic/LCanvas.java +++ b/core/src/mindustry/logic/LCanvas.java @@ -217,6 +217,7 @@ public class LCanvas extends Table{ e.setSize(width, e.getPrefHeight()); e.setPosition(0, height - cy, Align.topLeft); + ((StatementElem)e).updateAddress(i); cy += e.getPrefHeight() + space; seq.add(e); @@ -316,6 +317,8 @@ public class LCanvas extends Table{ public class StatementElem extends Table{ public LStatement st; + public int index; + Label addressLabel; public StatementElem(LStatement st){ this.st = st; @@ -333,9 +336,11 @@ public class LCanvas extends Table{ t.margin(6f); t.touchable = Touchable.enabled; - t.add(st.name()).style(Styles.outlineLabel).color(color).padRight(8); + t.add(st.name()).style(Styles.outlineLabel).name("statement-name").color(color).padRight(8); t.add().growX(); + addressLabel = t.add(index + "").style(Styles.outlineLabel).color(color).padRight(8).get(); + t.button(Icon.copy, Styles.logici, () -> { }).size(24f).padRight(6).get().tapped(this::copy); @@ -395,6 +400,11 @@ public class LCanvas extends Table{ marginBottom(7); } + public void updateAddress(int index){ + this.index = index; + addressLabel.setText(index + ""); + } + public void copy(){ st.saveUI(); LStatement copy = st.copy(); diff --git a/core/src/mindustry/logic/LStatements.java b/core/src/mindustry/logic/LStatements.java index 1d04b21052..1dd2313baf 100644 --- a/core/src/mindustry/logic/LStatements.java +++ b/core/src/mindustry/logic/LStatements.java @@ -1,5 +1,6 @@ package mindustry.logic; +import arc.*; import arc.func.*; import arc.graphics.*; import arc.scene.style.*; @@ -758,6 +759,20 @@ public class LStatements{ table.add().growX(); table.add(new JumpButton(() -> dest, s -> dest = s)).size(30).right().padLeft(-8); + + String name = name(); + + //hack way of finding the title label... + Core.app.post(() -> { + //must be delayed because parent is added later + if(table.parent != null){ + Label title = table.parent.find("statement-name"); + if(title != null){ + title.update(() -> title.setText((dest != null ? name + " -> " + dest.index : name))); + } + } + }); + } void rebuild(Table table){