diff --git a/core/src/io/anuke/mindustry/game/DefaultWaves.java b/core/src/io/anuke/mindustry/game/DefaultWaves.java index 4a4899da30..541d933251 100644 --- a/core/src/io/anuke/mindustry/game/DefaultWaves.java +++ b/core/src/io/anuke/mindustry/game/DefaultWaves.java @@ -11,13 +11,20 @@ public class DefaultWaves{ if(spawns == null && UnitTypes.dagger != null){ spawns = Array.with( new SpawnGroup(UnitTypes.dagger){{ - end = 8; + end = 10; + unitScaling = 2f; + }}, + + new SpawnGroup(UnitTypes.crawler){{ + begin = 5; + end = 13; + unitAmount = 2; unitScaling = 1.5f; }}, new SpawnGroup(UnitTypes.wraith){{ begin = 12; - end = 14; + end = 16; unitScaling = 1f; }}, @@ -39,7 +46,7 @@ public class DefaultWaves{ new SpawnGroup(UnitTypes.dagger){{ begin = 8; unitScaling = 1; - unitAmount = 1; + unitAmount = 4; spacing = 2; }}, diff --git a/core/src/io/anuke/mindustry/game/Rules.java b/core/src/io/anuke/mindustry/game/Rules.java index d60c6d82e6..90b6521a55 100644 --- a/core/src/io/anuke/mindustry/game/Rules.java +++ b/core/src/io/anuke/mindustry/game/Rules.java @@ -66,7 +66,7 @@ public class Rules{ /** Whether this is the editor gamemode. */ public boolean editor = false; /** Items that the player starts with here. Not applicable to zones.*/ - public Array startingItems = Array.with(new ItemStack(Items.copper, 100)); + public Array startingItems = Array.with(new ItemStack(Items.copper, 200)); /** Copies this ruleset exactly. Not very efficient at all, do not use often. */ public Rules copy(){ diff --git a/core/src/io/anuke/mindustry/type/ItemStack.java b/core/src/io/anuke/mindustry/type/ItemStack.java index b99cf26069..c8f6be3e59 100644 --- a/core/src/io/anuke/mindustry/type/ItemStack.java +++ b/core/src/io/anuke/mindustry/type/ItemStack.java @@ -11,6 +11,11 @@ public class ItemStack implements Comparable{ this.amount = amount; } + //serialization only + public ItemStack(){ + + } + public boolean equals(ItemStack other){ return other != null && other.item == item && other.amount == amount; } diff --git a/core/src/io/anuke/mindustry/world/blocks/BlockPart.java b/core/src/io/anuke/mindustry/world/blocks/BlockPart.java index e177217ffa..21da5964dd 100644 --- a/core/src/io/anuke/mindustry/world/blocks/BlockPart.java +++ b/core/src/io/anuke/mindustry/world/blocks/BlockPart.java @@ -1,5 +1,7 @@ package io.anuke.mindustry.world.blocks; +import io.anuke.mindustry.type.Item; +import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; @@ -28,6 +30,28 @@ public class BlockPart extends Block{ return parts[dx + maxSize/2][dy + maxSize/2]; } + @Override + public boolean acceptItem(Item item, Tile tile, Tile source){ + return tile.link().block().acceptItem(item, tile.link(), source); + } + + @Override + public void handleItem(Item item, Tile tile, Tile source){ + tile.link().block().handleItem(item, tile.link(), source); + } + + @Override + public void handleLiquid(Tile tile, Tile source, Liquid liquid, float amount){ + Block block = tile.link().block(); + block.handleLiquid(tile.link(), source, liquid, amount); + } + + @Override + public boolean acceptLiquid(Tile tile, Tile source, Liquid liquid, float amount){ + Block block = tile.link().block(); + return block.hasLiquids && block.acceptLiquid(tile.link(), source, liquid, amount); + } + @Override public Tile linked(Tile tile){ return tile.getNearby(-dx, -dy); diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java b/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java index 1db6033d79..c0a857f625 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java @@ -60,6 +60,11 @@ public class ForceProjector extends Block{ consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 0.1f)).boost().update(false); } + @Override + public boolean outputsItems(){ + return false; + } + @Override public void load(){ super.load(); diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java b/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java index dc8075a680..2afb132878 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java @@ -45,6 +45,11 @@ public class MendProjector extends Block{ hasItems = true; } + @Override + public boolean outputsItems(){ + return false; + } + @Override public void load(){ super.load(); diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java b/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java index 98293c8066..711a45dc74 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java @@ -43,6 +43,11 @@ public class OverdriveProjector extends Block{ canOverdrive = false; } + @Override + public boolean outputsItems(){ + return false; + } + @Override public void load(){ super.load(); diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Junction.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Junction.java index f2d2786fc7..bd55e5ef33 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Junction.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Junction.java @@ -42,6 +42,7 @@ public class Junction extends Block{ Item item = content.item(BufferItem.item(l)); Tile dest = tile.getNearby(i); + if(dest != null) dest = dest.link(); //skip blocks that don't want the item, keep waiting until they do if(dest == null || !dest.block().acceptItem(item, dest, tile)){