package mindustry.logic; import arc.*; import arc.func.*; import arc.graphics.*; import arc.math.*; import arc.scene.*; import arc.scene.actions.*; import arc.scene.ui.*; import arc.scene.ui.layout.*; import arc.struct.*; import arc.util.*; import mindustry.gen.*; import mindustry.logic.LCanvas.*; import mindustry.logic.LExecutor.*; import mindustry.ui.*; import static mindustry.logic.LCanvas.*; /** * A statement is an intermediate representation of an instruction, to be used mostly in UI. * Contains all relevant variable information. */ public abstract class LStatement{ public transient @Nullable StatementElem elem; public abstract void build(Table table); public abstract Color color(); public abstract LInstruction build(LAssembler builder); public LStatement copy(){ StringBuilder build = new StringBuilder(); write(build); Seq read = LAssembler.read(build.toString()); return read.size == 0 ? null : read.first(); } public boolean hidden(){ return false; } //protected methods are only for internal UI layout utilities protected void param(Cell