diff --git a/core/assets-raw/sprites/blocks/payload/block-forge.png b/core/assets-raw/sprites/blocks/payload/block-forge.png deleted file mode 100644 index 6d37c59675..0000000000 Binary files a/core/assets-raw/sprites/blocks/payload/block-forge.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/payload/constructor-top.png b/core/assets-raw/sprites/blocks/payload/constructor-top.png new file mode 100644 index 0000000000..39a3ca79f3 Binary files /dev/null and b/core/assets-raw/sprites/blocks/payload/constructor-top.png differ diff --git a/core/assets-raw/sprites/blocks/payload/constructor.png b/core/assets-raw/sprites/blocks/payload/constructor.png new file mode 100644 index 0000000000..8f68ec1708 Binary files /dev/null and b/core/assets-raw/sprites/blocks/payload/constructor.png differ diff --git a/core/assets-raw/sprites/blocks/payload/payload-deconstructor-top.png b/core/assets-raw/sprites/blocks/payload/deconstructor-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/payload/payload-deconstructor-top.png rename to core/assets-raw/sprites/blocks/payload/deconstructor-top.png diff --git a/core/assets-raw/sprites/blocks/payload/payload-deconstructor.png b/core/assets-raw/sprites/blocks/payload/deconstructor.png similarity index 100% rename from core/assets-raw/sprites/blocks/payload/payload-deconstructor.png rename to core/assets-raw/sprites/blocks/payload/deconstructor.png diff --git a/core/assets-raw/sprites/blocks/units/factory-in-3.png b/core/assets-raw/sprites/blocks/payload/factory-in-3.png similarity index 100% rename from core/assets-raw/sprites/blocks/units/factory-in-3.png rename to core/assets-raw/sprites/blocks/payload/factory-in-3.png diff --git a/core/assets-raw/sprites/blocks/units/factory-in-5.png b/core/assets-raw/sprites/blocks/payload/factory-in-5.png similarity index 100% rename from core/assets-raw/sprites/blocks/units/factory-in-5.png rename to core/assets-raw/sprites/blocks/payload/factory-in-5.png diff --git a/core/assets-raw/sprites/blocks/units/factory-in-7.png b/core/assets-raw/sprites/blocks/payload/factory-in-7.png similarity index 100% rename from core/assets-raw/sprites/blocks/units/factory-in-7.png rename to core/assets-raw/sprites/blocks/payload/factory-in-7.png diff --git a/core/assets-raw/sprites/blocks/units/factory-in-9.png b/core/assets-raw/sprites/blocks/payload/factory-in-9.png similarity index 100% rename from core/assets-raw/sprites/blocks/units/factory-in-9.png rename to core/assets-raw/sprites/blocks/payload/factory-in-9.png diff --git a/core/assets-raw/sprites/blocks/units/factory-out-3.png b/core/assets-raw/sprites/blocks/payload/factory-out-3.png similarity index 100% rename from core/assets-raw/sprites/blocks/units/factory-out-3.png rename to core/assets-raw/sprites/blocks/payload/factory-out-3.png diff --git a/core/assets-raw/sprites/blocks/units/factory-out-5.png b/core/assets-raw/sprites/blocks/payload/factory-out-5.png similarity index 100% rename from core/assets-raw/sprites/blocks/units/factory-out-5.png rename to core/assets-raw/sprites/blocks/payload/factory-out-5.png diff --git a/core/assets-raw/sprites/blocks/units/factory-out-7.png b/core/assets-raw/sprites/blocks/payload/factory-out-7.png similarity index 100% rename from core/assets-raw/sprites/blocks/units/factory-out-7.png rename to core/assets-raw/sprites/blocks/payload/factory-out-7.png diff --git a/core/assets-raw/sprites/blocks/units/factory-out-9.png b/core/assets-raw/sprites/blocks/payload/factory-out-9.png similarity index 100% rename from core/assets-raw/sprites/blocks/units/factory-out-9.png rename to core/assets-raw/sprites/blocks/payload/factory-out-9.png diff --git a/core/assets-raw/sprites/blocks/units/factory-top-3.png b/core/assets-raw/sprites/blocks/payload/factory-top-3.png similarity index 100% rename from core/assets-raw/sprites/blocks/units/factory-top-3.png rename to core/assets-raw/sprites/blocks/payload/factory-top-3.png diff --git a/core/assets-raw/sprites/blocks/units/factory-top-5.png b/core/assets-raw/sprites/blocks/payload/factory-top-5.png similarity index 100% rename from core/assets-raw/sprites/blocks/units/factory-top-5.png rename to core/assets-raw/sprites/blocks/payload/factory-top-5.png diff --git a/core/assets-raw/sprites/blocks/payload/large-constructor.png b/core/assets-raw/sprites/blocks/payload/large-constructor.png new file mode 100644 index 0000000000..a69f4cf290 Binary files /dev/null and b/core/assets-raw/sprites/blocks/payload/large-constructor.png differ diff --git a/core/assets-raw/sprites/blocks/payload/payload-source.png b/core/assets-raw/sprites/blocks/payload/payload-source.png index 4c6b7b2070..a103553b71 100644 Binary files a/core/assets-raw/sprites/blocks/payload/payload-source.png and b/core/assets-raw/sprites/blocks/payload/payload-source.png differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index d263b4a56a..1bcd3712f9 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -96,7 +96,7 @@ public class Blocks implements ContentList{ repairPoint, repairTurret, resupplyPoint, //payloads - payloadConveyor, payloadRouter, payloadPropulsionTower, payloadDeconstructor, blockForge, blockLoader, blockUnloader, + payloadConveyor, payloadRouter, payloadPropulsionTower, deconstructor, constructor, blockLoader, blockUnloader, //logic message, switchBlock, microProcessor, logicProcessor, hyperProcessor, largeLogicDisplay, logicDisplay, memoryCell, memoryBank, @@ -108,6 +108,10 @@ public class Blocks implements ContentList{ nuclearWarhead, warheadAssembler, ballisticSilo //TODO ; + /** @deprecated use the blocks with proper names, */ + @Deprecated + public static Block blockForge; + @Override public void load(){ //region environment @@ -2227,7 +2231,7 @@ public class Blocks implements ContentList{ consumes.power(6f); }}; - payloadDeconstructor = new PayloadDeconstructor("payload-deconstructor"){{ + deconstructor = new PayloadDeconstructor("deconstructor"){{ requirements(Category.units, with(Items.thorium, 250, Items.silicon, 200, Items.graphite, 250)); itemCapacity = 250; consumes.power(3f); @@ -2235,7 +2239,7 @@ public class Blocks implements ContentList{ deconstructSpeed = 2f; }}; - blockForge = new BlockForge("block-forge"){{ + constructor = new Constructor("constructor"){{ requirements(Category.units, BuildVisibility.debugOnly, with(Items.thorium, 100)); hasPower = true; consumes.power(2f); @@ -2256,6 +2260,9 @@ public class Blocks implements ContentList{ size = 3; }}; + //TODO deprecated + blockForge = deconstructor; + //endregion //region sandbox diff --git a/core/src/mindustry/mod/ClassMap.java b/core/src/mindustry/mod/ClassMap.java index 71cfafe5d2..ffdb8cc170 100644 --- a/core/src/mindustry/mod/ClassMap.java +++ b/core/src/mindustry/mod/ClassMap.java @@ -1,6 +1,8 @@ package mindustry.mod; import arc.struct.*; +import mindustry.world.blocks.payloads.*; + /** Generated class. Maps simple class names to concrete classes. For use in JSON mods. */ @SuppressWarnings("deprecation") public class ClassMap{ @@ -220,8 +222,8 @@ public class ClassMap{ classes.put("SwitchBuild", mindustry.world.blocks.logic.SwitchBlock.SwitchBuild.class); classes.put("BallisticSilo", mindustry.world.blocks.payloads.BallisticSilo.class); classes.put("BallisticSiloBuild", mindustry.world.blocks.payloads.BallisticSilo.BallisticSiloBuild.class); - classes.put("BlockForge", mindustry.world.blocks.payloads.BlockForge.class); - classes.put("BlockForgeBuild", mindustry.world.blocks.payloads.BlockForge.BlockForgeBuild.class); + classes.put("BlockForge", Constructor.class); + classes.put("BlockForgeBuild", Constructor.BlockForgeBuild.class); classes.put("BlockLoader", mindustry.world.blocks.payloads.BlockLoader.class); classes.put("BlockLoaderBuild", mindustry.world.blocks.payloads.BlockLoader.BlockLoaderBuild.class); classes.put("BlockProducer", mindustry.world.blocks.payloads.BlockProducer.class); diff --git a/core/src/mindustry/world/blocks/experimental/BlockForge.java b/core/src/mindustry/world/blocks/experimental/BlockForge.java index 29adc64d00..8583b495f4 100644 --- a/core/src/mindustry/world/blocks/experimental/BlockForge.java +++ b/core/src/mindustry/world/blocks/experimental/BlockForge.java @@ -1,14 +1,16 @@ package mindustry.world.blocks.experimental; +import mindustry.world.blocks.payloads.*; + @Deprecated -public class BlockForge extends mindustry.world.blocks.payloads.BlockForge{ +public class BlockForge extends Constructor{ public BlockForge(String name){ super(name); } @Deprecated - public class BlockForgeBuild extends mindustry.world.blocks.payloads.BlockForge.BlockForgeBuild{ + public class BlockForgeBuild extends Constructor.BlockForgeBuild{ } } diff --git a/core/src/mindustry/world/blocks/payloads/BlockProducer.java b/core/src/mindustry/world/blocks/payloads/BlockProducer.java index ec8642cc90..1c17cd890c 100644 --- a/core/src/mindustry/world/blocks/payloads/BlockProducer.java +++ b/core/src/mindustry/world/blocks/payloads/BlockProducer.java @@ -34,7 +34,14 @@ public abstract class BlockProducer extends PayloadBlock{ @Override public TextureRegion[] icons(){ - return new TextureRegion[]{region, outRegion}; + return new TextureRegion[]{region, outRegion, topRegion}; + } + + @Override + public void drawRequestRegion(BuildPlan req, Eachable list){ + Draw.rect(region, req.drawx(), req.drawy()); + Draw.rect(outRegion, req.drawx(), req.drawy(), req.rotation * 90); + Draw.rect(topRegion, req.drawx(), req.drawy()); } @Override @@ -43,12 +50,6 @@ public abstract class BlockProducer extends PayloadBlock{ bars.add("progress", (BlockProducerBuild entity) -> new Bar("bar.progress", Pal.ammo, () -> entity.recipe() == null ? 0f : (entity.progress / entity.recipe().buildCost))); } - - @Override - public void drawRequestRegion(BuildPlan req, Eachable list){ - Draw.rect(region, req.drawx(), req.drawy()); - Draw.rect(outRegion, req.drawx(), req.drawy(), req.rotation * 90); - } public abstract class BlockProducerBuild extends PayloadBlockBuild{ public float progress, time, heat; @@ -126,6 +127,9 @@ public abstract class BlockProducer extends PayloadBlock{ } drawPayload(); + + Draw.z(Layer.blockBuilding + 1.1f); + Draw.rect(topRegion, x, y); } @Override diff --git a/core/src/mindustry/world/blocks/payloads/BlockForge.java b/core/src/mindustry/world/blocks/payloads/Constructor.java similarity index 88% rename from core/src/mindustry/world/blocks/payloads/BlockForge.java rename to core/src/mindustry/world/blocks/payloads/Constructor.java index 48a4d366a4..4359fd581d 100644 --- a/core/src/mindustry/world/blocks/payloads/BlockForge.java +++ b/core/src/mindustry/world/blocks/payloads/Constructor.java @@ -13,17 +13,17 @@ import mindustry.world.meta.*; import static mindustry.Vars.*; /** Configurable BlockProducer variant. */ -public class BlockForge extends BlockProducer{ +public class Constructor extends BlockProducer{ public float buildSpeed = 0.4f; public int minBlockSize = 1, maxBlockSize = 2; - public BlockForge(String name){ + public Constructor(String name){ super(name); size = 3; configurable = true; - config(Block.class, (BlockForgeBuild tile, Block block) -> { + config(Block.class, (ConstructorBuild tile, Block block) -> { if(tile.recipe != block) tile.progress = 0f; if(canProduce(block)){ tile.recipe = block; @@ -42,7 +42,7 @@ public class BlockForge extends BlockProducer{ return b.isVisible() && b.size >= minBlockSize && b.size <= maxBlockSize; } - public class BlockForgeBuild extends BlockProducerBuild{ + public class ConstructorBuild extends BlockProducerBuild{ public @Nullable Block recipe; @Override @@ -52,7 +52,7 @@ public class BlockForge extends BlockProducer{ @Override public void buildConfiguration(Table table){ - ItemSelection.buildTable(table, content.blocks().select(BlockForge.this::canProduce), () -> recipe, this::configure); + ItemSelection.buildTable(table, content.blocks().select(Constructor.this::canProduce), () -> recipe, this::configure); } @Override diff --git a/gradle.properties b/gradle.properties index 3489eea88c..a5a0e68fcb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,4 +10,4 @@ kapt.include.compile.classpath=false kotlin.stdlib.default.dependency=false #needed for android compilation android.useAndroidX=true -archash=f223b2a9d421d751209efedc615352257fb3773b +archash=a81197126a9190337ab9065734b5134d5f08ac05