diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 720abdcf90..94eaa3fb85 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -1298,6 +1298,7 @@ block.plated-conduit.name = Plated Conduit block.phase-conduit.name = Phase Conduit block.liquid-router.name = Liquid Router block.liquid-tank.name = Liquid Tank +block.liquid-container.name = Liquid Container block.liquid-junction.name = Liquid Junction block.bridge-conduit.name = Bridge Conduit block.rotary-pump.name = Rotary Pump @@ -1509,6 +1510,7 @@ block.conduit.description = Moves liquids forward. Used in conjunction with pump block.pulse-conduit.description = Moves liquids forward. Transports faster and stores more than standard conduits. block.plated-conduit.description = Moves liquids forward. Does not accept input from the sides. Does not leak. block.liquid-router.description = Accepts liquids from one direction and outputs them to up to 3 other directions equally. Can also store a certain amount of liquid. +block.liquid-container.description = Stores a sizeable amount of liquid. Outputs to all sides, similarly to a liquid router. block.liquid-tank.description = Stores a large amount of liquid. Outputs to all sides, similarly to a liquid router. block.liquid-junction.description = Acts as a bridge for two crossing conduits. block.bridge-conduit.description = Transports liquids over terrain or buildings. diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index beddcd7a3d..a80d821483 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -361,3 +361,10 @@ 63347=crater-stone|block-crater-stone-ui 63346=deep-tainted-water|block-deep-tainted-water-ui 63345=pooled-cryofluid|block-pooled-cryofluid-ui +63344=empty|block-empty-ui +63343=liquid-container|block-liquid-container-ui +63342=deconstructor|block-deconstructor-ui +63341=constructor|block-constructor-ui +63340=large-constructor|block-large-constructor-ui +63339=payload-loader|block-payload-loader-ui +63338=payload-unloader|block-payload-unloader-ui diff --git a/core/assets/logicids.dat b/core/assets/logicids.dat index fd648e6292..c100e73b87 100644 Binary files a/core/assets/logicids.dat and b/core/assets/logicids.dat differ diff --git a/core/src/mindustry/content/Blocks.java b/core/src/mindustry/content/Blocks.java index d61881a958..e7dddbe233 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -2302,14 +2302,15 @@ public class Blocks implements ContentList{ }}; constructor = new Constructor("constructor"){{ - requirements(Category.units, with(Items.thorium, 100)); + requirements(Category.units, with(Items.silicon, 50, Items.thorium, 70, Items.graphite, 50)); hasPower = true; consumes.power(2f); size = 3; }}; + //yes this block is pretty much useless largeConstructor = new Constructor("large-constructor"){{ - requirements(Category.units, with(Items.thorium, 100)); + requirements(Category.units, with(Items.silicon, 100, Items.thorium, 150, Items.graphite, 50, Items.phaseFabric, 40)); hasPower = true; consumes.power(2f); maxBlockSize = 4; @@ -2318,20 +2319,20 @@ public class Blocks implements ContentList{ }}; payloadLoader = new PayloadLoader("payload-loader"){{ - requirements(Category.units, with(Items.thorium, 100)); + requirements(Category.units, with(Items.graphite, 50, Items.silicon, 50, Items.copper, 100)); hasPower = true; consumes.power(2f); size = 3; }}; payloadUnloader = new PayloadUnloader("payload-unloader"){{ - requirements(Category.units, with(Items.thorium, 100)); + requirements(Category.units, with(Items.graphite, 50, Items.silicon, 50, Items.copper, 100)); hasPower = true; consumes.power(2f); size = 3; }}; - //TODO deprecated + //deprecated, will be removed. blockForge = constructor; blockLoader = payloadLoader; blockUnloader = payloadUnloader; diff --git a/core/src/mindustry/io/SaveFileReader.java b/core/src/mindustry/io/SaveFileReader.java index bb80119ff0..37f07b3e86 100644 --- a/core/src/mindustry/io/SaveFileReader.java +++ b/core/src/mindustry/io/SaveFileReader.java @@ -57,7 +57,9 @@ public abstract class SaveFileReader{ "slag", "molten-slag", "cryofluidmixer", "cryofluid-mixer", - "block-forge", "constructor" + "block-forge", "constructor", + "block-unloader", "payload-unloader", + "block-loader", "payload-loader" ); public static final ObjectMap modContentNameMap = ObjectMap.of( diff --git a/core/src/mindustry/mod/ClassMap.java b/core/src/mindustry/mod/ClassMap.java index 77065f2e67..54b5891ab1 100644 --- a/core/src/mindustry/mod/ClassMap.java +++ b/core/src/mindustry/mod/ClassMap.java @@ -1,10 +1,6 @@ package mindustry.mod; import arc.struct.*; -import mindustry.world.blocks.payloads.*; -import mindustry.world.blocks.payloads.PayloadLoader.*; -import mindustry.world.blocks.payloads.PayloadUnloader.*; - /** Generated class. Maps simple class names to concrete classes. For use in JSON mods. */ @SuppressWarnings("deprecation") public class ClassMap{ @@ -167,21 +163,21 @@ public class ClassMap{ classes.put("StackConveyor", mindustry.world.blocks.distribution.StackConveyor.class); classes.put("StackConveyorBuild", mindustry.world.blocks.distribution.StackConveyor.StackConveyorBuild.class); classes.put("AirBlock", mindustry.world.blocks.environment.AirBlock.class); + classes.put("Bush", mindustry.world.blocks.environment.Bush.class); classes.put("Cliff", mindustry.world.blocks.environment.Cliff.class); classes.put("DoubleOverlayFloor", mindustry.world.blocks.environment.DoubleOverlayFloor.class); classes.put("Floor", mindustry.world.blocks.environment.Floor.class); classes.put("OreBlock", mindustry.world.blocks.environment.OreBlock.class); classes.put("OverlayFloor", mindustry.world.blocks.environment.OverlayFloor.class); classes.put("Prop", mindustry.world.blocks.environment.Prop.class); - classes.put("SeaBush", mindustry.world.blocks.environment.SeaBush.class); - classes.put("Seaweed", mindustry.world.blocks.environment.Seaweed.class); classes.put("ShallowLiquid", mindustry.world.blocks.environment.ShallowLiquid.class); classes.put("SpawnBlock", mindustry.world.blocks.environment.SpawnBlock.class); - classes.put("StaticCoralWall", mindustry.world.blocks.environment.StaticCoralWall.class); + classes.put("StaticClusterWall", mindustry.world.blocks.environment.StaticClusterWall.class); classes.put("StaticTree", mindustry.world.blocks.environment.StaticTree.class); classes.put("StaticWall", mindustry.world.blocks.environment.StaticWall.class); classes.put("TreeBlock", mindustry.world.blocks.environment.TreeBlock.class); classes.put("WallOreBlock", mindustry.world.blocks.environment.WallOreBlock.class); + classes.put("WavingProp", mindustry.world.blocks.environment.WavingProp.class); classes.put("WobbleProp", mindustry.world.blocks.environment.WobbleProp.class); classes.put("BlockForge", mindustry.world.blocks.experimental.BlockForge.class); classes.put("BlockForgeBuild", mindustry.world.blocks.experimental.BlockForge.BlockForgeBuild.class); @@ -222,21 +218,14 @@ 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", Constructor.class); - classes.put("BlockLoader", PayloadLoader.class); - classes.put("BlockLoaderBuild", PayloadLoaderBuild.class); classes.put("BlockProducer", mindustry.world.blocks.payloads.BlockProducer.class); classes.put("BlockProducerBuild", mindustry.world.blocks.payloads.BlockProducer.BlockProducerBuild.class); - classes.put("BlockUnloader", PayloadUnloader.class); - classes.put("BlockUnloaderBuild", PayloadUnloaderBuild.class); classes.put("BuildPayload", mindustry.world.blocks.payloads.BuildPayload.class); classes.put("NuclearWarhead", mindustry.world.blocks.payloads.NuclearWarhead.class); classes.put("NuclearWarheadBuild", mindustry.world.blocks.payloads.NuclearWarhead.NuclearWarheadBuild.class); classes.put("Payload", mindustry.world.blocks.payloads.Payload.class); classes.put("PayloadBlock", mindustry.world.blocks.payloads.PayloadBlock.class); classes.put("PayloadBlockBuild", mindustry.world.blocks.payloads.PayloadBlock.PayloadBlockBuild.class); - classes.put("PayloadDeconstructor", mindustry.world.blocks.payloads.PayloadDeconstructor.class); - classes.put("PayloadDeconstructorBuild", mindustry.world.blocks.payloads.PayloadDeconstructor.PayloadDeconstructorBuild.class); classes.put("PayloadMassDriver", mindustry.world.blocks.payloads.PayloadMassDriver.class); classes.put("PayloadDriverBuild", mindustry.world.blocks.payloads.PayloadMassDriver.PayloadDriverBuild.class); classes.put("PayloadDriverState", mindustry.world.blocks.payloads.PayloadMassDriver.PayloadDriverState.class); diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 30b048e63f..feaf234ae9 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -388,9 +388,15 @@ public class Block extends UnlockableContent{ /** Returns whether or not this block can be place on the specified */ public boolean canPlaceOn(Tile tile, Team team, int rotation){ + return canPlaceOn(tile, team); + } + + /** Legacy canPlaceOn implementation, override {@link #canPlaceOn(Tile, Team, int)} instead.*/ + public boolean canPlaceOn(Tile tile, Team team){ return true; } + public boolean canBreak(Tile tile){ return true; }