From 782307374fd3d61af2b6de06824d22c789a4f180 Mon Sep 17 00:00:00 2001 From: Anuken Date: Fri, 30 Oct 2020 09:24:05 -0400 Subject: [PATCH] Fixed #3189 / Fixed #3187 --- core/src/mindustry/game/SectorInfo.java | 2 +- core/src/mindustry/type/ItemSeq.java | 6 ++++++ core/src/mindustry/type/Sector.java | 1 + core/src/mindustry/world/blocks/logic/MessageBlock.java | 8 ++++---- core/src/mindustry/world/modules/ItemModule.java | 2 +- gradle.properties | 2 +- 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/core/src/mindustry/game/SectorInfo.java b/core/src/mindustry/game/SectorInfo.java index 12fb485650..8fd048a533 100644 --- a/core/src/mindustry/game/SectorInfo.java +++ b/core/src/mindustry/game/SectorInfo.java @@ -130,7 +130,7 @@ public class SectorInfo{ entity.items.clear(); entity.items.add(items); //ensure capacity. - entity.items.each((i, a) -> entity.items.set(i, Math.min(a, entity.storageCapacity))); + entity.items.each((i, a) -> entity.items.set(i, Mathf.clamp(a, 0, entity.storageCapacity))); } } diff --git a/core/src/mindustry/type/ItemSeq.java b/core/src/mindustry/type/ItemSeq.java index 49055fb5b9..512033af23 100644 --- a/core/src/mindustry/type/ItemSeq.java +++ b/core/src/mindustry/type/ItemSeq.java @@ -21,6 +21,12 @@ public class ItemSeq implements Iterable, Serializable{ stacks.each(this::add); } + public void checkNegative(){ + for(int i = 0; i < values.length; i++){ + if(values[i] < 0) values[i] = 0; + } + } + public ItemSeq copy(){ ItemSeq out = new ItemSeq(); out.total = total; diff --git a/core/src/mindustry/type/Sector.java b/core/src/mindustry/type/Sector.java index d9d54ba91c..bee7809de5 100644 --- a/core/src/mindustry/type/Sector.java +++ b/core/src/mindustry/type/Sector.java @@ -170,6 +170,7 @@ public class Sector{ } }else if(hasBase()){ items.each((item, amount) -> info.items.add(item, Math.min(info.storageCapacity - info.items.get(item), amount))); + info.items.checkNegative(); saveInfo(); } } diff --git a/core/src/mindustry/world/blocks/logic/MessageBlock.java b/core/src/mindustry/world/blocks/logic/MessageBlock.java index 26722774c6..e67bf93680 100644 --- a/core/src/mindustry/world/blocks/logic/MessageBlock.java +++ b/core/src/mindustry/world/blocks/logic/MessageBlock.java @@ -40,7 +40,7 @@ public class MessageBlock extends Block{ int count = 0; for(int i = 0; i < text.length(); i++){ char c = text.charAt(i); - if(c == '\n' || c == '\r'){ + if(c == '\n'){ count ++; if(count <= maxNewlines){ tile.message.append('\n'); @@ -95,12 +95,12 @@ public class MessageBlock extends Block{ }else{ BaseDialog dialog = new BaseDialog("@editmessage"); dialog.setFillParent(false); - TextArea a = dialog.cont.add(new TextArea(message.toString().replace("\n", "\r"))).size(380f, 160f).get(); + TextArea a = dialog.cont.add(new TextArea(message.toString().replace("\r", "\n"))).size(380f, 160f).get(); a.setFilter((textField, c) -> { - if(c == '\n' || c == '\r'){ + if(c == '\n'){ int count = 0; for(int i = 0; i < textField.getText().length(); i++){ - if(textField.getText().charAt(i) == '\n' || textField.getText().charAt(i) == '\r'){ + if(textField.getText().charAt(i) == '\n'){ count++; } } diff --git a/core/src/mindustry/world/modules/ItemModule.java b/core/src/mindustry/world/modules/ItemModule.java index 6cd96985cb..03ff5d5bb3 100644 --- a/core/src/mindustry/world/modules/ItemModule.java +++ b/core/src/mindustry/world/modules/ItemModule.java @@ -103,7 +103,7 @@ public class ItemModule extends BlockModule{ public void each(ItemConsumer cons){ for(int i = 0; i < items.length; i++){ - if(items[i] > 0){ + if(items[i] != 0){ cons.accept(content.item(i), items[i]); } } diff --git a/gradle.properties b/gradle.properties index 002a708536..c0255c10a9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=111e6e5134d06c8b017a126d8884cf49978b219c +archash=64d0a3b6aee8ac3da5ae0db6e0ec2074349e996a