From b1b03a75033e39804f0bf1390b276dbaf162357c Mon Sep 17 00:00:00 2001 From: Anuken Date: Sat, 31 Oct 2020 16:11:51 -0400 Subject: [PATCH] Extra legacy block substitution / iOS fixes --- core/src/mindustry/content/Blocks.java | 10 ++++++++-- core/src/mindustry/core/World.java | 4 ++-- core/src/mindustry/graphics/BlockRenderer.java | 2 +- core/src/mindustry/io/SaveFileReader.java | 8 ++++---- core/src/mindustry/world/Block.java | 2 +- .../src/mindustry/world/blocks/legacy/LegacyBlock.java | 5 +++++ .../world/blocks/legacy/LegacyUnitFactory.java | 9 +++++++++ ios/robovm.xml | 1 + 8 files changed, 31 insertions(+), 10 deletions(-) diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index 04af30ad10..f758f8da8c 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -1994,8 +1994,8 @@ public class Blocks implements ContentList{ illuminator = new LightBlock("illuminator"){{ requirements(Category.effect, BuildVisibility.lightingOnly, with(Items.graphite, 12, Items.silicon, 8)); brightness = 0.75f; - radius = 160f; - consumes.power(0.06f); + radius = 120f; + consumes.power(0.05f); }}; //endregion @@ -2004,6 +2004,12 @@ public class Blocks implements ContentList{ //looked up by name, no ref needed new LegacyMechPad("legacy-mech-pad"); new LegacyUnitFactory("legacy-unit-factory"); + new LegacyUnitFactory("legacy-unit-factory-air"){{ + replacement = Blocks.airFactory; + }}; + new LegacyUnitFactory("legacy-unit-factory-ground"){{ + replacement = Blocks.groundFactory; + }}; //endregion //region campaign diff --git a/core/src/mindustry/core/World.java b/core/src/mindustry/core/World.java index 60beec266b..b2607aa68e 100644 --- a/core/src/mindustry/core/World.java +++ b/core/src/mindustry/core/World.java @@ -200,8 +200,8 @@ public class World{ for(Tile tile : tiles){ //remove legacy blocks; they need to stop existing - if(tile.block() instanceof LegacyBlock){ - tile.remove(); + if(tile.block() instanceof LegacyBlock l){ + l.removeSelf(tile); continue; } diff --git a/core/src/mindustry/graphics/BlockRenderer.java b/core/src/mindustry/graphics/BlockRenderer.java index 7e90fba3ff..a5a78811f5 100644 --- a/core/src/mindustry/graphics/BlockRenderer.java +++ b/core/src/mindustry/graphics/BlockRenderer.java @@ -23,7 +23,7 @@ public class BlockRenderer implements Disposable{ public static final int crackRegions = 8, maxCrackSize = 9; private static final int initialRequests = 32 * 32; - private static final int expandr = 9; + private static final int expandr = 10; private static final Color shadowColor = new Color(0, 0, 0, 0.71f); public final FloorRenderer floor = new FloorRenderer(); diff --git a/core/src/mindustry/io/SaveFileReader.java b/core/src/mindustry/io/SaveFileReader.java index 2c32e38e7b..79299987a6 100644 --- a/core/src/mindustry/io/SaveFileReader.java +++ b/core/src/mindustry/io/SaveFileReader.java @@ -24,12 +24,12 @@ public abstract class SaveFileReader{ "spirit-factory", "legacy-unit-factory", "phantom-factory", "legacy-unit-factory", "wraith-factory", "legacy-unit-factory", - "ghoul-factory", "legacy-unit-factory", - "revenant-factory", "legacy-unit-factory", + "ghoul-factory", "legacy-unit-factory-air", + "revenant-factory", "legacy-unit-factory-air", "dagger-factory", "legacy-unit-factory", "crawler-factory", "legacy-unit-factory", - "titan-factory", "legacy-unit-factory", - "fortress-factory", "legacy-unit-factory", + "titan-factory", "legacy-unit-factory-ground", + "fortress-factory", "legacy-unit-factory-ground", "mass-conveyor", "payload-conveyor", "vestige", "scepter", diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 8203f14dd9..bdf7075776 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -617,7 +617,7 @@ public class Block extends UnlockableContent{ public ItemStack[] researchRequirements(){ ItemStack[] out = new ItemStack[requirements.length]; for(int i = 0; i < out.length; i++){ - int quantity = 60 + Mathf.round(Mathf.pow(requirements[i].amount, 1.12f) * 20 * researchCostMultiplier, 10); + int quantity = 60 + Mathf.round(Mathf.pow(requirements[i].amount, 1.1f) * 20 * researchCostMultiplier, 10); out[i] = new ItemStack(requirements[i].item, UI.roundAmount(quantity)); } diff --git a/core/src/mindustry/world/blocks/legacy/LegacyBlock.java b/core/src/mindustry/world/blocks/legacy/LegacyBlock.java index 0401387022..61b3d690f6 100644 --- a/core/src/mindustry/world/blocks/legacy/LegacyBlock.java +++ b/core/src/mindustry/world/blocks/legacy/LegacyBlock.java @@ -8,4 +8,9 @@ public class LegacyBlock extends Block{ public LegacyBlock(String name){ super(name); } + + /** Removes this block from the world, or replaces it with something else. */ + public void removeSelf(Tile tile){ + tile.remove(); + } } diff --git a/core/src/mindustry/world/blocks/legacy/LegacyUnitFactory.java b/core/src/mindustry/world/blocks/legacy/LegacyUnitFactory.java index c44eec9477..5a1b0e29de 100644 --- a/core/src/mindustry/world/blocks/legacy/LegacyUnitFactory.java +++ b/core/src/mindustry/world/blocks/legacy/LegacyUnitFactory.java @@ -1,9 +1,12 @@ package mindustry.world.blocks.legacy; import arc.util.io.*; +import mindustry.content.*; import mindustry.gen.*; +import mindustry.world.*; public class LegacyUnitFactory extends LegacyBlock{ + public Block replacement = Blocks.air; public LegacyUnitFactory(String name){ super(name); @@ -13,6 +16,12 @@ public class LegacyUnitFactory extends LegacyBlock{ solid = false; } + @Override + public void removeSelf(Tile tile){ + int rot = tile.build == null ? 0 : tile.build.rotation; + tile.setBlock(replacement, tile.team(), rot); + } + public class LegacyUnitFactoryBuild extends Building{ @Override diff --git a/ios/robovm.xml b/ios/robovm.xml index 0e4b1003ae..29869ea7ef 100644 --- a/ios/robovm.xml +++ b/ios/robovm.xml @@ -23,6 +23,7 @@ mindustry.gen.Call mindustry.net.** mindustry.world.blocks.** + mindustry.logic.** com.android.okhttp.HttpHandler com.android.okhttp.HttpsHandler com.android.org.conscrypt.**