diff --git a/core/assets-raw/sprites/blocks/production/biomatterextractor.png b/core/assets-raw/sprites/blocks/production/cultivator.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/biomatterextractor.png rename to core/assets-raw/sprites/blocks/production/cultivator.png diff --git a/core/assets/version.properties b/core/assets/version.properties index 7cdda7c7dc..b6758cacc7 100644 --- a/core/assets/version.properties +++ b/core/assets/version.properties @@ -1,7 +1,7 @@ #Autogenerated file. Do not modify. -#Thu Mar 08 21:56:36 EST 2018 +#Thu Mar 08 23:00:40 EST 2018 version=release -androidBuildCode=409 +androidBuildCode=412 name=Mindustry code=3.4 build=custom build diff --git a/core/src/io/anuke/mindustry/core/NetServer.java b/core/src/io/anuke/mindustry/core/NetServer.java index ee61924be6..bca30b9f46 100644 --- a/core/src/io/anuke/mindustry/core/NetServer.java +++ b/core/src/io/anuke/mindustry/core/NetServer.java @@ -1,9 +1,6 @@ package io.anuke.mindustry.core; -import com.badlogic.gdx.utils.ByteArray; -import com.badlogic.gdx.utils.IntMap; -import com.badlogic.gdx.utils.ObjectMap; -import com.badlogic.gdx.utils.TimeUtils; +import com.badlogic.gdx.utils.*; import io.anuke.mindustry.core.GameState.State; import io.anuke.mindustry.entities.Player; import io.anuke.mindustry.entities.SyncEntity; diff --git a/core/src/io/anuke/mindustry/resource/Recipes.java b/core/src/io/anuke/mindustry/resource/Recipes.java index c98890df98..1b0ca6819b 100644 --- a/core/src/io/anuke/mindustry/resource/Recipes.java +++ b/core/src/io/anuke/mindustry/resource/Recipes.java @@ -65,7 +65,7 @@ public class Recipes { new Recipe(production, ProductionBlocks.titaniumdrill, stack(Item.iron, 50), stack(Item.steel, 50)), new Recipe(production, ProductionBlocks.uraniumdrill, stack(Item.iron, 40), stack(Item.steel, 40)), new Recipe(production, ProductionBlocks.quartzextractor, stack(Item.titanium, 40), stack(Item.dirium, 40)), - new Recipe(production, ProductionBlocks.biomatterextractor, stack(Item.titanium, 40), stack(Item.dirium, 40)), + new Recipe(production, ProductionBlocks.cultivator, stack(Item.titanium, 40), stack(Item.dirium, 40)), new Recipe(production, ProductionBlocks.laserdrill, stack(Item.titanium, 40), stack(Item.dirium, 40)), new Recipe(power, ProductionBlocks.coalgenerator, stack(Item.iron, 30), stack(Item.stone, 20)), diff --git a/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java b/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java index 2611b62a42..caf6f79dac 100644 --- a/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java +++ b/core/src/io/anuke/mindustry/world/blocks/ProductionBlocks.java @@ -216,10 +216,12 @@ public class ProductionBlocks{ } }, - biomatterextractor = new Drill("biomatterextractor"){ + cultivator = new LiquidDrill("cultivator"){ { resource = Blocks.grass; result = Item.biomatter; + inputLiquid = Liquid.water; + inputLiquidAmount = 0.1f; time = 5; size = 2; } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java index a24d115058..86cf77e401 100644 --- a/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java +++ b/core/src/io/anuke/mindustry/world/blocks/types/distribution/Teleporter.java @@ -56,7 +56,7 @@ public class Teleporter extends PowerBlock{ TeleporterEntity entity = tile.entity(); if(entity != null){ entity.color = data; - Arrays.fill(entity.items, 0); + Arrays.fill(entity.inventory.items, 0); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidDrill.java b/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidDrill.java new file mode 100644 index 0000000000..e1ac1cfc2b --- /dev/null +++ b/core/src/io/anuke/mindustry/world/blocks/types/production/LiquidDrill.java @@ -0,0 +1,32 @@ +package io.anuke.mindustry.world.blocks.types.production; + +import io.anuke.mindustry.resource.Liquid; +import io.anuke.mindustry.world.Tile; +import io.anuke.ucore.core.Timers; + +/**A drill that uses liquid as fuel.*/ +public class LiquidDrill extends Drill { + protected Liquid inputLiquid = Liquid.water; + protected float inputLiquidAmount = 0.1f; //per frame + + public LiquidDrill(String name){ + super(name); + + hasLiquids = true; + } + + @Override + public void update(Tile tile){ + float consume = Math.min(liquidCapacity, inputLiquidAmount * Timers.delta()); + + if(tile.entity.liquid.amount >= consume){ + tile.entity.liquid.amount -= consume; + super.update(tile); + } + } + + @Override + public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount) { + return super.acceptLiquid(tile, source, liquid, amount) && liquid == inputLiquid; + } +}