From 8d186493238dfba25137d8398c8eef2c51849ef0 Mon Sep 17 00:00:00 2001 From: Sunny Kim <58885089+sk7725@users.noreply.github.com> Date: Sun, 27 Dec 2020 12:10:37 +0900 Subject: [PATCH 1/2] Block (un)loader major improvements (#4127) * make it consider consVaild * make this too * pattern style and max block size * Is there a better way to do this? * Update BlockUnloader.java * do not the /0 * prevent /0 * test 1 * yup it works for enabled --- .../mindustry/world/blocks/experimental/BlockLoader.java | 7 ++++--- .../mindustry/world/blocks/experimental/BlockUnloader.java | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/core/src/mindustry/world/blocks/experimental/BlockLoader.java b/core/src/mindustry/world/blocks/experimental/BlockLoader.java index 6a0a753980..fcac9ae455 100644 --- a/core/src/mindustry/world/blocks/experimental/BlockLoader.java +++ b/core/src/mindustry/world/blocks/experimental/BlockLoader.java @@ -18,6 +18,7 @@ public class BlockLoader extends PayloadAcceptor{ public float loadTime = 2f; public int itemsLoaded = 5; public float liquidsLoaded = 5f; + public int maxBlockSize = 2; public BlockLoader(String name){ super(name); @@ -60,8 +61,8 @@ public class BlockLoader extends PayloadAcceptor{ @Override public boolean acceptPayload(Building source, Payload payload){ return super.acceptPayload(source, payload) && - (payload instanceof BuildPayload) && - ((((BuildPayload)payload).build.block.hasItems && ((BuildPayload)payload).block().unloadable && ((BuildPayload)payload).block().itemCapacity >= 10)/* || + (payload instanceof BuildPayload build) && + ((build.build.block.hasItems && build.block().unloadable && build.block().itemCapacity >= 10 && build.block().size <= maxBlockSize)/* || ((BlockPayload)payload).entity.block().hasLiquids && ((BlockPayload)payload).block().liquidCapacity >= 10f)*/); } @@ -99,7 +100,7 @@ public class BlockLoader extends PayloadAcceptor{ //load up items if(payload.block().hasItems && items.any()){ - if(timer(timerLoad, loadTime)){ + if(efficiency() > 0.01f && timer(timerLoad, loadTime / efficiency())){ //load up items a set amount of times for(int j = 0; j < itemsLoaded && items.any(); j++){ diff --git a/core/src/mindustry/world/blocks/experimental/BlockUnloader.java b/core/src/mindustry/world/blocks/experimental/BlockUnloader.java index 10c542deee..12b5e856dd 100644 --- a/core/src/mindustry/world/blocks/experimental/BlockUnloader.java +++ b/core/src/mindustry/world/blocks/experimental/BlockUnloader.java @@ -31,7 +31,7 @@ public class BlockUnloader extends BlockLoader{ //load up items if(payload.block().hasItems && !full()){ - if(timer(timerLoad, loadTime)){ + if(efficiency() > 0.01f && timer(timerLoad, loadTime / efficiency())){ //load up items a set amount of times for(int j = 0; j < itemsLoaded && !full(); j++){ for(int i = 0; i < items.length(); i++){ From a606d9d85ce5c67711c868143c20dde6f49a3a6a Mon Sep 17 00:00:00 2001 From: Sunny Kim <58885089+sk7725@users.noreply.github.com> Date: Mon, 28 Dec 2020 00:04:19 +0900 Subject: [PATCH 2/2] bugfixes, call me the mother of the block forge (#4135) (anuke is the father) --- .../mindustry/world/blocks/experimental/BlockForge.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/src/mindustry/world/blocks/experimental/BlockForge.java b/core/src/mindustry/world/blocks/experimental/BlockForge.java index ea2879a3d9..83f9bc032a 100644 --- a/core/src/mindustry/world/blocks/experimental/BlockForge.java +++ b/core/src/mindustry/world/blocks/experimental/BlockForge.java @@ -36,7 +36,10 @@ public class BlockForge extends PayloadAcceptor{ hasPower = true; rotate = true; - config(Block.class, (BlockForgeBuild tile, Block block) -> tile.recipe = block); + config(Block.class, (BlockForgeBuild tile, Block block) -> { + if(tile.recipe != block) tile.progress = 0f; + tile.recipe = block; + }); consumes.add(new ConsumeItemDynamic((BlockForgeBuild e) -> e.recipe != null ? e.recipe.requirements : ItemStack.empty)); } @@ -95,8 +98,6 @@ public class BlockForge extends PayloadAcceptor{ payVector.setZero(); progress = 0f; } - }else{ - progress = 0; } heat = Mathf.lerpDelta(heat, Mathf.num(produce), 0.3f);