From 40d27c787c63ebd972c881d900f3dd7b0b52602d Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 1 Sep 2019 13:21:20 -0400 Subject: [PATCH] Fixed drones not finding blocked ores --- core/src/io/anuke/mindustry/ai/BlockIndexer.java | 9 ++++----- core/src/io/anuke/mindustry/core/NetServer.java | 4 ++-- core/src/io/anuke/mindustry/game/MusicControl.java | 2 +- core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java | 2 +- .../world/blocks/power/ItemLiquidGenerator.java | 2 +- 5 files changed, 9 insertions(+), 10 deletions(-) diff --git a/core/src/io/anuke/mindustry/ai/BlockIndexer.java b/core/src/io/anuke/mindustry/ai/BlockIndexer.java index a31b2bbf8a..a9e575f35d 100644 --- a/core/src/io/anuke/mindustry/ai/BlockIndexer.java +++ b/core/src/io/anuke/mindustry/ai/BlockIndexer.java @@ -242,14 +242,13 @@ public class BlockIndexer{ int quadrantY = tile.y / quadrantSize; itemSet.clear(); - Tile rounded = world.tile(Mathf.clamp(quadrantX * quadrantSize + quadrantSize / 2, 0, world.width() - 1), - Mathf.clamp(quadrantY * quadrantSize + quadrantSize / 2, 0, world.height() - 1)); + Tile rounded = world.tile(Mathf.clamp(quadrantX * quadrantSize + quadrantSize / 2, 0, world.width() - 1), Mathf.clamp(quadrantY * quadrantSize + quadrantSize / 2, 0, world.height() - 1)); //find all items that this quadrant contains - for(int x = quadrantX * quadrantSize; x < world.width() && x < (quadrantX + 1) * quadrantSize; x++){ - for(int y = quadrantY * quadrantSize; y < world.height() && y < (quadrantY + 1) * quadrantSize; y++){ + for(int x = Math.max(0, rounded.x - quadrantSize / 2); x < rounded.x + quadrantSize / 2 && x < world.width(); x++){ + for(int y = Math.max(0, rounded.y - quadrantSize / 2); y < rounded.y + quadrantSize / 2 && y < world.height(); y++){ Tile result = world.tile(x, y); - if(result == null || result.drop() == null || !scanOres.contains(result.drop())) continue; + if(result == null || result.drop() == null || !scanOres.contains(result.drop()) || result.block() != Blocks.air) continue; itemSet.add(result.drop()); } diff --git a/core/src/io/anuke/mindustry/core/NetServer.java b/core/src/io/anuke/mindustry/core/NetServer.java index c27120d513..dc05026b2d 100644 --- a/core/src/io/anuke/mindustry/core/NetServer.java +++ b/core/src/io/anuke/mindustry/core/NetServer.java @@ -261,7 +261,7 @@ public class NetServer implements ApplicationListener{ } //cooldown between votes - int voteTime = 60 * 10; + int voteTime = 60 * 5; Timekeeper vtime = new Timekeeper(voteTime); //current kick sessions ObjectMap currentlyKicking = new ObjectMap<>(); @@ -332,7 +332,7 @@ public class NetServer implements ApplicationListener{ } public int votesRequired(){ - return playerGroup.size() * 2 / 3; + return 2 + (int)(playerGroup.size() * 0.2f); } public Team assignTeam(Player current, Iterable players){ diff --git a/core/src/io/anuke/mindustry/game/MusicControl.java b/core/src/io/anuke/mindustry/game/MusicControl.java index 28991e87e2..dc16c5d464 100644 --- a/core/src/io/anuke/mindustry/game/MusicControl.java +++ b/core/src/io/anuke/mindustry/game/MusicControl.java @@ -14,7 +14,7 @@ import static io.anuke.mindustry.Vars.*; /** Controls playback of multiple music tracks.*/ public class MusicControl{ - private static final float finTime = 120f, foutTime = 120f, musicInterval = 60 * 60 * 3f, musicChance = 0.5f, musicWaveChance = 0.4f; + private static final float finTime = 120f, foutTime = 120f, musicInterval = 60 * 60 * 3f, musicChance = 0.6f, musicWaveChance = 0.5f; /** normal, ambient music, plays at any time */ public final Array ambientMusic = Array.with(Musics.game1, Musics.game3, Musics.game4, Musics.game6); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java index 11aa1a3a4f..1f2c04873b 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java @@ -80,7 +80,7 @@ public class MapsDialog extends FloatingDialog{ String name = map.tags.getOr("name", () -> { String result = "unknown"; int number = 0; - while(maps.byName(result + number++) != null) ; + while(maps.byName(result + number++) != null); return result + number; }); diff --git a/core/src/io/anuke/mindustry/world/blocks/power/ItemLiquidGenerator.java b/core/src/io/anuke/mindustry/world/blocks/power/ItemLiquidGenerator.java index a57f165907..a72d5ae1d8 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/ItemLiquidGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/ItemLiquidGenerator.java @@ -37,7 +37,7 @@ public class ItemLiquidGenerator extends PowerGenerator{ protected Effects.Effect explodeEffect = Fx.generatespark; protected Color heatColor = Color.valueOf("ff9b59"); protected TextureRegion topRegion, liquidRegion; - protected boolean randomlyExplode = false; + protected boolean randomlyExplode = true; public ItemLiquidGenerator(boolean hasItems, boolean hasLiquids, String name){ super(name);