diff --git a/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java b/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java index 69d88f1149..d2df1d0d3d 100644 --- a/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/DebugBlocks.java @@ -134,7 +134,7 @@ public class DebugBlocks extends BlockList implements ContentList{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new LiquidSourceEntity(); } }; diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index 3362c81e2a..6ed35d773f 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -172,12 +172,12 @@ public class UI extends SceneModule{ Group group = Core.scene.getRoot(); backfrag.build(group); + control.input(0).getFrag().build(Core.scene.getRoot()); hudfrag.build(group); menufrag.build(group); chatfrag.container().build(group); listfrag.build(group); loadfrag.build(group); - } @Override diff --git a/core/src/io/anuke/mindustry/input/InputHandler.java b/core/src/io/anuke/mindustry/input/InputHandler.java index 045d520740..3333b33663 100644 --- a/core/src/io/anuke/mindustry/input/InputHandler.java +++ b/core/src/io/anuke/mindustry/input/InputHandler.java @@ -48,7 +48,6 @@ public abstract class InputHandler extends InputAdapter{ public InputHandler(Player player){ this.player = player; this.section = "player_" + (player.playerIndex + 1); - Timers.run(1f, () -> frag.build(Core.scene.getRoot())); } //methods to override @@ -122,6 +121,10 @@ public abstract class InputHandler extends InputAdapter{ tile.block().tapped(tile, player); } + public OverlayFragment getFrag(){ + return frag; + } + public void update(){ } diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index f00253ab17..32da6b3137 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -159,6 +159,11 @@ public class Block extends BaseBlock { out.add(other); } } + + for(int i = 0; i < tile.entity.power.links.size; i++){ + Tile link = world.tile(tile.entity.power.links.get(i)); + if(link != null) out.add(link); + } return out; } @@ -468,7 +473,7 @@ public class Block extends BaseBlock { return destructible || update; } - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new TileEntity(); } diff --git a/core/src/io/anuke/mindustry/world/Tile.java b/core/src/io/anuke/mindustry/world/Tile.java index 1b585bc7aa..974830a98d 100644 --- a/core/src/io/anuke/mindustry/world/Tile.java +++ b/core/src/io/anuke/mindustry/world/Tile.java @@ -416,7 +416,7 @@ public class Tile implements PosTrait, TargetTrait{ Block block = block(); if(block.hasEntity()){ - entity = block.getEntity().init(this, block.update); + entity = block.newEntity().init(this, block.update); entity.cons = new ConsumeModule(); if(block.hasItems) entity.items = new InventoryModule(); if(block.hasLiquids) entity.liquids = new LiquidModule(); diff --git a/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java b/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java index f83419c6e4..5dd8e547cb 100644 --- a/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java @@ -171,7 +171,7 @@ public class BuildBlock extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new BuildEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/DeflectorWall.java b/core/src/io/anuke/mindustry/world/blocks/defense/DeflectorWall.java index 946d4499c6..b690c26c75 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/DeflectorWall.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/DeflectorWall.java @@ -76,7 +76,7 @@ public class DeflectorWall extends Wall{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new DeflectorEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/Door.java b/core/src/io/anuke/mindustry/world/blocks/defense/Door.java index d1924e4b93..6ae5589fc8 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/Door.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/Door.java @@ -81,7 +81,7 @@ public class Door extends Wall{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new DoorEntity(); } 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 5bf2442d9c..420ba46a93 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java @@ -169,7 +169,7 @@ public class ForceProjector extends Block { } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new ForceEntity(); } 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 86d3bb641d..2ca61d9aeb 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java @@ -122,7 +122,7 @@ public class MendProjector extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new MendEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/MendingWall.java b/core/src/io/anuke/mindustry/world/blocks/defense/MendingWall.java index 357c2ead89..aabcbcd8ef 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/MendingWall.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/MendingWall.java @@ -52,7 +52,7 @@ public class MendingWall extends Wall{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new DeflectorEntity(); } } 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 0c07aa646e..51bd6d852f 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java @@ -123,7 +123,7 @@ public class OverdriveProjector extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new OverdriveEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ChargeTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ChargeTurret.java index 9b6a6a4563..562c0779de 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ChargeTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ChargeTurret.java @@ -60,7 +60,7 @@ public class ChargeTurret extends PowerTurret{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new LaserTurretEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LaserTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LaserTurret.java index 96310e3410..35536236bb 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LaserTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LaserTurret.java @@ -89,7 +89,7 @@ public class LaserTurret extends PowerTurret{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new LaserTurretEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java index 528cbf6a74..1d86095bd8 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java @@ -339,7 +339,7 @@ public abstract class Turret extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new TurretEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/BufferedItemBridge.java b/core/src/io/anuke/mindustry/world/blocks/distribution/BufferedItemBridge.java index bd5a6bfb8e..de9f92ef10 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/BufferedItemBridge.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/BufferedItemBridge.java @@ -41,7 +41,7 @@ public class BufferedItemBridge extends ExtendingItemBridge{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new BufferedItemBridgeEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Conduit.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Conduit.java index 826d9d52dd..2d32bbf1b7 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Conduit.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Conduit.java @@ -127,7 +127,7 @@ public class Conduit extends LiquidBlock{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new ConduitEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java index 2cd79ac7c1..7a6959a99f 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java @@ -358,7 +358,7 @@ public class Conveyor extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new ConveyorEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java b/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java index a0ed733b9b..5eee09e958 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java @@ -287,7 +287,7 @@ public class ItemBridge extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new ItemBridgeEntity(); } 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 23926087fc..6f790e7b15 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Junction.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Junction.java @@ -92,7 +92,7 @@ public class Junction extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new JunctionEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/MassDriver.java b/core/src/io/anuke/mindustry/world/blocks/distribution/MassDriver.java index 85d09e5cb9..d336911253 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/MassDriver.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/MassDriver.java @@ -234,7 +234,7 @@ public class MassDriver extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new MassDriverEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Router.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Router.java index 2613959488..7d8cca0872 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Router.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Router.java @@ -86,7 +86,7 @@ public class Router extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new SplitterEntity(); } 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 94762dd27e..f942c6650c 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Sorter.java @@ -114,7 +114,7 @@ public class Sorter extends Block implements SelectionTrait{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new SorterEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/WarpGate.java b/core/src/io/anuke/mindustry/world/blocks/distribution/WarpGate.java index 8900d20884..387965bdb1 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/WarpGate.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/WarpGate.java @@ -273,7 +273,7 @@ public class WarpGate extends PowerBlock{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new TeleporterEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/power/FusionReactor.java b/core/src/io/anuke/mindustry/world/blocks/power/FusionReactor.java index 0cc940c41c..9087fb60e0 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/FusionReactor.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/FusionReactor.java @@ -108,7 +108,7 @@ public class FusionReactor extends PowerGenerator{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new FusionReactorEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/power/ItemGenerator.java b/core/src/io/anuke/mindustry/world/blocks/power/ItemGenerator.java index 0a810d4d9c..6739fec89f 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/ItemGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/ItemGenerator.java @@ -112,7 +112,7 @@ public abstract class ItemGenerator extends PowerGenerator{ protected abstract float getItemEfficiency(Item item); @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new ItemGeneratorEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/power/LiquidGenerator.java b/core/src/io/anuke/mindustry/world/blocks/power/LiquidGenerator.java index 44b78bdd69..2be20f985e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/LiquidGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/LiquidGenerator.java @@ -70,7 +70,7 @@ public abstract class LiquidGenerator extends PowerGenerator{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new ItemGeneratorEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/power/NuclearReactor.java b/core/src/io/anuke/mindustry/world/blocks/power/NuclearReactor.java index 48bd304ef5..e334cc0693 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/NuclearReactor.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/NuclearReactor.java @@ -193,7 +193,7 @@ public class NuclearReactor extends PowerGenerator{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new NuclearReactorEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/power/PowerGenerator.java b/core/src/io/anuke/mindustry/world/blocks/power/PowerGenerator.java index 7fca52eb2f..8423ffefa2 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/PowerGenerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/PowerGenerator.java @@ -18,7 +18,7 @@ public class PowerGenerator extends PowerDistributor{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new GeneratorEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java b/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java index 0bc61a6438..c4f9115555 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java @@ -35,6 +35,12 @@ public class PowerGraph{ lastFrameUpdated = threads.getFrameID(); + float totalInput = 0f; + + for(Tile producer : producers){ + totalInput += producer.entity.power.amount; + } + for(Tile producer : producers){ float accumulator = producer.entity.power.amount; @@ -55,7 +61,7 @@ public class PowerGraph{ } for(Tile tile : consumers){ - float used = Math.min(tile.block().powerCapacity - tile.entity.power.amount, finalEach); + float used = Math.min(tile.block().powerCapacity - tile.entity.power.amount, finalEach) * accumulator / totalInput; buffer += used; tile.entity.power.amount += used; } diff --git a/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java b/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java index 264581ba63..0b9f1649b4 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java @@ -1,8 +1,6 @@ package io.anuke.mindustry.world.blocks.power; import com.badlogic.gdx.math.Vector2; -import com.badlogic.gdx.utils.Array; -import com.badlogic.gdx.utils.IntArray; import io.anuke.annotations.Annotations.Loc; import io.anuke.annotations.Annotations.Remote; import io.anuke.mindustry.entities.Player; @@ -24,10 +22,6 @@ import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Translator; -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.IOException; - import static io.anuke.mindustry.Vars.*; public class PowerNode extends PowerBlock{ @@ -60,15 +54,14 @@ public class PowerNode extends PowerBlock{ NodeEntity entity = tile.entity(); - if(!entity.links.contains(other.packedPosition())){ - entity.links.add(other.packedPosition()); + if(!entity.power.links.contains(other.packedPosition())){ + entity.power.links.add(other.packedPosition()); } - if(other.getTeamID() == tile.getTeamID() && other.block() instanceof PowerNode){ - NodeEntity oe = other.entity(); + if(other.getTeamID() == tile.getTeamID()){ - if(!oe.links.contains(tile.packedPosition())){ - oe.links.add(tile.packedPosition()); + if(!other.entity.power.links.contains(tile.packedPosition())){ + other.entity.power.links.add(tile.packedPosition()); } } @@ -81,12 +74,10 @@ public class PowerNode extends PowerBlock{ NodeEntity entity = tile.entity(); - entity.links.removeValue(other.packedPosition()); + entity.power.links.removeValue(other.packedPosition()); if(other.block() instanceof PowerNode){ - NodeEntity oe = other.entity(); - - oe.links.removeValue(tile.packedPosition()); + other.entity.power.links.removeValue(tile.packedPosition()); } //clear all graph data first @@ -138,7 +129,7 @@ public class PowerNode extends PowerBlock{ if(linkValid(tile, other)){ if(linked(tile, other)){ threads.run(() -> Call.unlinkPowerNodes(null, tile, result)); - }else if(entity.links.size < maxNodes){ + }else if(entity.power.links.size < maxNodes){ threads.run(() -> Call.linkPowerNodes(null, tile, result)); } return false; @@ -186,7 +177,7 @@ public class PowerNode extends PowerBlock{ Lines.square(link.drawx(), link.drawy(), link.block().size * tilesize / 2f + 1f + (linked ? 0f : Mathf.absin(Timers.time(), 4f, 1f))); - if((entity.links.size >= maxNodes || (link.block() instanceof PowerNode && ((NodeEntity) link.entity).links.size >= ((PowerNode) link.block()).maxNodes)) && !linked){ + if((entity.power.links.size >= maxNodes || (link.block() instanceof PowerNode && ((NodeEntity) link.entity).power.links.size >= ((PowerNode) link.block()).maxNodes)) && !linked){ Draw.color(); Draw.rect("cross-" + link.block().size, link.drawx(), link.drawy()); } @@ -215,28 +206,16 @@ public class PowerNode extends PowerBlock{ Draw.color(Palette.powerLaserFrom, Palette.powerLaserTo, 0f * (1f - flashScl) + Mathf.sin(Timers.time(), 1.7f, flashScl)); - for(int i = 0; i < entity.links.size; i++){ - Tile link = world.tile(entity.links.get(i)); + for(int i = 0; i < entity.power.links.size; i++){ + Tile link = world.tile(entity.power.links.get(i)); if(linkValid(tile, link)) drawLaser(tile, link); } Draw.color(); } - @Override - public Array getPowerConnections(Tile tile, Array out){ - super.getPowerConnections(tile, out); - NodeEntity entity = tile.entity(); - - for(int i = 0; i < entity.links.size; i++){ - Tile link = world.tile(entity.links.get(i)); - if(linkValid(tile, link)) out.add(link); - } - return out; - } - protected boolean linked(Tile tile, Tile other){ - return tile.entity().links.contains(other.packedPosition()); + return tile.entity().power.links.contains(other.packedPosition()); } protected boolean linkValid(Tile tile, Tile link){ @@ -252,7 +231,7 @@ public class PowerNode extends PowerBlock{ return Vector2.dst(tile.drawx(), tile.drawy(), link.drawx(), link.drawy()) <= Math.max(laserRange * tilesize, ((PowerNode) link.block()).laserRange * tilesize) - tilesize / 2f + (link.block().size - 1) * tilesize / 2f + (tile.block().size - 1) * tilesize / 2f && - (!checkMaxNodes || (oe.links.size < ((PowerNode) link.block()).maxNodes || oe.links.contains(tile.packedPosition()))); + (!checkMaxNodes || (oe.power.links.size < ((PowerNode) link.block()).maxNodes || oe.power.links.contains(tile.packedPosition()))); }else{ return Vector2.dst(tile.drawx(), tile.drawy(), link.drawx(), link.drawy()) <= laserRange * tilesize - tilesize / 2f + (link.block().size - 1) * tilesize; @@ -274,28 +253,12 @@ public class PowerNode extends PowerBlock{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new NodeEntity(); } public static class NodeEntity extends TileEntity{ - public IntArray links = new IntArray(); - @Override - public void write(DataOutputStream stream) throws IOException{ - stream.writeShort(links.size); - for(int i = 0; i < links.size; i++){ - stream.writeInt(links.get(i)); - } - } - - @Override - public void read(DataInputStream stream) throws IOException{ - short amount = stream.readShort(); - for(int i = 0; i < amount; i++){ - links.add(stream.readInt()); - } - } } } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Cultivator.java b/core/src/io/anuke/mindustry/world/blocks/production/Cultivator.java index 97669658f3..02256c0646 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Cultivator.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Cultivator.java @@ -95,7 +95,7 @@ public class Cultivator extends Drill{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new CultivatorEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Drill.java b/core/src/io/anuke/mindustry/world/blocks/production/Drill.java index 5ede2263a5..7248b3172b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Drill.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Drill.java @@ -228,7 +228,7 @@ public class Drill extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new DrillEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java b/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java index 5ce1eaca7f..909fa79293 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java @@ -76,7 +76,7 @@ public class Fracker extends SolidPump{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new FrackerEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java b/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java index d333e26878..c2e5f79e12 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/GenericCrafter.java @@ -110,7 +110,7 @@ public class GenericCrafter extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new GenericCrafterEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Incinerator.java b/core/src/io/anuke/mindustry/world/blocks/production/Incinerator.java index ed8697ad2a..0076498e26 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Incinerator.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Incinerator.java @@ -94,7 +94,7 @@ public class Incinerator extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new IncineratorEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/LiquidMixer.java b/core/src/io/anuke/mindustry/world/blocks/production/LiquidMixer.java index 5d0b2a6c32..175695b0f4 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/LiquidMixer.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/LiquidMixer.java @@ -89,7 +89,7 @@ public class LiquidMixer extends LiquidBlock{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new LiquidMixerEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/PowerCrafter.java b/core/src/io/anuke/mindustry/world/blocks/production/PowerCrafter.java index b02053a544..65f302b760 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/PowerCrafter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/PowerCrafter.java @@ -85,7 +85,7 @@ public class PowerCrafter extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new GenericCrafterEntity(); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/PowerSmelter.java b/core/src/io/anuke/mindustry/world/blocks/production/PowerSmelter.java index 9662903be6..d3c6dc571a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/PowerSmelter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/PowerSmelter.java @@ -203,7 +203,7 @@ public class PowerSmelter extends PowerBlock{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new PowerSmelterEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Separator.java b/core/src/io/anuke/mindustry/world/blocks/production/Separator.java index 3a1759860a..50ab3fa2cb 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Separator.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Separator.java @@ -130,7 +130,7 @@ public class Separator extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new GenericCrafterEntity(); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Smelter.java b/core/src/io/anuke/mindustry/world/blocks/production/Smelter.java index 22d991109c..37b412a012 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Smelter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Smelter.java @@ -194,7 +194,7 @@ public class Smelter extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new SmelterEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java b/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java index 9a46f02404..cd7d597372 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java @@ -112,7 +112,7 @@ public class SolidPump extends Pump{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new SolidPumpEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java b/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java index a0f99c4a62..656cff1e03 100644 --- a/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java @@ -234,7 +234,7 @@ public class CoreBlock extends StorageBlock{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new CoreEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/storage/SortedUnloader.java b/core/src/io/anuke/mindustry/world/blocks/storage/SortedUnloader.java index b33dfbcdee..c4677747e5 100644 --- a/core/src/io/anuke/mindustry/world/blocks/storage/SortedUnloader.java +++ b/core/src/io/anuke/mindustry/world/blocks/storage/SortedUnloader.java @@ -67,7 +67,7 @@ public class SortedUnloader extends Unloader implements SelectionTrait{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new SortedUnloaderEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/units/CommandCenter.java b/core/src/io/anuke/mindustry/world/blocks/units/CommandCenter.java index c04c701a39..7af2bca40e 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/CommandCenter.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/CommandCenter.java @@ -107,7 +107,7 @@ public class CommandCenter extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new CommandCenterEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/units/MechPad.java b/core/src/io/anuke/mindustry/world/blocks/units/MechPad.java index 91b604352b..b0b6d1309b 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/MechPad.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/MechPad.java @@ -204,7 +204,7 @@ public class MechPad extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new MechFactoryEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/units/Reconstructor.java b/core/src/io/anuke/mindustry/world/blocks/units/Reconstructor.java index 7865b4a65c..304dba3185 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/Reconstructor.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/Reconstructor.java @@ -299,7 +299,7 @@ public class Reconstructor extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new ReconstructorEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/units/RepairPoint.java b/core/src/io/anuke/mindustry/world/blocks/units/RepairPoint.java index e2e152509e..c581103634 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/RepairPoint.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/RepairPoint.java @@ -113,7 +113,7 @@ public class RepairPoint extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new RepairPointEntity(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java b/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java index 003de053f0..e0a3dc3699 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java @@ -207,7 +207,7 @@ public class UnitFactory extends Block{ } @Override - public TileEntity getEntity(){ + public TileEntity newEntity(){ return new UnitFactoryEntity(); } diff --git a/core/src/io/anuke/mindustry/world/modules/PowerModule.java b/core/src/io/anuke/mindustry/world/modules/PowerModule.java index ca250a93c3..9a376ab2bf 100644 --- a/core/src/io/anuke/mindustry/world/modules/PowerModule.java +++ b/core/src/io/anuke/mindustry/world/modules/PowerModule.java @@ -1,5 +1,6 @@ package io.anuke.mindustry.world.modules; +import com.badlogic.gdx.utils.IntArray; import io.anuke.mindustry.world.blocks.power.PowerGraph; import java.io.DataInput; @@ -11,6 +12,7 @@ public class PowerModule extends BlockModule{ public float capacity = 10f; public float voltage = 0.0001f; public PowerGraph graph = new PowerGraph(); + public IntArray links = new IntArray(); public boolean acceptsPower(){ return amount + 0.001f <= capacity; @@ -30,6 +32,11 @@ public class PowerModule extends BlockModule{ @Override public void write(DataOutput stream) throws IOException{ stream.writeFloat(amount); + + stream.writeShort(links.size); + for(int i = 0; i < links.size; i++){ + stream.writeInt(links.get(i)); + } } @Override @@ -38,5 +45,10 @@ public class PowerModule extends BlockModule{ if(Float.isNaN(amount)){ amount = 0f; } + + short amount = stream.readShort(); + for(int i = 0; i < amount; i++){ + links.add(stream.readInt()); + } } }