diff --git a/core/assets-raw/sprites/blocks/payload/small-deconstructor-top.png b/core/assets-raw/sprites/blocks/payload/small-deconstructor-top.png new file mode 100644 index 0000000000..b3e82d0529 Binary files /dev/null and b/core/assets-raw/sprites/blocks/payload/small-deconstructor-top.png differ diff --git a/core/assets-raw/sprites/blocks/payload/small-deconstructor.png b/core/assets-raw/sprites/blocks/payload/small-deconstructor.png index 5b94843d65..f3d979408f 100644 Binary files a/core/assets-raw/sprites/blocks/payload/small-deconstructor.png and b/core/assets-raw/sprites/blocks/payload/small-deconstructor.png differ diff --git a/core/assets/icons/icons.properties b/core/assets/icons/icons.properties index 8dade2a87d..61b222cbed 100755 --- a/core/assets/icons/icons.properties +++ b/core/assets/icons/icons.properties @@ -475,3 +475,4 @@ 63231=regen-projector|block-regen-projector-ui 63230=titan|block-titan-ui 63229=horde|block-horde-ui +63228=small-deconstructor|block-small-deconstructor-ui diff --git a/core/assets/logicids.dat b/core/assets/logicids.dat index fae5966c56..55fa2bf2f0 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 995443e55a..496e3e931e 100644 --- a/core/src/mindustry/content/Blocks.java +++ b/core/src/mindustry/content/Blocks.java @@ -3244,7 +3244,6 @@ public class Blocks{ consumes.power(6f); }}; - if(false) smallDeconstructor = new PayloadDeconstructor("small-deconstructor"){{ requirements(Category.units, with(Items.thorium, 80, Items.silicon, 80, Items.graphite, 80)); itemCapacity = 100; diff --git a/core/src/mindustry/content/ErekirTechTree.java b/core/src/mindustry/content/ErekirTechTree.java index dac1dd661b..8f395dcb24 100644 --- a/core/src/mindustry/content/ErekirTechTree.java +++ b/core/src/mindustry/content/ErekirTechTree.java @@ -43,10 +43,14 @@ public class ErekirTechTree{ }); }); - node(deconstructor, () -> { + node(smallDeconstructor, () -> { node(largeConstructor, () -> { }); + + node(deconstructor, () -> { + + }); }); }); }); diff --git a/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java b/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java index c854cf27e8..053620b7c9 100644 --- a/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java +++ b/core/src/mindustry/maps/planet/ErekirPlanetGenerator.java @@ -196,12 +196,12 @@ public class ErekirPlanetGenerator extends PlanetGenerator{ } }else if(!nearWall(x, y)){ - if(noise(x + 150, y + x*2 + 100, 4, 0.8f, 60f, 1f) > 0.76f/* && floor == Blocks.yellowStone*/){ + if(noise(x + 150, y + x*2 + 100, 4, 0.8f, 60f, 1f) > 0.75f/* && floor == Blocks.yellowStone*/){ ore = Blocks.oreTungsten; } //TODO design ore generation so it doesn't overlap - if(noise(x + 999, y + 600, 4, 0.63f, 50f, 1f) < 0.22f/* && floor == Blocks.yellowStone*/){ + if(noise(x + 999, y + 600, 4, 0.63f, 50f, 1f) < 0.21f/* && floor == Blocks.yellowStone*/){ ore = Blocks.oreThorium; } } diff --git a/core/src/mindustry/ui/fragments/PlacementFragment.java b/core/src/mindustry/ui/fragments/PlacementFragment.java index 75d1bc9e3e..6579accef4 100644 --- a/core/src/mindustry/ui/fragments/PlacementFragment.java +++ b/core/src/mindustry/ui/fragments/PlacementFragment.java @@ -445,7 +445,7 @@ public class PlacementFragment extends Fragment{ } boolean unlocked(Block block){ - return block.unlockedNow() && block.placeablePlayer && (state.rules.hiddenBuildItems.isEmpty() || !Structs.contains(block.requirements, i -> state.rules.hiddenBuildItems.contains(i.item))); + return block.unlockedNow() && block.placeablePlayer && block.environmentBuildable(); } boolean hasInfoBox(){ diff --git a/core/src/mindustry/world/Block.java b/core/src/mindustry/world/Block.java index 069bcf3154..8064ee77e7 100644 --- a/core/src/mindustry/world/Block.java +++ b/core/src/mindustry/world/Block.java @@ -781,6 +781,10 @@ public class Block extends UnlockableContent{ return buildVisibility != BuildVisibility.hidden && buildVisibility != BuildVisibility.debugOnly; } + public boolean environmentBuildable(){ + return (state.rules.hiddenBuildItems.isEmpty() || !Structs.contains(requirements, i -> state.rules.hiddenBuildItems.contains(i.item))); + } + public boolean isStatic(){ return cacheLayer == CacheLayer.walls; } diff --git a/core/src/mindustry/world/blocks/payloads/BlockProducer.java b/core/src/mindustry/world/blocks/payloads/BlockProducer.java index 53f21612c4..1d1f293e41 100644 --- a/core/src/mindustry/world/blocks/payloads/BlockProducer.java +++ b/core/src/mindustry/world/blocks/payloads/BlockProducer.java @@ -9,6 +9,7 @@ import mindustry.content.*; import mindustry.entities.units.*; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.logic.*; import mindustry.type.*; import mindustry.ui.*; import mindustry.world.*; @@ -136,6 +137,12 @@ public abstract class BlockProducer extends PayloadBlock{ Draw.rect(topRegion, x, y); } + @Override + public double sense(LAccess sensor){ + if(sensor == LAccess.progress) return progress; + return super.sense(sensor); + } + @Override public void write(Writes write){ super.write(write); diff --git a/core/src/mindustry/world/blocks/payloads/Constructor.java b/core/src/mindustry/world/blocks/payloads/Constructor.java index fab10c67b4..96016ad03a 100644 --- a/core/src/mindustry/world/blocks/payloads/Constructor.java +++ b/core/src/mindustry/world/blocks/payloads/Constructor.java @@ -43,7 +43,7 @@ public class Constructor extends BlockProducer{ } public boolean canProduce(Block b){ - return b.isVisible() && b.size >= minBlockSize && b.size <= maxBlockSize && !(b instanceof CoreBlock) && !state.rules.bannedBlocks.contains(b); + return b.isVisible() && b.size >= minBlockSize && b.size <= maxBlockSize && !(b instanceof CoreBlock) && !state.rules.bannedBlocks.contains(b) && b.environmentBuildable(); } public class ConstructorBuild extends BlockProducerBuild{ diff --git a/core/src/mindustry/world/blocks/payloads/PayloadDeconstructor.java b/core/src/mindustry/world/blocks/payloads/PayloadDeconstructor.java index 701384d0b2..00db606106 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadDeconstructor.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadDeconstructor.java @@ -7,6 +7,7 @@ import arc.util.io.*; import mindustry.content.*; import mindustry.gen.*; import mindustry.graphics.*; +import mindustry.logic.*; import mindustry.ui.*; import static mindustry.Vars.*; @@ -189,6 +190,12 @@ public class PayloadDeconstructor extends PayloadBlock{ } } + @Override + public double sense(LAccess sensor){ + if(sensor == LAccess.progress) return progress; + return super.sense(sensor); + } + @Override public boolean shouldConsume(){ return deconstructing != null && enabled; diff --git a/core/src/mindustry/world/blocks/payloads/PayloadSource.java b/core/src/mindustry/world/blocks/payloads/PayloadSource.java index bacd26f287..d2146d5a48 100644 --- a/core/src/mindustry/world/blocks/payloads/PayloadSource.java +++ b/core/src/mindustry/world/blocks/payloads/PayloadSource.java @@ -71,7 +71,7 @@ public class PayloadSource extends PayloadBlock{ } public boolean canProduce(Block b){ - return b.isVisible() && b.size < size && !(b instanceof CoreBlock) && !state.rules.bannedBlocks.contains(b); + return b.isVisible() && b.size < size && !(b instanceof CoreBlock) && !state.rules.bannedBlocks.contains(b) && b.environmentBuildable(); } public boolean canProduce(UnitType t){ diff --git a/tools/build.gradle b/tools/build.gradle index b9713feb8f..914fb69e25 100644 --- a/tools/build.gradle +++ b/tools/build.gradle @@ -45,7 +45,7 @@ def transformColors = { List> list -> //TODO implementing this in gradle is a bad idea //d4816b -transformColors([["4a4b53", "6e7080", "989aa4"], ["3a5651", "3a8f64", "92dd7e"], ["bf92f9", "8a73c6", "665c9f"], /*["6e7080", "989aa4", "b0bac0"],*/ ["bc5452", "ea8878", "feb380"], +transformColors([/*["4a4b53", "6e7080", "989aa4"],*/ ["3a5651", "3a8f64", "92dd7e"], ["bf92f9", "8a73c6", "665c9f"], ["6e7080", "989aa4", "b0bac0"], ["bc5452", "ea8878", "feb380"], ["de9458", "f8c266", "ffe18f"], ["feb380", "ea8878", "bc5452"], ["d4816b", "eab678", "ffd37f"], ["d57c65", "e3ae6f", "f7e97e"], ["ffffff", "dcc6c6", "9d7f7f"], ["df7646", "b23a4d", "752249"], ["3c3837", "515151", "646567"], ["5757c1", "6f80e8", "88a4ff"], ["8f665b", "b28768", "c9a58f"], ["4c5878", "768a9a", "a0b0c8"], ["62ae7f", "62ae7f", "84f491"]])