From ed95e38257987a5a50a3e34f82c135192acf3247 Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 13 Oct 2018 11:33:49 -0400 Subject: [PATCH] Fixed breakable cores / Fixed sector sandbox / Fixed ship warp speed --- core/src/io/anuke/mindustry/core/Renderer.java | 8 +++++++- core/src/io/anuke/mindustry/core/World.java | 5 +++-- core/src/io/anuke/mindustry/entities/Player.java | 2 +- core/src/io/anuke/mindustry/world/Tile.java | 3 ++- .../anuke/mindustry/world/blocks/storage/CoreBlock.java | 2 +- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/core/src/io/anuke/mindustry/core/Renderer.java b/core/src/io/anuke/mindustry/core/Renderer.java index 70fbe85791..f6ca6b4b63 100644 --- a/core/src/io/anuke/mindustry/core/Renderer.java +++ b/core/src/io/anuke/mindustry/core/Renderer.java @@ -8,6 +8,7 @@ import com.badlogic.gdx.math.Vector2; import io.anuke.mindustry.content.fx.Fx; import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.entities.Player; +import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.Unit; import io.anuke.mindustry.entities.effect.GroundEffectEntity; import io.anuke.mindustry.entities.effect.GroundEffectEntity.GroundEffect; @@ -143,7 +144,12 @@ public class Renderer extends RendererModule{ Vector2 position = averagePosition(); if(players[0].isDead()){ - smoothCamera(position.x + 0.0001f, position.y + 0.0001f, 0.08f); + TileEntity core = players[0].getClosestCore(); + if(core != null){ + smoothCamera(core.x, core.y, 0.08f); + }else{ + smoothCamera(position.x + 0.0001f, position.y + 0.0001f, 0.08f); + } }else if(!mobile){ setCamera(position.x + 0.0001f, position.y + 0.0001f); } diff --git a/core/src/io/anuke/mindustry/core/World.java b/core/src/io/anuke/mindustry/core/World.java index 931bf6d6a5..6c35b3a357 100644 --- a/core/src/io/anuke/mindustry/core/World.java +++ b/core/src/io/anuke/mindustry/core/World.java @@ -209,6 +209,7 @@ public class World extends Module{ public void loadSector(Sector sector){ currentSector = sector; state.difficulty = sectors.getDifficulty(sector); + state.mode = sector.currentMission().getMode(); Timers.mark(); Timers.mark(); @@ -254,6 +255,8 @@ public class World extends Module{ return; } + endMapLoad(); + if(!headless && state.teams.get(players[0].getTeam()).cores.size == 0){ ui.showError("$text.map.nospawn"); threads.runDelay(() -> state.set(State.menu)); @@ -261,8 +264,6 @@ public class World extends Module{ }else{ invalidMap = false; } - - endMapLoad(); } public void notifyChanged(Tile tile){ diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index 593148c4f3..1740814796 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -534,7 +534,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait, ShooterTra isBoosting = true; } - float speed = isBoosting ? mech.boostSpeed : mech.speed; + float speed = isBoosting && !mech.flying ? mech.boostSpeed : mech.speed; //fraction of speed when at max load float carrySlowdown = 0.7f; diff --git a/core/src/io/anuke/mindustry/world/Tile.java b/core/src/io/anuke/mindustry/world/Tile.java index 79520f01b8..d3394c4b4b 100644 --- a/core/src/io/anuke/mindustry/world/Tile.java +++ b/core/src/io/anuke/mindustry/world/Tile.java @@ -429,10 +429,11 @@ public class Tile implements PosTrait, TargetTrait{ entity.power = new PowerModule(); entity.power.graph.add(this); } + if(!world.isGenerating()){ entity.updateProximity(); } - }else if(!(block instanceof BlockPart)){ + }else if(!(block instanceof BlockPart) && !world.isGenerating()){ //since the entity won't update proximity for us, update proximity for all nearby tiles manually for(GridPoint2 p : Geometry.d4){ Tile tile = world.tile(x + p.x, y + p.y); diff --git a/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java b/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java index 3e760677fc..5a7f7c1646 100644 --- a/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java @@ -29,6 +29,7 @@ import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Lines; import io.anuke.ucore.util.EnumSet; +import io.anuke.ucore.util.Log; import io.anuke.ucore.util.Mathf; import java.io.DataInputStream; @@ -82,7 +83,6 @@ public class CoreBlock extends StorageBlock{ @Override public void onProximityUpdate(Tile tile) { - //add cores state.teams.get(tile.getTeam()).cores.add(tile); }