From c250b1d24a7964144bc06a0227d9eb36f20aed46 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 28 Dec 2019 11:16:35 -0500 Subject: [PATCH] Fixes --- core/assets/scripts/base.js | 2 +- core/assets/scripts/global.js | 2 +- core/src/mindustry/content/Mechs.java | 5 +- core/src/mindustry/core/NetClient.java | 2 +- core/src/mindustry/core/NetServer.java | 14 +++-- core/src/mindustry/editor/EditorTool.java | 57 +++++++++++-------- .../world/blocks/defense/MendProjector.java | 2 - 7 files changed, 45 insertions(+), 39 deletions(-) diff --git a/core/assets/scripts/base.js b/core/assets/scripts/base.js index a83a66c728..6ce3070968 100755 --- a/core/assets/scripts/base.js +++ b/core/assets/scripts/base.js @@ -16,5 +16,5 @@ const boolp = method => new Boolp(){get: method} const cons = method => new Cons(){get: method} const prov = method => new Prov(){get: method} const newEffect = (lifetime, renderer) => new Effects.Effect(lifetime, new Effects.EffectRenderer({render: renderer})) -Call = Packages.io.anuke.mindustry.gen.Call +Call = Packages.mindustry.gen.Call const Calls = Call //backwards compat \ No newline at end of file diff --git a/core/assets/scripts/global.js b/core/assets/scripts/global.js index 862ded3759..4c234eddb3 100755 --- a/core/assets/scripts/global.js +++ b/core/assets/scripts/global.js @@ -18,7 +18,7 @@ const boolp = method => new Boolp(){get: method} const cons = method => new Cons(){get: method} const prov = method => new Prov(){get: method} const newEffect = (lifetime, renderer) => new Effects.Effect(lifetime, new Effects.EffectRenderer({render: renderer})) -Call = Packages.io.anuke.mindustry.gen.Call +Call = Packages.mindustry.gen.Call const Calls = Call //backwards compat importPackage(Packages.arc) importPackage(Packages.arc.func) diff --git a/core/src/mindustry/content/Mechs.java b/core/src/mindustry/content/Mechs.java index 5836a9ae11..8ffc1a4bd9 100644 --- a/core/src/mindustry/content/Mechs.java +++ b/core/src/mindustry/content/Mechs.java @@ -307,10 +307,9 @@ public class Mechs implements ContentList{ super.updateAlt(player); if(player.timer.get(Player.timerAbility, effectReload)){ - //wasHealed = false; Units.nearby(player.getTeam(), player.x, player.y, effectRange, unit -> { - unit.applyEffect(StatusEffects.overdrive, effectDuration); + //unit.applyEffect(StatusEffects.overdrive, effectDuration); }); indexer.eachBlock(player, effectRange, other -> other.entity.damaged(), other -> { @@ -318,9 +317,7 @@ public class Mechs implements ContentList{ Effects.effect(Fx.healBlockFull, Pal.heal, other.drawx(), other.drawy(), other.block().size); }); - //if(wasHealed){ Effects.effect(Fx.overdriveWave, player); - //} } } }; diff --git a/core/src/mindustry/core/NetClient.java b/core/src/mindustry/core/NetClient.java index 96daa07041..656568e8e2 100644 --- a/core/src/mindustry/core/NetClient.java +++ b/core/src/mindustry/core/NetClient.java @@ -385,7 +385,7 @@ public class NetClient implements ApplicationListener{ netClient.byteStream.setBytes(net.decompressSnapshot(coreData, coreDataLen)); DataInputStream input = netClient.dataStream; - byte cores = input.readByte(); + int cores = input.readInt(); for(int i = 0; i < cores; i++){ int pos = input.readInt(); Tile tile = world.tile(pos); diff --git a/core/src/mindustry/core/NetServer.java b/core/src/mindustry/core/NetServer.java index c74f14211c..47f4d00ebe 100644 --- a/core/src/mindustry/core/NetServer.java +++ b/core/src/mindustry/core/NetServer.java @@ -1,14 +1,14 @@ package mindustry.core; import arc.*; -import mindustry.annotations.Annotations.*; -import arc.struct.*; import arc.graphics.*; import arc.math.*; import arc.math.geom.*; +import arc.struct.*; import arc.util.*; import arc.util.CommandHandler.*; import arc.util.io.*; +import mindustry.annotations.Annotations.*; import mindustry.content.*; import mindustry.core.GameState.*; import mindustry.entities.*; @@ -295,9 +295,11 @@ public class NetServer implements ApplicationListener{ void vote(Player player, int d){ votes += d; voted.addAll(player.uuid, admins.getInfo(player.uuid).lastIP); - - Call.sendMessage(Strings.format("[orange]{0}[lightgray] has voted to kick[orange] {1}[].[accent] ({2}/{3})\n[lightgray]Type[orange] /vote [] to agree.", - player.name, target.name, votes, votesRequired())); + + if(!checkPass()){ + Call.sendMessage(Strings.format("[orange]{0}[lightgray] has voted to kick[orange] {1}[].[accent] ({2}/{3})\n[lightgray]Type[orange] /vote [] to agree.", + player.name, target.name, votes, votesRequired())); + } } boolean checkPass(){ @@ -654,7 +656,7 @@ public class NetServer implements ApplicationListener{ syncStream.reset(); Array cores = state.teams.cores(player.getTeam()); - dataStream.writeByte(cores.size); + dataStream.writeInt(cores.size); for(CoreEntity entity : cores){ dataStream.writeInt(entity.tile.pos()); diff --git a/core/src/mindustry/editor/EditorTool.java b/core/src/mindustry/editor/EditorTool.java index 50442ff0f2..7fc153cc83 100644 --- a/core/src/mindustry/editor/EditorTool.java +++ b/core/src/mindustry/editor/EditorTool.java @@ -166,33 +166,42 @@ public enum EditorTool{ stack.clear(); stack.add(Pos.get(x, y)); - while(stack.size > 0){ - int popped = stack.pop(); - x = Pos.x(popped); - y = Pos.y(popped); + try{ + while(stack.size > 0 && stack.size < width*height){ + int popped = stack.pop(); + x = Pos.x(popped); + y = Pos.y(popped); - x1 = x; - while(x1 >= 0 && tester.get(editor.tile(x1, y))) x1--; - x1++; - boolean spanAbove = false, spanBelow = false; - while(x1 < width && tester.get(editor.tile(x1, y))){ - filler.get(editor.tile(x1, y)); - - if(!spanAbove && y > 0 && tester.get(editor.tile(x1, y - 1))){ - stack.add(Pos.get(x1, y - 1)); - spanAbove = true; - }else if(spanAbove && !tester.get(editor.tile(x1, y - 1))){ - spanAbove = false; - } - - if(!spanBelow && y < height - 1 && tester.get(editor.tile(x1, y + 1))){ - stack.add(Pos.get(x1, y + 1)); - spanBelow = true; - }else if(spanBelow && y < height - 1 && !tester.get(editor.tile(x1, y + 1))){ - spanBelow = false; - } + x1 = x; + while(x1 >= 0 && tester.get(editor.tile(x1, y))) x1--; x1++; + boolean spanAbove = false, spanBelow = false; + while(x1 < width && tester.get(editor.tile(x1, y))){ + filler.get(editor.tile(x1, y)); + + if(!spanAbove && y > 0 && tester.get(editor.tile(x1, y - 1))){ + stack.add(Pos.get(x1, y - 1)); + spanAbove = true; + }else if(spanAbove && !tester.get(editor.tile(x1, y - 1))){ + spanAbove = false; + } + + if(!spanBelow && y < height - 1 && tester.get(editor.tile(x1, y + 1))){ + stack.add(Pos.get(x1, y + 1)); + spanBelow = true; + }else if(spanBelow && y < height - 1 && !tester.get(editor.tile(x1, y + 1))){ + spanBelow = false; + } + x1++; + } } + stack.clear(); + }catch(OutOfMemoryError e){ + //hack + stack = null; + System.gc(); + e.printStackTrace(); + stack = new IntArray(); } } } diff --git a/core/src/mindustry/world/blocks/defense/MendProjector.java b/core/src/mindustry/world/blocks/defense/MendProjector.java index 2eb7c79d53..e033af0bc0 100644 --- a/core/src/mindustry/world/blocks/defense/MendProjector.java +++ b/core/src/mindustry/world/blocks/defense/MendProjector.java @@ -107,9 +107,7 @@ public class MendProjector extends Block{ Draw.color(baseColor, phaseColor, entity.phaseHeat); Draw.alpha(entity.heat * Mathf.absin(Time.time(), 10f, 1f) * 0.5f); - //Draw.blend(Blending.additive); Draw.rect(topRegion, tile.drawx(), tile.drawy()); - //Draw.blend(); Draw.alpha(1f); Lines.stroke((2f * f + 0.2f) * entity.heat);