From d3284ab9f6c152358531181231fb3ce8cb5c66af Mon Sep 17 00:00:00 2001 From: Anuken Date: Wed, 28 Nov 2018 17:24:21 -0500 Subject: [PATCH] Chained block inventory scaling --- core/src/io/anuke/mindustry/world/Block.java | 12 +++++++++--- .../mindustry/world/blocks/storage/StorageBlock.java | 6 ++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index 96ddfc2b94..7233ed101a 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -385,10 +385,11 @@ public class Block extends BaseBlock { tempColor.set(Palette.darkFlame); if(hasItems){ + float scaling = inventoryScaling(tile); for(Item item : content.items()){ int amount = tile.entity.items.get(item); - explosiveness += item.explosiveness * amount; - flammability += item.flammability * amount; + explosiveness += item.explosiveness * amount * scaling; + flammability += item.flammability * amount * scaling; if(item.flammability * amount > 0.5){ units++; @@ -414,7 +415,7 @@ public class Block extends BaseBlock { float splash = Mathf.clamp(amount / 4f, 0f, 10f); for(int i = 0; i < Mathf.clamp(amount / 5, 0, 30); i++){ - Timers.run(i / 2, () -> { + Timers.run(i / 2f, () -> { Tile other = world.tile(tile.x + Mathf.range(size / 2), tile.y + Mathf.range(size / 2)); if(other != null){ Puddle.deposit(other, liquid, splash); @@ -430,6 +431,11 @@ public class Block extends BaseBlock { } } + /**Returns scaled # of inventories in this block.*/ + public float inventoryScaling(Tile tile){ + return 1f; + } + /** * Returns the flammability of the tile. Used for fire calculations. * Takes flammability of floor liquid into account. diff --git a/core/src/io/anuke/mindustry/world/blocks/storage/StorageBlock.java b/core/src/io/anuke/mindustry/world/blocks/storage/StorageBlock.java index 417a7dd4a0..b6d2c738a9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/storage/StorageBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/storage/StorageBlock.java @@ -89,6 +89,12 @@ public abstract class StorageBlock extends Block{ } } + @Override + public float inventoryScaling(Tile tile){ + StorageEntity entity = tile.entity(); + return 1f / entity.graph.getTiles().size; + } + @Override public TileEntity newEntity(){ return new StorageEntity();