functional scrolling

This commit is contained in:
Anuken 2020-08-09 15:35:52 -04:00
parent 6dca449b08
commit 4efba475de
4 changed files with 14 additions and 7 deletions

View File

@ -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;

View File

@ -133,6 +133,10 @@ public class LCanvas extends Table{
Seq<Element> 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());
}

View File

@ -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<String> consumer = s -> Log.info(s);
public LDialog(){
public LogicDialog(){
super("logic");
clearChildren();

View File

@ -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()){