This commit is contained in:
Anuken 2019-09-21 16:44:47 -04:00
parent 5955ecefd3
commit d062d8081a
9 changed files with 30 additions and 14 deletions

View file

@ -30,7 +30,7 @@ allprojects{
arcHash = null arcHash = null
debugged = { 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 = { localArc = {

View file

@ -156,7 +156,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
return; return;
} }
if(!Gamemode.survival.valid(map)){ if(!Structs.contains(Gamemode.all, g -> g.valid(map))){
ui.showErrorMessage("$map.nospawn"); ui.showErrorMessage("$map.nospawn");
return; return;
} }
@ -260,6 +260,7 @@ public class MapEditorDialog extends Dialog implements Disposable{
state.teams = new Teams(); state.teams = new Teams();
player.reset(); player.reset();
state.rules = Gamemode.editor.apply(lastSavedRules.copy()); state.rules = Gamemode.editor.apply(lastSavedRules.copy());
state.rules.zone = null;
world.setMap(new Map(StringMap.of( world.setMap(new Map(StringMap.of(
"name", "Editor Playtesting", "name", "Editor Playtesting",
"width", editor.width(), "width", editor.width(),

View file

@ -195,6 +195,7 @@ public class LoadDialog extends FloatingDialog{
try{ try{
net.reset(); net.reset();
slot.load(); slot.load();
state.rules.zone = null;
state.set(State.playing); state.set(State.playing);
}catch(SaveException e){ }catch(SaveException e){
Log.err(e); Log.err(e);

View file

@ -73,7 +73,7 @@ public class LaunchPad extends StorageBlock{
public void update(Tile tile){ public void update(Tile tile){
TileEntity entity = tile.entity; 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()){ for(Item item : Vars.content.items()){
Events.fire(Trigger.itemLaunch); Events.fire(Trigger.itemLaunch);
Effects.effect(Fx.padlaunch, tile); Effects.effect(Fx.padlaunch, tile);

View file

@ -10,7 +10,7 @@ project.ext.mainClassName = "io.anuke.mindustry.desktop.DesktopLauncher"
project.ext.assetsDir = new File("../core/assets") project.ext.assetsDir = new File("../core/assets")
def enableTemplates = true 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") def ICON_DIR = new File("core/assets/icons/icon.icns")
task run(dependsOn: classes, type: JavaExec){ task run(dependsOn: classes, type: JavaExec){

View file

@ -158,27 +158,27 @@ public class SStats implements SteamUserStatsCallback{
Events.on(Trigger.drown, drown::complete); 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.enablePixelation, enablePixelation::complete);
Events.on(Trigger.suicideBomb, suicideBomb::complete);
Events.on(Trigger.thoriumReactorOverheat, () -> { Events.on(Trigger.thoriumReactorOverheat, () -> {
if(campaign()){ if(campaign()){
SStat.reactorsOverheated.add(); 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 -> { Events.on(UnitCreateEvent.class, e -> {
if(campaign() && e.unit.getTeam() == player.getTeam()){ 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(){ private boolean ncustom(){
return campaign(); return campaign();
} }

View file

@ -31,6 +31,10 @@ public class SWorkshop implements SteamUGCCallback{
return new FileHandle(info.getFolder()); return new FileHandle(info.getFolder());
}).select(f -> f.list().length > 0).map(f -> f.list()[0]); }).select(f -> f.list().length > 0).map(f -> f.list()[0]);
if(items > 0){
SAchievement.downloadMapWorkshop.complete();
}
Log.info("Fetching {0} subscribed maps.", items); Log.info("Fetching {0} subscribed maps.", items);
} }

View file

@ -688,6 +688,7 @@ public class ServerControl implements ApplicationListener{
Core.app.post(() -> { Core.app.post(() -> {
try{ try{
SaveIO.loadFromSlot(slot); SaveIO.loadFromSlot(slot);
state.rules.zone = null;
}catch(Throwable t){ }catch(Throwable t){
err("Failed to load save. Outdated or corrupt file."); err("Failed to load save. Outdated or corrupt file.");
} }

View file

@ -36,8 +36,9 @@ if(!hasProperty("release")){
use(':Arc:backends:backend-headless') use(':Arc:backends:backend-headless')
} }
if(new File(settingsDir, '../debug').exists()){ if(new File(settingsDir, '../Mindustry-Debug').exists()){
use(':debug') include(":debug")
project(":debug").projectDir = new File(settingsDir, "../Mindustry-Debug")
} }
}else{ }else{
println("Not including local repositories.") println("Not including local repositories.")