diff --git a/core/src/io/anuke/mindustry/core/Logic.java b/core/src/io/anuke/mindustry/core/Logic.java index 8b27bdc9c2..d5f60f9d32 100644 --- a/core/src/io/anuke/mindustry/core/Logic.java +++ b/core/src/io/anuke/mindustry/core/Logic.java @@ -63,9 +63,13 @@ public class Logic implements ApplicationListener{ //add starting items if(!world.isZone()){ - for(Tile core : state.teams.get(defaultTeam).cores){ - for(ItemStack stack : state.rules.startingItems){ - core.entity.items.add(stack.item, stack.amount); + for(Team team : Team.all){ + if(state.teams.isActive(team)){ + for(Tile core : state.teams.get(team).cores){ + for(ItemStack stack : state.rules.startingItems){ + core.entity.items.add(stack.item, stack.amount); + } + } } } } diff --git a/core/src/io/anuke/mindustry/input/MobileInput.java b/core/src/io/anuke/mindustry/input/MobileInput.java index 16dd78802b..662ee53a0c 100644 --- a/core/src/io/anuke/mindustry/input/MobileInput.java +++ b/core/src/io/anuke/mindustry/input/MobileInput.java @@ -42,8 +42,6 @@ public class MobileInput extends InputHandler implements GestureListener{ //gesture data private Vector2 vector = new Vector2(); private float lastDistance = -1f; - /** Set of completed guides. */ - //private ObjectSet guides = new ObjectSet<>(); /** Position where the player started dragging a line. */ private int lineStartX, lineStartY; @@ -311,7 +309,7 @@ public class MobileInput extends InputHandler implements GestureListener{ }).visible(() -> !selection.isEmpty()); Core.scene.table(t -> { - t.bottom().left().visible(() -> player.isBuilding() || block != null || mode == breaking); + t.bottom().left().visible(() -> (player.isBuilding() || block != null || mode == breaking) && !state.is(State.menu)); t.addImageTextButton("$cancel", "icon-cancel", 16*2, () -> { player.clearBuilding(); mode = none; diff --git a/core/src/io/anuke/mindustry/io/SaveVersion.java b/core/src/io/anuke/mindustry/io/SaveVersion.java index bce501d60c..508ab698a4 100644 --- a/core/src/io/anuke/mindustry/io/SaveVersion.java +++ b/core/src/io/anuke/mindustry/io/SaveVersion.java @@ -6,11 +6,15 @@ import io.anuke.arc.util.Time; import io.anuke.arc.util.io.CounterInputStream; import io.anuke.mindustry.entities.Entities; import io.anuke.mindustry.entities.EntityGroup; -import io.anuke.mindustry.entities.traits.*; +import io.anuke.mindustry.entities.traits.Entity; +import io.anuke.mindustry.entities.traits.SaveTrait; +import io.anuke.mindustry.entities.traits.TypeTrait; import io.anuke.mindustry.game.*; import io.anuke.mindustry.maps.Map; import io.anuke.mindustry.type.ContentType; -import io.anuke.mindustry.world.*; +import io.anuke.mindustry.world.Block; +import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.world.WorldContext; import java.io.*; diff --git a/core/src/io/anuke/mindustry/type/ItemStack.java b/core/src/io/anuke/mindustry/type/ItemStack.java index c8f6be3e59..8067c56cd9 100644 --- a/core/src/io/anuke/mindustry/type/ItemStack.java +++ b/core/src/io/anuke/mindustry/type/ItemStack.java @@ -1,19 +1,22 @@ package io.anuke.mindustry.type; import io.anuke.arc.collection.Array; +import io.anuke.mindustry.content.Items; public class ItemStack implements Comparable{ public Item item; public int amount; public ItemStack(Item item, int amount){ + if(item == null) item = Items.copper; this.item = item; this.amount = amount; } //serialization only public ItemStack(){ - + //prevent nulls. + item = Items.copper; } public boolean equals(ItemStack other){ 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 bd55e5ef33..b157ffc34b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Junction.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Junction.java @@ -2,12 +2,17 @@ package io.anuke.mindustry.world.blocks.distribution; import io.anuke.arc.util.Time; import io.anuke.mindustry.entities.type.TileEntity; +import io.anuke.mindustry.entities.type.Unit; import io.anuke.mindustry.gen.BufferItem; import io.anuke.mindustry.type.Item; -import io.anuke.mindustry.world.*; +import io.anuke.mindustry.world.Block; +import io.anuke.mindustry.world.DirectionalItemBuffer; +import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockGroup; -import java.io.*; +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; import static io.anuke.mindustry.Vars.content; @@ -22,6 +27,11 @@ public class Junction extends Block{ group = BlockGroup.transportation; } + @Override + public int acceptStack(Item item, int amount, Tile tile, Unit source){ + return 0; + } + @Override public boolean outputsItems(){ return true; diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/OverflowGate.java b/core/src/io/anuke/mindustry/world/blocks/distribution/OverflowGate.java index 5b7eed7a99..5f993a4039 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/OverflowGate.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/OverflowGate.java @@ -2,11 +2,17 @@ package io.anuke.mindustry.world.blocks.distribution; import io.anuke.arc.math.Mathf; import io.anuke.mindustry.entities.type.TileEntity; +import io.anuke.mindustry.entities.type.Unit; import io.anuke.mindustry.type.Item; -import io.anuke.mindustry.world.*; +import io.anuke.mindustry.world.Block; +import io.anuke.mindustry.world.DirectionalItemBuffer; +import io.anuke.mindustry.world.Edges; +import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.meta.BlockGroup; -import java.io.*; +import java.io.DataInput; +import java.io.DataOutput; +import java.io.IOException; public class OverflowGate extends Block{ protected int bufferCapacity = 10; @@ -20,6 +26,11 @@ public class OverflowGate extends Block{ group = BlockGroup.transportation; } + @Override + public int acceptStack(Item item, int amount, Tile tile, Unit source){ + return 0; + } + @Override public void update(Tile tile){ OverflowGateEntity entity = tile.entity(); diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java index 9440d428f3..41ec295b81 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java @@ -7,6 +7,7 @@ import io.anuke.arc.math.Mathf; import io.anuke.arc.scene.ui.layout.Table; import io.anuke.mindustry.entities.type.Player; import io.anuke.mindustry.entities.type.TileEntity; +import io.anuke.mindustry.entities.type.Unit; import io.anuke.mindustry.gen.Call; import io.anuke.mindustry.type.Item; import io.anuke.mindustry.world.*; @@ -31,6 +32,11 @@ public class Sorter extends Block{ configurable = true; } + @Override + public int acceptStack(Item item, int amount, Tile tile, Unit source){ + return 0; + } + @Override public boolean outputsItems(){ return true; diff --git a/server/src/io/anuke/mindustry/server/ServerControl.java b/server/src/io/anuke/mindustry/server/ServerControl.java index 03214a847d..80a506a21c 100644 --- a/server/src/io/anuke/mindustry/server/ServerControl.java +++ b/server/src/io/anuke/mindustry/server/ServerControl.java @@ -235,9 +235,9 @@ public class ServerControl implements ApplicationListener{ info("Loading map..."); logic.reset(); - state.rules = preset.apply(result.rules()); try{ world.loadMap(result); + state.rules = preset.apply(result.rules()); logic.play(); info("Map loaded.");