diff --git a/annotations/src/io/anuke/annotations/IOFinder.java b/annotations/src/io/anuke/annotations/IOFinder.java index 769cc79072..c2dd8e3567 100644 --- a/annotations/src/io/anuke/annotations/IOFinder.java +++ b/annotations/src/io/anuke/annotations/IOFinder.java @@ -30,7 +30,7 @@ public class IOFinder { //make sure there's only one read method if(readers.stream().filter(elem -> getValue(elem.getAnnotation(ReadClass.class)).equals(typeName)).count() > 1){ - Utils.messager.printMessage(Kind.ERROR, "Multiple writer methods for type: ", writer); + Utils.messager.printMessage(Kind.ERROR, "Multiple writer methods for type '" + typeName + "'", writer); } //make sure there's only one write method diff --git a/annotations/src/io/anuke/annotations/RemoteReadGenerator.java b/annotations/src/io/anuke/annotations/RemoteReadGenerator.java index e1c381aa89..04bea2d2a4 100644 --- a/annotations/src/io/anuke/annotations/RemoteReadGenerator.java +++ b/annotations/src/io/anuke/annotations/RemoteReadGenerator.java @@ -90,7 +90,7 @@ public class RemoteReadGenerator { ClassSerializer ser = serializers.get(typeName); if (ser == null) { //make sure a serializer exists! - Utils.messager.printMessage(Kind.ERROR, "No @ReadClass method to read class type: ", var); + Utils.messager.printMessage(Kind.ERROR, "No @ReadClass method to read class type: '" + typeName + "'", var); return; } diff --git a/annotations/src/io/anuke/annotations/RemoteWriteGenerator.java b/annotations/src/io/anuke/annotations/RemoteWriteGenerator.java index f97b4096be..5c4b4d5a76 100644 --- a/annotations/src/io/anuke/annotations/RemoteWriteGenerator.java +++ b/annotations/src/io/anuke/annotations/RemoteWriteGenerator.java @@ -174,7 +174,7 @@ public class RemoteWriteGenerator { ClassSerializer ser = serializers.get(typeName); if(ser == null){ //make sure a serializer exists! - Utils.messager.printMessage(Kind.ERROR, "No @WriteClass method to write class type: ", var); + Utils.messager.printMessage(Kind.ERROR, "No @WriteClass method to write class type: '" + typeName + "'", var); return; } diff --git a/core/assets-raw/sprites/blocks/distribution/conduittunnel.png b/core/assets-raw/sprites/blocks/distribution/conduittunnel.png deleted file mode 100644 index 76900c263a..0000000000 Binary files a/core/assets-raw/sprites/blocks/distribution/conduittunnel.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/distribution/conveyortunnel.png b/core/assets-raw/sprites/blocks/distribution/conveyortunnel.png deleted file mode 100644 index f1f4bf4e48..0000000000 Binary files a/core/assets-raw/sprites/blocks/distribution/conveyortunnel.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/production/irondrill-rotator.png b/core/assets-raw/sprites/blocks/drills/irondrill-rotator.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/irondrill-rotator.png rename to core/assets-raw/sprites/blocks/drills/irondrill-rotator.png diff --git a/core/assets-raw/sprites/blocks/production/irondrill-top.png b/core/assets-raw/sprites/blocks/drills/irondrill-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/irondrill-top.png rename to core/assets-raw/sprites/blocks/drills/irondrill-top.png diff --git a/core/assets-raw/sprites/blocks/production/irondrill.png b/core/assets-raw/sprites/blocks/drills/irondrill.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/irondrill.png rename to core/assets-raw/sprites/blocks/drills/irondrill.png diff --git a/core/assets-raw/sprites/blocks/production/laserdrill-rotator.png b/core/assets-raw/sprites/blocks/drills/laserdrill-rotator.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/laserdrill-rotator.png rename to core/assets-raw/sprites/blocks/drills/laserdrill-rotator.png diff --git a/core/assets-raw/sprites/blocks/production/laserdrill-top.png b/core/assets-raw/sprites/blocks/drills/laserdrill-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/laserdrill-top.png rename to core/assets-raw/sprites/blocks/drills/laserdrill-top.png diff --git a/core/assets-raw/sprites/blocks/production/laserdrill.png b/core/assets-raw/sprites/blocks/drills/laserdrill.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/laserdrill.png rename to core/assets-raw/sprites/blocks/drills/laserdrill.png diff --git a/core/assets-raw/sprites/blocks/production/nucleardrill-rim.png b/core/assets-raw/sprites/blocks/drills/nucleardrill-rim.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/nucleardrill-rim.png rename to core/assets-raw/sprites/blocks/drills/nucleardrill-rim.png diff --git a/core/assets-raw/sprites/blocks/production/nucleardrill-rotator.png b/core/assets-raw/sprites/blocks/drills/nucleardrill-rotator.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/nucleardrill-rotator.png rename to core/assets-raw/sprites/blocks/drills/nucleardrill-rotator.png diff --git a/core/assets-raw/sprites/blocks/production/nucleardrill-top.png b/core/assets-raw/sprites/blocks/drills/nucleardrill-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/nucleardrill-top.png rename to core/assets-raw/sprites/blocks/drills/nucleardrill-top.png diff --git a/core/assets-raw/sprites/blocks/production/nucleardrill.png b/core/assets-raw/sprites/blocks/drills/nucleardrill.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/nucleardrill.png rename to core/assets-raw/sprites/blocks/drills/nucleardrill.png diff --git a/core/assets-raw/sprites/blocks/production/oilextractor-liquid.png b/core/assets-raw/sprites/blocks/drills/oilextractor-liquid.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/oilextractor-liquid.png rename to core/assets-raw/sprites/blocks/drills/oilextractor-liquid.png diff --git a/core/assets-raw/sprites/blocks/production/oilextractor-rotator.png b/core/assets-raw/sprites/blocks/drills/oilextractor-rotator.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/oilextractor-rotator.png rename to core/assets-raw/sprites/blocks/drills/oilextractor-rotator.png diff --git a/core/assets-raw/sprites/blocks/production/oilextractor-top.png b/core/assets-raw/sprites/blocks/drills/oilextractor-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/oilextractor-top.png rename to core/assets-raw/sprites/blocks/drills/oilextractor-top.png diff --git a/core/assets-raw/sprites/blocks/production/oilextractor.png b/core/assets-raw/sprites/blocks/drills/oilextractor.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/oilextractor.png rename to core/assets-raw/sprites/blocks/drills/oilextractor.png diff --git a/core/assets-raw/sprites/blocks/production/plasmadrill-rim.png b/core/assets-raw/sprites/blocks/drills/plasmadrill-rim.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/plasmadrill-rim.png rename to core/assets-raw/sprites/blocks/drills/plasmadrill-rim.png diff --git a/core/assets-raw/sprites/blocks/production/plasmadrill-rotator.png b/core/assets-raw/sprites/blocks/drills/plasmadrill-rotator.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/plasmadrill-rotator.png rename to core/assets-raw/sprites/blocks/drills/plasmadrill-rotator.png diff --git a/core/assets-raw/sprites/blocks/production/plasmadrill-top.png b/core/assets-raw/sprites/blocks/drills/plasmadrill-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/plasmadrill-top.png rename to core/assets-raw/sprites/blocks/drills/plasmadrill-top.png diff --git a/core/assets-raw/sprites/blocks/production/plasmadrill.png b/core/assets-raw/sprites/blocks/drills/plasmadrill.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/plasmadrill.png rename to core/assets-raw/sprites/blocks/drills/plasmadrill.png diff --git a/core/assets-raw/sprites/blocks/production/reinforceddrill-rotator.png b/core/assets-raw/sprites/blocks/drills/reinforceddrill-rotator.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/reinforceddrill-rotator.png rename to core/assets-raw/sprites/blocks/drills/reinforceddrill-rotator.png diff --git a/core/assets-raw/sprites/blocks/production/reinforceddrill-top.png b/core/assets-raw/sprites/blocks/drills/reinforceddrill-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/reinforceddrill-top.png rename to core/assets-raw/sprites/blocks/drills/reinforceddrill-top.png diff --git a/core/assets-raw/sprites/blocks/production/reinforceddrill.png b/core/assets-raw/sprites/blocks/drills/reinforceddrill.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/reinforceddrill.png rename to core/assets-raw/sprites/blocks/drills/reinforceddrill.png diff --git a/core/assets-raw/sprites/blocks/production/steeldrill-rotator.png b/core/assets-raw/sprites/blocks/drills/steeldrill-rotator.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/steeldrill-rotator.png rename to core/assets-raw/sprites/blocks/drills/steeldrill-rotator.png diff --git a/core/assets-raw/sprites/blocks/production/steeldrill-top.png b/core/assets-raw/sprites/blocks/drills/steeldrill-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/steeldrill-top.png rename to core/assets-raw/sprites/blocks/drills/steeldrill-top.png diff --git a/core/assets-raw/sprites/blocks/production/steeldrill.png b/core/assets-raw/sprites/blocks/drills/steeldrill.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/steeldrill.png rename to core/assets-raw/sprites/blocks/drills/steeldrill.png diff --git a/core/assets-raw/sprites/blocks/production/titaniumdrill-rotator.png b/core/assets-raw/sprites/blocks/drills/titaniumdrill-rotator.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/titaniumdrill-rotator.png rename to core/assets-raw/sprites/blocks/drills/titaniumdrill-rotator.png diff --git a/core/assets-raw/sprites/blocks/production/titaniumdrill-top.png b/core/assets-raw/sprites/blocks/drills/titaniumdrill-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/titaniumdrill-top.png rename to core/assets-raw/sprites/blocks/drills/titaniumdrill-top.png diff --git a/core/assets-raw/sprites/blocks/production/titaniumdrill.png b/core/assets-raw/sprites/blocks/drills/titaniumdrill.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/titaniumdrill.png rename to core/assets-raw/sprites/blocks/drills/titaniumdrill.png diff --git a/core/assets-raw/sprites/blocks/production/waterextractor-liquid.png b/core/assets-raw/sprites/blocks/drills/waterextractor-liquid.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/waterextractor-liquid.png rename to core/assets-raw/sprites/blocks/drills/waterextractor-liquid.png diff --git a/core/assets-raw/sprites/blocks/production/waterextractor-rotator.png b/core/assets-raw/sprites/blocks/drills/waterextractor-rotator.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/waterextractor-rotator.png rename to core/assets-raw/sprites/blocks/drills/waterextractor-rotator.png diff --git a/core/assets-raw/sprites/blocks/production/waterextractor-top.png b/core/assets-raw/sprites/blocks/drills/waterextractor-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/waterextractor-top.png rename to core/assets-raw/sprites/blocks/drills/waterextractor-top.png diff --git a/core/assets-raw/sprites/blocks/production/waterextractor.png b/core/assets-raw/sprites/blocks/drills/waterextractor.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/waterextractor.png rename to core/assets-raw/sprites/blocks/drills/waterextractor.png diff --git a/core/assets-raw/sprites/blocks/distribution/bridgeconduit-arrow.png b/core/assets-raw/sprites/blocks/liquid/bridgeconduit-arrow.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/bridgeconduit-arrow.png rename to core/assets-raw/sprites/blocks/liquid/bridgeconduit-arrow.png diff --git a/core/assets-raw/sprites/blocks/distribution/bridgeconduit-bridge.png b/core/assets-raw/sprites/blocks/liquid/bridgeconduit-bridge.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/bridgeconduit-bridge.png rename to core/assets-raw/sprites/blocks/liquid/bridgeconduit-bridge.png diff --git a/core/assets-raw/sprites/blocks/distribution/bridgeconduit-end.png b/core/assets-raw/sprites/blocks/liquid/bridgeconduit-end.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/bridgeconduit-end.png rename to core/assets-raw/sprites/blocks/liquid/bridgeconduit-end.png diff --git a/core/assets-raw/sprites/blocks/distribution/bridgeconduit.png b/core/assets-raw/sprites/blocks/liquid/bridgeconduit.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/bridgeconduit.png rename to core/assets-raw/sprites/blocks/liquid/bridgeconduit.png diff --git a/core/assets-raw/sprites/blocks/distribution/bridgeconveyor-arrow.png b/core/assets-raw/sprites/blocks/liquid/bridgeconveyor-arrow.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/bridgeconveyor-arrow.png rename to core/assets-raw/sprites/blocks/liquid/bridgeconveyor-arrow.png diff --git a/core/assets-raw/sprites/blocks/distribution/bridgeconveyor-bridge.png b/core/assets-raw/sprites/blocks/liquid/bridgeconveyor-bridge.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/bridgeconveyor-bridge.png rename to core/assets-raw/sprites/blocks/liquid/bridgeconveyor-bridge.png diff --git a/core/assets-raw/sprites/blocks/distribution/bridgeconveyor-end.png b/core/assets-raw/sprites/blocks/liquid/bridgeconveyor-end.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/bridgeconveyor-end.png rename to core/assets-raw/sprites/blocks/liquid/bridgeconveyor-end.png diff --git a/core/assets-raw/sprites/blocks/distribution/bridgeconveyor.png b/core/assets-raw/sprites/blocks/liquid/bridgeconveyor.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/bridgeconveyor.png rename to core/assets-raw/sprites/blocks/liquid/bridgeconveyor.png diff --git a/core/assets-raw/sprites/blocks/distribution/conduit-bottom.png b/core/assets-raw/sprites/blocks/liquid/conduit-bottom.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/conduit-bottom.png rename to core/assets-raw/sprites/blocks/liquid/conduit-bottom.png diff --git a/core/assets-raw/sprites/blocks/distribution/conduit-top.png b/core/assets-raw/sprites/blocks/liquid/conduit-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/conduit-top.png rename to core/assets-raw/sprites/blocks/liquid/conduit-top.png diff --git a/core/assets-raw/sprites/blocks/distribution/laserconduit-arrow.png b/core/assets-raw/sprites/blocks/liquid/laserconduit-arrow.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/laserconduit-arrow.png rename to core/assets-raw/sprites/blocks/liquid/laserconduit-arrow.png diff --git a/core/assets-raw/sprites/blocks/distribution/laserconduit-bridge.png b/core/assets-raw/sprites/blocks/liquid/laserconduit-bridge.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/laserconduit-bridge.png rename to core/assets-raw/sprites/blocks/liquid/laserconduit-bridge.png diff --git a/core/assets-raw/sprites/blocks/distribution/laserconduit-end.png b/core/assets-raw/sprites/blocks/liquid/laserconduit-end.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/laserconduit-end.png rename to core/assets-raw/sprites/blocks/liquid/laserconduit-end.png diff --git a/core/assets-raw/sprites/blocks/distribution/laserconduit.png b/core/assets-raw/sprites/blocks/liquid/laserconduit.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/laserconduit.png rename to core/assets-raw/sprites/blocks/liquid/laserconduit.png diff --git a/core/assets-raw/sprites/blocks/distribution/liquidjunction.png b/core/assets-raw/sprites/blocks/liquid/liquidjunction.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/liquidjunction.png rename to core/assets-raw/sprites/blocks/liquid/liquidjunction.png diff --git a/core/assets-raw/sprites/blocks/distribution/liquidrouter-bottom.png b/core/assets-raw/sprites/blocks/liquid/liquidrouter-bottom.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/liquidrouter-bottom.png rename to core/assets-raw/sprites/blocks/liquid/liquidrouter-bottom.png diff --git a/core/assets-raw/sprites/blocks/distribution/liquidrouter-liquid.png b/core/assets-raw/sprites/blocks/liquid/liquidrouter-liquid.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/liquidrouter-liquid.png rename to core/assets-raw/sprites/blocks/liquid/liquidrouter-liquid.png diff --git a/core/assets-raw/sprites/blocks/distribution/liquidrouter-top.png b/core/assets-raw/sprites/blocks/liquid/liquidrouter-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/liquidrouter-top.png rename to core/assets-raw/sprites/blocks/liquid/liquidrouter-top.png diff --git a/core/assets-raw/sprites/blocks/distribution/liquidrouter.png b/core/assets-raw/sprites/blocks/liquid/liquidrouter.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/liquidrouter.png rename to core/assets-raw/sprites/blocks/liquid/liquidrouter.png diff --git a/core/assets-raw/sprites/blocks/distribution/liquidtank-bottom.png b/core/assets-raw/sprites/blocks/liquid/liquidtank-bottom.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/liquidtank-bottom.png rename to core/assets-raw/sprites/blocks/liquid/liquidtank-bottom.png diff --git a/core/assets-raw/sprites/blocks/distribution/liquidtank-liquid.png b/core/assets-raw/sprites/blocks/liquid/liquidtank-liquid.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/liquidtank-liquid.png rename to core/assets-raw/sprites/blocks/liquid/liquidtank-liquid.png diff --git a/core/assets-raw/sprites/blocks/distribution/liquidtank-top.png b/core/assets-raw/sprites/blocks/liquid/liquidtank-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/liquidtank-top.png rename to core/assets-raw/sprites/blocks/liquid/liquidtank-top.png diff --git a/core/assets-raw/sprites/blocks/production/pump.png b/core/assets-raw/sprites/blocks/liquid/mechanical-pump.png similarity index 100% rename from core/assets-raw/sprites/blocks/production/pump.png rename to core/assets-raw/sprites/blocks/liquid/mechanical-pump.png diff --git a/core/assets-raw/sprites/blocks/distribution/pulseconduit-bottom.png b/core/assets-raw/sprites/blocks/liquid/pulseconduit-bottom.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/pulseconduit-bottom.png rename to core/assets-raw/sprites/blocks/liquid/pulseconduit-bottom.png diff --git a/core/assets-raw/sprites/blocks/distribution/pulseconduit-top.png b/core/assets-raw/sprites/blocks/liquid/pulseconduit-top.png similarity index 100% rename from core/assets-raw/sprites/blocks/distribution/pulseconduit-top.png rename to core/assets-raw/sprites/blocks/liquid/pulseconduit-top.png diff --git a/core/assets-raw/sprites/blocks/liquid/rotary-pump.png b/core/assets-raw/sprites/blocks/liquid/rotary-pump.png new file mode 100644 index 0000000000..6bb042144c Binary files /dev/null and b/core/assets-raw/sprites/blocks/liquid/rotary-pump.png differ diff --git a/core/assets-raw/sprites/blocks/liquid/thermal-pump.png b/core/assets-raw/sprites/blocks/liquid/thermal-pump.png new file mode 100644 index 0000000000..786b6861d5 Binary files /dev/null and b/core/assets-raw/sprites/blocks/liquid/thermal-pump.png differ diff --git a/core/assets-raw/sprites/blocks/production/fluxpump.png b/core/assets-raw/sprites/blocks/production/fluxpump.png deleted file mode 100644 index dc91327e72..0000000000 Binary files a/core/assets-raw/sprites/blocks/production/fluxpump.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/production/stonedrill.png b/core/assets-raw/sprites/blocks/production/stonedrill.png deleted file mode 100644 index 0fd9b107be..0000000000 Binary files a/core/assets-raw/sprites/blocks/production/stonedrill.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/turrets/scatter-heat.png b/core/assets-raw/sprites/blocks/turrets/scatter-heat.png deleted file mode 100644 index 4bec862cb6..0000000000 Binary files a/core/assets-raw/sprites/blocks/turrets/scatter-heat.png and /dev/null differ diff --git a/core/assets-raw/sprites/blocks/turrets/turrets/scatter-heat.png b/core/assets-raw/sprites/blocks/turrets/turrets/scatter-heat.png index c03179e8a7..4bec862cb6 100644 Binary files a/core/assets-raw/sprites/blocks/turrets/turrets/scatter-heat.png and b/core/assets-raw/sprites/blocks/turrets/turrets/scatter-heat.png differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 5079d60268..f033a06445 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -11,223 +11,55 @@ background orig: 421, 316 offset: 0, 0 index: -1 -bridgeconduit - rotate: false - xy: 227, 59 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -bridgeconduit-arrow - rotate: false - xy: 217, 46 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -bridgeconduit-bridge - rotate: false - xy: 227, 49 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -bridgeconduit-end - rotate: false - xy: 197, 30 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -bridgeconveyor - rotate: false - xy: 197, 20 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -bridgeconveyor-arrow - rotate: false - xy: 197, 10 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -bridgeconveyor-bridge - rotate: false - xy: 207, 32 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -bridgeconveyor-end - rotate: false - xy: 217, 36 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conduit-bottom - rotate: false - xy: 747, 285 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conduit-top - rotate: false - xy: 685, 231 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conduittunnel - rotate: false - xy: 695, 231 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 conveyor rotate: false - xy: 759, 346 + xy: 845, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyormove rotate: false - xy: 759, 336 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -conveyortunnel - rotate: false - xy: 821, 421 + xy: 855, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 junction rotate: false - xy: 961, 419 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -laserconduit - rotate: false - xy: 951, 399 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -laserconduit-arrow - rotate: false - xy: 961, 409 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -laserconduit-bridge - rotate: false - xy: 971, 419 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -laserconduit-end - rotate: false - xy: 961, 399 + xy: 595, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor rotate: false - xy: 971, 409 + xy: 535, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-arrow rotate: false - xy: 981, 419 + xy: 545, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-bridge rotate: false - xy: 991, 419 + xy: 555, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-end rotate: false - xy: 971, 399 + xy: 565, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -liquidjunction - rotate: false - xy: 1001, 398 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -liquidrouter - rotate: false - xy: 1011, 418 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -liquidrouter-bottom - rotate: false - xy: 1011, 408 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -liquidrouter-liquid - rotate: false - xy: 1011, 398 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -liquidrouter-top - rotate: false - xy: 683, 211 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -liquidtank-bottom - rotate: false - xy: 545, 183 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -liquidtank-liquid - rotate: false - xy: 571, 183 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -liquidtank-top - rotate: false - xy: 467, 150 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 multiplexer rotate: false xy: 607, 140 @@ -237,70 +69,56 @@ multiplexer index: -1 overflowgate rotate: false - xy: 789, 333 + xy: 625, 86 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 poweredconveyor rotate: false - xy: 799, 333 + xy: 615, 74 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 poweredconveyormove rotate: false - xy: 435, 125 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -pulseconduit-bottom - rotate: false - xy: 445, 116 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -pulseconduit-top - rotate: false - xy: 445, 106 + xy: 625, 76 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 router rotate: false - xy: 911, 387 + xy: 845, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sorter rotate: false - xy: 455, 102 + xy: 757, 290 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 splitter rotate: false - xy: 475, 122 + xy: 777, 290 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelconveyor rotate: false - xy: 465, 102 + xy: 716, 203 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelconveyormove rotate: false - xy: 475, 112 + xy: 726, 203 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -312,6 +130,223 @@ teleporter-top orig: 24, 24 offset: 0, 0 index: -1 +irondrill + rotate: false + xy: 475, 122 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +irondrill-rotator + rotate: false + xy: 465, 102 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +titaniumdrill-rotator + rotate: false + xy: 465, 102 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +irondrill-top + rotate: false + xy: 475, 112 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +laserdrill + rotate: false + xy: 597, 194 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +laserdrill-rotator + rotate: false + xy: 597, 176 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +laserdrill-top + rotate: false + xy: 597, 158 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +nucleardrill + rotate: false + xy: 493, 157 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +nucleardrill-rim + rotate: false + xy: 519, 157 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +nucleardrill-rotator + rotate: false + xy: 545, 157 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +nucleardrill-top + rotate: false + xy: 571, 157 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +oilextractor + rotate: false + xy: 229, 117 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +oilextractor-liquid + rotate: false + xy: 255, 127 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +oilextractor-rotator + rotate: false + xy: 281, 135 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +oilextractor-top + rotate: false + xy: 307, 135 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +plasmadrill + rotate: false + xy: 805, 479 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plasmadrill-rim + rotate: false + xy: 839, 479 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plasmadrill-rotator + rotate: false + xy: 873, 479 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +plasmadrill-top + rotate: false + xy: 907, 479 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +reinforceddrill + rotate: false + xy: 351, 89 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +reinforceddrill-rotator + rotate: false + xy: 361, 89 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +reinforceddrill-top + rotate: false + xy: 371, 89 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +steeldrill + rotate: false + xy: 736, 203 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +steeldrill-rotator + rotate: false + xy: 746, 203 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +steeldrill-top + rotate: false + xy: 625, 66 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +titaniumdrill + rotate: false + xy: 985, 399 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +titaniumdrill-top + rotate: false + xy: 995, 398 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +waterextractor + rotate: false + xy: 607, 104 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +waterextractor-liquid + rotate: false + xy: 625, 96 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +waterextractor-rotator + rotate: false + xy: 165, 82 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +waterextractor-top + rotate: false + xy: 163, 64 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 blackrock1 rotate: false xy: 183, 100 @@ -356,14 +391,14 @@ blackstoneblock1 index: -1 blackstoneblock2 rotate: false - xy: 786, 374 + xy: 760, 420 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blackstoneblock3 rotate: false - xy: 797, 385 + xy: 760, 410 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -377,49 +412,49 @@ blackstoneedge index: -1 coal1 rotate: false - xy: 217, 26 + xy: 435, 105 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal2 rotate: false - xy: 227, 29 + xy: 445, 126 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal3 rotate: false - xy: 207, 12 + xy: 445, 116 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 deepwater rotate: false - xy: 821, 401 + xy: 875, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt1 rotate: false - xy: 831, 423 + xy: 885, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt2 rotate: false - xy: 841, 425 + xy: 895, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt3 rotate: false - xy: 831, 413 + xy: 905, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -433,602 +468,602 @@ dirtedge index: -1 grass1 rotate: false - xy: 861, 415 + xy: 219, 69 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grass2 rotate: false - xy: 861, 405 + xy: 219, 59 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grass3 rotate: false - xy: 871, 415 + xy: 219, 49 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassblock1 rotate: false - xy: 871, 405 + xy: 229, 79 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassblock2 rotate: false - xy: 881, 425 + xy: 229, 69 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassedge rotate: false - xy: 733, 281 + xy: 701, 281 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 ice1 rotate: false - xy: 881, 415 + xy: 229, 59 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ice2 rotate: false - xy: 881, 405 + xy: 229, 49 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ice3 rotate: false - xy: 891, 427 + xy: 706, 211 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iceedge rotate: false - xy: 624, 275 + xy: 715, 281 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 icerock1 rotate: false - xy: 901, 427 + xy: 716, 213 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerock2 rotate: false - xy: 891, 417 + xy: 726, 213 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerockshadow1 rotate: false - xy: 911, 427 + xy: 736, 213 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rockshadow1 rotate: false - xy: 911, 427 + xy: 736, 213 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerockshadow2 rotate: false - xy: 891, 407 + xy: 746, 213 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rockshadow2 rotate: false - xy: 891, 407 + xy: 746, 213 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron1 rotate: false - xy: 901, 407 + xy: 465, 122 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron2 rotate: false - xy: 911, 417 + xy: 455, 102 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iron3 rotate: false - xy: 911, 407 + xy: 465, 112 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lava rotate: false - xy: 981, 409 + xy: 575, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lavaedge rotate: false - xy: 624, 261 + xy: 729, 281 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 lead1 rotate: false - xy: 991, 409 + xy: 595, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lead2 rotate: false - xy: 1001, 418 + xy: 605, 94 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lead3 rotate: false - xy: 991, 399 + xy: 615, 94 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor1 rotate: false - xy: 775, 363 + xy: 535, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor2 rotate: false - xy: 774, 353 + xy: 545, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor3 rotate: false - xy: 769, 343 + xy: 555, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor4 rotate: false - xy: 769, 333 + xy: 565, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor5 rotate: false - xy: 779, 343 + xy: 575, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor6 rotate: false - xy: 779, 333 + xy: 585, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalflooredge rotate: false - xy: 638, 275 + xy: 743, 281 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 mossblock rotate: false - xy: 784, 353 + xy: 595, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 oil rotate: false - xy: 785, 363 + xy: 605, 84 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 oiledge rotate: false - xy: 638, 261 + xy: 624, 275 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 rock1 rotate: false - xy: 891, 387 + xy: 411, 89 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rock2 rotate: false - xy: 901, 387 + xy: 421, 89 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand1 rotate: false - xy: 941, 389 + xy: 875, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand2 rotate: false - xy: 951, 389 + xy: 885, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand3 rotate: false - xy: 961, 389 + xy: 895, 417 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock1 rotate: false - xy: 971, 389 + xy: 905, 417 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock2 rotate: false - xy: 981, 389 + xy: 915, 417 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandblock3 rotate: false - xy: 991, 389 + xy: 925, 417 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandedge rotate: false - xy: 652, 275 + xy: 624, 261 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 shrub rotate: false - xy: 733, 271 + xy: 995, 418 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shrubshadow rotate: false - xy: 733, 261 + xy: 1005, 418 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow1 rotate: false - xy: 743, 255 + xy: 751, 310 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow2 rotate: false - xy: 753, 265 + xy: 761, 320 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow3 rotate: false - xy: 753, 255 + xy: 751, 300 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock1 rotate: false - xy: 743, 245 + xy: 761, 310 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock2 rotate: false - xy: 753, 245 + xy: 761, 300 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowblock3 rotate: false - xy: 455, 122 + xy: 771, 320 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowedge rotate: false - xy: 645, 247 + xy: 652, 261 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 space rotate: false - xy: 465, 112 + xy: 767, 290 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 spaceedge rotate: false - xy: 645, 233 + xy: 631, 247 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 stone-cliff-edge rotate: false - xy: 485, 92 + xy: 915, 407 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone-cliff-edge-1 rotate: false - xy: 495, 111 + xy: 925, 407 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone-cliff-edge-2 rotate: false - xy: 495, 101 + xy: 935, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone-cliff-side rotate: false - xy: 505, 111 + xy: 945, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone1 rotate: false - xy: 455, 92 + xy: 431, 85 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone2 rotate: false - xy: 465, 92 + xy: 895, 407 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone3 rotate: false - xy: 475, 92 + xy: 905, 407 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock1 rotate: false - xy: 505, 101 + xy: 955, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock2 rotate: false - xy: 515, 111 + xy: 965, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneblock3 rotate: false - xy: 515, 101 + xy: 975, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneedge rotate: false - xy: 659, 233 + xy: 645, 233 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 thorium1 rotate: false - xy: 545, 111 + xy: 1015, 408 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium2 rotate: false - xy: 545, 101 + xy: 935, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium3 rotate: false - xy: 555, 111 + xy: 945, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium1 rotate: false - xy: 555, 101 + xy: 955, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium2 rotate: false - xy: 565, 111 + xy: 965, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium3 rotate: false - xy: 565, 101 + xy: 975, 399 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water rotate: false - xy: 535, 91 + xy: 770, 400 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water-cliff-edge rotate: false - xy: 545, 91 + xy: 780, 421 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water-cliff-edge-1 rotate: false - xy: 555, 91 + xy: 790, 421 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water-cliff-edge-2 rotate: false - xy: 565, 91 + xy: 780, 411 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water-cliff-side rotate: false - xy: 575, 91 + xy: 800, 421 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 wateredge rotate: false - xy: 694, 265 + xy: 656, 219 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 block-border rotate: false - xy: 217, 76 + xy: 751, 365 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-elevation rotate: false - xy: 227, 79 + xy: 761, 390 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 combustiongenerator-top rotate: false - xy: 227, 79 + xy: 761, 390 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-middle rotate: false - xy: 217, 66 + xy: 761, 380 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pump-liquid rotate: false - xy: 217, 66 + xy: 761, 380 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-slope rotate: false - xy: 227, 69 + xy: 761, 370 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 border rotate: false - xy: 217, 56 + xy: 761, 360 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 673, 227 + xy: 825, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 cross-1 rotate: false - xy: 821, 411 + xy: 865, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1056,7 +1091,7 @@ cross-4 index: -1 enemyspawn rotate: false - xy: 851, 415 + xy: 769, 330 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1070,49 +1105,49 @@ nuclearreactor-shadow index: -1 place-arrow rotate: false - xy: 794, 353 + xy: 635, 86 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 playerspawn rotate: false - xy: 799, 343 + xy: 605, 74 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ripples rotate: false - xy: 809, 419 + xy: 733, 233 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 rubble-1-0 rotate: false - xy: 733, 374 + xy: 733, 356 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-1-1 rotate: false - xy: 733, 356 + xy: 741, 338 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-2-0 rotate: false - xy: 741, 338 + xy: 163, 22 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-2-1 rotate: false - xy: 163, 22 + xy: 163, 4 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1133,7 +1168,7 @@ rubble-3-1 index: -1 shadow-1 rotate: false - xy: 763, 382 + xy: 757, 257 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -1175,7 +1210,7 @@ shadow-6 index: -1 shadow-round-1 rotate: false - xy: 763, 370 + xy: 757, 245 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -1187,6 +1222,195 @@ shadow-round-2 orig: 18, 18 offset: 0, 0 index: -1 +bridgeconduit + rotate: false + xy: 759, 350 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +bridgeconduit-arrow + rotate: false + xy: 759, 340 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +bridgeconduit-bridge + rotate: false + xy: 227, 89 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +bridgeconduit-end + rotate: false + xy: 706, 221 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +bridgeconveyor + rotate: false + xy: 716, 223 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +bridgeconveyor-arrow + rotate: false + xy: 726, 223 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +bridgeconveyor-bridge + rotate: false + xy: 736, 223 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +bridgeconveyor-end + rotate: false + xy: 746, 223 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +conduit-bottom + rotate: false + xy: 445, 96 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +conduit-top + rotate: false + xy: 835, 423 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +laserconduit + rotate: false + xy: 495, 91 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +laserconduit-arrow + rotate: false + xy: 505, 91 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +laserconduit-bridge + rotate: false + xy: 515, 91 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +laserconduit-end + rotate: false + xy: 525, 91 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +liquidjunction + rotate: false + xy: 455, 82 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +liquidrouter + rotate: false + xy: 465, 82 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +liquidrouter-bottom + rotate: false + xy: 475, 82 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +liquidrouter-liquid + rotate: false + xy: 485, 82 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +liquidrouter-top + rotate: false + xy: 495, 81 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +liquidtank-bottom + rotate: false + xy: 545, 183 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +liquidtank-liquid + rotate: false + xy: 571, 183 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +liquidtank-top + rotate: false + xy: 467, 150 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +mechanical-pump + rotate: false + xy: 515, 81 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +pulseconduit-bottom + rotate: false + xy: 311, 89 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +pulseconduit-top + rotate: false + xy: 321, 89 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +rotary-pump + rotate: false + xy: 733, 374 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +thermal-pump + rotate: false + xy: 625, 132 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 battery rotate: false xy: 183, 110 @@ -1203,7 +1427,7 @@ batterylarge index: -1 combustiongenerator rotate: false - xy: 217, 16 + xy: 445, 106 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1273,7 +1497,7 @@ largesolarpanel index: -1 liquidcombustiongenerator rotate: false - xy: 1001, 408 + xy: 445, 86 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1301,14 +1525,14 @@ nuclearreactor-lights index: -1 powerinfinite rotate: false - xy: 435, 115 + xy: 635, 76 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 powernode rotate: false - xy: 435, 105 + xy: 291, 89 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1322,42 +1546,42 @@ powernodelarge index: -1 powervoid rotate: false - xy: 445, 126 + xy: 301, 89 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rtgenerator rotate: false - xy: 921, 387 + xy: 855, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rtgenerator-top rotate: false - xy: 931, 389 + xy: 865, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shieldgenerator rotate: false - xy: 713, 221 + xy: 955, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shieldprojector rotate: false - xy: 163, 4 + xy: 615, 204 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 solarpanel rotate: false - xy: 455, 112 + xy: 771, 310 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1378,7 +1602,7 @@ teleporter-top index: -1 thermalgenerator rotate: false - xy: 535, 101 + xy: 1005, 408 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1490,200 +1714,60 @@ cultivator-top index: -1 extractor rotate: false - xy: 871, 425 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -fluxpump - rotate: false - xy: 851, 405 + xy: 219, 79 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 incinerator rotate: false - xy: 921, 427 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -irondrill - rotate: false - xy: 921, 417 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -irondrill-rotator - rotate: false - xy: 921, 407 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -titaniumdrill-rotator - rotate: false - xy: 921, 407 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -irondrill-top - rotate: false - xy: 821, 391 + xy: 455, 112 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 itemsource rotate: false - xy: 941, 399 + xy: 585, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 itemvoid rotate: false - xy: 951, 409 + xy: 595, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -laserdrill - rotate: false - xy: 597, 194 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -laserdrill-rotator - rotate: false - xy: 597, 176 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -laserdrill-top - rotate: false - xy: 597, 158 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 lavasmelter rotate: false - xy: 981, 399 + xy: 585, 91 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidsource rotate: false - xy: 693, 211 + xy: 505, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 melter rotate: false - xy: 703, 211 + xy: 525, 81 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -nucleardrill - rotate: false - xy: 493, 157 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -nucleardrill-rim - rotate: false - xy: 519, 157 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -nucleardrill-rotator - rotate: false - xy: 545, 157 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -nucleardrill-top - rotate: false - xy: 571, 157 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -oilextractor - rotate: false - xy: 229, 117 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -oilextractor-liquid - rotate: false - xy: 255, 127 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -oilextractor-rotator - rotate: false - xy: 281, 135 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -oilextractor-top - rotate: false - xy: 307, 135 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 oilrefinery rotate: false - xy: 789, 343 + xy: 615, 84 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -plasmadrill - rotate: false - xy: 805, 479 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plasmadrill-rim - rotate: false - xy: 839, 479 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plasmadrill-rotator - rotate: false - xy: 873, 479 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -plasmadrill-top - rotate: false - xy: 907, 479 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 plasticformer rotate: false xy: 607, 122 @@ -1735,161 +1819,63 @@ siliconsmelter-top index: -1 pulverizer rotate: false - xy: 435, 95 + xy: 331, 89 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 445, 96 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -pump - rotate: false - xy: 817, 381 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -reinforceddrill - rotate: false - xy: 827, 381 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -reinforceddrill-rotator - rotate: false - xy: 841, 385 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -reinforceddrill-top - rotate: false - xy: 851, 385 + xy: 341, 89 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 separator rotate: false - xy: 1001, 388 + xy: 935, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 1011, 388 + xy: 945, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 siliconextractor rotate: false - xy: 733, 251 + xy: 1015, 418 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 siliconsmelter rotate: false - xy: 615, 204 + xy: 615, 186 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 smelter rotate: false - xy: 743, 265 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -steeldrill - rotate: false - xy: 485, 122 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -steeldrill-rotator - rotate: false - xy: 475, 102 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -steeldrill-top - rotate: false - xy: 485, 112 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -stonedrill - rotate: false - xy: 525, 111 + xy: 751, 320 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneformer rotate: false - xy: 525, 101 + xy: 985, 409 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 -titaniumdrill - rotate: false - xy: 575, 111 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -titaniumdrill-top - rotate: false - xy: 575, 101 - size: 8, 8 - orig: 8, 8 - offset: 0, 0 - index: -1 -waterextractor - rotate: false - xy: 625, 132 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -waterextractor-liquid - rotate: false - xy: 625, 114 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -waterextractor-rotator - rotate: false - xy: 607, 104 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -waterextractor-top - rotate: false - xy: 625, 96 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 weaponfactory rotate: false - xy: 183, 72 + xy: 201, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1917,14 +1903,14 @@ core-top index: -1 sortedunloader rotate: false - xy: 465, 122 + xy: 771, 300 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 unloader rotate: false - xy: 505, 91 + xy: 768, 235 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1938,7 +1924,7 @@ vault index: -1 block-1 rotate: false - xy: 227, 89 + xy: 751, 375 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1985,13 +1971,6 @@ block-4-top orig: 32, 32 offset: 0, 0 index: -1 -scatter-heat - rotate: false - xy: 797, 407 - size: 10, 10 - orig: 10, 10 - offset: 0, 0 - index: -1 arc rotate: false xy: 612, 284 @@ -2036,7 +2015,7 @@ crux-panel-right index: -1 duo rotate: false - xy: 861, 425 + xy: 769, 340 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2057,14 +2036,14 @@ spectre index: -1 lancer rotate: false - xy: 773, 395 + xy: 721, 233 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 785, 407 + xy: 733, 245 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -2085,49 +2064,49 @@ ripple index: -1 scatter rotate: false - xy: 785, 395 + xy: 745, 257 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 scatter-heat rotate: false - xy: 797, 395 + xy: 745, 245 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 scorch rotate: false - xy: 809, 407 + xy: 745, 233 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 scorch-shoot rotate: false - xy: 809, 395 + xy: 753, 269 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 swarmer rotate: false - xy: 615, 168 + xy: 625, 150 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 wave rotate: false - xy: 165, 82 + xy: 183, 72 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 163, 64 + xy: 169, 46 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -2176,42 +2155,42 @@ walkerfactory-top-open index: -1 droppoint rotate: false - xy: 831, 403 + xy: 769, 350 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 repairpoint rotate: false - xy: 861, 385 + xy: 381, 89 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 repairpoint-turret rotate: false - xy: 871, 385 + xy: 391, 89 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 resupplypoint rotate: false - xy: 881, 385 + xy: 401, 89 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 compositewall rotate: false - xy: 227, 19 + xy: 435, 95 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 door rotate: false - xy: 851, 425 + xy: 915, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2232,14 +2211,14 @@ door-large-open index: -1 door-open rotate: false - xy: 841, 415 + xy: 925, 427 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 duriumwall rotate: false - xy: 841, 405 + xy: 759, 330 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2253,49 +2232,49 @@ duriumwall-large index: -1 ironwall rotate: false - xy: 831, 393 + xy: 485, 122 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelwall rotate: false - xy: 485, 102 + xy: 635, 66 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 steelwall-large rotate: false - xy: 615, 186 + xy: 615, 168 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 stonewall rotate: false - xy: 535, 111 + xy: 995, 408 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumshieldwall rotate: false - xy: 585, 111 + xy: 1005, 398 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumwall rotate: false - xy: 585, 101 + xy: 1015, 398 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titaniumwall-large rotate: false - xy: 625, 150 + xy: 625, 114 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -2330,14 +2309,14 @@ bullet index: -1 bullet-back rotate: false - xy: 763, 359 + xy: 757, 234 size: 9, 9 orig: 9, 9 offset: 0, 0 index: -1 casing rotate: false - xy: 463, 156 + xy: 669, 261 size: 2, 4 orig: 2, 4 offset: 0, 0 @@ -2379,7 +2358,7 @@ laserfull index: -1 minelaser rotate: false - xy: 607, 218 + xy: 666, 261 size: 1, 12 orig: 1, 12 offset: 0, 0 @@ -2393,35 +2372,35 @@ minelaser-end index: -1 shell rotate: false - xy: 775, 384 + xy: 749, 417 size: 9, 9 orig: 9, 9 offset: 0, 0 index: -1 shell-back rotate: false - xy: 775, 373 + xy: 749, 406 size: 9, 9 orig: 9, 9 offset: 0, 0 index: -1 shot rotate: false - xy: 723, 213 + xy: 985, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 transfer rotate: false - xy: 610, 218 + xy: 607, 218 size: 1, 12 orig: 1, 12 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 595, 111 + xy: 757, 224 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2435,196 +2414,196 @@ transfer-end index: -1 item-armor-piercing-bullet rotate: false - xy: 841, 395 + xy: 475, 102 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-composite-flak rotate: false - xy: 881, 395 + xy: 465, 92 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-explosive-shell rotate: false - xy: 891, 397 + xy: 475, 92 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-frag-shell rotate: false - xy: 901, 397 + xy: 485, 92 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-homing-bullet rotate: false - xy: 911, 397 + xy: 495, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-incendiary-mortar-shell rotate: false - xy: 921, 397 + xy: 495, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-lead-bullet rotate: false - xy: 207, 2 + xy: 515, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-scythe-missile rotate: false - xy: 683, 221 + xy: 525, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-surge-mortar-shell rotate: false - xy: 725, 233 + xy: 555, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-swarm-missile rotate: false - xy: 931, 419 + xy: 555, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thorium-shell rotate: false - xy: 931, 399 + xy: 575, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-tracer-bullet rotate: false - xy: 951, 419 + xy: 585, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-biomatter rotate: false - xy: 851, 395 + xy: 485, 112 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 861, 395 + xy: 485, 102 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-coal rotate: false - xy: 871, 395 + xy: 455, 92 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-iron rotate: false - xy: 217, 6 + xy: 505, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-lead rotate: false - xy: 227, 9 + xy: 505, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-plastic rotate: false - xy: 747, 275 + xy: 515, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-sand rotate: false - xy: 673, 217 + xy: 525, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 693, 221 + xy: 535, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-steel rotate: false - xy: 705, 231 + xy: 535, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-stone rotate: false - xy: 703, 221 + xy: 545, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 715, 233 + xy: 545, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thermite rotate: false - xy: 931, 409 + xy: 565, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 941, 419 + xy: 565, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 941, 409 + xy: 575, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 standard-mech rotate: false - xy: 642, 219 + xy: 631, 233 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 standard-ship rotate: false - xy: 659, 247 + xy: 645, 247 size: 12, 12 orig: 12, 12 offset: 0, 0 @@ -2773,7 +2752,7 @@ check-over index: -1 clear rotate: false - xy: 708, 267 + xy: 669, 267 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -2836,7 +2815,7 @@ icon-admin-small index: -1 icon-areaDelete rotate: false - xy: 720, 267 + xy: 681, 267 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -2857,28 +2836,28 @@ icon-arrow-16 index: -1 icon-arrow-down rotate: false - xy: 673, 249 + xy: 693, 267 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-left rotate: false - xy: 673, 237 + xy: 705, 269 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-right rotate: false - xy: 685, 253 + xy: 717, 269 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-up rotate: false - xy: 685, 241 + xy: 729, 269 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -2913,7 +2892,7 @@ icon-cancel index: -1 icon-chat rotate: false - xy: 697, 253 + xy: 741, 269 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -2927,21 +2906,21 @@ icon-check index: -1 icon-crafting rotate: false - xy: 697, 241 + xy: 255, 97 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-cursor rotate: false - xy: 709, 255 + xy: 267, 97 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-defense rotate: false - xy: 709, 243 + xy: 279, 97 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -2962,7 +2941,7 @@ icon-discord index: -1 icon-distribution rotate: false - xy: 721, 255 + xy: 673, 255 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -3011,7 +2990,7 @@ icon-eraser index: -1 icon-exit rotate: false - xy: 169, 48 + xy: 187, 56 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3032,7 +3011,7 @@ icon-file-image index: -1 icon-file-text rotate: false - xy: 201, 74 + xy: 203, 56 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3046,7 +3025,7 @@ icon-fill index: -1 icon-floppy rotate: false - xy: 185, 56 + xy: 187, 40 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3060,28 +3039,28 @@ icon-floppy-16 index: -1 icon-folder rotate: false - xy: 201, 58 + xy: 203, 40 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-folder-parent rotate: false - xy: 185, 40 + xy: 181, 24 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-github rotate: false - xy: 201, 42 + xy: 181, 8 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-google-play rotate: false - xy: 181, 24 + xy: 197, 24 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3095,21 +3074,21 @@ icon-grid index: -1 icon-hold rotate: false - xy: 721, 243 + xy: 673, 243 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-holdDelete rotate: false - xy: 255, 97 + xy: 685, 255 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-home rotate: false - xy: 181, 8 + xy: 197, 8 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3123,7 +3102,7 @@ icon-host index: -1 icon-info rotate: false - xy: 267, 97 + xy: 685, 243 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -3137,7 +3116,7 @@ icon-itch.io index: -1 icon-items-none rotate: false - xy: 901, 417 + xy: 455, 122 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -3158,7 +3137,7 @@ icon-link index: -1 icon-liquid rotate: false - xy: 279, 97 + xy: 673, 231 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -3193,14 +3172,14 @@ icon-loading index: -1 icon-logic rotate: false - xy: 749, 416 + xy: 685, 231 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-menu rotate: false - xy: 749, 404 + xy: 670, 219 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -3214,14 +3193,14 @@ icon-menu-large index: -1 icon-none rotate: false - xy: 749, 392 + xy: 682, 219 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-pause rotate: false - xy: 751, 380 + xy: 697, 255 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -3249,7 +3228,7 @@ icon-pick index: -1 icon-play rotate: false - xy: 751, 368 + xy: 697, 243 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -3263,21 +3242,21 @@ icon-play-2 index: -1 icon-players rotate: false - xy: 751, 356 + xy: 697, 231 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-power rotate: false - xy: 761, 418 + xy: 694, 219 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-production rotate: false - xy: 761, 406 + xy: 709, 257 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -3298,14 +3277,14 @@ icon-redo index: -1 icon-refresh rotate: false - xy: 937, 429 + xy: 213, 24 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rename rotate: false - xy: 953, 429 + xy: 213, 8 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3319,35 +3298,35 @@ icon-resize index: -1 icon-rotate rotate: false - xy: 969, 429 + xy: 937, 429 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-arrow rotate: false - xy: 985, 429 + xy: 953, 429 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-left rotate: false - xy: 993, 460 + xy: 969, 429 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-right rotate: false - xy: 1009, 460 + xy: 985, 429 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save rotate: false - xy: 1005, 444 + xy: 993, 460 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3368,7 +3347,7 @@ icon-save-map index: -1 icon-settings rotate: false - xy: 761, 394 + xy: 709, 245 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -3382,28 +3361,28 @@ icon-terrain index: -1 icon-tools rotate: false - xy: 1001, 428 + xy: 1009, 460 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-touch rotate: false - xy: 773, 419 + xy: 721, 257 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-touchDelete rotate: false - xy: 785, 419 + xy: 709, 233 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-trash rotate: false - xy: 653, 289 + xy: 1005, 444 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3417,14 +3396,14 @@ icon-trash-16 index: -1 icon-trello rotate: false - xy: 669, 279 + xy: 1001, 428 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-tutorial rotate: false - xy: 685, 279 + xy: 653, 289 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3438,21 +3417,21 @@ icon-undo index: -1 icon-units rotate: false - xy: 773, 407 + xy: 721, 245 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-weapon rotate: false - xy: 797, 419 + xy: 733, 257 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-wiki rotate: false - xy: 701, 279 + xy: 669, 279 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3466,7 +3445,7 @@ icon-zoom index: -1 icon-zoom-small rotate: false - xy: 717, 279 + xy: 685, 279 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -3537,14 +3516,14 @@ scroll-knob-vertical-black index: -1 selection rotate: false - xy: 624, 258 + xy: 145, 1 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 slider rotate: false - xy: 670, 223 + xy: 610, 222 size: 1, 8 orig: 1, 8 offset: 0, 0 @@ -3646,63 +3625,63 @@ drone index: -1 scout rotate: false - xy: 652, 261 + xy: 638, 275 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 scout-base rotate: false - xy: 631, 247 + xy: 638, 261 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 standard-mech-base rotate: false - xy: 631, 247 + xy: 638, 261 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 scout-leg rotate: false - xy: 631, 233 + xy: 652, 275 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 standard-mech-leg rotate: false - xy: 631, 233 + xy: 652, 275 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol rotate: false - xy: 656, 219 + xy: 642, 219 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol-booster-1 rotate: false - xy: 666, 261 + xy: 659, 247 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol-booster-2 rotate: false - xy: 680, 265 + xy: 659, 233 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol-flame rotate: false - xy: 786, 384 + xy: 749, 395 size: 9, 9 orig: 9, 9 offset: 0, 0 @@ -3716,70 +3695,70 @@ beam-equip index: -1 blaster rotate: false - xy: 807, 385 + xy: 760, 400 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 blaster-equip rotate: false - xy: 217, 86 + xy: 751, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 clustergun rotate: false - xy: 227, 39 + xy: 435, 125 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 clustergun-equip rotate: false - xy: 207, 22 + xy: 435, 115 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shockgun rotate: false - xy: 713, 211 + xy: 965, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shockgun-equip rotate: false - xy: 723, 223 + xy: 975, 419 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster rotate: false - xy: 595, 101 + xy: 756, 214 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster-equip rotate: false - xy: 495, 91 + xy: 756, 204 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan rotate: false - xy: 515, 91 + xy: 770, 420 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan-equip rotate: false - xy: 525, 91 + xy: 770, 410 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index f204ec4ccc..250b2ccaf8 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/src/io/anuke/mindustry/ai/Pathfinder.java b/core/src/io/anuke/mindustry/ai/Pathfinder.java index 89ec76507f..b9f20de87f 100644 --- a/core/src/io/anuke/mindustry/ai/Pathfinder.java +++ b/core/src/io/anuke/mindustry/ai/Pathfinder.java @@ -80,7 +80,7 @@ public class Pathfinder { } private boolean passable(Tile tile, Team team){ - return (tile.getWallID() == 0 && !(tile.floor().liquid && (tile.floor().damageTaken > 0 || tile.floor().drownTime > 0))) + return (tile.getWallID() == 0 && !(tile.floor().isLiquid && (tile.floor().damageTaken > 0 || tile.floor().drownTime > 0))) || (tile.breakable() && (tile.getTeam() != team)) || !tile.solid(); } diff --git a/core/src/io/anuke/mindustry/content/Liquids.java b/core/src/io/anuke/mindustry/content/Liquids.java index 0aa164c6c2..8023fdde42 100644 --- a/core/src/io/anuke/mindustry/content/Liquids.java +++ b/core/src/io/anuke/mindustry/content/Liquids.java @@ -17,6 +17,7 @@ public class Liquids implements ContentList { water = new Liquid("water", Color.valueOf("486acd")) { { heatCapacity = 0.4f; + tier = 0; effect = StatusEffects.wet; } }; @@ -25,6 +26,7 @@ public class Liquids implements ContentList { { temperature = 0.8f; viscosity = 0.8f; + tier = 2; effect = StatusEffects.melting; } }; @@ -34,6 +36,7 @@ public class Liquids implements ContentList { viscosity = 0.7f; flammability = 0.6f; explosiveness = 0.6f; + tier = 1; effect = StatusEffects.oiled; } }; @@ -42,6 +45,7 @@ public class Liquids implements ContentList { { heatCapacity = 0.75f; temperature = 0.5f; + tier = 1; effect = StatusEffects.freezing; } }; diff --git a/core/src/io/anuke/mindustry/content/Recipes.java b/core/src/io/anuke/mindustry/content/Recipes.java index 93826f840e..ca36f6625f 100644 --- a/core/src/io/anuke/mindustry/content/Recipes.java +++ b/core/src/io/anuke/mindustry/content/Recipes.java @@ -108,8 +108,9 @@ public class Recipes implements ContentList{ new Recipe(liquid, LiquidBlocks.bridgeconduit, new ItemStack(Items.titanium, 2), new ItemStack(Items.steel, 2)); new Recipe(liquid, LiquidBlocks.laserconduit, new ItemStack(Items.titanium, 2), new ItemStack(Items.steel, 2)); - new Recipe(liquid, LiquidBlocks.pump, new ItemStack(Items.steel, 10)); - new Recipe(liquid, LiquidBlocks.fluxpump, new ItemStack(Items.steel, 10), new ItemStack(Items.surgealloy, 5)); + new Recipe(liquid, LiquidBlocks.mechanicalPump, new ItemStack(Items.steel, 10)); + new Recipe(liquid, LiquidBlocks.rotaryPump, new ItemStack(Items.steel, 10), new ItemStack(Items.surgealloy, 5)); + new Recipe(liquid, LiquidBlocks.thermalPump, new ItemStack(Items.steel, 10), new ItemStack(Items.surgealloy, 5)); new Recipe(units, UnitBlocks.repairPoint, new ItemStack(Items.steel, 10)); new Recipe(units, UnitBlocks.dropPoint, new ItemStack(Items.steel, 10)); diff --git a/core/src/io/anuke/mindustry/content/blocks/Blocks.java b/core/src/io/anuke/mindustry/content/blocks/Blocks.java index 37d0b4c6db..1869e34b6d 100644 --- a/core/src/io/anuke/mindustry/content/blocks/Blocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/Blocks.java @@ -51,7 +51,7 @@ public class Blocks extends BlockList implements ContentList{ speedMultiplier = 0.2f; variants = 0; liquidDrop = Liquids.water; - liquid = true; + isLiquid = true; status = StatusEffects.wet; statusIntensity = 1f; drownTime = 140f; @@ -66,7 +66,7 @@ public class Blocks extends BlockList implements ContentList{ status = StatusEffects.wet; statusIntensity = 0.9f; liquidDrop = Liquids.water; - liquid = true; + isLiquid = true; cacheLayer = CacheLayer.water; }}; @@ -79,7 +79,7 @@ public class Blocks extends BlockList implements ContentList{ statusIntensity = 0.8f; variants = 0; liquidDrop = Liquids.lava; - liquid = true; + isLiquid = true; cacheLayer = CacheLayer.lava; }}; @@ -91,7 +91,7 @@ public class Blocks extends BlockList implements ContentList{ speedMultiplier = 0.2f; variants = 0; liquidDrop = Liquids.oil; - liquid = true; + isLiquid = true; cacheLayer = CacheLayer.oil; }}; diff --git a/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java b/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java index c049951d34..63779d16e8 100644 --- a/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java @@ -194,7 +194,7 @@ public class CraftingBlocks extends BlockList implements ContentList { hasLiquids = hasItems = true; }}; - weaponFactory = new WeaponFactory("weaponfactory") {{ + weaponFactory = new MechFactory("weaponfactory") {{ size = 2; health = 250; }}; diff --git a/core/src/io/anuke/mindustry/content/blocks/LiquidBlocks.java b/core/src/io/anuke/mindustry/content/blocks/LiquidBlocks.java index 9789aba668..748f57a790 100644 --- a/core/src/io/anuke/mindustry/content/blocks/LiquidBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/LiquidBlocks.java @@ -6,17 +6,30 @@ import io.anuke.mindustry.world.blocks.distribution.*; import io.anuke.mindustry.world.blocks.production.Pump; public class LiquidBlocks extends BlockList implements ContentList{ - public static Block pump, fluxpump, conduit, pulseconduit, liquidrouter, liquidtank, liquidjunction, bridgeconduit, laserconduit; + public static Block mechanicalPump, rotaryPump, thermalPump, conduit, pulseconduit, liquidrouter, liquidtank, liquidjunction, bridgeconduit, laserconduit; @Override public void load() { - pump = new Pump("pump") {{ + mechanicalPump = new Pump("mechanical-pump") {{ pumpAmount = 0.1f; + tier = 0; }}; - fluxpump = new Pump("fluxpump") {{ + rotaryPump = new Pump("rotary-pump") {{ pumpAmount = 0.2f; + powerUse = 0.015f; + liquidCapacity = 30f; + size = 2; + tier = 1; + }}; + + thermalPump = new Pump("thermal-pump") {{ + pumpAmount = 0.3f; + powerUse = 0.02f; + liquidCapacity = 40f; + size = 2; + tier = 2; }}; conduit = new Conduit("conduit") {{ diff --git a/core/src/io/anuke/mindustry/core/ContentLoader.java b/core/src/io/anuke/mindustry/core/ContentLoader.java index dd95b86bad..4bb7810333 100644 --- a/core/src/io/anuke/mindustry/core/ContentLoader.java +++ b/core/src/io/anuke/mindustry/core/ContentLoader.java @@ -62,12 +62,12 @@ public class ContentLoader { //ammotypes new AmmoTypes(), - //mechs - new Mechs(), - //weapons new Weapons(), + //mechs + new Mechs(), + //units new UnitTypes(), diff --git a/core/src/io/anuke/mindustry/core/NetServer.java b/core/src/io/anuke/mindustry/core/NetServer.java index ffb8f7cfc8..29209d52e0 100644 --- a/core/src/io/anuke/mindustry/core/NetServer.java +++ b/core/src/io/anuke/mindustry/core/NetServer.java @@ -306,7 +306,7 @@ public class NetServer extends Module{ return; } - if(!player.timer.get(Player.timeSync, serverSyncTime)) continue; + if(!player.timer.get(Player.timerSync, serverSyncTime)) continue; //if the player hasn't acknowledged that it has recieved the packet, send the same thing again if(connection.lastSentSnapshotID > connection.lastSnapshotID){ diff --git a/core/src/io/anuke/mindustry/entities/Player.java b/core/src/io/anuke/mindustry/entities/Player.java index 7b35b08e8c..da4e1b6b1a 100644 --- a/core/src/io/anuke/mindustry/entities/Player.java +++ b/core/src/io/anuke/mindustry/entities/Player.java @@ -3,23 +3,27 @@ package io.anuke.mindustry.entities; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.GlyphLayout; import com.badlogic.gdx.math.Vector2; -import com.badlogic.gdx.utils.Array; import com.badlogic.gdx.utils.Pools; import com.badlogic.gdx.utils.Queue; import io.anuke.annotations.Annotations.Loc; import io.anuke.annotations.Annotations.Remote; import io.anuke.mindustry.Vars; import io.anuke.mindustry.content.Mechs; -import io.anuke.mindustry.content.Weapons; import io.anuke.mindustry.entities.effect.ItemDrop; -import io.anuke.mindustry.entities.traits.*; +import io.anuke.mindustry.entities.traits.BuilderTrait; +import io.anuke.mindustry.entities.traits.CarriableTrait; +import io.anuke.mindustry.entities.traits.CarryTrait; +import io.anuke.mindustry.entities.traits.TargetTrait; import io.anuke.mindustry.game.Team; import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Trail; import io.anuke.mindustry.net.In; import io.anuke.mindustry.net.Net; -import io.anuke.mindustry.type.*; +import io.anuke.mindustry.type.Item; +import io.anuke.mindustry.type.ItemStack; +import io.anuke.mindustry.type.Mech; +import io.anuke.mindustry.type.Upgrade; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.mindustry.world.blocks.Floor; @@ -29,7 +33,10 @@ import io.anuke.ucore.entities.EntityGroup; import io.anuke.ucore.entities.trait.SolidTrait; import io.anuke.ucore.graphics.Draw; import io.anuke.ucore.graphics.Lines; -import io.anuke.ucore.util.*; +import io.anuke.ucore.util.Angles; +import io.anuke.ucore.util.Mathf; +import io.anuke.ucore.util.ThreadQueue; +import io.anuke.ucore.util.Timer; import java.io.DataInput; import java.io.DataOutput; @@ -38,14 +45,13 @@ import java.io.IOException; import static io.anuke.mindustry.Vars.*; public class Player extends Unit implements BuilderTrait, CarryTrait { - private static final float debugSpeed = 1.8f; private static final Vector2 movement = new Vector2(); public static int typeID = -1; public static final int timerShootLeft = 0; public static final int timerShootRight = 1; - public static final int timeSync = 2; + public static final int timerSync = 2; //region instance variables, constructor @@ -56,9 +62,6 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { public String uuid, usid; public boolean isAdmin, isTransferring, isShooting; public Color color = new Color(); - - public Array upgrades = new Array<>(); - public Weapon weapon = Weapons.blaster; public Mech mech = Mechs.standard; public int clientid = -1; @@ -78,8 +81,6 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { public Player(){ hitbox.setSize(5); hitboxTile.setSize(4f); - - heal(); } //endregion @@ -146,12 +147,12 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { @Override public boolean acceptsAmmo(Item item) { - return weapon.getAmmoType(item) != null && inventory.canAcceptAmmo(weapon.getAmmoType(item)); + return mech.weapon.getAmmoType(item) != null && inventory.canAcceptAmmo(mech.weapon.getAmmoType(item)); } @Override public void addAmmo(Item item) { - inventory.addAmmo(weapon.getAmmoType(item)); + inventory.addAmmo(mech.weapon.getAmmoType(item)); } @Override @@ -258,7 +259,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { Draw.alpha(hitTime / hitDuration); if(!mech.flying) { - if(floor.liquid){ + if(floor.isLiquid){ Draw.tint(Color.WHITE, floor.liquidColor, 0.5f); } @@ -272,7 +273,7 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { Draw.rect(mech.baseRegion, x, y, baseRotation- 90); } - if(floor.liquid) { + if(floor.isLiquid) { Draw.tint(Color.WHITE, floor.liquidColor, drownTime * 0.4f); }else { Draw.tint(Color.WHITE); @@ -282,9 +283,9 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { for (int i : Mathf.signs) { float tra = rotation - 90, - trX = 4*i, trY = 3 - weapon.getRecoil(this, i > 0)*1.5f; + trX = 4*i, trY = 3 - mech.weapon.getRecoil(this, i > 0)*1.5f; float w = i > 0 ? -8 : 8; - Draw.rect(weapon.equipRegion, + Draw.rect(mech.weapon.equipRegion, x + Angles.trnsx(tra, trX, trY), y + Angles.trnsy(tra, trX, trY), w, 8, rotation - 90); } @@ -481,8 +482,8 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { protected void updateShooting(){ if(isShooting()){ - weapon.update(this, true, pointerX, pointerY); - weapon.update(this, false, pointerX, pointerY); + mech.weapon.update(this, true, pointerX, pointerY); + mech.weapon.update(this, false, pointerX, pointerY); } } @@ -577,10 +578,8 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { /**Resets all values of the player.*/ public void reset(){ - weapon = Weapons.blaster; team = Team.blue; inventory.clear(); - upgrades.clear(); placeQueue.clear(); dead = true; respawning = false; @@ -617,13 +616,8 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { stream.writeBoolean(isLocal); if(isLocal){ - stream.writeInt(playerIndex); + stream.writeByte(playerIndex); super.writeSave(stream, false); - - stream.writeByte(upgrades.size); - for(Upgrade u : upgrades){ - stream.writeByte(u.id); - } } } @@ -632,17 +626,13 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { boolean local = stream.readBoolean(); if(local){ - int index = stream.readInt(); + int index = stream.readByte(); players[index].readSaveSuper(stream); } } private void readSaveSuper(DataInput stream) throws IOException { super.readSave(stream); - byte uamount = stream.readByte(); - for (int i = 0; i < uamount; i++) { - upgrades.add(Upgrade.getByID(stream.readByte())); - } add(); } @@ -654,7 +644,6 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { buffer.writeBoolean(isAdmin); buffer.writeInt(Color.rgba8888(color)); buffer.writeBoolean(dead); - buffer.writeByte(weapon.id); buffer.writeByte(mech.id); } @@ -666,7 +655,6 @@ public class Player extends Unit implements BuilderTrait, CarryTrait { isAdmin = buffer.readBoolean(); color.set(buffer.readInt()); dead = buffer.readBoolean(); - weapon = Upgrade.getByID(buffer.readByte()); mech = Upgrade.getByID(buffer.readByte()); interpolator.read(lastx, lasty, x, y, time, rotation); rotation = lastrot; diff --git a/core/src/io/anuke/mindustry/entities/Unit.java b/core/src/io/anuke/mindustry/entities/Unit.java index fdc25d9313..db0595c28f 100644 --- a/core/src/io/anuke/mindustry/entities/Unit.java +++ b/core/src/io/anuke/mindustry/entities/Unit.java @@ -186,7 +186,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ x += velocity.x / getMass() * Timers.delta(); y += velocity.y / getMass() * Timers.delta(); }else{ - boolean onLiquid = floor.liquid; + boolean onLiquid = floor.isLiquid; if(tile != null){ tile.block().unitOn(tile, this); diff --git a/core/src/io/anuke/mindustry/entities/effect/GroundEffectEntity.java b/core/src/io/anuke/mindustry/entities/effect/GroundEffectEntity.java index 810470cefe..99187ee60a 100644 --- a/core/src/io/anuke/mindustry/entities/effect/GroundEffectEntity.java +++ b/core/src/io/anuke/mindustry/entities/effect/GroundEffectEntity.java @@ -26,7 +26,7 @@ public class GroundEffectEntity extends EffectEntity { once = true; time = 0f; Tile tile = Vars.world.tileWorld(x, y); - if(tile != null && tile.floor().liquid){ + if(tile != null && tile.floor().isLiquid){ remove(); } } else if (once && time >= effect.staticLife) { diff --git a/core/src/io/anuke/mindustry/entities/effect/ItemDrop.java b/core/src/io/anuke/mindustry/entities/effect/ItemDrop.java index c7df1d6ff4..e8dd2d8557 100644 --- a/core/src/io/anuke/mindustry/entities/effect/ItemDrop.java +++ b/core/src/io/anuke/mindustry/entities/effect/ItemDrop.java @@ -111,7 +111,7 @@ public class ItemDrop extends SolidEntity implements SyncTrait, DrawTrait, Veloc Tile tile = world.tileWorld(x, y); - Draw.color(Color.WHITE, tile == null || !tile.floor().liquid ? Color.WHITE : tile.floor().liquidColor, sinktime/sinkLifetime); + Draw.color(Color.WHITE, tile == null || !tile.floor().isLiquid ? Color.WHITE : tile.floor().liquidColor, sinktime/sinkLifetime); Draw.rect(item.region, x, y, size, size); int stored = Mathf.clamp(amount / 6, 1, 8); @@ -136,7 +136,7 @@ public class ItemDrop extends SolidEntity implements SyncTrait, DrawTrait, Veloc Tile tile = world.tileWorld(x, y); - if(tile.floor().liquid){ + if(tile.floor().isLiquid){ sinktime += Timers.delta(); if(Mathf.chance(0.04 * Timers.delta())){ diff --git a/core/src/io/anuke/mindustry/entities/effect/Puddle.java b/core/src/io/anuke/mindustry/entities/effect/Puddle.java index 6b31e50efe..229b26522c 100644 --- a/core/src/io/anuke/mindustry/entities/effect/Puddle.java +++ b/core/src/io/anuke/mindustry/entities/effect/Puddle.java @@ -76,7 +76,7 @@ public class Puddle extends BaseEntity implements SaveTrait, Poolable, DrawTrait } private static void deposit(Tile tile, Tile source, Liquid liquid, float amount, int generation){ - if(tile.floor().liquid && !canStayOn(liquid, tile.floor().liquidDrop)){ + if(tile.floor().isLiquid && !canStayOn(liquid, tile.floor().liquidDrop)){ reactPuddle(tile.floor().liquidDrop, liquid, amount, tile, (tile.worldx() + source.worldx())/2f, (tile.worldy() + source.worldy())/2f); @@ -204,7 +204,7 @@ public class Puddle extends BaseEntity implements SaveTrait, Poolable, DrawTrait @Override public void draw() { seeds = id; - boolean onLiquid = tile.floor().liquid; + boolean onLiquid = tile.floor().isLiquid; float f = Mathf.clamp(amount/(maxLiquid/1.5f)); float smag = onLiquid ? 0.8f : 0f; float sscl = 20f; diff --git a/core/src/io/anuke/mindustry/entities/units/GroundUnit.java b/core/src/io/anuke/mindustry/entities/units/GroundUnit.java index 87e10ba8bd..de7044d1a2 100644 --- a/core/src/io/anuke/mindustry/entities/units/GroundUnit.java +++ b/core/src/io/anuke/mindustry/entities/units/GroundUnit.java @@ -68,7 +68,7 @@ public abstract class GroundUnit extends BaseUnit { Floor floor = getFloorOn(); - if(floor.liquid){ + if(floor.isLiquid){ Draw.tint(Color.WHITE, floor.liquidColor, 0.5f); } @@ -79,7 +79,7 @@ public abstract class GroundUnit extends BaseUnit { 12f * i, 12f - Mathf.clamp(ft * i, 0, 2), baseRotation - 90); } - if(floor.liquid) { + if(floor.isLiquid) { Draw.tint(Color.WHITE, floor.liquidColor, drownTime * 0.4f); }else { Draw.tint(Color.WHITE); diff --git a/core/src/io/anuke/mindustry/graphics/TextureGenerator.java b/core/src/io/anuke/mindustry/graphics/TextureGenerator.java new file mode 100644 index 0000000000..157f8fe42b --- /dev/null +++ b/core/src/io/anuke/mindustry/graphics/TextureGenerator.java @@ -0,0 +1,9 @@ +package io.anuke.mindustry.graphics; + +/**Used for generating extra textures before packing.*/ +public class TextureGenerator { + + public static void main(String[] args){ + + } +} diff --git a/core/src/io/anuke/mindustry/io/TypeIO.java b/core/src/io/anuke/mindustry/io/TypeIO.java index 52ca7cfa09..8513f9a1bd 100644 --- a/core/src/io/anuke/mindustry/io/TypeIO.java +++ b/core/src/io/anuke/mindustry/io/TypeIO.java @@ -173,6 +173,16 @@ public class TypeIO { return Upgrade.getByID(buffer.get()); } + @WriteClass(Mech.class) + public static void writeMech(ByteBuffer buffer, Mech mech){ + buffer.put(mech.id); + } + + @ReadClass(Mech.class) + public static Mech readMech(ByteBuffer buffer){ + return Upgrade.getByID(buffer.get()); + } + @WriteClass(Liquid.class) public static void writeLiquid(ByteBuffer buffer, Liquid liquid){ buffer.put((byte)liquid.id); diff --git a/core/src/io/anuke/mindustry/type/Liquid.java b/core/src/io/anuke/mindustry/type/Liquid.java index 8f8e2ec603..7f759a1d94 100644 --- a/core/src/io/anuke/mindustry/type/Liquid.java +++ b/core/src/io/anuke/mindustry/type/Liquid.java @@ -28,6 +28,8 @@ public class Liquid implements UnlockableContent{ public Color flameColor = Color.valueOf("ffb763"); /**The associated status effect.*/ public StatusEffect effect = StatusEffects.none; + /**Pump tier. Controls which pumps can use this liquid.*/ + public int tier; public Liquid(String name, Color color) { this.name = name; diff --git a/core/src/io/anuke/mindustry/type/Mech.java b/core/src/io/anuke/mindustry/type/Mech.java index a9871078d9..a8eaf34b01 100644 --- a/core/src/io/anuke/mindustry/type/Mech.java +++ b/core/src/io/anuke/mindustry/type/Mech.java @@ -1,6 +1,7 @@ package io.anuke.mindustry.type; import com.badlogic.gdx.graphics.g2d.TextureRegion; +import io.anuke.mindustry.content.Weapons; import io.anuke.ucore.graphics.Draw; public class Mech extends Upgrade { @@ -10,6 +11,7 @@ public class Mech extends Upgrade { public float mass = 1f; public int drillPower = -1; public float carryWeight = 1f; + public Weapon weapon = Weapons.blaster; public TextureRegion baseRegion, legRegion, region; diff --git a/core/src/io/anuke/mindustry/ui/fragments/PlayerListFragment.java b/core/src/io/anuke/mindustry/ui/fragments/PlayerListFragment.java index f6c27384ee..c5e71d7779 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/PlayerListFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/PlayerListFragment.java @@ -117,7 +117,7 @@ public class PlayerListFragment implements Fragment{ public void draw(){ float s = getWidth() / 12f; for(int i : Mathf.signs){ - Draw.rect((player.weapon.name) + Draw.rect((player.mech.weapon.name) + "-equip", x + s * 6 + i * 3*s, y + s*6 + 2*s, -8*s*i, 8*s); } } diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index 4e3dd230c7..2f8b2a262c 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -69,8 +69,6 @@ public class Block extends BaseBlock implements UnlockableContent{ public boolean rotate; /**whether you can break this with rightclick*/ public boolean breakable; - /**whether this block can be drowned in*/ - public boolean liquid; /**whether this floor can be placed on.*/ public boolean placeableOn = true; /**tile entity health*/ @@ -308,7 +306,7 @@ public class Block extends BaseBlock implements UnlockableContent{ } Damage.dynamicExplosion(x, y, flammability, explosiveness, power, tilesize * size/2f, tempColor); - if(!tile.floor().solid && !tile.floor().liquid){ + if(!tile.floor().solid && !tile.floor().isLiquid){ Rubble.create(tile.drawx(), tile.drawy(), size); } } @@ -317,7 +315,7 @@ public class Block extends BaseBlock implements UnlockableContent{ * Takes flammability of floor liquid into account.*/ public float getFlammability(Tile tile){ if(!hasItems || tile.entity == null){ - if(tile.floor().liquid && !solid){ + if(tile.floor().isLiquid && !solid){ return tile.floor().liquidDrop.flammability; } return 0; diff --git a/core/src/io/anuke/mindustry/world/blocks/BreakBlock.java b/core/src/io/anuke/mindustry/world/blocks/BreakBlock.java index 770c8f27f3..abd811fe8a 100644 --- a/core/src/io/anuke/mindustry/world/blocks/BreakBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/BreakBlock.java @@ -59,7 +59,7 @@ public class BreakBlock extends Block { public void onDestroyed(Tile tile){ Effects.effect(ExplosionFx.blockExplosionSmoke, tile); - if(!tile.floor().solid && !tile.floor().liquid){ + if(!tile.floor().solid && !tile.floor().isLiquid){ Rubble.create(tile.drawx(), tile.drawy(), size); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java b/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java index 13a80820c5..41cb7a60c5 100644 --- a/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/BuildBlock.java @@ -58,7 +58,7 @@ public class BuildBlock extends Block { public void onDestroyed(Tile tile){ Effects.effect(ExplosionFx.blockExplosionSmoke, tile); - if(!tile.floor().solid && !tile.floor().liquid){ + if(!tile.floor().solid && !tile.floor().isLiquid){ Rubble.create(tile.drawx(), tile.drawy(), size); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/Floor.java b/core/src/io/anuke/mindustry/world/blocks/Floor.java index 6fe5ac763c..abc5ecddfd 100644 --- a/core/src/io/anuke/mindustry/world/blocks/Floor.java +++ b/core/src/io/anuke/mindustry/world/blocks/Floor.java @@ -59,6 +59,8 @@ public class Floor extends Block{ public Liquid liquidDrop = null; /**Whether ores generate on this block.*/ public boolean hasOres = true; + /**whether this block can be drowned in*/ + public boolean isLiquid; public Floor(String name) { super(name); @@ -113,7 +115,7 @@ public class Floor extends Block{ public void init(){ super.init(); - if(liquid && liquidColor == null){ + if(isLiquid && liquidColor == null){ throw new RuntimeException("All liquids must define a liquidColor! Problematic block: " + name); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/WeaponFactory.java b/core/src/io/anuke/mindustry/world/blocks/production/MechFactory.java similarity index 78% rename from core/src/io/anuke/mindustry/world/blocks/production/WeaponFactory.java rename to core/src/io/anuke/mindustry/world/blocks/production/MechFactory.java index b3e7dc9ef0..a4f9bbc869 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/WeaponFactory.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/MechFactory.java @@ -12,8 +12,8 @@ import io.anuke.mindustry.gen.CallBlocks; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.graphics.Shaders; import io.anuke.mindustry.net.In; +import io.anuke.mindustry.type.Mech; import io.anuke.mindustry.type.Upgrade; -import io.anuke.mindustry.type.Weapon; import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.Tile; import io.anuke.ucore.core.Effects; @@ -31,9 +31,9 @@ import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; -public class WeaponFactory extends Block{ +public class MechFactory extends Block{ - public WeaponFactory(String name){ + public MechFactory(String name){ super(name); solid = true; destructible = true; @@ -43,12 +43,12 @@ public class WeaponFactory extends Block{ @Override public void draw(Tile tile) { - WeaponFactoryEntity entity = tile.entity(); + MechFactoryEntity entity = tile.entity(); Draw.rect(name, tile.drawx(), tile.drawy()); if(entity.current != null) { - TextureRegion region = entity.current.equipRegion; + TextureRegion region = entity.current.region; Shaders.build.region = region; Shaders.build.progress = entity.progress; @@ -74,7 +74,7 @@ public class WeaponFactory extends Block{ @Override public void update(Tile tile) { - WeaponFactoryEntity entity = tile.entity(); + MechFactoryEntity entity = tile.entity(); if(entity.current != null){ entity.heat = Mathf.lerpDelta(entity.heat, 1f, 0.1f); @@ -82,7 +82,7 @@ public class WeaponFactory extends Block{ entity.progress += 1f / Vars.respawnduration; if(entity.progress >= 1f){ - CallBlocks.onWeaponFactoryDone(tile, entity.current); + CallBlocks.onMechFactoryDone(tile, entity.current); } }else{ entity.heat = Mathf.lerpDelta(entity.heat, 0f, 0.1f); @@ -91,7 +91,7 @@ public class WeaponFactory extends Block{ @Override public void buildTable(Tile tile, Table table) { - WeaponFactoryEntity entity = tile.entity(); + MechFactoryEntity entity = tile.entity(); Table cont = new Table(); @@ -108,7 +108,7 @@ public class WeaponFactory extends Block{ } protected void showSelect(Tile tile, Table cont){ - WeaponFactoryEntity entity = tile.entity(); + MechFactoryEntity entity = tile.entity(); Array items = Upgrade.all(); @@ -118,13 +118,13 @@ public class WeaponFactory extends Block{ int i = 0; for (Upgrade upgrade : items) { - if (!(upgrade instanceof Weapon)) continue; - Weapon weapon = (Weapon) upgrade; + if (!(upgrade instanceof Mech)) continue; + Mech mech = (Mech) upgrade; - ImageButton button = cont.addImageButton("white", "toggle", 24, () -> CallBlocks.setWeaponFactoryWeapon(null, tile, weapon)) + ImageButton button = cont.addImageButton("white", "toggle", 24, () -> CallBlocks.setMechFactory(null, tile, mech)) .size(38, 42).padBottom(-5.1f).group(group).get(); - button.getStyle().imageUp = new TextureRegionDrawable(new TextureRegion(weapon.region)); - button.setChecked(entity.current == weapon); + button.getStyle().imageUp = new TextureRegionDrawable(new TextureRegion(mech.region)); + button.setChecked(entity.current == mech); if (i++ % 4 == 3) { cont.row(); @@ -142,14 +142,14 @@ public class WeaponFactory extends Block{ } protected void showResult(Tile tile, Table cont){ - WeaponFactoryEntity entity = tile.entity(); + MechFactoryEntity entity = tile.entity(); - Weapon weapon = entity.result; + Mech mech = entity.result; - ImageButton button = cont.addImageButton("white", "toggle", 24, () -> CallBlocks.setWeaponFactoryWeapon(null, tile, weapon)) + ImageButton button = cont.addImageButton("white", "toggle", 24, () -> CallBlocks.pickupMechFactory(null, tile)) .size(38, 42).padBottom(-5.1f).get(); - button.getStyle().imageUp = new TextureRegionDrawable(new TextureRegion(weapon.region)); - button.setChecked(entity.current == weapon); + button.getStyle().imageUp = new TextureRegionDrawable(new TextureRegion(mech.region)); + button.setChecked(entity.current == mech); cont.update(() -> { //show selection menu when result disappears @@ -163,15 +163,15 @@ public class WeaponFactory extends Block{ @Override public TileEntity getEntity() { - return new WeaponFactoryEntity(); + return new MechFactoryEntity(); } @Remote(targets = Loc.both, called = Loc.server, in = In.blocks, forward = true) - public static void pickupWeaponFactoryWeapon(Player player, Tile tile){ - WeaponFactoryEntity entity = tile.entity(); + public static void pickupMechFactory(Player player, Tile tile){ + MechFactoryEntity entity = tile.entity(); if(entity.current != null){ - player.upgrades.add(entity.current); + player.mech = entity.current; entity.current = null; entity.progress = 0; entity.result = null; @@ -179,28 +179,28 @@ public class WeaponFactory extends Block{ } @Remote(targets = Loc.both, called = Loc.server, in = In.blocks, forward = true) - public static void setWeaponFactoryWeapon(Player player, Tile tile, Weapon weapon){ - WeaponFactoryEntity entity = tile.entity(); + public static void setMechFactory(Player player, Tile tile, Mech weapon){ + MechFactoryEntity entity = tile.entity(); entity.current = weapon; entity.progress = 0f; entity.heat = 0f; } @Remote(called = Loc.server, in = In.blocks) - public static void onWeaponFactoryDone(Tile tile, Weapon result){ - WeaponFactoryEntity entity = tile.entity(); + public static void onMechFactoryDone(Tile tile, Mech result){ + MechFactoryEntity entity = tile.entity(); Effects.effect(Fx.spawn, entity); entity.current = null; entity.progress = 0; entity.result = result; } - public class WeaponFactoryEntity extends TileEntity{ - public Weapon current; + public class MechFactoryEntity extends TileEntity{ + public Mech current; + public Mech result; public float progress; public float time; public float heat; - public Weapon result; @Override public void write(DataOutputStream stream) throws IOException { diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Pump.java b/core/src/io/anuke/mindustry/world/blocks/production/Pump.java index b94622ee64..7b087a4450 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Pump.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Pump.java @@ -9,12 +9,19 @@ import io.anuke.mindustry.world.blocks.LiquidBlock; import io.anuke.mindustry.world.meta.BlockGroup; import io.anuke.ucore.core.Timers; import io.anuke.ucore.graphics.Draw; +import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Strings; public class Pump extends LiquidBlock{ protected final Array drawTiles = new Array<>(); + protected final Array updateTiles = new Array<>(); + /**Pump amount per tile this block is on.*/ protected float pumpAmount = 1f; + /**Power used per frame per tile this block is on.*/ + protected float powerUse = 0f; + /**Maximum liquid tier this pump can use.*/ + protected int tier = 0; public Pump(String name) { super(name); @@ -53,12 +60,18 @@ public class Pump extends LiquidBlock{ @Override public boolean canPlaceOn(Tile tile) { if(isMultiblock()){ + Liquid last = null; for(Tile other : tile.getLinkedTiles(drawTiles)){ + //can't place pump on block with multiple liquids + if(last != null && other.floor().liquidDrop != last){ + return false; + } + if(isValid(other)){ - return true; + last = other.floor().liquidDrop; } } - return false; + return last != null; }else{ return isValid(tile); } @@ -66,10 +79,34 @@ public class Pump extends LiquidBlock{ @Override public void update(Tile tile){ - - if(tile.floor().liquidDrop != null){ - float maxPump = Math.min(liquidCapacity - tile.entity.liquids.amount, pumpAmount * Timers.delta()); - tile.entity.liquids.liquid = tile.floor().liquidDrop; + float tiles = 0f; + Liquid liquidDrop = null; + + if(isMultiblock()){ + for(Tile other : tile.getLinkedTiles(updateTiles)){ + if(isValid(other)){ + liquidDrop = other.floor().liquidDrop; + tiles ++; + } + } + }else{ + tiles = 1f; + liquidDrop = tile.floor().liquidDrop; + } + + if(hasPower){ + float used = Math.min(powerCapacity, tiles * powerUse * Timers.delta()); + + //multiply liquid obtained by the fraction of power this pump has to pump it + //e.g. only has 50% power required = only pumps 50% of liquid that it can + tiles *= Mathf.clamp(tile.entity.power.amount / used); + + tile.entity.power.amount -= Math.min(tile.entity.power.amount, used); + } + + if(liquidDrop != null){ + float maxPump = Math.min(liquidCapacity - tile.entity.liquids.amount, tiles * pumpAmount * Timers.delta()); + tile.entity.liquids.liquid = liquidDrop; tile.entity.liquids.amount += maxPump; } @@ -77,7 +114,7 @@ public class Pump extends LiquidBlock{ } protected boolean isValid(Tile tile){ - return tile.floor().liquidDrop != null; + return tile.floor().liquidDrop != null && tier >= tile.floor().liquidDrop.tier; } } 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 09731079c8..bc3cbd30b9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java @@ -98,7 +98,7 @@ public class SolidPump extends Pump { } protected boolean isValid(Tile tile){ - return !tile.floor().liquid; + return !tile.floor().isLiquid; } @Override