From 4efba475dee0f6f17f16a405afd6acbf737730c7 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 9 Aug 2020 15:35:52 -0400 Subject: [PATCH] functional scrolling --- core/src/mindustry/core/UI.java | 6 +++--- core/src/mindustry/logic/LCanvas.java | 8 ++++++-- .../mindustry/logic/{LDialog.java => LogicDialog.java} | 4 ++-- core/src/mindustry/world/blocks/logic/LogicDisplay.java | 3 +++ 4 files changed, 14 insertions(+), 7 deletions(-) rename core/src/mindustry/logic/{LDialog.java => LogicDialog.java} (90%) diff --git a/core/src/mindustry/core/UI.java b/core/src/mindustry/core/UI.java index 817c912bc7..de85c7ad3b 100644 --- a/core/src/mindustry/core/UI.java +++ b/core/src/mindustry/core/UI.java @@ -24,7 +24,7 @@ import mindustry.editor.*; import mindustry.game.EventType.*; import mindustry.gen.*; import mindustry.graphics.*; -import mindustry.logic.LDialog; +import mindustry.logic.LogicDialog; import mindustry.ui.*; import mindustry.ui.dialogs.*; import mindustry.ui.fragments.*; @@ -68,7 +68,7 @@ public class UI implements ApplicationListener, Loadable{ public SchematicsDialog schematics; public ModsDialog mods; public ColorPicker picker; - public LDialog logic; + public LogicDialog logic; public Cursor drillCursor, unloadCursor; @@ -181,7 +181,7 @@ public class UI implements ApplicationListener, Loadable{ research = new ResearchDialog(); mods = new ModsDialog(); schematics = new SchematicsDialog(); - logic = new LDialog(); + logic = new LogicDialog(); Group group = Core.scene.root; diff --git a/core/src/mindustry/logic/LCanvas.java b/core/src/mindustry/logic/LCanvas.java index bde2bfc96b..53183e7e12 100644 --- a/core/src/mindustry/logic/LCanvas.java +++ b/core/src/mindustry/logic/LCanvas.java @@ -133,6 +133,10 @@ public class LCanvas extends Table{ Seq seq = new Seq<>(); int insertPosition = 0; + { + setTransform(true); + } + @Override public void layout(){ float cy = 0; @@ -151,7 +155,7 @@ public class LCanvas extends Table{ if(dragging == e) continue; e.setSize(width - margin * 2f, e.getPrefHeight()); - e.setPosition(x + margin, height + y - margin - cy, Align.topLeft); + e.setPosition(x + margin, height- margin - cy, Align.topLeft); cy += e.getPrefHeight() + space; seq.add(e); @@ -202,7 +206,7 @@ public class LCanvas extends Table{ if(dragging != null && insertPosition <= seq.size){ float shiftAmount = dragging.getHeight(); float lastX = x + margin; - float lastY = insertPosition == 0 ? height + y - margin : seq.get(insertPosition - 1).y - space; + float lastY = insertPosition == 0 ? height + y - margin : seq.get(insertPosition - 1).y + y - space; Tex.pane.draw(lastX, lastY - shiftAmount, width - margin*2f, dragging.getHeight()); } diff --git a/core/src/mindustry/logic/LDialog.java b/core/src/mindustry/logic/LogicDialog.java similarity index 90% rename from core/src/mindustry/logic/LDialog.java rename to core/src/mindustry/logic/LogicDialog.java index a7f4362954..1fa0df2375 100644 --- a/core/src/mindustry/logic/LDialog.java +++ b/core/src/mindustry/logic/LogicDialog.java @@ -5,11 +5,11 @@ import arc.scene.ui.layout.*; import arc.util.*; import mindustry.ui.dialogs.*; -public class LDialog extends BaseDialog{ +public class LogicDialog extends BaseDialog{ LCanvas canvas; Cons consumer = s -> Log.info(s); - public LDialog(){ + public LogicDialog(){ super("logic"); clearChildren(); diff --git a/core/src/mindustry/world/blocks/logic/LogicDisplay.java b/core/src/mindustry/world/blocks/logic/LogicDisplay.java index 9b0a828043..20743dfdd7 100644 --- a/core/src/mindustry/world/blocks/logic/LogicDisplay.java +++ b/core/src/mindustry/world/blocks/logic/LogicDisplay.java @@ -45,6 +45,9 @@ public class LogicDisplay extends Block{ if(buffer == null){ buffer = new FrameBuffer(displaySize, displaySize); + //clear the buffer - some OSs leave garbage in it + buffer.begin(Color.clear); + buffer.end(); } if(!commands.isEmpty()){