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.**