diff --git a/core/assets/maps/onset.msav b/core/assets/maps/onset.msav index eb61d46163..cae3ed058e 100644 Binary files a/core/assets/maps/onset.msav and b/core/assets/maps/onset.msav differ diff --git a/core/src/mindustry/ai/BlockIndexer.java b/core/src/mindustry/ai/BlockIndexer.java index b55ca3571f..28e387aceb 100644 --- a/core/src/mindustry/ai/BlockIndexer.java +++ b/core/src/mindustry/ai/BlockIndexer.java @@ -144,7 +144,7 @@ public class BlockIndexer{ process(tile); var drop = tile.drop(); - if(drop != null){ + if(drop != null && ores != null){ int qx = tile.x / quadrantSize; int qy = tile.y / quadrantSize; diff --git a/core/src/mindustry/core/Logic.java b/core/src/mindustry/core/Logic.java index d13cbf5408..398fc751f2 100644 --- a/core/src/mindustry/core/Logic.java +++ b/core/src/mindustry/core/Logic.java @@ -168,18 +168,6 @@ public class Logic implements ApplicationListener{ } }); - //send out items to each client - Events.on(TurnEvent.class, e -> { - if(net.server() && state.isCampaign()){ - int[] out = new int[content.items().size]; - state.getSector().info.production.each((item, stat) -> { - out[item.id] = Math.max(0, (int)(stat.mean * turnDuration / 60)); - }); - - Call.sectorProduced(out); - } - }); - //listen to core changes; if all cores have been destroyed, set to derelict. Events.on(CoreChangeEvent.class, e -> Core.app.post(() -> { if(state.rules.cleanupDeadTeams && state.rules.pvp && !e.core.isAdded() && e.core.team != Team.derelict && e.core.team.cores().isEmpty()){ @@ -397,7 +385,9 @@ public class Logic implements ApplicationListener{ //called when the remote server runs a turn and produces something @Remote public static void sectorProduced(int[] amounts){ - if(!state.isCampaign()) return; + //TODO currently disabled. + if(!state.isCampaign() || true) return; + Planet planet = state.rules.sector.planet; boolean any = false; diff --git a/core/src/mindustry/input/MobileInput.java b/core/src/mindustry/input/MobileInput.java index d9639c7733..2807e431b1 100644 --- a/core/src/mindustry/input/MobileInput.java +++ b/core/src/mindustry/input/MobileInput.java @@ -658,7 +658,7 @@ public class MobileInput extends InputHandler implements GestureListener{ payloadTarget = null; //control a unit/block detected on first tap of double-tap - if(unitTapped != null && state.rules.possessionAllowed){ + if(unitTapped != null && state.rules.possessionAllowed && unitTapped.isAI() && unitTapped.team == player.team() && !unitTapped.dead && unitTapped.type.playerControllable){ Call.unitControl(player, unitTapped); recentRespawnTimer = 1f; }else if(buildingTapped != null && state.rules.possessionAllowed){ diff --git a/core/src/mindustry/ui/dialogs/ModsDialog.java b/core/src/mindustry/ui/dialogs/ModsDialog.java index 311d980eb7..dda0708dd7 100644 --- a/core/src/mindustry/ui/dialogs/ModsDialog.java +++ b/core/src/mindustry/ui/dialogs/ModsDialog.java @@ -430,7 +430,7 @@ public class ModsDialog extends BaseDialog{ if(((mod.hasJava || mod.hasScripts) && Vars.ios) || (!Strings.matches(searchtxt, mod.name) && !Strings.matches(searchtxt, mod.repo)) //hack, I'm basically testing if 135.10 >= modVersion, which is equivalent to modVersion >= 136 - //|| (Version.isAtLeast(135, 10, mod.minGameVersion)) + || (Version.isAtLeast(135, 10, mod.minGameVersion)) ) continue; float s = 64f;