From d062d8081a002e805b51e2b022f2583d0297197a Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 21 Sep 2019 16:44:47 -0400 Subject: [PATCH] Bugfixes --- build.gradle | 2 +- .../mindustry/editor/MapEditorDialog.java | 3 ++- .../mindustry/ui/dialogs/LoadDialog.java | 1 + .../world/blocks/storage/LaunchPad.java | 2 +- desktop/build.gradle | 2 +- .../anuke/mindustry/desktop/steam/SStats.java | 24 ++++++++++++------- .../mindustry/desktop/steam/SWorkshop.java | 4 ++++ .../anuke/mindustry/server/ServerControl.java | 1 + settings.gradle | 5 ++-- 9 files changed, 30 insertions(+), 14 deletions(-) diff --git a/build.gradle b/build.gradle index 8e4fe06ec2..9411b3544d 100644 --- a/build.gradle +++ b/build.gradle @@ -30,7 +30,7 @@ allprojects{ arcHash = null debugged = { - return new File(projectDir.parent, '../debug').exists() && !project.hasProperty("release") && project.hasProperty("args") + return new File(projectDir.parent, '../Mindustry-Debug').exists() && !project.hasProperty("release") && project.hasProperty("args") } localArc = { diff --git a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java index c4c278b5e0..93ea4f243b 100644 --- a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java +++ b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java @@ -156,7 +156,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ return; } - if(!Gamemode.survival.valid(map)){ + if(!Structs.contains(Gamemode.all, g -> g.valid(map))){ ui.showErrorMessage("$map.nospawn"); return; } @@ -260,6 +260,7 @@ public class MapEditorDialog extends Dialog implements Disposable{ state.teams = new Teams(); player.reset(); state.rules = Gamemode.editor.apply(lastSavedRules.copy()); + state.rules.zone = null; world.setMap(new Map(StringMap.of( "name", "Editor Playtesting", "width", editor.width(), diff --git a/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java index 4ee58e10af..c083999b89 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/LoadDialog.java @@ -195,6 +195,7 @@ public class LoadDialog extends FloatingDialog{ try{ net.reset(); slot.load(); + state.rules.zone = null; state.set(State.playing); }catch(SaveException e){ Log.err(e); diff --git a/core/src/io/anuke/mindustry/world/blocks/storage/LaunchPad.java b/core/src/io/anuke/mindustry/world/blocks/storage/LaunchPad.java index 0e8d0fc7db..6473e1c18e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/storage/LaunchPad.java +++ b/core/src/io/anuke/mindustry/world/blocks/storage/LaunchPad.java @@ -73,7 +73,7 @@ public class LaunchPad extends StorageBlock{ public void update(Tile tile){ TileEntity entity = tile.entity; - if(entity.cons.valid() && world.isZone() && entity.items.total() >= itemCapacity && entity.timer.get(timerLaunch, launchTime / entity.timeScale)){ + if(world.isZone() && entity.cons.valid() && world.isZone() && entity.items.total() >= itemCapacity && entity.timer.get(timerLaunch, launchTime / entity.timeScale)){ for(Item item : Vars.content.items()){ Events.fire(Trigger.itemLaunch); Effects.effect(Fx.padlaunch, tile); diff --git a/desktop/build.gradle b/desktop/build.gradle index fa29af4f96..7aac76552a 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -10,7 +10,7 @@ project.ext.mainClassName = "io.anuke.mindustry.desktop.DesktopLauncher" project.ext.assetsDir = new File("../core/assets") def enableTemplates = true -def JDK_DIR = "$System.env.PACKR_DIR" +def JDK_DIR = "$System.env.JDK_DIR" def ICON_DIR = new File("core/assets/icons/icon.icns") task run(dependsOn: classes, type: JavaExec){ diff --git a/desktop/src/io/anuke/mindustry/desktop/steam/SStats.java b/desktop/src/io/anuke/mindustry/desktop/steam/SStats.java index c17ba75d7e..d7678d7a92 100644 --- a/desktop/src/io/anuke/mindustry/desktop/steam/SStats.java +++ b/desktop/src/io/anuke/mindustry/desktop/steam/SStats.java @@ -158,27 +158,27 @@ public class SStats implements SteamUserStatsCallback{ Events.on(Trigger.drown, drown::complete); - Events.on(Trigger.impactPower, powerupImpactReactor::complete); + trigger(Trigger.impactPower, powerupImpactReactor); - Events.on(Trigger.flameAmmo, useFlameAmmo::complete); + trigger(Trigger.flameAmmo, useFlameAmmo); - Events.on(Trigger.turretCool, coolTurret::complete); + trigger(Trigger.turretCool, coolTurret); + + trigger(Trigger.suicideBomb, suicideBomb); Events.on(Trigger.enablePixelation, enablePixelation::complete); - Events.on(Trigger.suicideBomb, suicideBomb::complete); - Events.on(Trigger.thoriumReactorOverheat, () -> { if(campaign()){ SStat.reactorsOverheated.add(); } }); - Events.on(Trigger.shock, shockWetEnemy::complete); + trigger(Trigger.shock, shockWetEnemy); - Events.on(Trigger.phaseDeflectHit, killEnemyPhaseWall::complete); + trigger(Trigger.phaseDeflectHit, killEnemyPhaseWall); - Events.on(Trigger.itemLaunch, launchItemPad::complete); + trigger(Trigger.itemLaunch, launchItemPad); Events.on(UnitCreateEvent.class, e -> { if(campaign() && e.unit.getTeam() == player.getTeam()){ @@ -263,6 +263,14 @@ public class SStats implements SteamUserStatsCallback{ }); } + private void trigger(Trigger trigger, SAchievement ach){ + Events.on(trigger, () -> { + if(campaign()){ + ach.complete(); + } + }); + } + private boolean ncustom(){ return campaign(); } diff --git a/desktop/src/io/anuke/mindustry/desktop/steam/SWorkshop.java b/desktop/src/io/anuke/mindustry/desktop/steam/SWorkshop.java index f233218fd1..6ebf8792c9 100644 --- a/desktop/src/io/anuke/mindustry/desktop/steam/SWorkshop.java +++ b/desktop/src/io/anuke/mindustry/desktop/steam/SWorkshop.java @@ -31,6 +31,10 @@ public class SWorkshop implements SteamUGCCallback{ return new FileHandle(info.getFolder()); }).select(f -> f.list().length > 0).map(f -> f.list()[0]); + if(items > 0){ + SAchievement.downloadMapWorkshop.complete(); + } + Log.info("Fetching {0} subscribed maps.", items); } diff --git a/server/src/io/anuke/mindustry/server/ServerControl.java b/server/src/io/anuke/mindustry/server/ServerControl.java index edfc4410c2..501e6fb157 100644 --- a/server/src/io/anuke/mindustry/server/ServerControl.java +++ b/server/src/io/anuke/mindustry/server/ServerControl.java @@ -688,6 +688,7 @@ public class ServerControl implements ApplicationListener{ Core.app.post(() -> { try{ SaveIO.loadFromSlot(slot); + state.rules.zone = null; }catch(Throwable t){ err("Failed to load save. Outdated or corrupt file."); } diff --git a/settings.gradle b/settings.gradle index e81f9cf42c..f97bd7c08d 100644 --- a/settings.gradle +++ b/settings.gradle @@ -36,8 +36,9 @@ if(!hasProperty("release")){ use(':Arc:backends:backend-headless') } - if(new File(settingsDir, '../debug').exists()){ - use(':debug') + if(new File(settingsDir, '../Mindustry-Debug').exists()){ + include(":debug") + project(":debug").projectDir = new File(settingsDir, "../Mindustry-Debug") } }else{ println("Not including local repositories.")