diff --git a/core/src/mindustry/logic/LExecutor.java b/core/src/mindustry/logic/LExecutor.java index 485743a016..3b201e4809 100644 --- a/core/src/mindustry/logic/LExecutor.java +++ b/core/src/mindustry/logic/LExecutor.java @@ -21,7 +21,8 @@ public class LExecutor{ varTime = 1; public static final int - maxGraphicsBuffer = 512, + maxGraphicsBuffer = 256, + maxDisplayBuffer = 512, maxTextBuffer = 256; public LInstruction[] instructions = {}; @@ -462,8 +463,10 @@ public class LExecutor{ Building build = exec.building(target); if(build instanceof LogicDisplayBuild){ LogicDisplayBuild d = (LogicDisplayBuild)build; - for(int i = 0; i < exec.graphicsBuffer.size; i++){ - d.commands.addLast(exec.graphicsBuffer.items[i]); + if(d.commands.size + exec.graphicsBuffer.size < maxDisplayBuffer){ + for(int i = 0; i < exec.graphicsBuffer.size; i++){ + d.commands.addLast(exec.graphicsBuffer.items[i]); + } } exec.graphicsBuffer.clear(); } diff --git a/core/src/mindustry/net/Administration.java b/core/src/mindustry/net/Administration.java index bb6027e601..25fd12be89 100644 --- a/core/src/mindustry/net/Administration.java +++ b/core/src/mindustry/net/Administration.java @@ -19,13 +19,14 @@ import static mindustry.Vars.*; import static mindustry.game.EventType.*; public class Administration{ - /** All player info. Maps UUIDs to info. This persists throughout restarts. */ + public Seq bannedIPs = new Seq<>(); + public Seq whitelist = new Seq<>(); + public Seq chatFilters = new Seq<>(); + public Seq actionFilters = new Seq<>(); + public Seq subnetBans = new Seq<>(); + + /** All player info. Maps UUIDs to info. This persists throughout restarts. Do not access directly. */ private ObjectMap playerInfo = new ObjectMap<>(); - private Seq bannedIPs = new Seq<>(); - private Seq whitelist = new Seq<>(); - private Seq chatFilters = new Seq<>(); - private Seq actionFilters = new Seq<>(); - private Seq subnetBans = new Seq<>(); private IntIntMap lastPlaced = new IntIntMap(); public Administration(){ diff --git a/core/src/mindustry/world/blocks/logic/LogicDisplay.java b/core/src/mindustry/world/blocks/logic/LogicDisplay.java index ee3d53707a..6fe7e23e08 100644 --- a/core/src/mindustry/world/blocks/logic/LogicDisplay.java +++ b/core/src/mindustry/world/blocks/logic/LogicDisplay.java @@ -9,6 +9,7 @@ import arc.util.*; import mindustry.annotations.Annotations.*; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.logic.*; import mindustry.world.*; public class LogicDisplay extends Block{ @@ -37,7 +38,7 @@ public class LogicDisplay extends Block{ public FrameBuffer buffer; public float color = Color.whiteFloatBits; public float stroke = 1f; - public LongQueue commands = new LongQueue(); + public LongQueue commands = new LongQueue(LExecutor.maxDisplayBuffer); @Override public void draw(){