From 2a995efa2ac9d0240da8fcb6e48ef164ff400add Mon Sep 17 00:00:00 2001 From: Anuken Date: Sun, 6 Sep 2020 13:26:23 -0400 Subject: [PATCH] Fixed default campaign core spawning units in blocks --- core/assets/baseparts/core1.msch | Bin 273 -> 598 bytes core/src/mindustry/Vars.java | 4 ++-- core/src/mindustry/ai/WaveSpawner.java | 4 ++-- .../maps/generators/BaseGenerator.java | 12 ++++++++++++ 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/core/assets/baseparts/core1.msch b/core/assets/baseparts/core1.msch index 43439698d7b307b263d6e4122ada2ee7f39bfe10..a9df583d3b89aef5fae8fe18cf2d4f9989b98140 100644 GIT binary patch literal 598 zcmc~TPR?MgnBzMoGw-nhPphWpwmlwkkH3lhG<5&8#O=Aen%*3}7Ym>D9X{U9$maU- zsK|Ve;*B<^H&4D?`**MB$Ku)?do9WJzi;0zi`jSW_S>T9{_DQC{`&;kT)X{T?_*)? z{rlUUSG}(Le`nu!=Tpi54Nf2byKTMxuhl!>9WSf=6V)#+_;d09An$^%Fq?To^X9lL zQu@O4;>Q){IIoX!3+FlbCTr_y2wm)KE))o5} zJH_(wPVDHh{+e_r^3_@`jhB&^HZMv4dA@krbIFcb)3O$wx~du^zOws@>x&PQjGqLG zEokCfIbVfgmA1&Vnxjv&Uo>zwYP|@^blfxRV^*oL$d09MzZ_Jye5#nZETHvXz+!d- z6;liLem@>tLjh$&#g|f^%CDOKNbx=oNaVh55Yt>>vHA#C*yA#J(+F>8x0=;e>euGa zo6ghHcKBw?v+Wg@2L$DoW`*Xi$ULLrzPj^f$lT7>W9m~(7rIF(=wD0qwlaKqWQp)( zKOd{eO9vl|Zz@&WoFly1_l%k0?UtP8q-Q(yGn~Tmr7gNAOR8@cpSkzMHSXp46C>y3 z?B#ftxc3ClbVQ^ z#s5r}tgqU}-#90_*5;PO&0in0_SY)REv+w&*;coIdtvSMT6ej>nQNYJ{9bkW_O7oN z*F7(nHD{RrOPR?}@vtDvIc<@O{LJ&=)^mbt0t9}nSb5@vvai#;i4$ILm0^5h)ii%W z;U(oLR_DD26Gg?nGq(Dj3U6}v;5s;ObI@g<4o;W9r@rhL5aQ2@GJhq-!L(4prAkGA z_L9xBXIQvv&#^aFSTkdH!_G^BD@6YHo+{CMb|=#5hOdT`f#5=qgmk~q9qDeIX?OOB isNUQrwr;jvN#~md+gn-Rq}ztQYhUpD2Q&8rIWGX?UV*Uy diff --git a/core/src/mindustry/Vars.java b/core/src/mindustry/Vars.java index 506b4dfc15..91939f332c 100644 --- a/core/src/mindustry/Vars.java +++ b/core/src/mindustry/Vars.java @@ -37,7 +37,7 @@ public class Vars implements Loadable{ /** Whether the logger is loaded. */ public static boolean loadedLogger = false, loadedFileLogger = false; /** Maximum extra padding around deployment schematics. */ - public static final int maxLoadoutSchematicPad = 4; + public static final int maxLoadoutSchematicPad = 5; /** Maximum schematic size.*/ public static final int maxSchematicSize = 32; /** All schematic base64 starts with this string.*/ @@ -134,7 +134,7 @@ public class Vars implements Loadable{ /** whether typing into the console is enabled - developers only */ public static boolean enableConsole = false; /** whether to clear sector saves when landing */ - public static boolean clearSectors = false; + public static boolean clearSectors = true; /** whether any light rendering is enabled */ public static boolean enableLight = true; /** Whether to draw shadows of blocks at map edges and static blocks. diff --git a/core/src/mindustry/ai/WaveSpawner.java b/core/src/mindustry/ai/WaveSpawner.java index 4ac1b4d8f8..151ff65418 100644 --- a/core/src/mindustry/ai/WaveSpawner.java +++ b/core/src/mindustry/ai/WaveSpawner.java @@ -17,7 +17,7 @@ import mindustry.world.*; import static mindustry.Vars.*; public class WaveSpawner{ - private static final float margin = 40f, coreMargin = tilesize * 3; //how far away from the edge flying units spawn + private static final float margin = 40f, coreMargin = tilesize * 3.5f; private Seq spawns = new Seq<>(); private boolean spawning = false; @@ -91,7 +91,7 @@ public class WaveSpawner{ if(state.rules.attackMode && state.teams.isActive(state.rules.waveTeam) && !state.teams.playerCores().isEmpty()){ Building firstCore = state.teams.playerCores().first(); for(Building core : state.rules.waveTeam.cores()){ - Tmp.v1.set(firstCore).sub(core).limit(coreMargin + core.block().size * tilesize); + Tmp.v1.set(firstCore).sub(core).limit(coreMargin + core.block().size * tilesize /2f * Mathf.sqrt2); cons.accept(core.x + Tmp.v1.x, core.y + Tmp.v1.y, false); } } diff --git a/core/src/mindustry/maps/generators/BaseGenerator.java b/core/src/mindustry/maps/generators/BaseGenerator.java index 74672f2fb0..a9be2c15fc 100644 --- a/core/src/mindustry/maps/generators/BaseGenerator.java +++ b/core/src/mindustry/maps/generators/BaseGenerator.java @@ -83,10 +83,22 @@ public class BaseGenerator{ } }); + //replace walls with the correct type + pass(tile -> { + if(tile.block() instanceof Wall && tile.team() == team && tile.block() != wall && tile.block() != wallLarge){ + tile.setBlock(tile.block().size == 2 ? wallLarge : wall, team); + } + }); + if(wallAngle > 0){ //small walls pass(tile -> { + //no walls around cores + if(cores.contains(t -> t.within(tile, (3 + 4) * tilesize))){ + return; + } + if(tile.block().alwaysReplace){ boolean any = false;