diff --git a/android/build.gradle b/android/build.gradle index 8dfa8665c5..15acace2ce 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -8,7 +8,7 @@ buildscript{ } dependencies{ - classpath 'com.android.tools.build:gradle:3.4.1' + classpath 'com.android.tools.build:gradle:3.5.2' } } diff --git a/build.gradle b/build.gradle index af39641b49..2f542f1a8e 100644 --- a/build.gradle +++ b/build.gradle @@ -17,7 +17,7 @@ buildscript{ allprojects{ version = 'release' - apply plugin: 'maven' + apply plugin: 'maven-publish' group = 'com.github.Anuken' ext{ diff --git a/core/assets-raw/sprites/blocks/power/diode-arrow.png b/core/assets-raw/sprites/blocks/power/diode-arrow.png new file mode 100644 index 0000000000..2699e370da Binary files /dev/null and b/core/assets-raw/sprites/blocks/power/diode-arrow.png differ diff --git a/core/assets-raw/sprites/blocks/power/diode.png b/core/assets-raw/sprites/blocks/power/diode.png new file mode 100644 index 0000000000..fc2c4ee8b1 Binary files /dev/null and b/core/assets-raw/sprites/blocks/power/diode.png differ diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 290e12f224..f316ebedab 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -86,7 +86,7 @@ committingchanges = Comitting Changes done = Done feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -103,7 +103,7 @@ mod.enable = Enable mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Import Mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = This mod will be deleted. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} @@ -560,6 +560,8 @@ bar.heat = Heat bar.power = Power bar.progress = Build Progress bar.spawned = Units: {0}/{1} +bar.input = Input +bar.output = Output bullet.damage = [stat]{0}[lightgray] damage bullet.splashdamage = [stat]{0}[lightgray] area dmg ~[stat] {1}[lightgray] tiles @@ -597,7 +599,7 @@ setting.shadows.name = Shadows setting.blockreplace.name = Automatic Block Suggestions setting.linear.name = Linear Filtering setting.hints.name = Hints -setting.buildautopause.name = Auto-pause Building +setting.buildautopause.name = Auto-Pause Building setting.animatedwater.name = Animated Water setting.animatedshields.name = Animated Shields setting.antialias.name = Antialias[lightgray] (requires restart)[] @@ -622,7 +624,7 @@ setting.destroyedblocks.name = Display Destroyed Blocks setting.conveyorpathfinding.name = Conveyor Placement Pathfinding setting.sensitivity.name = Controller Sensitivity setting.saveinterval.name = Save Interval -setting.seconds = {0} Seconds +setting.seconds = {0} seconds setting.fullscreen.name = Fullscreen setting.borderlesswindow.name = Borderless Window[lightgray] (may require restart) setting.fps.name = Show FPS & Ping @@ -658,8 +660,9 @@ keybind.clear_building.name = Clear Building keybind.press = Press a key... keybind.press.axis = Press an axis or key... keybind.screenshot.name = Map Screenshot -keybind.move_x.name = Move x -keybind.move_y.name = Move y +keybind.move_x.name = Move X +keybind.move_y.name = Move Y +keybind.mouse_move.name = Follow Mouse keybind.schematic_select.name = Select Region keybind.schematic_menu.name = Schematic Menu keybind.schematic_flip_x.name = Flip Schematic X @@ -679,16 +682,16 @@ keybind.pause_building.name = Pause/Resume Building keybind.minimap.name = Minimap keybind.dash.name = Dash keybind.chat.name = Chat -keybind.player_list.name = Player list +keybind.player_list.name = Player List keybind.console.name = Console keybind.rotate.name = Rotate keybind.rotateplaced.name = Rotate Existing (Hold) -keybind.toggle_menus.name = Toggle menus -keybind.chat_history_prev.name = Chat history prev -keybind.chat_history_next.name = Chat history next -keybind.chat_scroll.name = Chat scroll +keybind.toggle_menus.name = Toggle Menus +keybind.chat_history_prev.name = Chat History Prev +keybind.chat_history_next.name = Chat History Next +keybind.chat_scroll.name = Chat Scroll keybind.drop_unit.name = Drop Unit -keybind.zoom_minimap.name = Zoom minimap +keybind.zoom_minimap.name = Zoom Minimap mode.help.title = Description of modes mode.survival.name = Survival mode.survival.description = The normal mode. Limited resources and automatic incoming waves.\n[gray]Requires enemy spawns in the map to play. @@ -702,6 +705,7 @@ mode.attack.description = Destroy the enemy's base. No waves.\n[gray]Requires a mode.custom = Custom Rules rules.infiniteresources = Infinite Resources +rules.reactorexplosions = Reactor Explosions rules.wavetimer = Wave Timer rules.waves = Waves rules.attack = Attack Mode @@ -717,7 +721,7 @@ rules.respawntime = Respawn Time:[lightgray] (sec) rules.wavespacing = Wave Spacing:[lightgray] (sec) rules.buildcostmultiplier = Build Cost Multiplier rules.buildspeedmultiplier = Build Speed Multiplier -rules.waitForWaveToEnd = Waves wait for enemies +rules.waitForWaveToEnd = Waves Wait for Enemies rules.dropzoneradius = Drop Zone Radius:[lightgray] (tiles) rules.respawns = Max respawns per wave rules.limitedRespawns = Limit Respawns @@ -888,6 +892,7 @@ block.distributor.name = Distributor block.sorter.name = Sorter block.inverted-sorter.name = Inverted Sorter block.message.name = Message +block.illuminator.name = Illuminator block.overflow-gate.name = Overflow Gate block.silicon-smelter.name = Silicon Smelter block.phase-weaver.name = Phase Weaver @@ -901,6 +906,7 @@ block.coal-centrifuge.name = Coal Centrifuge block.power-node.name = Power Node block.power-node-large.name = Large Power Node block.surge-tower.name = Surge Tower +block.diode.name = Battery Diode block.battery.name = Battery block.battery-large.name = Large Battery block.combustion-generator.name = Combustion Generator @@ -1004,15 +1010,15 @@ unit.eradicator.name = Eradicator unit.lich.name = Lich unit.reaper.name = Reaper tutorial.next = [lightgray] -tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse [[WASD] to move.\n[accent]Hold [[Ctrl] while scrolling[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper -tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper -tutorial.drill = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nClick the drill tab in the bottom right.\nSelect the[accent] mechanical drill[]. Place it on a copper vein by clicking.\n[accent]Right-click[] to stop building. -tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills []can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement. +tutorial.intro = You have entered the[scarlet] Mindustry Tutorial.[]\nUse [accent][[WASD][] to move.\n[accent]Hold [[Ctrl] while scrolling[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper +tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers[] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper +tutorial.drill = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nClick the drill tab in the bottom right.\nSelect the[accent] mechanical drill[]. Place it on a copper vein by clicking.\n[accent]Right-click[] to stop building. +tutorial.drill.mobile = Mining manually is inefficient.\n[accent]Drills[] can mine automatically.\nTap the drill tab in the bottom right.\nSelect the[accent] mechanical drill[].\nPlace it on a copper vein by tapping, then press the[accent] checkmark[] below to confirm your selection.\nPress the[accent] X button[] to cancel placement. tutorial.blockinfo = Each block has different stats. Each drill can only mine certain ores.\nTo check a block's info and stats,[accent] tap the "?" button while selecting it in the build menu.[]\n\n[accent]Access the Mechanical Drill's stats now.[] tutorial.conveyor = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent]Hold down the mouse to place in a line.[]\nHold[accent] CTRL[] while selecting a line to place diagonally.\nUse the scrollwheel to rotate blocks before placing them.\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core. tutorial.conveyor.mobile = [accent]Conveyors[] are used to transport items to the core.\nMake a line of conveyors from the drill to the core.\n[accent] Place in a line by holding down your finger for a few seconds[] and dragging in a direction.\n\n[accent]Place 2 conveyors with the line tool, then deliver an item into the core. tutorial.turret = Once an item enters your core, it can be used for building.\nKeep in mind that not all items can be used for building.\nItems that are not used for building, such as[accent] coal[] or[accent] scrap[], cannot be put into the core.\nDefensive structures must be built to repel the[lightgray] enemy[].\nBuild a[accent] duo turret[] near your base. -tutorial.drillturret = Duo turrets require[accent] copper ammo []to shoot.\nPlace a drill near the turret.\nLead conveyors into the turret to supply it with copper.\n\n[accent]Ammo delivered: 0/1 +tutorial.drillturret = Duo turrets require[accent] copper ammo[] to shoot.\nPlace a drill near the turret.\nLead conveyors into the turret to supply it with copper.\n\n[accent]Ammo delivered: 0/1 tutorial.pause = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press space to pause. tutorial.pause.mobile = During battle, you are able to[accent] pause the game.[]\nYou may queue buildings while paused.\n\n[accent]Press this button in the top left to pause. tutorial.unpause = Now press space again to unpause. @@ -1114,7 +1120,7 @@ block.sorter.description = Sorts items. If an item matches the selection, it is block.inverted-sorter.description = Processes items like a standard sorter, but outputs selected items to the sides instead. block.router.description = Accepts items, then outputs them to up to 3 other directions equally. Useful for splitting the materials from one source to multiple targets.\n\n[scarlet]Never use next to production inputs, as they will get clogged by output.[] block.distributor.description = An advanced router. Splits items to up to 7 other directions equally. -block.overflow-gate.description = A combination splitter and router. Only outputs to the left and right if the front path is blocked. +block.overflow-gate.description = Only outputs to the left and right if the front path is blocked. block.mass-driver.description = The ultimate item transport block. Collects several items and then shoots them to another mass driver over a long range. Requires power to operate. block.mechanical-pump.description = A cheap pump with slow output, but no power consumption. block.rotary-pump.description = An advanced pump. Pumps more liquid, but requires power. @@ -1129,6 +1135,7 @@ block.phase-conduit.description = Advanced liquid transport block. Uses power to block.power-node.description = Transmits power to connected nodes. The node will receive power from or supply power to any adjacent blocks. block.power-node-large.description = An advanced power node with greater range. block.surge-tower.description = An extremely long-range power node with fewer available connections. +block.diode.description = Battery power can flow through this block in only one direction, but only if the other side has less power stored. block.battery.description = Stores power as a buffer in times of surplus energy. Outputs power in times of deficit. block.battery-large.description = Stores much more power than a regular battery. block.combustion-generator.description = Generates power by burning flammable materials, such as coal. diff --git a/core/assets/bundles/bundle_cs.properties b/core/assets/bundles/bundle_cs.properties index 3efab82fc0..cb96d91f74 100644 --- a/core/assets/bundles/bundle_cs.properties +++ b/core/assets/bundles/bundle_cs.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Nahrávám prohlížecí soubor committingchanges = Provádím změny done = Hotovo feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -98,7 +98,7 @@ mod.enable = Enable mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Import Mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = This mod will be deleted. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_de.properties b/core/assets/bundles/bundle_de.properties index 7b28a0c840..4d21b8d8db 100644 --- a/core/assets/bundles/bundle_de.properties +++ b/core/assets/bundles/bundle_de.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Uploading Preview File committingchanges = Comitting Changes done = Done feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -98,7 +98,7 @@ mod.enable = Enable mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Import Mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = This mod will be deleted. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} @@ -1152,9 +1152,9 @@ block.spirit-factory.description = Produziert leichte Drohnen, die Erz abbauen u block.phantom-factory.description = Produziert erweiterte Drohnen, die deutlich effizienter sind als Spirit-Drohnen. block.wraith-factory.description = Produziert schnelle Abfangjäger. block.ghoul-factory.description = Produziert schwere Flächenbomber. -block.revenant-factory.description = Produziert schwere Laser-Bodeneinheiten. +block.revenant-factory.description = Produziert schwere Raketen basierte Flugeinheiten. block.dagger-factory.description = Produziert Standard-Bodeneinheiten. -block.crawler-factory.description = Produces fast self-destructing swarm units. +block.crawler-factory.description = Produziert schnelle selbstzerstörende Schwarmeinheiten. block.titan-factory.description = Produziert fortgeschrittene, gepanzerte Bodeneinheiten. block.fortress-factory.description = Produziert schwere Artillerie-Bodeneinheiten. block.repair-point.description = Heilt durchgehend die nächste befreundete, beschädigte Einheit in der Umgebung. diff --git a/core/assets/bundles/bundle_es.properties b/core/assets/bundles/bundle_es.properties index 8f26fab09c..1901f2c3c1 100644 --- a/core/assets/bundles/bundle_es.properties +++ b/core/assets/bundles/bundle_es.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Uploading Preview File committingchanges = Comitting Changes done = Hecho feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -98,7 +98,7 @@ mod.enable = Enable mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Import Mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = This mod will be deleted. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_et.properties b/core/assets/bundles/bundle_et.properties index d01fb8c674..adbd5393be 100644 --- a/core/assets/bundles/bundle_et.properties +++ b/core/assets/bundles/bundle_et.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Eelvaate faili üleslaadimine committingchanges = Muudatuste teostamine done = Valmis feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -98,7 +98,7 @@ mod.enable = Enable mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Import Mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = This mod will be deleted. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_eu.properties b/core/assets/bundles/bundle_eu.properties index 12851dbfed..81927de1c5 100644 --- a/core/assets/bundles/bundle_eu.properties +++ b/core/assets/bundles/bundle_eu.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Aurrebista fitxategia igotzen committingchanges = Aldaketak aplikatzen done = Egina feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -98,7 +98,7 @@ mod.enable = Enable mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Import Mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = This mod will be deleted. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_fr.properties b/core/assets/bundles/bundle_fr.properties index 3497c4efe2..68f8ca7b64 100644 --- a/core/assets/bundles/bundle_fr.properties +++ b/core/assets/bundles/bundle_fr.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Publication du fichier d'aperçu committingchanges = Validation des modifications done = Fait feature.unsupported = Votre appareil ne supporte pas cette fonctionnalité. -mods.alphainfo = Gardez à l'esprit que les mods sont en alpha et[scarlet] peuvent être très buggés[].\nMerci de signaler les problèmes que vous rencontrez via le Github ou le Discord Mindustry. +mods.alphainfo = Gardez à l'esprit que les mods sont en alpha et[scarlet] peuvent être très buggés[].\nMerci de signaler les problèmes que vous rencontrez via le GitHub ou le Discord Mindustry. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]Aucun mod trouvé! @@ -98,7 +98,7 @@ mod.enable = Activer mod.requiresrestart = Le jeu va maintenant s'arrêter pour appliquer les modifications du mod. mod.reloadrequired = [scarlet]Rechargement requis mod.import = Importer un mod -mod.import.github = Importer un mod Github +mod.import.github = Importer un mod GitHub mod.remove.confirm = Ce mod sera supprimé. mod.author = [LIGHT_GRAY]Auteur:[] {0} mod.missing = Cette sauvegarde contient des mods que vous avez récemment mis à jour ou que vous avez désinstallés. Votre sauvegarde risque d'être corrompue. Êtes-vous sûr de vouloir l'importer?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_fr_BE.properties b/core/assets/bundles/bundle_fr_BE.properties index e523de600a..52e9efb2c2 100644 --- a/core/assets/bundles/bundle_fr_BE.properties +++ b/core/assets/bundles/bundle_fr_BE.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Uploading Preview File committingchanges = Comitting Changes done = Done feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -98,7 +98,7 @@ mod.enable = Enable mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Import Mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = This mod will be deleted. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_in_ID.properties b/core/assets/bundles/bundle_in_ID.properties index 661c4e3c8f..1f253e9698 100644 --- a/core/assets/bundles/bundle_in_ID.properties +++ b/core/assets/bundles/bundle_in_ID.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Mengupload File Tinjauan committingchanges = Membuat Perubahan done = Selesai feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -98,7 +98,7 @@ mod.enable = Enable mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Import Mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = This mod will be deleted. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_it.properties b/core/assets/bundles/bundle_it.properties index 9189a36f3d..d1f19ae8b1 100644 --- a/core/assets/bundles/bundle_it.properties +++ b/core/assets/bundles/bundle_it.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Carico file di anteprima committingchanges = Applico le modifiche done = Fatto feature.unsupported = Your device does not support this feature. -mods.alphainfo = Tieni a mente che queste mod sono in alpha, e[scarlet] possono avere molti bug[].\nRiporta tutti i problemi che trovi in Mindustry su Github o Discord. +mods.alphainfo = Tieni a mente che queste mod sono in alpha, e[scarlet] possono avere molti bug[].\nRiporta tutti i problemi che trovi in Mindustry su GitHub o Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]Nessuna mod trovata! @@ -98,7 +98,7 @@ mod.enable = Abilita mod.requiresrestart = . mod.reloadrequired = [scarlet]Riavvio necessario mod.import = Importa una mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = Questa mod verrà cancellata. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = Questo salvataggio contiene mod che hai recentemente aggiornato o non le hai piu installate. Il salvataggio può essere corrotto. sei sicuro di volerlo caricare?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_ja.properties b/core/assets/bundles/bundle_ja.properties index 61738fde08..14a3e7e066 100644 --- a/core/assets/bundles/bundle_ja.properties +++ b/core/assets/bundles/bundle_ja.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = プレビューファイルをアップロードしてい committingchanges = 変更を適応中 done = 完了 feature.unsupported = Your device does not support this feature. -mods.alphainfo = Mods機能は実験的なものです。[scarlet] エラーが含まれている可能性があります[]。\n 発見した問題をMindustry Githubに報告してください。 +mods.alphainfo = Mods機能は実験的なものです。[scarlet] エラーが含まれている可能性があります[]。\n 発見した問題をMindustry GitHubに報告してください。 mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]Modが見つかりませんでした! @@ -98,7 +98,7 @@ mod.enable = 有効化 mod.requiresrestart = このModをインストールするためにはゲームの再起動が必要です。 mod.reloadrequired = [scarlet]Modを有効にするには、この画面を開き直してください。 mod.import = Modをインポート -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = このModを削除します。 mod.author = [LIGHT_GRAY]著者:[] {0} mod.missing = このセーブには、アップグレードされた可能性があるModsか、ここに存在しないModsが必要です。 メモリのセーブを保存する! ロードしてもよろしいですか?\n[lightgray]MODS:\n{0} diff --git a/core/assets/bundles/bundle_nl.properties b/core/assets/bundles/bundle_nl.properties index 0633347d3d..a9bf6129f3 100644 --- a/core/assets/bundles/bundle_nl.properties +++ b/core/assets/bundles/bundle_nl.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Uploading Preview File committingchanges = Comitting Changes done = Done feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -98,7 +98,7 @@ mod.enable = Enable mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Import Mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = This mod will be deleted. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_nl_BE.properties b/core/assets/bundles/bundle_nl_BE.properties index a26e7d27dc..f14e68b7c7 100644 --- a/core/assets/bundles/bundle_nl_BE.properties +++ b/core/assets/bundles/bundle_nl_BE.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Uploading Preview File committingchanges = Comitting Changes done = Done feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -98,7 +98,7 @@ mod.enable = Enable mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Import Mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = This mod will be deleted. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_pl.properties b/core/assets/bundles/bundle_pl.properties index 5286ad94e8..95914d3862 100644 --- a/core/assets/bundles/bundle_pl.properties +++ b/core/assets/bundles/bundle_pl.properties @@ -3,16 +3,16 @@ credits = Zasłużeni contributors = Tłumacze i pomocnicy discord = Odwiedź nasz serwer Discord! link.discord.description = Oficjalny serwer Discord Mindustry -link.reddit.description = The Mindustry subreddit +link.reddit.description = Subreddit Mindustry link.github.description = Kod źródłowy gry -link.changelog.description = Informacje o aktualizacjach +link.changelog.description = Historia aktualizacji link.dev-builds.description = Niestabilne wersje gry link.trello.description = Oficjalna tablica Trello z planowanym funkcjami link.itch.io.description = Strona itch.io z oficjanymi wersjami do pobrania link.google-play.description = Strona na sklepie Google Play link.wiki.description = Oficjana Wiki Mindustry linkfail = Nie udało się otworzyć linku!\nURL został skopiowany. -screenshot = Zapisano zdjęcie do {0} +screenshot = Zapisano zdjęcie w {0} screenshot.invalid = Zrzut ekranu jest zbyt duży. Najprawdopodobniej brakuje miejsca w pamięci urządzenia. gameover = Koniec Gry gameover.pvp = Zwyciężyła drużyna [accent]{0}[]! @@ -24,22 +24,22 @@ load.image = Obrazy load.content = Treść load.system = System load.mod = Mody -schematic = Schematic -schematic.add = Save Schematic... -schematics = Schematics -schematic.replace = A schematic by that name already exists. Replace it? -schematic.import = Import Schematic... -schematic.exportfile = Export File -schematic.importfile = Import File -schematic.browseworkshop = Browse Workshop -schematic.copy = Copy to Clipboard -schematic.copy.import = Import from Clipboard -schematic.shareworkshop = Share on Workshop -schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic -schematic.saved = Schematic saved. -schematic.delete.confirm = This schematic will be utterly eradicated. -schematic.rename = Rename Schematic -schematic.info = {0}x{1}, {2} blocks +schematic = Schemat +schematic.add = Zapisz schemat... +schematics = Schematy +schematic.replace = Schemat o takiej nazwie już istnieje. Czy chcesz go zastąpić? +schematic.import = Importuj Schemat... +schematic.exportfile = Eksportuj plik +schematic.importfile = Importuj plik +schematic.browseworkshop = Przeglądaj Warsztat +schematic.copy = Zapisano w schowku +schematic.copy.import = Importuj ze schowka +schematic.shareworkshop = Podziel się na Warsztacie +schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Odwróć schemat +schematic.saved = Schemat zapisany. +schematic.delete.confirm = Ten schemat zostanie kompletnie wyeliminowany. +schematic.rename = Zmień nazwę schematu +schematic.info = {0}x{1}, {2} bloków stat.wave = Fale powstrzymane:[accent] {0} stat.enemiesDestroyed = Przeciwnicy zniszczeni:[accent] {0} stat.built = Budynki zbudowane:[accent] {0} @@ -55,7 +55,7 @@ level.select = Wybrany poziom level.mode = Tryb gry: showagain = Nie pokazuj tego więcej coreattack = < Rdzeń jest atakowany! > -nearpoint = [[ [scarlet]OPUŚĆ PUNKT ZRZUTU NATYCHMIAST[] ]\nnadciąga zniszczenie +nearpoint = [[ [scarlet]NATYCHMIAST OPUŚĆ PUNKT ZRZUTU[] ]\nnadciąga zniszczenie database = Centralna baza danych savegame = Zapisz Grę loadgame = Wczytaj Grę @@ -64,7 +64,7 @@ customgame = Własna Gra newgame = Nowa Gra none = minimap = Minimapa -position = Position +position = Pozycja close = Zamknij website = Strona Gry quit = Wyjdź @@ -80,30 +80,30 @@ uploadingcontent = Przesyłanie Zawartości uploadingpreviewfile = Przesyłanie Pliku Podglądu committingchanges = Zatwierdzanie Zmian done = Gotowe -feature.unsupported = Your device does not support this feature. -mods.alphainfo = Pamiętaj, że mody są wersji alpha, i[scarlet] mogą być pełne błędów[].\nZgłaszaj wszystkie znalezione problemy na Mindustry Github lub Discord. +feature.unsupported = Twoje urządzenie nie wspiera tej funkcji. +mods.alphainfo = Pamiętaj, że mody są wersji alpha, i[scarlet] mogą być pełne błędów[].\nZgłaszaj wszystkie znalezione problemy na Mindustry GitHub lub Discord. mods.alpha = [scarlet](Alpha) mods = Mody mods.none = [LIGHT_GRAY]Nie znaleziono modów! -mods.guide = Modding Guide -mods.report = Report Bug -mods.openfolder = Open Mod Folder +mods.guide = Poradnik do modów +mods.report = Zgłoś Błąd +mods.openfolder = Otwórz folder z modami mod.enabled = [lightgray]Włączony mod.disabled = [scarlet]Wyłączony -mod.disable = Disable -mod.delete.error = Unable to delete mod. File may be in use. -mod.missingdependencies = [scarlet]Missing dependencies: {0} -mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled. -mod.enable = Enable +mod.disable = Wyłącz +mod.delete.error = Nie udało się usunąć moda. Plik może być w użyciu. +mod.missingdependencies = [scarlet]Brakujące zależności: {0} +mod.nowdisabled = [scarlet]Brakuje zależności dla moda '{0}':[accent] {1}\n[lightgray]Najpierw trzeba ściągnąć te mody.\nMod zostanie automatycznie wyłączony. +mod.enable = Włącz mod.requiresrestart = Gra się wyłączy aby wprowadzić zmiany moda. -mod.reloadrequired = [scarlet]Reload Required +mod.reloadrequired = [scarlet]Wymagany restart mod.import = Importuj Mod -mod.import.github = Import Github Mod +mod.import.github = Importuj mod z GitHuba mod.remove.confirm = Ten mod zostanie usunięty. mod.author = [LIGHT_GRAY]Autor:[] {0} -mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} -mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again. -mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods. +mod.missing = Ten zapis zawiera mody, które zostały niedawno zaktualizowane, bądź nie są już zainstalowane. Zapis może zostać uszkodzony. Czy jesteś pewien, że chcesz go załadować?\n[lightgray]Mody:\n{0} +mod.preview.missing = Przed opublikowaniem tego moda na Warsztacie musisz dodać zdjęcie podglądowe.\nDodaj zdjęcie o nazwie[accent] preview.png[] do folderu moda i spróbuj jeszcze raz. +mod.folder.missing = Jedynie mody w formie folderów mogą się znaleźć na Warsztacie.\nBy zamienić moda w folder, wyciągnij go z archiwum, umieść w folderze i usuń archiwum. Później uruchom ponownie grę bądź załaduj ponownie mody. about.button = O Grze name = Nazwa: noname = Najpierw wybierz [accent]nazwę gracza[] @@ -125,7 +125,7 @@ server.kicked.clientOutdated = Nieaktualna gra! Zaktualizują ją! server.kicked.serverOutdated = Nieaktualny serwer! Poproś hosta o jego aktualizację. server.kicked.banned = Zostałeś zbanowany na tym serwerze. server.kicked.typeMismatch = Ten serwer jest niekompatybilny z twoją wersją gry. -server.kicked.playerLimit = Serwer pełny. Poczekaj na wolny slot. +server.kicked.playerLimit = Serwer pełny. Poczekaj na wolne miejsce. server.kicked.recentKick = Zostałeś niedawno wyrzucony.\nPoczekaj chwilę przed ponownym połączniem. server.kicked.nameInUse = Ta nazwa jest już zajęta na tym serwerze. server.kicked.nameEmpty = Wybrana przez Ciebie nazwa jest nieprawidłowa. @@ -133,8 +133,8 @@ server.kicked.idInUse = Jesteś już na serwerze! Używanie tego samego konta na server.kicked.customClient = Ten serwer nie wspomaga wersji deweloperskich. Pobierz oficjalną wersję. server.kicked.gameover = Koniec gry! server.versions = Twoja wersja gry:[accent] {0}[]\nWersja gry serwera:[accent] {1}[] -host.info = Przycisk [accent]host[] hostuje serwer na porcie [scarlet]6567[] i [scarlet]6568.[]\nKtokolwiek z tym samym [LIGHT_GRAY]wifi lub hotspotem[] powinien zobaczyć twój serwer.\n\nJeśli chcesz, aby każdy z twoim IP mógł dołączyć, [accent]przekierowywanie portów[] jest potrzebne.\n\n[LIGHT_GRAY]Notka:Jeśli ktokolwiek ma problem z dołączeniem do gry, upewnij się, że udostępniłeś Mindustry dostęp do sieci. -join.info = Tutaj możesz wpisać [accent]IP serwera[], aby dołączyć lub wyszukaj [accent]serwery w lokalnej sieci[], do których chcesz dołączyć .\nGra wieloosobowa na LAN i WAN jest wspomagana.\n\n[LIGHT_GRAY]Notka: Nie ma automatycznej listy wszystkich serwerów; jeśli chcesz dołączyć przez IP, musisz zapytać się hosta o IP. +host.info = Przycisk [accent]host[] hostuje serwer na porcie [scarlet]6567[] i [scarlet]6568.[]\nKażdy w tej samej sieci [LIGHT_GRAY]wifi lub hotspocie[] powinien zobaczyć twój serwer.\n\nJeśli chcesz, aby każdy z twoim IP mógł dołączyć, musisz wykonać [accent]przekierowywanie portów[].\n\n[LIGHT_GRAY]Notka:Jeśli ktokolwiek ma problem z dołączeniem do gry, upewnij się, że udostępniłeś Mindustry dostęp do sieci. +join.info = Tutaj możesz wpisać [accent]adres IP serwera[], aby dołączyć lub wyszukać [accent]serwerów w lokalnej sieci[], do których możesz dołączyć .\nGra wieloosobowa na LAN i WAN jest wspomagana.\n\n[LIGHT_GRAY]Notka: Nie ma automatycznej listy wszystkich serwerów; jeśli chcesz dołączyć przez IP, musisz zapytać hosta o IP. hostserver = Stwórz Serwer invitefriends = Zaproś Znajomych hostserver.mobile = Hostuj\nGrę @@ -217,7 +217,7 @@ warning = Uwaga. confirm = Potwierdź delete = Usuń view.workshop = Pokaż w Warsztacie -workshop.listing = Edit Workshop Listing +workshop.listing = Edytuj pozycję w Warsztacie ok = OK open = Otwórz customize = Dostosuj @@ -237,10 +237,10 @@ quit.confirm.tutorial = Czy jesteś pewien tego co robisz?\nSamouczek może zost loading = [accent]Ładowanie... reloading = [accent]Reloading Mods... saving = [accent]Zapisywanie... -cancelbuilding = [accent][[{0}][] to clear plan -selectschematic = [accent][[{0}][] to select+copy -pausebuilding = [accent][[{0}][] to pause building -resumebuilding = [scarlet][[{0}][] to resume building +cancelbuilding = [accent][[{0}][] by wyczyścić plan +selectschematic = [accent][[{0}][] by wybrać+skopiować +pausebuilding = [accent][[{0}][] by wtrzymać budowę +resumebuilding = [scarlet][[{0}][] by kontynuować budowę wave = [accent]Fala {0} wave.waiting = Fala za {0} wave.waveInProgress = [LIGHT_GRAY]Fala w trakcie @@ -259,18 +259,18 @@ map.nospawn = Ta mapa nie zawiera żadnego rdzenia! Dodaj [ROYAL]niebieski[] rdz map.nospawn.pvp = Ta mapa nie ma żadnego rdzenia przeciwnika, aby mogli się zrespić przeciwnicy! Dodaj[SCARLET] inny niż niebieski[] rdzeń do mapy w edytorze. map.nospawn.attack = Ta mapa nie ma żadnego rdzenia przeciwnika, aby można było go zaatakować! Dodaj[SCARLET] czerwony[] rdzeń do mapy w edytorze. map.invalid = Błąd podczas ładowania mapy: uszkodzony lub niepoprawny plik mapy. -workshop.update = Update Item -workshop.error = Error fetching workshop details: {0} -map.publish.confirm = Are you sure you want to publish this map?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your maps will not show up! -workshop.menu = Select what you would like to do with this item. -workshop.info = Item Info -changelog = Changelog (optional): -eula = Steam EULA -missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked. -publishing = [accent]Publishing... -publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your items will not show up! -publish.error = Error publishing item: {0} -steam.error = Failed to initialize Steam services.\nError: {0} +workshop.update = Aktualizuj pozycję +workshop.error = Błąd podczas wczytywania szczegółów z Warsztatu: {0} +map.publish.confirm = Czy jesteś pewien, że chcesz opublikować tę mapę?\n\n[lightgray]Najpierw upewnij się, że zgadzasz się z umową EULA Warsztatu, w przeciwnym razie twoje mapy nie będą widoczne! +workshop.menu = Wybierz co chcesz zrobić z tą pozycją. +workshop.info = Informacja o pozycji +changelog = Historia aktualizacji (opcjonalna): +eula = Umowa EULA Steam +missing = Ta pozycja została przeniesiona bądź usunięta.\n[lightgray]Pozycja na Warsztacie została automatycznie odłączona. +publishing = [accent]Trwa publikowanie... +publish.confirm = Czy jesteś pewien, że chcesz to opublikować?\n\n[lightgray]Najpierw upewnij się, że zgadzasz się z umową EULA Warsztatu, w przeciwnym razie twoje pozycje nie będą widoczne! +publish.error = Błąd podczas publikowania pozycji: {0} +steam.error = Nie udało się zainicjować serwisów Steam.\nBłąd: {0} editor.brush = Pędzel editor.openin = Otwórz w Edytorze editor.oregen = Generacja Złóż @@ -310,7 +310,7 @@ editor.removeunit = Usuń Jednostkę editor.teams = Drużyny editor.errorload = Błąd podczas ładowania pliku:\n[accent]{0} editor.errorsave = Błąd podczas zapisywania pliku:\n[accent]{0} -editor.errorimage = To obraz, nie mapa. Nie zmieniaj rozszeżenia spodziewając sie że to coś zmieni.\n\nJeśli chcesz zaimportować starszą mapę, użyj przycisku „importuj starszą mapę” w edytorze. +editor.errorimage = To obraz, nie mapa. Nie zmieniaj rozszerzenia, spodziewając się, że to coś zmieni.\n\nJeśli chcesz zaimportować starszą mapę, użyj przycisku „importuj starszą mapę” w edytorze. editor.errorlegacy = Ta mapa jest zbyt stara i używa starszego formatu mapy, który nie jest już obsługiwany. editor.errornot = To nie jest plik mapy. editor.errorheader = Ten plik mapy jest nieprawidłowy lub uszkodzony. @@ -357,7 +357,7 @@ toolmode.square = Kwadrat toolmode.square.description = Kwadratowy pędzel. toolmode.eraseores = Wymaż Rudy toolmode.eraseores.description = Usuń tylko rudy. -toolmode.fillteams = Wypełń Drużyny +toolmode.fillteams = Wypełnij Drużyny toolmode.fillteams.description = Wypełniaj drużyny zamiast bloków. toolmode.drawteams = Rysuj Drużyny toolmode.drawteams.description = Rysuj drużyny zamiast bloków. @@ -411,9 +411,9 @@ abandon = Opuść abandon.text = Ta strefa i wszystkie jej surowce będą przejęte przez przeciwników. locked = Zablokowane complete = [LIGHT_GRAY]Ukończone: -requirement.wave = Reach Wave {0} in {1} -requirement.core = Destroy Enemy Core in {0} -requirement.unlock = Unlock {0} +requirement.wave = Osiągnij falę {0} w {1} +requirement.core = Zniszcz Rdzeń wroga w {0} +requirement.unlock = Odblokuj {0} resume = Kontynuuj Strefę:\n[LIGHT_GRAY]{0} bestwave = [LIGHT_GRAY]Najwyższa fala: {0} launch = < WYSTRZEL > @@ -424,13 +424,13 @@ launch.confirm = Spowoduje to wystrzelenie wszystkich surowców w rdzeniu.\nNie launch.skip.confirm = Jeśli teraz przejdziesz do kolejnej fali, Nie biędziesz miał możliwości wystrzelenia do czasu pokonania dalszych fal. uncover = Odkryj configure = Skonfiguruj Ładunek -bannedblocks = Banned Blocks -addall = Add All +bannedblocks = Zabronione bloki +addall = Dodaj wszystkie configure.locked = [LIGHT_GRAY]Dotrzyj do fali {0}\nAby skonfigurować ładunek. configure.invalid = Ilość musi być liczbą pomiędzy 0 a {0}. zone.unlocked = [LIGHT_GRAY]Strefa {0} odblokowana. zone.requirement.complete = Fala {0} osiągnięta:\n{1} Wymagania strefy zostały spełnione. -zone.config.unlocked = Loadout unlocked:[lightgray]\n{0} +zone.config.unlocked = Ładunek odblokowany:[lightgray]\n{0} zone.resources = Wykryte Zasoby: zone.objective = [lightgray]Cel: [accent]{0} zone.objective.survival = Przeżyj @@ -487,8 +487,8 @@ settings.cleardata = Wyczyść Dane Gry... settings.clear.confirm = Czy jesteś pewien że chcesz usunąć te dane?\nPo tym nie ma powrotu! settings.clearall.confirm = [scarlet]UWAGA![]\nTo wykasuje wszystkie dane, włącznie z zapisanymi grami i mapami, ustawienami, i znanymi technologiami.\nKiedy naciśniesz 'ok', gra usunie wszystkie swoje dane i automatycznie wyłączy się. paused = [accent]< Wstrzymano > -clear = Clear -banned = [scarlet]Banned +clear = Wyczyść +banned = [scarlet]Zbanowano yes = Tak no = Nie info.title = Informacje @@ -597,7 +597,7 @@ setting.difficulty.normal = Normalny setting.difficulty.hard = Trudny setting.difficulty.insane = Szalony setting.difficulty.name = Poziom trudności -setting.screenshake.name = Trzęsienie się ekranu +setting.screenshake.name = Wstrząsy ekranu setting.effects.name = Wyświetlanie efektów setting.destroyedblocks.name = Display Destroyed Blocks setting.conveyorpathfinding.name = Conveyor Placement Pathfinding @@ -623,7 +623,7 @@ setting.chatopacity.name = Przezroczystość czatu setting.lasersopacity.name = Przezroczystość laserów zasilających setting.playerchat.name = Wyświetlaj czat w grze public.confirm = Czy chcesz ustawić swoją grę jako publiczną?\n[lightgray]Można to później zmienić w Ustawienia->Gra->Widoczność Gry Publicznej. -public.beta = Note that beta versions of the game cannot make public lobbies. +public.beta = Wersje beta gry nie mogą tworzyć publicznych pokoi. uiscale.reset = Skala interfejsu uległa zmianie.\nNaciśnij "OK" by potwierdzić zmiany.\n[scarlet]Cofanie zmian i wyjście z gry za[accent] {0}[] uiscale.cancel = Anuluj i Wyjdź setting.bloom.name = Bloom @@ -631,20 +631,20 @@ keybind.title = Zmień keybinds.mobile = [scarlet]Większość skrótów klawiszowych nie funkcjonuje w wersji mobilnej. Tylko podstawowe poruszanie się jest wspierane. category.general.name = Ogólne category.view.name = Wyświetl -category.multiplayer.name = Multiplayer +category.multiplayer.name = Wielu graczy command.attack = Atakuj command.rally = Zbierz command.retreat = Wycofaj -keybind.clear_building.name = Clear Building +keybind.clear_building.name = Wyczyść budynek keybind.press = Naciśnij wybrany klawisz... keybind.press.axis = Naciśnij oś lub klawisz... keybind.screenshot.name = Zrzut ekranu mapy keybind.move_x.name = Poruszanie w poziomie keybind.move_y.name = Poruszanie w pionie -keybind.schematic_select.name = Select Region -keybind.schematic_menu.name = Schematic Menu -keybind.schematic_flip_x.name = Flip Schematic X -keybind.schematic_flip_y.name = Flip Schematic Y +keybind.schematic_select.name = Wybierz region +keybind.schematic_menu.name = Menu schematów +keybind.schematic_flip_x.name = Obróć schemat horyzontalnie +keybind.schematic_flip_y.name = Obróć schemat wertykalnie keybind.fullscreen.name = Przełącz Pełny Ekran keybind.select.name = Zaznacz keybind.diagonal_placement.name = Budowa po skosie @@ -656,7 +656,7 @@ keybind.zoom_hold.name = Inicjator przybliżania keybind.zoom.name = Przybliżanie keybind.menu.name = Menu keybind.pause.name = Pauza -keybind.pause_building.name = Pause/Resume Building +keybind.pause_building.name = Wstrzymaj/kontynuuj budowę keybind.minimap.name = Minimapa keybind.dash.name = Przyspieszenie keybind.chat.name = Czat @@ -855,7 +855,7 @@ block.duo.name = Podwójne Działko block.scorch.name = Płomień block.scatter.name = Flak block.hail.name = Grad -block.lancer.name = Lancer +block.lancer.name = Lansjer block.conveyor.name = Przenośnik block.titanium-conveyor.name = Przenośnik Tytanowy block.armored-conveyor.name = Przenośnik Opancerzony @@ -864,7 +864,7 @@ block.junction.name = Węzeł block.router.name = Rozdzielacz block.distributor.name = Dystrybutor block.sorter.name = Sortownik -block.inverted-sorter.name = Inverted Sorter +block.inverted-sorter.name = Odwrotny Sortownik block.message.name = Wiadomość block.overflow-gate.name = Brama Przepełnieniowa block.silicon-smelter.name = Huta Krzemu diff --git a/core/assets/bundles/bundle_pt.properties b/core/assets/bundles/bundle_pt.properties index 57245a179f..6e6169b4b5 100644 --- a/core/assets/bundles/bundle_pt.properties +++ b/core/assets/bundles/bundle_pt.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Enviando ficheiro de pré-visualização committingchanges = Enviando mudanças done = Feito feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -98,7 +98,7 @@ mod.enable = Ativar mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Importar Mod -mod.import.github = Importar Mod da Github +mod.import.github = Importar Mod da GitHub mod.remove.confirm = Este mod irá ser apagado. mod.author = [LIGHT_GRAY]Autor:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_pt_BR.properties b/core/assets/bundles/bundle_pt_BR.properties index 5c7edb10df..ea74cce62e 100644 --- a/core/assets/bundles/bundle_pt_BR.properties +++ b/core/assets/bundles/bundle_pt_BR.properties @@ -1,43 +1,43 @@ -credits.text = Created by [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] +credits.text = Criado por [ROYAL]Anuken[] - [SKY]anukendev@gmail.com[] credits = Créditos contributors = Tradutores e contribuidores discord = Junte-se ao Discord do Mindustry! (Lá nós falamos em inglês) link.discord.description = O discord oficial do Mindustry -link.reddit.description = The Mindustry subreddit +link.reddit.description = O subreddit do Mindustry link.github.description = Código fonte do jogo. link.changelog.description = Lista de mudanças da atualização -link.dev-builds.description = Desenvolvimentos Instáveis -link.trello.description = Trello Oficial para Updates Planejados -link.itch.io.description = Pagina da Itch.io com os Downloads -link.google-play.description = Listamento do google play store +link.dev-builds.description = Desenvolvimentos instáveis +link.trello.description = Trello oficial para atualizações planejadas +link.itch.io.description = Página da Itch.io com os downloads +link.google-play.description = Página da google play store link.wiki.description = Wiki oficial do Mindustry linkfail = Falha ao abrir o link\nO Url foi copiado screenshot = Screenshot salvo para {0} -screenshot.invalid = Mapa grande demais, Potencialmente sem memória suficiente para captura. +screenshot.invalid = Mapa grande demais, Potencialmente sem memória suficiente para captura de tela. gameover = O núcleo foi destruído. gameover.pvp = O time[accent] {0}[] ganhou! highscore = [YELLOW]Novo recorde! -copied = Copied. +copied = Copiado load.sound = Sons load.map = Mapas load.image = Imagens load.content = Conteúdo load.system = Sistema load.mod = Mods -schematic = Schematic -schematic.add = Save Schematic... -schematics = Schematics -schematic.replace = A schematic by that name already exists. Replace it? -schematic.import = Import Schematic... -schematic.exportfile = Export File -schematic.importfile = Import File -schematic.browseworkshop = Browse Workshop -schematic.copy = Copy to Clipboard -schematic.copy.import = Import from Clipboard -schematic.shareworkshop = Share on Workshop -schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic -schematic.saved = Schematic saved. -schematic.delete.confirm = This schematic will be utterly eradicated. +schematic = Esquema +schematic.add = Salvar Esquema... +schematics = Esquemas +schematic.replace = Um Esquema com esse nome já existe. Substituí-lo? +schematic.import = Importar Esquema... +schematic.exportfile = Exportar arquivo +schematic.importfile = Importar arquivo +schematic.browseworkshop = Navegar pela Oficina +schematic.copy = Copiar para a área de transferência +schematic.copy.import = Importar da área de transferência +schematic.shareworkshop = Compartilhar na Oficina +schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Virar o Esquema +schematic.saved = Esquema salvo. +schematic.delete.confirm = Esse Esquema será totalmente erradicado. schematic.rename = Rename Schematic schematic.info = {0}x{1}, {2} blocks stat.wave = Hordas derrotadas:[accent] {0} @@ -46,9 +46,9 @@ stat.built = Construções construídas:[accent] {0} stat.destroyed = Construções destruídas:[accent] {0} stat.deconstructed = Construções desconstruídas:[accent] {0} stat.delivered = Recursos lançados: -stat.rank = Rank Final: [accent]{0} +stat.rank = Classificação Final: [accent]{0} launcheditems = [accent]Itens lançados -launchinfo = [unlaunched][[LAUNCH] your core to obtain the items indicated in blue. +launchinfo = [unlaunched][[LANCE] seu núcleo para obter os itens indicados em azul. map.delete = Certeza que quer deletar o mapa "[accent]{0}[]"? level.highscore = Melhor\npontuação: [accent] {0} level.select = Seleção de Fase @@ -56,11 +56,11 @@ level.mode = Modo de Jogo: showagain = Não mostrar na proxima sessão coreattack = < O núcleo está sobre ataque! > nearpoint = [[ [scarlet]SAIA DO PONTO DE SPAWN IMEDIATAMENTE[] ]\nANIQUILAÇÃO IMINENTE -database = banco do núcleo +database = Banco de dados savegame = Salvar Jogo loadgame = Carregar Jogo joingame = Entrar no Jogo -customgame = Jogo Customi-/nzado +customgame = Jogo Customi-\nzado newgame = Novo Jogo none = minimap = Mini-Mapa @@ -77,63 +77,63 @@ invalid = Inválido preparingconfig = Preparando configuração preparingcontent = Preparando conteúdo uploadingcontent = Fazendo upload do conteúdo -uploadingpreviewfile = Fazendo upload do arquivo de pré visualização +uploadingpreviewfile = Fazendo upload do arquivo de pré-visualização committingchanges = Enviando mudanças done = Feito -feature.unsupported = Your device does not support this feature. -mods.alphainfo = Mantenha em mente que os mods estão em Alpha, e[scarlet] talvez sejam bem bugados[].\nReporte quaisquer problemas no Discord ou Github do Mindustry. +feature.unsupported = Seu dispositivo não suporta essa função. +mods.alphainfo = Mantenha em mente que os mods estão em Alpha, e[scarlet] talvez sejam bem bugados[].\nReporte quaisquer problemas no Discord ou GitHub do Mindustry. mods.alpha = [accent](Alpha) mods = Mods -mods.none = [LIGHT_GRAY]No mods found! -mods.guide = Modding Guide -mods.report = Report Bug -mods.openfolder = Open Mod Folder -mod.enabled = [lightgray]Enabled -mod.disabled = [scarlet]Disabled -mod.disable = Disable -mod.delete.error = Unable to delete mod. File may be in use. -mod.missingdependencies = [scarlet]Missing dependencies: {0} -mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled. -mod.enable = Enable -mod.requiresrestart = The game will now close to apply the mod changes. -mod.reloadrequired = [scarlet]Reload Required -mod.import = Import Mod -mod.import.github = Import Github Mod -mod.remove.confirm = This mod will be deleted. +mods.none = [LIGHT_GRAY]Nenhum Mod encontrado! +mods.guide = Guia de Mods +mods.report = Reportar um Bug +mods.openfolder = Abrir pasta de Mods +mod.enabled = [lightgray]Ativado +mod.disabled = [scarlet]Desativado +mod.disable = Desativar +mod.delete.error = Incapaz de deletar o Mod. O arquivo talvez esteja em uso. +mod.missingdependencies = [scarlet]Dependências ausentes: {0} +mod.nowdisabled = [scarlet]O Mod '{0}' está com dependências ausentes :[accent] {1}\n[lightgray]Esses Mods precisam ser baixados primeiro.\nEsse Mod será desativado automaticamente. +mod.enable = Ativar +mod.requiresrestart = O jogo irá fechar para aplicar as mudanças do Mod. +mod.reloadrequired = [scarlet]Recarregamento necessário +mod.import = Importar Mod +mod.import.github = Importar Mod do GitHub +mod.remove.confirm = Esse Mod será deletado. mod.author = [LIGHT_GRAY]Author:[] {0} -mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} -mod.preview.missing = Before publishing this mod in the workshop, you must add an image preview.\nPlace an image named[accent] preview.png[] into the mod's folder and try again. -mod.folder.missing = Only mods in folder form can be published on the workshop.\nTo convert any mod into a folder, simply unzip its file into a folder and delete the old zip, then restart your game or reload your mods. +mod.missing = Esse jogo salvo foi criado antes de você atualizar ou desinstalar um mod. O jogo salvo pode se corromper. Você tem certeza que quer carregar?\n[lightgray]Mods:\n{0} +mod.preview.missing = Antes de publicar esse mod na Oficina, você deve adicionar uma imagem de pré-visualização.\nColoque uma imagem com o nome[accent] preview.png[] na pasta do Mod e tente novamente. +mod.folder.missing = Somente Mods no formato de pasta serão publicados na Oficina.\nPara converter qualquer Mod em uma pasta, Simplesmente descompacte seu arquivo numa pasta e delete a compactação antiga, então reinicie seu jogo ou recarregue os Mods. about.button = Sobre name = Nome: noname = Escolha[accent] um nome[] primeiro. filename = Nome do arquivo: -unlocked = Novo bloco Desbloqueado! +unlocked = Novo bloco desbloqueado! completed = [accent]Completado techtree = Árvore de tecnologia research.list = [LIGHT_GRAY]Pesquise: -research = Pesquisa -researched = [LIGHT_GRAY]{0} pesquisado. +research = Pesquisar +researched = [LIGHT_GRAY]{0} Pesquisado. players = {0} Jogadores Ativos players.single = {0} Jogador Ativo server.closing = [accent]Fechando servidor... -server.kicked.kick = Voce foi expulso do servidor! +server.kicked.kick = Você foi expulso do servidor! server.kicked.whitelist = Você não está na lista branca do servidor. server.kicked.serverClose = Servidor Fechado. server.kicked.vote = Você foi expulso desse servidor. Adeus. server.kicked.clientOutdated = Cliente desatualizado! Atualize seu jogo! -server.kicked.serverOutdated = Servidor desatualiado! Peça ao dono para atualizar! +server.kicked.serverOutdated = Servidor desatualizado! Peça ao dono para atualizar! server.kicked.banned = Você foi banido do servidor. server.kicked.typeMismatch = Este servidor não é compatível com a sua versão. server.kicked.playerLimit = Este servidor está cheio. Espere por uma vaga. -server.kicked.recentKick = Voce foi expulso recentemente.\nEspere para conectar de novo. +server.kicked.recentKick = Voce foi expulso recentemente.\nEspere para se conectar de novo. server.kicked.nameInUse = Este nome já está sendo usado\nneste servidor. server.kicked.nameEmpty = Você deve ter pelo menos uma letra ou número no nome. server.kicked.idInUse = Você ja está neste servidor! Conectar com duas contas não é permitido. server.kicked.customClient = Este servidor não suporta versões customizadas. Baixe a versão original. server.kicked.gameover = Fim de jogo! server.versions = Sua versão:[accent] {0}[]\nVersão do servidor:[accent] {1}[] -host.info = The [accent]Hospedar[]Botão Hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [LIGHT_GRAY]Wi-fi Ou Internet local[] Pode ver este servidor na lista de servidores.\n\nSe voce quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[LIGHT_GRAY]Note: Se alguem esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall +host.info = The [accent]Hospedar[]Botão Hospeda um servidor no Host[scarlet]6567[] e [scarlet]6568.[]\nQualquer um no [LIGHT_GRAY]Wi-fi Ou Internet local[] Pode ver este servidor na lista de servidores.\n\nSe voce quer poder entrar em qualquer servidor em seu ip, [accent]port forwarding[] é requerido.\n\n[LIGHT_GRAY]Note: Se alguém esta com problemas em conectar no seu servidor lan, Tenha certeza que deixou mindustry Acessar sua internet local nas configurações de firewall join.info = Aqui, você pode entar em um [accent]IP de servidor[] para conectar, ou descobrir [accent]servidores[] da rede local.\nAmbos os servidores LAN e WAN são suportados.\n\n[LIGHT_GRAY]Note: Não há uma lista de servidores automáticos; Se você quer conectar ao IP de alguém, você precisa pedir o IP ao anfitrião. hostserver = Hospedar servidor invitefriends = Convidar amigos @@ -201,8 +201,8 @@ save.newslot = Nome do salvamento: save.rename = Renomear save.rename.text = Novo jogo: selectslot = Selecione um lugar para salvar. -slot = [accent]Slot {0} -editmessage = Edit Message +slot = [accent]Conexões {0} +editmessage = Editar Mensagem save.corrupted = [accent]Arquivo corrompido ou inválido! empty = on = Ligado @@ -216,8 +216,8 @@ save.playtime = Tempo De Jogo: {0} warning = Aviso. confirm = Confirmar delete = Excluir -view.workshop = Ver na oficina -workshop.listing = Edit Workshop Listing +view.workshop = Ver na Oficina +workshop.listing = Editar a lista da Oficina ok = OK open = Abrir customize = Customizar @@ -235,12 +235,12 @@ classic.export.text = [accent]Mindustry[] acabou de ter uma grande atualização quit.confirm = Você tem certeza que quer sair? quit.confirm.tutorial = Você tem certeza você sabe o que você esta fazendo?\nO tutorial pode ser refeito nas [accent] Configurações->Jogo->Refazer Tutorial.[] loading = [accent]Carregando... -reloading = [accent]Reloading Mods... +reloading = [accent]Recarregando Mods... saving = [accent]Salvando... -cancelbuilding = [accent][[{0}][] to clear plan -selectschematic = [accent][[{0}][] to select+copy -pausebuilding = [accent][[{0}][] to pause building -resumebuilding = [scarlet][[{0}][] to resume building +cancelbuilding = [accent][[{0}][] para cancelar a construção +selectschematic = [accent][[{0}][] para selecionar+copiar +pausebuilding = [accent][[{0}][] para parar a construção +resumebuilding = [scarlet][[{0}][] para continuar a construção wave = [accent]Horda {0} wave.waiting = Horda em {0} wave.waveInProgress = [LIGHT_GRAY]Horda Em Progresso @@ -259,18 +259,18 @@ map.nospawn = Este mapa não possui nenhum núcleo para o jogador nascer! Adicio map.nospawn.pvp = Esse mapa não tem núcleos inimigos para os jogadores nascerem! Adicione[SCARLET] Núcleos vermelhos[] no mapa no editor. map.nospawn.attack = Esse mapa não tem nenhum núcleo inimigo para o jogador atacar! coloque[SCARLET] Núcleos[] vermelhos no editor. map.invalid = Erro ao carregar o mapa: Arquivo de mapa invalido ou corrupto. -workshop.update = Update Item -workshop.error = Error fetching workshop details: {0} +workshop.update = Atualizar Item +workshop.error = Erro buscando os detalhes da Oficina: {0} map.publish.confirm = Você tem certeza de que quer publicar este mapa?\n\n[lightgray]Tenha certeza de que você concorda com o EULA da oficina primeiro, ou seus mapas não serão mostrados! -workshop.menu = Select what you would like to do with this item. -workshop.info = Item Info +workshop.menu = Selecione oquê você gostaria de fazer com esse Item. +workshop.info = Informação do Item changelog = Changelog (optional): -eula = EULA do Steam +eula = EULA da Steam missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked. publishing = [accent]Publishing... -publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your items will not show up! -publish.error = Error publishing item: {0} -steam.error = Failed to initialize Steam services.\nError: {0} +publish.confirm = você tem certeza de que quer publicar isso?\n\n[lightgray]Primeiramente tenha certeza de que você concorda com o EULA da Oficina, ou seus itens não irão aparecer! +publish.error = Erro publicando o Item: {0} +steam.error = Falha em iniciar os serviços da Steam.\nError: {0} editor.brush = Pincel editor.openin = Abrir no Editor editor.oregen = Geração de minério @@ -283,7 +283,7 @@ editor.waves = Hordas: editor.rules = Regras: editor.generation = Geração: editor.ingame = Editar em jogo -editor.publish.workshop = Publicar na oficina +editor.publish.workshop = Publicar na Oficina editor.newmap = Novo mapa workshop = Oficina waves.title = Hordas @@ -294,7 +294,7 @@ waves.waves = Hordas(s) waves.perspawn = por spawn waves.to = para waves.boss = Chefe -waves.preview = Pré visualizar +waves.preview = Pré-visualizar waves.edit = Editar... waves.copy = Copiar para área de transferência waves.load = Carregar da área de transferência @@ -396,13 +396,13 @@ width = Largura: height = Altura: menu = Menu play = Jogar -campaign = Campa-/nnha +campaign = Campa-\nnha load = Carregar save = Salvar fps = FPS: {0} ping = Ping: {0}ms language.restart = Por favor, reinicie seu jogo para a tradução tomar efeito. -settings = Configu-/nrações +settings = Configu-\nrações tutorial = Tutorial tutorial.retake = Refazer Tutorial editor = Editor @@ -411,9 +411,9 @@ abandon = Abandonar abandon.text = Esta zona e todos os seus recursos serão perdidos para o inimigo. locked = Trancado complete = [LIGHT_GRAY]Completo: -requirement.wave = Reach Wave {0} in {1} -requirement.core = Destroy Enemy Core in {0} -requirement.unlock = Unlock {0} +requirement.wave = Alcançar a Horda {0} em {1} +requirement.core = Destruir o núcleo inimigo em {0} +requirement.unlock = Desbloquear {0} resume = Resumir Zona:\n[LIGHT_GRAY]{0} bestwave = [LIGHT_GRAY]Melhor: {0} launch = Lançar @@ -425,18 +425,18 @@ launch.skip.confirm = Se você pular a horda agora, você não será capaz de la uncover = Descobrir configure = Configurar carregamento bannedblocks = Blocos Banidos -addall = Add All +addall = Adicionar Todos configure.locked = [LIGHT_GRAY]Alcançe a horda {0}\npara configurar o carregamento. configure.invalid = A quantidade deve ser um número entre 0 e {0}. zone.unlocked = [LIGHT_GRAY]{0} Desbloqueado. zone.requirement.complete = Horda {0} alcançada:\n{1} Requerimentos da zona alcançada. -zone.config.unlocked = Loadout unlocked:[lightgray]\n{0} +zone.config.unlocked = Equipamento desbloqueado:[lightgray]\n{0} zone.resources = Recursos detectados: zone.objective = [lightgray]Objetivo: [accent]{0} zone.objective.survival = Sobreviver zone.objective.attack = Destruir o núcleo inimigo add = Adicionar... -boss.health = Saúde do chefe +boss.health = Vida do chefe connectfail = [crimson]Falha ao entrar no servidor: [accent]{0} error.unreachable = Servidor inalcançável. error.invalidaddress = Endereço inválido. @@ -475,7 +475,7 @@ zone.nuclearComplex.description = Uma antiga instalação para produção e proc zone.fungalPass.description = Uma area de transição entre montanhas altas e baixas, terras cheias de esporos. Uma pequena base de reconhecimento inimiga está localizada aqui.\nDestrua-a.\nUse as unidades crawler e dagger. Destrua os dois núcleos. zone.impact0078.description = zone.crags.description = -settings.language = Linguagem +settings.language = Idioma settings.data = Dados do jogo settings.reset = Restaurar Padrões settings.rebind = Religar @@ -485,7 +485,7 @@ settings.sound = Som settings.graphics = Gráficos settings.cleardata = Apagar dados... settings.clear.confirm = Certeza que quer limpar a os dados?\nOque é feito não pode ser desfeito! -settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar toda a data, Incluindo saves, mapas, Keybinds e desbloqueados.\nQuando apertar 'ok' Vai apagar toda a data e sair automaticamente. +settings.clearall.confirm = [scarlet]Aviso![]\nIsso vai limpar todo os arquivos, Incluindo jogos salvos, mapas, Keybinds e desbloqueados.\nQuando apertar 'ok' todos os arquivos serão apagados e o jogo irá sair automaticamente. paused = Pausado clear = Clear banned = [scarlet]Banido @@ -501,10 +501,10 @@ block.unknown = [LIGHT_GRAY]??? blocks.powercapacity = Capacidade de Energia blocks.powershot = Energia/tiro blocks.damage = Dano -blocks.targetsair = Mirar no ar -blocks.targetsground = Mirar no chão +blocks.targetsair = Mira no ar +blocks.targetsground = Mira no chão blocks.itemsmoved = Velocidade de movimento -blocks.launchtime = Tempo entre tiros +blocks.launchtime = Tempo entre Disparos. blocks.shootrange = Alcance blocks.size = Tamanho blocks.liquidcapacity = Capacidade de Líquido @@ -519,8 +519,8 @@ blocks.repairtime = Tempo de reparo total do bloco blocks.speedincrease = Aumento de velocidade blocks.range = Distância blocks.drilltier = Furáveis -blocks.drillspeed = Velocidade da broca base -blocks.boosteffect = Efeito do Boost +blocks.drillspeed = Velocidade base da Broca +blocks.boosteffect = Efeito do Impulso blocks.maxunits = Máximo de unidades ativas blocks.health = Saúde blocks.buildtime = Tempo de construção @@ -530,8 +530,8 @@ blocks.shots = Tiros blocks.reload = Tiros por segundo blocks.ammo = Munição bar.drilltierreq = Broca melhor necessária. -bar.drillspeed = Velocidade da broca: {0}/s -bar.pumpspeed = Pump Speed: {0}/s +bar.drillspeed = Velocidade da Broca: {0}/s +bar.pumpspeed = Velocidade da Bomna: {0}/s bar.efficiency = Eficiência: {0}% bar.powerbalance = Energia: {0} bar.powerstored = Armazenada: {0}/{1} @@ -544,7 +544,7 @@ bar.heat = Aquecimento bar.power = Poder bar.progress = Progresso da construção bar.spawned = Unidades: {0}/{1} -bullet.damage = [stat]{0}[lightgray] dano +bullet.damage = [stat]{0}[lightgray] Dano bullet.splashdamage = [stat]{0}[lightgray] Dano em área ~[stat] {1}[lightgray] Blocos bullet.incendiary = [stat]Incendiário bullet.homing = [stat]Guiado @@ -578,7 +578,7 @@ setting.landscape.name = Travar panorama setting.shadows.name = Sombras setting.blockreplace.name = Automatic Block Suggestions setting.linear.name = Filtragem linear -setting.hints.name = Hints +setting.hints.name = Dicas setting.animatedwater.name = Água animada setting.animatedshields.name = Escudos animados setting.antialias.name = Filtro suavizante[LIGHT_GRAY] (reinicialização requerida)[] @@ -599,10 +599,10 @@ setting.difficulty.insane = Insano setting.difficulty.name = Dificuldade setting.screenshake.name = Balanço da Tela setting.effects.name = Efeitos -setting.destroyedblocks.name = Display Destroyed Blocks -setting.conveyorpathfinding.name = Conveyor Placement Pathfinding +setting.destroyedblocks.name = Mostrar Blocos Destruídos +setting.conveyorpathfinding.name = Posicionamento do localizador do Transportador setting.sensitivity.name = Sensibilidade do Controle -setting.saveinterval.name = Intervalo de autosalvamento +setting.saveinterval.name = Intervalo de Auto Salvamento setting.seconds = {0} Segundos setting.fullscreen.name = Tela Cheia setting.borderlesswindow.name = Janela sem borda[LIGHT_GRAY] (Pode precisar reiniciar) @@ -610,19 +610,19 @@ setting.fps.name = Mostrar FPS setting.vsync.name = VSync setting.pixelate.name = Pixelizado [LIGHT_GRAY](Pode diminuir a performace) setting.minimap.name = Mostrar minimapa -setting.position.name = Show Player Position +setting.position.name = Mostrar a posição do Jogador setting.musicvol.name = Volume da Música -setting.ambientvol.name = Volume do ambiente +setting.ambientvol.name = Volume do Ambiente setting.mutemusic.name = Desligar Música setting.sfxvol.name = Volume de Efeitos setting.mutesound.name = Desligar Som -setting.crashreport.name = Enviar denuncias de crash anonimas +setting.crashreport.name = Enviar denúncias anônimas de erros setting.savecreate.name = Criar salvamentos automaticamente setting.publichost.name = Visibilidade do jogo público setting.chatopacity.name = Opacidade do chat -setting.lasersopacity.name = Power Laser Opacity +setting.lasersopacity.name = Opacidade do laser setting.playerchat.name = Mostrar chat em jogo -public.confirm = Do you want to make your game public?\n[accent]Anyone will be able to join your games.\n[lightgray]This can be changed later in Settings->Game->Public Game Visibility. +public.confirm = Você quer fazer sua partida pública?\n[accent]Qualquer um será capaz de entrar na sua partida.\n[lightgray]Isso pode ser mudado depois em Configurações->Jogo->Visibilidade da partida pública. public.beta = Note that beta versions of the game cannot make public lobbies. uiscale.reset = A escala da IU foi mudada.\nPressione "OK" para confirmar esta escala.\n[scarlet]Revertendo e saindo em[accent] {0}[] settings... uiscale.cancel = Cancelar e sair @@ -641,10 +641,10 @@ keybind.press.axis = Pressione uma Axis ou tecla... keybind.screenshot.name = Captura do mapa keybind.move_x.name = mover_x keybind.move_y.name = mover_y -keybind.schematic_select.name = Select Region -keybind.schematic_menu.name = Schematic Menu -keybind.schematic_flip_x.name = Flip Schematic X -keybind.schematic_flip_y.name = Flip Schematic Y +keybind.schematic_select.name = Selecionar região +keybind.schematic_menu.name = Menu de Esquemas +keybind.schematic_flip_x.name = girar o Esquema X +keybind.schematic_flip_y.name = girar o Esquema Y keybind.fullscreen.name = Alterar tela cheia keybind.select.name = selecionar keybind.diagonal_placement.name = Colocação diagonal @@ -652,18 +652,18 @@ keybind.pick.name = Pegar bloco keybind.break_block.name = Quebrar bloco keybind.deselect.name = Deselecionar keybind.shoot.name = Atirar -keybind.zoom_hold.name = segurar_zoom +keybind.zoom_hold.name = segurar Zoom keybind.zoom.name = Zoom keybind.menu.name = Menu keybind.pause.name = Pausar -keybind.pause_building.name = Pause/Resume Building +keybind.pause_building.name = Parar/Resumir a construção keybind.minimap.name = Minimapa keybind.dash.name = Correr keybind.chat.name = Conversa keybind.player_list.name = Lista_de_jogadores -keybind.console.name = console +keybind.console.name = Console keybind.rotate.name = Girar -keybind.rotateplaced.name = Rotate Existing (Hold) +keybind.rotateplaced.name = Girar (Segure) keybind.toggle_menus.name = Ativar menus keybind.chat_history_prev.name = Historico do chat anterior keybind.chat_history_next.name = Historico do proximo chat @@ -781,11 +781,11 @@ block.rock.name = Rocha block.snowrock.name = Rocha com neve block.snow-pine.name = Pinheiro com neve block.shale.name = Xisto -block.shale-boulder.name = Pedra de xisto +block.shale-boulder.name = Pedra de Xisto block.moss.name = Musgo block.shrubs.name = Arbusto -block.spore-moss.name = Musgo de esporos -block.shalerocks.name = Rohas de xisto +block.spore-moss.name = Musgo de Esporos +block.shalerocks.name = Rochas de Xisto block.scrap-wall.name = Muro de sucata block.scrap-wall-large.name = Muro grande de sucata block.scrap-wall-huge.name = Muro enorme de sucata @@ -839,16 +839,16 @@ block.ignarock.name = Rocha ígnea block.hotrock.name = Rocha quente block.magmarock.name = Rocha de magma block.cliffs.name = Colinas -block.copper-wall.name = Parede de Cobre -block.copper-wall-large.name = Parede de Cobre Grande -block.titanium-wall.name = Parede de titânio -block.titanium-wall-large.name = Parede de titânio grande -block.plastanium-wall.name = Plastanium Wall -block.plastanium-wall-large.name = Large Plastanium Wall -block.phase-wall.name = Parede de fase -block.phase-wall-large.name = Parde de fase grande -block.thorium-wall.name = Parede de tório -block.thorium-wall-large.name = Parede de tório grande +block.copper-wall.name = Muro de Cobre +block.copper-wall-large.name = Muro de Cobre Grande +block.titanium-wall.name = Muro de Titânio +block.titanium-wall-large.name = Muro de Titânio grande +block.plastanium-wall.name = Muro de Plastânio Grande +block.plastanium-wall-large.name = Muro de Plastânio Grande +block.phase-wall.name = Muro de Fase +block.phase-wall-large.name = Muro de Fase Grande +block.thorium-wall.name = Muro de Tório +block.thorium-wall-large.name = Muro de Tório Grande block.door.name = Porta block.door-large.name = Porta Grande block.duo.name = Dupla @@ -864,7 +864,7 @@ block.junction.name = Junção block.router.name = Roteador block.distributor.name = Distribuidor block.sorter.name = Ordenador -block.inverted-sorter.name = Inverted Sorter +block.inverted-sorter.name = Ordenador Invertido block.message.name = Mensagem block.overflow-gate.name = Portão Sobrecarregado block.silicon-smelter.name = Fundidora de silicio @@ -917,7 +917,7 @@ block.pyratite-mixer.name = Misturador de Piratita block.blast-mixer.name = Misturador de Explosão block.solar-panel.name = Painel Solar block.solar-panel-large.name = Painel Solar Grande -block.oil-extractor.name = Extrator de petróleo +block.oil-extractor.name = Extrator de Petróleo block.command-center.name = Centro de comando block.draug-factory.name = Fábrica de drone de mineração Draug block.spirit-factory.name = Fábrica de drone de reparo Spirit @@ -960,12 +960,12 @@ block.container.name = Contâiner block.launch-pad.name = Plataforma de lançamento block.launch-pad-large.name = Plataforma de lançamento grande team.blue.name = Azul -team.crux.name = Vermelho -team.sharded.name = orange +team.crux.name = Vermelha +team.sharded.name = Estilhaçada team.orange.name = Laranja -team.derelict.name = derelict +team.derelict.name = Abandonada team.green.name = Verde -team.purple.name = Roxo +team.purple.name = Roxa unit.spirit.name = Drone Spirit unit.draug.name = Drone minerador Draug unit.phantom.name = Drone Phantom @@ -975,7 +975,7 @@ unit.titan.name = Titan unit.ghoul.name = Bombardeiro Ghoul unit.wraith.name = Lutador Wraith unit.fortress.name = Fortaleza -unit.revenant.name = Fantasma +unit.revenant.name = Revenã unit.eruptor.name = Eruptor unit.chaos-array.name = Arraia do caos unit.eradicator.name = Erradicador diff --git a/core/assets/bundles/bundle_ru.properties b/core/assets/bundles/bundle_ru.properties index 2e62e13817..5170552cb7 100644 --- a/core/assets/bundles/bundle_ru.properties +++ b/core/assets/bundles/bundle_ru.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Выгрузка файла предпросмотра committingchanges = Внесение изменений done = Готово feature.unsupported = Your device does not support this feature. -mods.alphainfo = Имейте в виду, что модификации находятся в альфа-версии и могут содержать много ошибок[]. Докладывайте о любых проблемах, которые Вы найдете в Mindustry Github или Discord. +mods.alphainfo = Имейте в виду, что модификации находятся в альфа-версии и могут содержать много ошибок[]. Докладывайте о любых проблемах, которые Вы найдете в Mindustry GitHub или Discord. mods.alpha = [accent](Альфа) mods = Модификации mods.none = [LIGHT_GRAY]Модификации не найдены! @@ -98,7 +98,7 @@ mod.enable = Включить mod.requiresrestart = Теперь игра закроется, чтобы применить изменения в модификациях. mod.reloadrequired = [scarlet]Необходим перезапуск mod.import = Импортировать модификацию -mod.import.github = Импортировать модификацию с Github +mod.import.github = Импортировать модификацию с GitHub mod.remove.confirm = Этот мод будет удалён. mod.author = [LIGHT_GRAY]Автор:[] {0} mod.missing = Это сохранение содержит модификацию, которое Вы недавно обновили или оно больше не установлено. Может случиться повреждение сохранения. Вы уверены, что хотите загрузить его?\n[lightgray]Модификации:\n{0} diff --git a/core/assets/bundles/bundle_sv.properties b/core/assets/bundles/bundle_sv.properties index 1f67cabd56..f01aa8b241 100644 --- a/core/assets/bundles/bundle_sv.properties +++ b/core/assets/bundles/bundle_sv.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Laddar upp förhandsgranskningsfil committingchanges = Comitting Changes done = Klar feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -98,7 +98,7 @@ mod.enable = Enable mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Import Mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = This mod will be deleted. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_tk.properties b/core/assets/bundles/bundle_tk.properties index a5585669ad..2fd55efb4d 100644 --- a/core/assets/bundles/bundle_tk.properties +++ b/core/assets/bundles/bundle_tk.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Uploading Preview File committingchanges = Comitting Changes done = Done feature.unsupported = Your device does not support this feature. -mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry Github or Discord. +mods.alphainfo = Keep in mind that mods are in alpha, and[scarlet] may be very buggy[].\nReport any issues you find to the Mindustry GitHub or Discord. mods.alpha = [accent](Alpha) mods = Mods mods.none = [LIGHT_GRAY]No mods found! @@ -98,7 +98,7 @@ mod.enable = Enable mod.requiresrestart = The game will now close to apply the mod changes. mod.reloadrequired = [scarlet]Reload Required mod.import = Import Mod -mod.import.github = Import Github Mod +mod.import.github = Import GitHub Mod mod.remove.confirm = This mod will be deleted. mod.author = [LIGHT_GRAY]Author:[] {0} mod.missing = This save contains mods that you have recently updated or no longer have installed. Save corruption may occur. Are you sure you want to load it?\n[lightgray]Mods:\n{0} diff --git a/core/assets/bundles/bundle_tr.properties b/core/assets/bundles/bundle_tr.properties index d7535c8a5a..9082a2ae3b 100644 --- a/core/assets/bundles/bundle_tr.properties +++ b/core/assets/bundles/bundle_tr.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = Önizleme Dosyası Yükleniyor committingchanges = Değişiklikler Uygulanıyor done = Bitti feature.unsupported = Your device does not support this feature. -mods.alphainfo = Modların alfa aşamasında olduğunu ve [scarlet]oldukça hatalı olabileceklerini[] unutmayın.\nBulduğunuz sorunları Mindustry Github'ı veya Discord'una bildirin. +mods.alphainfo = Modların alfa aşamasında olduğunu ve [scarlet]oldukça hatalı olabileceklerini[] unutmayın.\nBulduğunuz sorunları Mindustry GitHub'ı veya Discord'una bildirin. mods.alpha = [accent](Alpha) mods = Modlar mods.none = [LIGHT_GRAY]Hiç mod bulunamadı! @@ -98,7 +98,7 @@ mod.enable = Etkinleştir mod.requiresrestart = Oyun mod değişikliklerini uygulamak için kapatılacak. mod.reloadrequired = [scarlet]Yeniden Yükleme Gerekli mod.import = Mod İçeri Aktar -mod.import.github = Github Modu İçeri Aktar +mod.import.github = GitHub Modu İçeri Aktar mod.remove.confirm = Bu mod silinecek. mod.author = [LIGHT_GRAY]Yayıncı:[] {0} mod.missing = Bu kayıt yakın zamanda güncellediğiniz ya da artık yüklü olmayan modlar içermekte. Kayıt bozulmaları yaşanabilir. Kaydı yüklemek istediğinizden emin misiniz?\n[lightgray]Modlar:\n{0} diff --git a/core/assets/bundles/bundle_uk_UA.properties b/core/assets/bundles/bundle_uk_UA.properties index c9b44e0183..1d188a100b 100644 --- a/core/assets/bundles/bundle_uk_UA.properties +++ b/core/assets/bundles/bundle_uk_UA.properties @@ -3,7 +3,7 @@ credits = Творці contributors = Перекладачі та помічники discord = Приєднуйтесь до Mindustry Discord! link.discord.description = Офіційний Discord сервер Mindustry -link.reddit.description = Гілка Mindustry на Reddit +link.reddit.description = Спільнота Mindustry на Reddit link.github.description = Вихідний код гри link.changelog.description = Список змін link.dev-builds.description = Нестабільні версії @@ -25,17 +25,17 @@ load.content = Зміст load.system = Система load.mod = Модифікації schematic = Схема -schematic.add = Зберегти схему... +schematic.add = Зберегти схему… schematics = Схеми schematic.replace = Схема з такою ж назвою вже існує. Замінити її? -schematic.import = Імпортувати схему... +schematic.import = Імпортувати схему… schematic.exportfile = Експортувати файл schematic.importfile = Імпортувати файл schematic.browseworkshop = Переглянути в Майстерні schematic.copy = Копіювати в буфер обміну schematic.copy.import = Імпортувати з клавіатури schematic.shareworkshop = Поширити в Майстерні -schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Flip Schematic +schematic.flip = [accent][[{0}][]/[accent][[{1}][]: Відобразити схему schematic.saved = Схема збережена. schematic.delete.confirm = Ця схема буде повністю випалена. schematic.rename = Перейменувати схему. @@ -48,7 +48,7 @@ stat.deconstructed = Будівель декоструйовано[accent] {0} stat.delivered = Ресурсів запущено: stat.rank = Фінальний рахунок: [accent]{0} launcheditems = [accent]Запущені предмети -launchinfo = [unlaunched][[LAUNCH] ваше ядро для отримання предметів позначено синім кольором. +launchinfo = [unlaunched]Натисніть на кнопку «[[ЗАПУСК]», щоб ваше ядро отримало предмети, які виділені синім кольором. map.delete = Ви впевнені, що хочете видалити мапу «[accent]{0}[]»? level.highscore = Рекорд: [accent]{0} level.select = Вибір мапи @@ -80,25 +80,25 @@ uploadingcontent = Вивантаження вмісту uploadingpreviewfile = Вивантаження файлу передперегляду committingchanges = Здійснення змін done = Зроблено -feature.unsupported = Your device does not support this feature. -mods.alphainfo = Майте на увазі, що модифікації знаходяться в альфі, і [scarlet]можуть бути дуже глючними[].\nПовідомте про будь-які проблеми, які ви знайдете до Mindustry Github або Discord. +feature.unsupported = Ваш пристрій не підтримує цю особливість. +mods.alphainfo = Майте на увазі, що модифікації знаходяться в альфі, і [scarlet]можуть бути дуже глючними[].\nПовідомте про будь-які проблеми, які ви знайдете до Mindustry GitHub або Discord. mods.alpha = [scarlet](Альфа) mods = Модифікації mods.none = [LIGHT_GRAY]Модифікацій не знайдено! mods.guide = Посібник зі створення модифицій mods.report = Повідомити про ваду -mods.openfolder = Open Mod Folder +mods.openfolder = Відкрити теку модифікацій mod.enabled = [lightgray]Увімкнено mod.disabled = [scarlet]Вимкнено mod.disable = Вимкнути -mod.delete.error = Unable to delete mod. File may be in use. -mod.missingdependencies = [scarlet]Missing dependencies: {0} -mod.nowdisabled = [scarlet]Mod '{0}' is missing dependencies:[accent] {1}\n[lightgray]These mods need to be downloaded first.\nThis mod will be automatically disabled. +mod.delete.error = Неможливо видалити модифікацію. Файл, можливо, використовується. +mod.missingdependencies = [scarlet]Відсутні залежності: {0} +mod.nowdisabled = [scarlet]Модифікації '{0}' не вистачає залежностей:[accent] {1}\n[lightgray]Ці модифікації потрібно завантажити спочатку.\nЦя модифікація буду автоматично вимкнена. mod.enable = Увімкнути mod.requiresrestart = А тепер гра закриється, щоб застосувати зміни модифікацій. mod.reloadrequired = [scarlet]Потрібно перезавантаження mod.import = Імпортувати модифікацію -mod.import.github = Import Github Mod +mod.import.github = Імпортувати модификацію з Ґітгаб mod.remove.confirm = Цю модифікацію буде видалено. mod.author = [LIGHT_GRAY]Автор:[] {0} mod.missing = Це збереження містить модифікації, які ви нещодавно оновили або більше не встановлювали. Збереження може зіпсуватися. Ви впевнені, що хочете завантажити його?\n[lightgray]Модифікації:\n{0} @@ -229,13 +229,13 @@ data.export = Експортувати дані data.import = Импортувати дані data.exported = Дані імпортовано. data.invalid = Це не дійсні ігрові дані. -data.import.confirm = Імпорт зовнішніх даних видалить[scarlet] ВСІ[] ваші поточні ігрові дані.\n[accent]Це неможливо скасувати![]\n\nЩойно дані імпортуються, гра негайно закриється. +data.import.confirm = Імпорт зовнішніх даних перезапише[scarlet] ВСІ[] ваші поточні ігрові дані.\n[accent]Це неможливо скасувати![]\n\nЩойно дані імпортуються, гра негайно закриється. classic.export = Експортувати класичні дані classic.export.text = Класичне (версія 3.5 збірка 40) збереження або мапа були знайдені. Ви хочете експортувати ці дані в домашню теку телефону, для використання у застосунку Mindustry Classic? quit.confirm = Ви впевнені, що хочете вийти? quit.confirm.tutorial = Ви впевнені, що хочете вийти з навчання? loading = [accent]Завантаження… -reloading = [accent]Reloading Mods... +reloading = [accent]Перезавантаження модифікацій… saving = [accent]Збереження… cancelbuilding = [accent][[{0}][] to clear plan selectschematic = [accent][[{0}][] to select+copy @@ -259,18 +259,18 @@ map.nospawn = Ця мапа не має жодного ядра для появ map.nospawn.pvp = У цієї мапи немає ворожих ядер, в яких гравець може з’явитися! Додайте [SCARLET]не помаранчеве[] ядро до цієї мапи в редакторі. map.nospawn.attack = У цієї мапи немає ворожих ядер, в яких гравець може з’явитися! Додайте [SCARLET]червоне[] ядро до цієї мапи в редакторі. map.invalid = Помилка завантаження мапи: пошкоджений або невірний файл мапи. -workshop.update = Update Item -workshop.error = Error fetching workshop details: {0} +workshop.update = Оновити предмет +workshop.error = Помилка при отриманні інформації з Майстерні: {0} map.publish.confirm = Ви дійсно хочете опублікувати цю мапу?\n\n[lightgray]Переконайтеся, що спершу ви згодні з Ліцензійною угодою Steam, або ваші мапи не з’являться! -workshop.menu = Select what you would like to do with this item. -workshop.info = Item Info -changelog = Changelog (optional): +workshop.menu = Виберіть, що ви хочете зробити з цим предметом. +workshop.info = Інформація про предмет +changelog = Журнал змін (за бажанням): eula = Ліцензійна угода -missing = This item has been deleted or moved.\n[lightgray]The workshop listing has now been automatically un-linked. -publishing = [accent]Publishing... -publish.confirm = Are you sure you want to publish this?\n\n[lightgray]Make sure you agree to the Workshop EULA first, or your items will not show up! -publish.error = Error publishing item: {0} -steam.error = Failed to initialize Steam services.\nError: {0} +missing = Цей предмет було видалено або переміщено.\n[lightgray]Список Майстерні тепер автоматично від’єднано. +publishing = [accent]Публікація… +publish.confirm = Ви дійсно хочете опублікувати це?\n\n[lightgray]Переконайтеся, що ви спочатку погоджуєтеся з EULA Майстерні, або ваші предмети не з’являться! +publish.error = Сталася помилка при публікації предмета: {0} +steam.error = Не вдалося ініціалізувати сервіси Steam.\nПомилка: {0} editor.brush = Пензлик editor.openin = Відкрити в редакторі editor.oregen = Генерація руд @@ -302,7 +302,7 @@ waves.invalid = Недійсні хвилі у буфері обміну. waves.copied = Хвилі скопійовані. waves.none = Вороги не були встановлені.\nЗазначимо, що пусті хвилі будуть автоматично замінені звичайною хвилею. editor.default = [lightgray]<За замовчуванням> -details = Деталі... +details = Деталі… edit = Редагувати… editor.name = Назва: editor.spawn = Створити бойову одиницю @@ -509,7 +509,7 @@ blocks.shootrange = Діапазон дії blocks.size = Розмір blocks.liquidcapacity = Місткість рідини blocks.powerrange = Діапазон передачі енергії -blocks.powerconnections = Max Connections +blocks.powerconnections = Максимальна кількість з’єднань blocks.poweruse = Енергії використовує blocks.powerdamage = Енергія/урон blocks.itemcapacity = Місткість предметів @@ -523,17 +523,17 @@ blocks.drillspeed = Базова швидкість буріння blocks.boosteffect = Прискорювальний ефект blocks.maxunits = Максимальна кількість активних одиниць blocks.health = Здоров’я -blocks.buildtime = Час будівництва +blocks.buildtime = Час будування blocks.buildcost = Вартість будування blocks.inaccuracy = Розкид blocks.shots = Постріли blocks.reload = Постріли/секунду blocks.ammo = Боєприпаси bar.drilltierreq = Потребується кращий бур -bar.drillspeed = Швидкість буріння: {0}/с -bar.pumpspeed = Pump Speed: {0}/s +bar.drillspeed = Швидкість буріння: {0} за с. +bar.pumpspeed = Швидкість викачування: {0} за с. bar.efficiency = Ефективність: {0}% -bar.powerbalance = Енергія: {0}/с +bar.powerbalance = Енергія: {0} за с. bar.powerstored = Зберігає: {0}/{1} bar.poweramount = Енергія: {0} bar.poweroutput = Вихідна енергія: {0} @@ -542,7 +542,7 @@ bar.capacity = Місткість: {0} bar.liquid = Рідина bar.heat = Нагрівання bar.power = Енергія -bar.progress = Хід будівництва +bar.progress = Хід будування bar.spawned = Бойов. од.: {0}/{1} bullet.damage = [stat]{0}[lightgray] шкода bullet.splashdamage = [stat]{0}[lightgray] шкода по ділянці ~[stat] {1}[lightgray] блок. @@ -556,27 +556,27 @@ bullet.tarred = [stat]дьогтьовий bullet.multiplier = [stat]{0}[lightgray]x патронів bullet.reload = [stat]{0}[lightgray]x швидкість перезаряджання unit.blocks = блоки -unit.powersecond = одиниць енергії/секунду -unit.liquidsecond = рідких одиниць/секунду -unit.itemssecond = предметів/секунду -unit.liquidunits = рідинних одиниць -unit.powerunits = енергетичних одиниць +unit.powersecond = одиниць енергії за секунду +unit.liquidsecond = одиниць рідини за секунду +unit.itemssecond = предметів за секунду +unit.liquidunits = одиниць рідини +unit.powerunits = одиниць енергії unit.degrees = град. -unit.seconds = сек. -unit.persecond = /сек +unit.seconds = с +unit.persecond = за секунду unit.timesspeed = x швидкість unit.percent = % unit.items = предм. -category.general = Загальні -category.power = Енергетичні +category.general = Загальне +category.power = Енергія category.liquids = Рідини category.items = Предмети -category.crafting = Введення/виведення +category.crafting = Виробництво category.shooting = Стрільба category.optional = Додаткові поліпшення setting.landscape.name = Тільки альбомний(гозинтальний) режим setting.shadows.name = Тіні -setting.blockreplace.name = Automatic Block Suggestions +setting.blockreplace.name = Пропозиції щодо автоматичної заміни блоків setting.linear.name = Лінійна фільтрація setting.hints.name = Hints setting.animatedwater.name = Анімована вода @@ -599,18 +599,18 @@ setting.difficulty.insane = Неможлива setting.difficulty.name = Складність: setting.screenshake.name = Тряска екрану setting.effects.name = Ефекти -setting.destroyedblocks.name = Display Destroyed Blocks -setting.conveyorpathfinding.name = Conveyor Placement Pathfinding +setting.destroyedblocks.name = Показувати зруйновані блоки +setting.conveyorpathfinding.name = Пошук шляху для встановлення конвейерівConveyor Placement Pathfinding setting.sensitivity.name = Чутливість контролера setting.saveinterval.name = Інтервал збереження -setting.seconds = {0} сек. +setting.seconds = {0} с setting.fullscreen.name = Повноекранний режим setting.borderlesswindow.name = Вікно без полів[lightgray] (може потребувати перезапуску) -setting.fps.name = Показувати FPS +setting.fps.name = Показувати FPS і затримку до сервера setting.vsync.name = Вертикальна синхронізація setting.pixelate.name = Пікселізація[lightgray] (вимикає анімації) setting.minimap.name = Показувати міні-мапу -setting.position.name = Show Player Position +setting.position.name = Показувати координати гравця setting.musicvol.name = Гучність музики setting.ambientvol.name = Звуки навколишнього середовища setting.mutemusic.name = Заглушити музику @@ -635,16 +635,16 @@ category.multiplayer.name = Мережева гра command.attack = Атакувати command.rally = Точка збору command.retreat = Відступити -keybind.clear_building.name = Clear Building +keybind.clear_building.name = Очистити план будування keybind.press = Натисніть клавішу… keybind.press.axis = Натисніть клавішу… keybind.screenshot.name = Зняток мапи -keybind.move_x.name = Рух по осі x -keybind.move_y.name = Рух по осі y -keybind.schematic_select.name = Select Region -keybind.schematic_menu.name = Schematic Menu -keybind.schematic_flip_x.name = Flip Schematic X -keybind.schematic_flip_y.name = Flip Schematic Y +keybind.move_x.name = Рух по осі X +keybind.move_y.name = Рух по осі Y +keybind.schematic_select.name = Вибрати ділянку +keybind.schematic_menu.name = Меню схем +keybind.schematic_flip_x.name = Відобразити по осі X +keybind.schematic_flip_y.name = Відобразити по осі Y keybind.fullscreen.name = Повноекранний keybind.select.name = Вибір/Постріл keybind.diagonal_placement.name = Діагональне розміщення @@ -656,14 +656,14 @@ keybind.zoom_hold.name = Керування масштабом keybind.zoom.name = Приблизити keybind.menu.name = Меню keybind.pause.name = Пауза -keybind.pause_building.name = Pause/Resume Building +keybind.pause_building.name = Призупинити/Продовжити будування keybind.minimap.name = Мінімапа -keybind.dash.name = Прискоритися/Літати +keybind.dash.name = Прискоритися & летіітати keybind.chat.name = Чат keybind.player_list.name = Список гравців keybind.console.name = Консоль keybind.rotate.name = Обертати -keybind.rotateplaced.name = Обертати існуюче (утримуйте) +keybind.rotateplaced.name = Обертати існуюче (прокручуйте) keybind.toggle_menus.name = Меню перемикання keybind.chat_history_prev.name = Попередня історія чату keybind.chat_history_next.name = Наступна історія чату @@ -695,7 +695,7 @@ rules.unitdamagemultiplier = Множник шкоди бойових одини rules.enemycorebuildradius = Радіус захисту для ворожого ядра:[lightgray] (блоків) rules.respawntime = Час відродження:[lightgray] (sec) rules.wavespacing = Інтервал хвиль:[lightgray] (sec) -rules.buildcostmultiplier = Множник затрат на будівництво +rules.buildcostmultiplier = Множник затрат на будування rules.buildspeedmultiplier = Множник швидкості будування rules.waitForWaveToEnd = Хвилі чекають на ворогів rules.dropzoneradius = Радіус зони висадки:[lightgray] (блоків) @@ -703,7 +703,7 @@ rules.respawns = Максимальна кількість відроджень rules.limitedRespawns = Обмеження відроджень rules.title.waves = Хвилі rules.title.respawns = Відродження -rules.title.resourcesbuilding = Ресурси & будівництво +rules.title.resourcesbuilding = Ресурси & будування rules.title.player = Гравці rules.title.enemy = Вороги rules.title.unit = Бойов. од. @@ -836,15 +836,15 @@ block.dark-panel-5.name = Темна панель 5 block.dark-panel-6.name = Темна панель 6 block.dark-metal.name = Темний метал block.ignarock.name = Магматичні гірські породи -block.hotrock.name = Гарячий Камінь +block.hotrock.name = Гарячий камінь block.magmarock.name = Магмовий камінь block.cliffs.name = Скелі block.copper-wall.name = Мідна стіна block.copper-wall-large.name = Велика мідна стіна block.titanium-wall.name = Титанова стіна block.titanium-wall-large.name = Велика титанова стіна -block.plastanium-wall.name = Plastanium Wall -block.plastanium-wall-large.name = Large Plastanium Wall +block.plastanium-wall.name = Пластанієва стіна +block.plastanium-wall-large.name = Велика пластанієва стіна block.phase-wall.name = Фазова стіна block.phase-wall-large.name = Велика фазова стіна block.thorium-wall.name = Торієва стіна @@ -899,11 +899,11 @@ block.omega-mech-pad.name = Реконструктор «Омега» block.tau-mech-pad.name = Реконструктор «Тау» block.conduit.name = Трубопровід block.mechanical-pump.name = Механічна помпа -block.item-source.name = Джерело предметів +block.item-source.name = Нескінченне джерело предметів block.item-void.name = Предметний вакуум -block.liquid-source.name = Рідке джерело +block.liquid-source.name = Нескінченне джерело рідин block.power-void.name = Енергетичний вакуум -block.power-source.name = Джерело енергії +block.power-source.name = Нескінченне джерело енергії block.unloader.name = Розвантажувач block.vault.name = Сховище block.wave.name = Хвиля @@ -982,8 +982,8 @@ unit.eradicator.name = Випалювач unit.lich.name = Лич unit.reaper.name = Жнець tutorial.next = [lightgray]<Натисніть для продовження> -tutorial.intro = Ви розпочали[scarlet] навчання по Mindustry.[]\nРозпочність з[accent] видобування міді[]. Використовуйте [[WASD] для руху.\n[accent] Утримуйте [[Ctrl] під час прокрутки миші[] для приближення і віддалення. Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді -tutorial.intro.mobile = You have entered the[scarlet] Mindustry Tutorial.[]\nSwipe the screen to move.\n[accent]Pinch with 2 fingers [] to zoom in and out.\nBegin by[accent] mining copper[]. Move close to it, then tap a copper ore vein near your core to do this.\n\n[accent]{0}/{1} copper +tutorial.intro = Ви розпочали[scarlet] навчання по Mindustry.[]\nРозпочніть з[accent] видобування міді[]. Використовуйте [[WASD] для руху.\n[accent] Утримуйте [[Ctrl] під час прокрутки миші[] для приближення і віддалення. Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді +tutorial.intro.mobile = Ви розпочали[scarlet] навчання по Mindustry.[]\nПроведіть екраном, щоб рухатися.\n[accent] Зведіть або розведіть 2 пальця [] для приближення і віддалення відповідно.\nз[accent] видобування міді.[] Наблизьтесь, а потім натисність на мідну жилу біля вашого ядра, щоб зробити це.\n\n[accent]{0}/{1} міді tutorial.drill = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисніть на вкладку свердла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням.\n[accent]Натисніть ПКМ[], щоб зупинити будування. tutorial.drill.mobile = Добування вручну неефективне.\n[accent]Бури []можуть добувати автоматично.\nНатисність на вкладку сведла знизу зправа.\nВиберіть[accent] механічний бур[]. Розмістіть його на мідній жилі натисканням, потім натисність на [accent] галочку[] нижче, щоб підтвердити розміщення to confirm your selection.\nPress the[accent] X button[] to cancel placement. tutorial.blockinfo = Кожен блок має різні характеристики. Кожний бур може видобувати тільки певні руди.\nЩоб переглянути інформацію та характеристики блока,[accent] натисність на кнопку «?», коли Ви вибрали блок у меню будування.[]\n\n[accent]Перегляньте характеристику Механічного бура прямо зараз.[] @@ -991,8 +991,8 @@ tutorial.conveyor = [accent]Конвеєри[] використовуються tutorial.conveyor.mobile = [accent]Конвеєри[] використовується для транспортування предметів до ядра.\nЗробіть лінію конвеєрів від бура до ядра.\n[accent] Розмістить у лінію, утримуючи палець кілька секунд[] і тягніть у напрямку, який Ви вибрали.\nВикористовуйте колесо прокрутки, щоб обертати блоки перед їх розміщенням\n[accent]{0}/{1} конвеєрів, які розміщені в лінію\n[accent]0/1 предмет доставлено tutorial.turret = Оборонні споруди повинні бути побудовані для відбиття[lightgray] ворогів[].\nПобудуйте[accent] башточку «Подвійна»[] біля вашої бази. tutorial.drillturret = «Подвійна» потребує [accent] мідні боєприпаси []для стрільби.\nРозмістіть бур біля башточки\nПроведіть конвеєри до башточки, щоб заповнити її боєприпасами.\n\n[accent]Доставлено боєприпасів: 0/1 -tutorial.pause = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будівництво під час паузи.\n\n[accent]Натисність пробіл для павзи.tutorial.launch -tutorial.pause.mobile = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будівництво під час паузи.\n\n[accent]атисніть кнопку зліва вгорі для павзи. +tutorial.pause = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]Натисність пробіл для павзи.tutorial.launch +tutorial.pause.mobile = Під час бою ви можете[accent] поставити на павзу гру.[]\nВи можете зробити чергу на будування під час паузи.\n\n[accent]атисніть кнопку зліва вгорі для павзи. tutorial.unpause = Тепер натисність пробіл, щоб зняти павзу. tutorial.unpause.mobile = Тепер натисність туди ще раз, щоб зняти павзу. tutorial.breaking = Блоки часто повинні бути знищені.\n[accent]Утримуючи ПКМ[] Ви знищите всі виділені блоки.[]\n\n[accent]Необхідно знищити всі стіни з металобрухту ліворуч від вашого ядра використовуючи видалення у зоні. @@ -1022,17 +1022,17 @@ liquid.water.description = Найкорисніша рідина. Зазвича liquid.slag.description = Різні види розплавленого металу змішуються між собою. Може бути відокремлений від складових корисних копалин або розпорошений на ворожі частини як зброя. liquid.oil.description = Рідина, яка використовується у виробництві сучасних матеріалів. Може бути перетворена в вугілля в якості палива або використана як куля. liquid.cryofluid.description = Інертна, не роз’їдаюча рідина, створена з води та титану. Володіє надзвичайно високою пропускною спроможністю. Широко використовується в якості охолоджуючої рідини. -mech.alpha-mech.description = Стандартний керований мех. Заснований на бойовій одиниці «Кинджал», з оновленими бронею та можливостями будівництва. Наносить більше шкоди, ніж «Дротик». +mech.alpha-mech.description = Стандартний керований мех. Заснований на бойовій одиниці «Кинджал», з оновленими бронею та можливостями будування. Наносить більше шкоди, ніж «Дротик». mech.delta-mech.description = Швидкий, легкоброньований мех, зроблений для тактики «атакуй і біжи». Наносить мало шкоди будівлям, але може дуже швидко вбити великі групи підрозділів противника своєю дуговою блискавкою. mech.tau-mech.description = Мех підтримки. Ремонтує союзні блоки, стріляючи по них. Може зцілювати союзників у радіусі його ремонтної здатності. mech.omega-mech.description = Об’ємний і добре броньований мех, зроблений для фронтових штурмів. Його броня може перекрити до 90% пошкоджень, що надходять. mech.dart-ship.description = Стандартний корабель управління. Розумно швидкий і легкий, але має мало наступальних можливостей і низьку швидкість видобутку. mech.javelin-ship.description = Корабель для стратегії атакуй та біжи». Хоча спочатку він повільний, потім вже може розганятися до великих швидкостей і літати над ворожими форпостами, завдаючи великої кількості шкоди своїми блискавками та ракетами. -mech.trident-ship.description = Важкий бомбардувальник, побудований для будівництва та знищення ворожих укріплень. Дуже добре броньований. +mech.trident-ship.description = Важкий бомбардувальник, побудований для будування та знищення ворожих укріплень. Дуже добре броньований. mech.glaive-ship.description = Великий, добре броньований бойовий корабель. Оснащений запальним ретранслятором. Високо маневрений. unit.draug.description = Примітивний дрон, який добуває ресурси. Дешевий для виробництва. Автоматично видобуває мідь і свинець поблизу. Доставляє видобуті ресурси до найближчого ядра. unit.spirit.description = Модифікований «Драугр», призначений для ремонту замість видобутку. Автоматично відновлює будь-які пошкоджені блоки. -unit.phantom.description = Вдосконалений безпілотник. Йде за користувачами. Допомагає в будівництві блоків. +unit.phantom.description = Вдосконалений безпілотник. Йде за користувачами. Допомагає в будуванні блоків. unit.dagger.description = Базовий мех(бойова одиниця). Дешевий у виробництві. Нездоланні при використанні в натовпі. unit.crawler.description = Наземна одиниця, що складається зі стертої рами з високими вибуховими речовинами, прив’язаними зверху. Не особливо міцний. Вибухає при контакті з ворогами. unit.titan.description = Вдосконалений броньований наземний блок. Нападає як на наземні, так і повітряні цілі. Оснащений двома мініатюрними вогнеметами класу Випалювач. @@ -1067,8 +1067,8 @@ block.copper-wall.description = Дешевий захисний блок.\nКо block.copper-wall-large.description = Дешевий захисний блок.\nКорисна для захисту ядра та башточок у перші кілька хвиль.\nОхоплює кілька плиток. block.titanium-wall.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів. block.titanium-wall-large.description = Відносно сильний захисний блок.\nЗабезпечує помірний захист від ворогів.\nОхоплює кілька плиток. -block.plastanium-wall.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections. -block.plastanium-wall-large.description = A special type of wall that absorbs electric arcs and blocks automatic power node connections.\nSpans multiple tiles. +block.plastanium-wall.description = Особливий тип стіни, який поглинає електричні дуги і блокує автоматичні з'єднання енергетичних вузлів. +block.plastanium-wall-large.description = Особливий тип стіни, який поглинає електричні дуги і блокує автоматичні з'єднання вузлів живлення.\nОхоплює кілька плиток. block.thorium-wall.description = Сильний захисний блок.\nГідний захист від ворогів. block.thorium-wall-large.description = Сильний захисний блок.\nГідний захист від ворогів.\nОхоплює кілька плиток. block.phase-wall.description = Стіна, покрита спеціальним світловідбиваючим складом, який базується на фазовій тканині. Відхиляє більшість куль при ударі. @@ -1104,7 +1104,7 @@ block.liquid-junction.description = Діє як міст для двох кан block.bridge-conduit.description = Розширений блок транспортування рідини. Дозволяє транспортувати рідину до 3 плиток будь-якої місцевості чи будівлі. block.phase-conduit.description = Розширений блок транспортування рідини. Використовує енергію для транспортування рідин до підключеного фазового каналу через декілька плиток. block.power-node.description = Передає живлення на підключені вузли. Вузол буде отримувати живлення від будь-яких сусідніх блоків або подавати живлення до них. -block.power-node-large.description = Удосконалений вузол живлення з більшим діапазоном і більшою кількістю підключень. +block.power-node-large.description = Удосконалений вузол живлення з більшим діапазоном. block.surge-tower.description = Надзвичайно дальний вузол живлення з меншою кількістю доступних з’єднань. block.battery.description = Зберігає енергію як буфер в часи надлишкової енергії. Виводить енергію у періоди дефіциту. block.battery-large.description = Зберігає набагато більше енергії, ніж звичайний акумулятор. diff --git a/core/assets/bundles/bundle_zh_CN.properties b/core/assets/bundles/bundle_zh_CN.properties index c925e101f2..a70c0b9f18 100644 --- a/core/assets/bundles/bundle_zh_CN.properties +++ b/core/assets/bundles/bundle_zh_CN.properties @@ -81,7 +81,7 @@ uploadingpreviewfile = 正在上传预览文件 committingchanges = 提交更改 done = 已完成 feature.unsupported = Your device does not support this feature. -mods.alphainfo = 请注意在测试版本中的模组[scarlet]可能有缺陷[]。\n在 Mindustry Github 或 Discord上报告你发现的问题。 +mods.alphainfo = 请注意在测试版本中的模组[scarlet]可能有缺陷[]。\n在 Mindustry GitHub 或 Discord上报告你发现的问题。 mods.alpha = [accent](测试版) mods = 模组 mods.none = [LIGHT_GRAY]无模组! @@ -98,7 +98,7 @@ mod.enable = 启用 mod.requiresrestart = 需要重启使模组生效。 mod.reloadrequired = [scarlet]需要重启 mod.import = 导入模组 -mod.import.github = 导入 Github 模组 +mod.import.github = 导入 GitHub 模组 mod.remove.confirm = 此模组将被删除。 mod.author = [LIGHT_GRAY]作者:[] {0} mod.missing = 此存档包含更新后的模组或不再使用的模组。存档可能会损坏。确定要加载它吗?\n[lightgray]模组:\n{0} diff --git a/core/assets/bundles/bundle_zh_TW.properties b/core/assets/bundles/bundle_zh_TW.properties index 87b5e8803b..e264e302c3 100644 --- a/core/assets/bundles/bundle_zh_TW.properties +++ b/core/assets/bundles/bundle_zh_TW.properties @@ -18,12 +18,14 @@ gameover = 遊戲結束 gameover.pvp = [accent]{0}[]隊獲勝! highscore = [accent]新的高分紀錄! copied = 已複製。 + load.sound = 音效載入中 load.map = 地圖載入中 load.image = 圖片載入中 load.content = 內容載入中 load.system = 系統載入中 load.mod = 模組載入中 + schematic = 藍圖 schematic.add = 儲存藍圖... schematics = 藍圖 @@ -40,6 +42,7 @@ schematic.saved = 藍圖已保存。 schematic.delete.confirm = 該藍圖將被完全清除。 schematic.rename = 重新命名藍圖 schematic.info = {0}x{1}, {2}方塊 + stat.wave = 打敗的波次:[accent]{0} stat.enemiesDestroyed = 摧毀的敵人:[accent]{0} stat.built = 建設的建築:[accent]{0} @@ -47,6 +50,7 @@ stat.destroyed = 摧毀的建築:[accent]{0} stat.deconstructed = 拆除的建築:[accent]{0} stat.delivered = 發射的核心資源: stat.rank = 最終排名:[accent]{0} + launcheditems = [accent]已發射的物品 launchinfo = [unlaunched][[LAUNCH]你的核心以獲得藍字部分的物品。 map.delete = 確認要刪除「[accent]{0}[]」地圖嗎? @@ -81,29 +85,30 @@ uploadingpreviewfile = 上傳預覽文件 committingchanges = 提交變更 done = 完成 feature.unsupported = 您的設備不支持此功能。 -mods.alphainfo = 請記住,模組仍處於Alpha狀態,[scarlet]可能會有很多BUG[].\n向Mindustry Github或Discord報告發現的任何問題。 +mods.alphainfo = 請記住,模組仍處於Alpha狀態,[scarlet]可能會有很多BUG[].\n向Mindustry GitHub或Discord報告發現的任何問題。 mods.alpha = [accent](Alpha) mods = 模組 mods.none = [lightgray]找不到模組! mods.guide = 模組指南 mods.report = 回報錯誤 -mods.openfolder = Open Mod Folder +mods.openfolder = 開啟模組資料夾 mod.enabled = [lightgray]已啟用 mod.disabled = [scarlet]已禁用 +mod.enable = 啟用 mod.disable = 禁用 -mod.delete.error = Unable to delete mod. File may be in use. +mod.delete.error = 無法刪除模組,檔案可能在使用中。 mod.missingdependencies = [scarlet]缺少依賴項目: {0} mod.nowdisabled = [scarlet]「{0}'」模組缺少依賴項目:[accent] {1}\n[lightgray]必須先下載這些模組。\n此模組將被自動禁用。 -mod.enable = 啟用 mod.requiresrestart = 遊戲將立即關閉以套用模組變更。 mod.reloadrequired = [scarlet]需要重新載入 mod.import = 匯入模組 -mod.import.github = 匯入Github模組 +mod.import.github = 匯入GitHub模組 mod.remove.confirm = 該模組將被刪除。 mod.author = [lightgray]作者:[] {0} mod.missing = 此存檔含有您最近更新或不再安裝的模組。可能會發生存檔損毀。您確定要載入嗎?\n[lightgray]模組:\n{0} mod.preview.missing = 在工作坊發佈這個模組前,您必須添加預覽圖。\n在該模組的資料夾中放置一個名為[accent] preview.png[]的圖片並重試。 mod.folder.missing = 只有資料夾形式的模組可以在工作坊上發布。\n要將模組轉換為資料夾,只需將其文件解壓縮到資料夾並刪除舊的.zip檔,然後重新啟動遊戲或重新載入模組。 + about.button = 關於 name = 名稱: noname = 請先選擇一個[accent]玩家名稱[]。 @@ -270,7 +275,7 @@ missing = 此項目已被刪除或移動。\n[lightgray]工作坊列表現在已 publishing = [accent]發佈中... publish.confirm = 您確定要發布嗎?\n\n[lightgray]首先確定您同意Workshop EULA,否則您的項目將不會顯示! publish.error = 發佈項目時出錯: {0} -steam.error = Failed to initialize Steam services.\nError: {0} +steam.error = Steam 服務初始化失敗.\n錯誤: {0} editor.brush = 粉刷 editor.openin = 在編輯器中開啟 editor.oregen = 礦石生成 @@ -347,6 +352,7 @@ editor.overwrite = [accent]警告!這將會覆蓋現有的地圖。 editor.overwrite.confirm = [scarlet]警告![]同名地圖存在,確定要覆蓋現有地圖? editor.exists = 具有該名稱的地圖已經存在。 editor.selectmap = 選取要載入的地圖: + toolmode.replace = 取代 toolmode.replace.description = 僅繪製在實體方塊上。 toolmode.replaceall = 全部取代 @@ -361,6 +367,7 @@ toolmode.fillteams = 填充團隊 toolmode.fillteams.description = 填充團隊而不是方塊。 toolmode.drawteams = Draw Teams toolmode.drawteams.description = 繪製團隊而不是方塊。 + filters.empty = [lightgray]沒有過濾器!使用下面的按鈕添加一個。 filter.distort = 扭曲 filter.noise = 雜訊 @@ -392,6 +399,7 @@ filter.option.floor2 = 次要地板 filter.option.threshold2 = 次要閾值 filter.option.radius = 半徑 filter.option.percentile = 百分比 + width = 寬度: height = 長度: menu = 主選單 @@ -407,6 +415,7 @@ tutorial = 教學 tutorial.retake = 重置教學 editor = 地圖編輯器 mapeditor = 地圖編輯器 + abandon = 放棄 abandon.text = 此區域及其所有資源將會丟失給敵人。 locked = 鎖定 @@ -437,6 +446,7 @@ zone.objective.survival = 生存 zone.objective.attack = 摧毀敵人核心 add = 新增... boss.health = 頭目血量 + connectfail = [crimson]伺服器連線錯誤:[accent]{0} error.unreachable = 無法到達伺服器。請確認位址是否正確? error.invalidaddress = 無效的位址。 @@ -447,6 +457,7 @@ error.mapnotfound = 找不到地圖! error.io = 網絡輸出入錯誤。 error.any = 未知網絡錯誤。 error.bloom = 初始化特效失敗.\n您的設備可能不支援它 + zone.groundZero.name = 零號地區 zone.desertWastes.name = 沙漠荒原 zone.craters.name = 隕石坑 @@ -461,6 +472,7 @@ zone.saltFlats.name = 鹽沼 zone.impact0078.name = 衝擊 0078 zone.crags.name = 岩壁 zone.fungalPass.name = 真菌隘口 + zone.groundZero.description = 再次開始的最佳位置。敵人威脅度低。資源少。\n盡可能的收集更多的鉛和銅。\n繼續前進。 zone.frozenForest.description = 即使這裡更靠近山脈,孢子也已經擴散到這裡了。嚴寒的溫度不可能永遠禁錮它們。\n\n開始進入能源的世界。建造燃燒發電機。學會使用修理方塊。 zone.desertWastes.description = 這些荒原規模巨大,難以預測,並且與廢棄的結構交錯在一起。\n此地區存在著煤炭。燃燒它以獲得能源或合成石墨。\n\n[lightgray]無法保證此地圖的著陸位置。 @@ -475,6 +487,7 @@ zone.nuclearComplex.description = 以前生產和加工釷的設施已變成廢 zone.fungalPass.description = 高山與被孢子纏繞的低地之間的過渡區域。一個小的敵人偵察基地位於這裡。\n破壞它。\n使用匕首機甲和爬行機甲單位來摧毀兩個核心。 zone.impact0078.description = <在此處輸入說明> zone.crags.description = <在此輸入說明> + settings.language = 語言 settings.data = 遊戲數據 settings.reset = 重設為預設設定 @@ -509,7 +522,7 @@ blocks.shootrange = 範圍 blocks.size = 尺寸 blocks.liquidcapacity = 液體容量 blocks.powerrange = 輸出範圍 -blocks.powerconnections = Max Connections +blocks.powerconnections = 最大連接數 blocks.poweruse = 能量使用 blocks.powerdamage = 能量/傷害 blocks.itemcapacity = 物品容量 @@ -529,9 +542,10 @@ blocks.inaccuracy = 誤差 blocks.shots = 射擊數 blocks.reload = 射擊次數/秒 blocks.ammo = 彈藥 + bar.drilltierreq = 需要更好的鑽頭 bar.drillspeed = 鑽頭速度:{0}/秒 -bar.pumpspeed = Pump Speed: {0}/s +bar.pumpspeed = 液體泵送速度:{0}/s bar.efficiency = 效率:{0}% bar.powerbalance = 能量變化:{0} bar.powerstored = 能量存量: {0}/{1} @@ -544,6 +558,9 @@ bar.heat = 熱 bar.power = 能量 bar.progress = 建造進度 bar.spawned = 單位:{0}/{1} +bar.input = 能量輸入 +bar.output = 能量輸出 + bullet.damage = [stat]{0}[lightgray]傷害 bullet.splashdamage = [stat]{0}[lightgray]範圍傷害 ~[stat] {1}[lightgray]格 bullet.incendiary = [stat]燃燒 @@ -555,6 +572,7 @@ bullet.freezing = [stat]冷凍 bullet.tarred = [stat]焦油 bullet.multiplier = [stat]{0}[lightgray]×彈藥倍數 bullet.reload = [stat]{0}[lightgray]×射擊速率 + unit.blocks = 方塊 unit.powersecond = 能量單位/秒 unit.liquidsecond = 液體單位/秒 @@ -574,9 +592,10 @@ category.items = 物品 category.crafting = 需求 category.shooting = 射擊 category.optional = 可選的強化 + setting.landscape.name = 鎖定水平畫面 setting.shadows.name = 陰影 -setting.blockreplace.name = Automatic Block Suggestions +setting.blockreplace.name = 方塊建造建議 setting.linear.name = 線性過濾 setting.hints.name = 提示 setting.animatedwater.name = 水動畫 @@ -599,8 +618,8 @@ setting.difficulty.insane = 瘋狂 setting.difficulty.name = 難度: setting.screenshake.name = 畫面抖動 setting.effects.name = 顯示特效 -setting.destroyedblocks.name = Display Destroyed Blocks -setting.conveyorpathfinding.name = Conveyor Placement Pathfinding +setting.destroyedblocks.name = 顯示被破壞的方塊 +setting.conveyorpathfinding.name = 自動輸送帶放置規劃 setting.sensitivity.name = 控制器靈敏度 setting.saveinterval.name = 自動存檔間隔 setting.seconds = {0}秒 @@ -681,6 +700,7 @@ mode.pvp.description = 和其他玩家競爭、戰鬥。 mode.attack.name = 進攻 mode.attack.description = 沒有波次,目標是摧毀敵人的基地。 mode.custom = 自訂規則 + rules.infiniteresources = 無限資源 rules.wavetimer = 波次時間 rules.waves = 波次 @@ -707,6 +727,7 @@ rules.title.resourcesbuilding = 資源與建築 rules.title.player = 玩家 rules.title.enemy = 敵人 rules.title.unit = 單位 + content.item.name = 物品 content.liquid.name = 液體 content.unit.name = 單位 @@ -732,6 +753,7 @@ liquid.water.name = 水 liquid.slag.name = 熔渣 liquid.oil.name = 原油 liquid.cryofluid.name = 冷凍液 + mech.alpha-mech.name = 阿爾法 mech.alpha-mech.weapon = 重型機關槍 mech.alpha-mech.ability = 自修復 @@ -879,6 +901,7 @@ block.coal-centrifuge.name = 煤炭離心機 block.power-node.name = 能量節點 block.power-node-large.name = 大型能量節點 block.surge-tower.name = 波動塔 +block.diode.name = 二極體 block.battery.name = 電池 block.battery-large.name = 大型電池 block.combustion-generator.name = 燃燒發電機 @@ -1106,6 +1129,7 @@ block.phase-conduit.description = 高級的液體運輸方塊。使用能量將 block.power-node.description = 將能量傳輸到相連的節點。該節點將從任何相鄰方塊接收能量或向任何相鄰方塊供應能量。 block.power-node-large.description = 具有更大範圍和更多連接的高級電源節點。 block.surge-tower.description = 具有兩個可用連接的超遠程能量節點。 +block.diode.description = 電池中的電力在這個方塊中只能有一個固定的流向,並且只有在另一側的能量較少時才會通過。 block.battery.description = 有能量剩餘時存儲電力並在能量短缺時提供能量。 block.battery-large.description = 比普通電池存儲更多的能量。 block.combustion-generator.description = 透過燃燒原油或可燃物品以產生能量。 @@ -1165,3 +1189,4 @@ block.omega-mech-pad.description = 改裝現在的船隻,換成龐大、具有 block.javelin-ship-pad.description = 改裝現在的船隻,換成具有閃電武器、強大而快速的攔截機。\n站在上面雙擊機坪以使用它。 block.trident-ship-pad.description = 改裝現在的船隻,換成具有相當不錯裝甲的重型轟炸機。\n站在上面雙擊機坪以使用它。 block.glaive-ship-pad.description = 改裝現在的船隻,換成具有重裝甲的砲艇。\n站在上面雙擊機坪以使用它。 + diff --git a/core/assets/sprites/block_colors.png b/core/assets/sprites/block_colors.png index a39f251dbe..abce1611d1 100644 Binary files a/core/assets/sprites/block_colors.png and b/core/assets/sprites/block_colors.png differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index 4b3b8ca059..4d2c611c81 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -20,7 +20,7 @@ mend-projector-top index: -1 mender-top rotate: false - xy: 1686, 925 + xy: 1754, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -34,35 +34,35 @@ overdrive-projector-top index: -1 shock-mine rotate: false - xy: 1992, 959 + xy: 1505, 849 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-arrow rotate: false - xy: 1920, 1129 + xy: 1988, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-bridge rotate: false - xy: 1920, 1095 + xy: 1988, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-end rotate: false - xy: 1954, 1129 + xy: 1920, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 center rotate: false - xy: 1988, 1163 + xy: 1954, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -216,266 +216,266 @@ armored-conveyor-4-3 index: -1 conveyor-0-1 rotate: false - xy: 1818, 1027 + xy: 1886, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-2 rotate: false - xy: 1852, 1027 + xy: 1920, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-0-3 rotate: false - xy: 1886, 1027 + xy: 1954, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-0 rotate: false - xy: 1920, 1027 + xy: 1988, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-1 rotate: false - xy: 1954, 1027 + xy: 1368, 1035 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-2 rotate: false - xy: 1988, 1027 + xy: 1402, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-1-3 rotate: false - xy: 1368, 1035 + xy: 1436, 1019 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-0 rotate: false - xy: 1402, 1027 + xy: 1470, 1019 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-1 rotate: false - xy: 1436, 1019 + xy: 1504, 1019 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-2 rotate: false - xy: 1470, 1019 + xy: 1301, 835 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-2-3 rotate: false - xy: 1504, 1019 + xy: 1335, 835 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-0 rotate: false - xy: 1301, 835 + xy: 1369, 843 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-1 rotate: false - xy: 1335, 835 + xy: 1369, 809 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-2 rotate: false - xy: 1369, 843 + xy: 1538, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-3-3 rotate: false - xy: 1369, 809 + xy: 1572, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-0 rotate: false - xy: 1538, 993 + xy: 1606, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-1 rotate: false - xy: 1572, 993 + xy: 1640, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-2 rotate: false - xy: 1606, 993 + xy: 1674, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-4-3 rotate: false - xy: 1640, 993 + xy: 1708, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-1 rotate: false - xy: 1992, 925 + xy: 1505, 781 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-2 rotate: false - xy: 1992, 891 + xy: 1539, 857 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-3 rotate: false - xy: 1505, 849 + xy: 1539, 823 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-0 rotate: false - xy: 1505, 815 + xy: 1573, 857 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-1 rotate: false - xy: 1505, 781 + xy: 1539, 789 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-2 rotate: false - xy: 1539, 857 + xy: 1573, 823 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-1-3 rotate: false - xy: 1539, 823 + xy: 1607, 857 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-0 rotate: false - xy: 1573, 857 + xy: 1573, 789 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-1 rotate: false - xy: 1539, 789 + xy: 1607, 823 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-2 rotate: false - xy: 1573, 823 + xy: 1641, 857 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-2-3 rotate: false - xy: 1607, 857 + xy: 1607, 789 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-0 rotate: false - xy: 1573, 789 + xy: 1641, 823 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-1 rotate: false - xy: 1607, 823 + xy: 1675, 857 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-2 rotate: false - xy: 1641, 857 + xy: 1641, 789 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-3-3 rotate: false - xy: 1607, 789 + xy: 1675, 823 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-0 rotate: false - xy: 1641, 823 + xy: 1709, 857 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-1 rotate: false - xy: 1675, 857 + xy: 1675, 789 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-2 rotate: false - xy: 1641, 789 + xy: 1709, 823 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-4-3 rotate: false - xy: 1675, 823 + xy: 1743, 857 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -489,21 +489,21 @@ mass-driver-base index: -1 phase-conveyor-arrow rotate: false - xy: 1754, 959 + xy: 1754, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-bridge rotate: false - xy: 1720, 891 + xy: 1788, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-end rotate: false - xy: 1754, 925 + xy: 1822, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -685,21 +685,21 @@ block-border index: -1 block-middle rotate: false - xy: 1580, 1163 + xy: 1546, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-select rotate: false - xy: 1818, 1197 + xy: 1750, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 1546, 1027 + xy: 1614, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -825,161 +825,161 @@ rubble-8-1 index: -1 bridge-conduit-arrow rotate: false - xy: 1954, 1163 + xy: 1886, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-arrow rotate: false - xy: 1954, 1163 + xy: 1886, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-bridge rotate: false - xy: 1988, 1197 + xy: 1920, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-end rotate: false - xy: 1886, 1061 + xy: 1954, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 1954, 1095 + xy: 1954, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-0 rotate: false - xy: 1988, 1129 + xy: 1988, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-1 rotate: false - xy: 1954, 1061 + xy: 1988, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-2 rotate: false - xy: 1988, 1095 + xy: 1546, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-3 rotate: false - xy: 1988, 1095 + xy: 1546, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-4 rotate: false - xy: 1988, 1095 + xy: 1546, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-6 rotate: false - xy: 1988, 1095 + xy: 1546, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-bottom-5 rotate: false - xy: 1988, 1061 + xy: 1580, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-0 rotate: false - xy: 1580, 1027 + xy: 1648, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-1 rotate: false - xy: 1614, 1027 + xy: 1682, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-2 rotate: false - xy: 1648, 1027 + xy: 1716, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-3 rotate: false - xy: 1682, 1027 + xy: 1750, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-3 rotate: false - xy: 1682, 1027 + xy: 1750, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-4 rotate: false - xy: 1716, 1027 + xy: 1784, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-5 rotate: false - xy: 1750, 1027 + xy: 1818, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-top-6 rotate: false - xy: 1784, 1027 + xy: 1852, 1027 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-bottom rotate: false - xy: 1584, 891 + xy: 1652, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-liquid rotate: false - xy: 1618, 925 + xy: 1686, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-top rotate: false - xy: 1652, 959 + xy: 1652, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1007,63 +1007,63 @@ liquid-tank-top index: -1 phase-conduit-arrow rotate: false - xy: 1720, 959 + xy: 1720, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-bridge rotate: false - xy: 1686, 891 + xy: 1754, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-end rotate: false - xy: 1720, 925 + xy: 1788, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-0 rotate: false - xy: 1754, 891 + xy: 1822, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-1 rotate: false - xy: 1788, 925 + xy: 1856, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-2 rotate: false - xy: 1822, 959 + xy: 1822, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-4 rotate: false - xy: 1788, 891 + xy: 1856, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-5 rotate: false - xy: 1822, 925 + xy: 1890, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-top-6 rotate: false - xy: 1856, 959 + xy: 1856, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1098,7 +1098,7 @@ block-battery-large-full index: -1 combustion-generator-top rotate: false - xy: 1920, 1061 + xy: 1988, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1117,6 +1117,20 @@ differential-generator-top orig: 96, 96 offset: 0, 0 index: -1 +diode-arrow + rotate: false + xy: 2014, 993 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +illuminator-top + rotate: false + xy: 1380, 959 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 impact-reactor rotate: false xy: 1586, 1757 @@ -1168,14 +1182,14 @@ impact-reactor-plasma-3 index: -1 power-source rotate: false - xy: 1788, 959 + xy: 1788, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator-top rotate: false - xy: 1924, 959 + xy: 1924, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1322,21 +1336,21 @@ plastanium-compressor-top index: -1 pulverizer rotate: false - xy: 1822, 891 + xy: 1890, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 1856, 925 + xy: 1924, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pump-liquid rotate: false - xy: 1890, 959 + xy: 1890, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1392,7 +1406,7 @@ spore-press-top index: -1 unloader-center rotate: false - xy: 1675, 789 + xy: 1743, 823 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1483,7 +1497,7 @@ salvo-panel-right index: -1 scorch-heat rotate: false - xy: 1924, 925 + xy: 1992, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1609,7 +1623,7 @@ rally-point index: -1 repair-point-base rotate: false - xy: 1890, 925 + xy: 1958, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1658,14 +1672,14 @@ door-large-open index: -1 door-open rotate: false - xy: 1946, 993 + xy: 1301, 801 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 insulator-wall rotate: false - xy: 1301, 801 + xy: 1380, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1721,28 +1735,28 @@ scrap-wall-large4 index: -1 scrap-wall2 rotate: false - xy: 1958, 959 + xy: 1958, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall3 rotate: false - xy: 1924, 891 + xy: 1992, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall4 rotate: false - xy: 1958, 925 + xy: 1992, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall5 rotate: false - xy: 1958, 925 + xy: 1992, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1896,7 +1910,7 @@ shell-back index: -1 shot rotate: false - xy: 1958, 891 + xy: 1505, 815 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -1910,7 +1924,7 @@ transfer index: -1 transfer-arrow rotate: false - xy: 1709, 857 + xy: 1709, 789 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2300,6 +2314,20 @@ differential-generator orig: 96, 96 offset: 0, 0 index: -1 +block-diode-full + rotate: false + xy: 1376, 1205 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +diode + rotate: false + xy: 1376, 1205 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 block-distributor-full rotate: false xy: 615, 1483 @@ -2316,14 +2344,14 @@ distributor index: -1 block-door-full rotate: false - xy: 1376, 1205 + xy: 1376, 1171 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door rotate: false - xy: 1376, 1205 + xy: 1376, 1171 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2351,14 +2379,14 @@ block-draug-factory-full index: -1 block-dunerocks-full rotate: false - xy: 1376, 1171 + xy: 1376, 1137 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-duo-full rotate: false - xy: 1376, 1137 + xy: 1376, 1103 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2428,56 +2456,70 @@ graphite-press index: -1 block-grass-full rotate: false - xy: 1376, 1103 + xy: 1410, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hail-full rotate: false - xy: 1410, 1197 + xy: 1410, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-holostone-full rotate: false - xy: 1410, 1163 + xy: 1410, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-hotrock-full rotate: false - xy: 1410, 1129 + xy: 1410, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-full rotate: false - xy: 1410, 1095 + xy: 1376, 1069 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ice-snow-full rotate: false - xy: 1376, 1069 + xy: 1410, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-icerocks-full rotate: false - xy: 1410, 1061 + xy: 1444, 1189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ignarock-full rotate: false - xy: 1444, 1189 + xy: 1444, 1155 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-illuminator-full + rotate: false + xy: 1478, 1189 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +illuminator + rotate: false + xy: 1478, 1189 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2491,56 +2533,56 @@ block-impact-reactor-full index: -1 block-incinerator-full rotate: false - xy: 1444, 1155 + xy: 1444, 1121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 incinerator rotate: false - xy: 1444, 1155 + xy: 1444, 1121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-inverted-sorter-full rotate: false - xy: 1478, 1189 + xy: 1478, 1155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 inverted-sorter rotate: false - xy: 1478, 1189 + xy: 1478, 1155 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-item-source-full rotate: false - xy: 1444, 1121 + xy: 1444, 1087 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source rotate: false - xy: 1444, 1121 + xy: 1444, 1087 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-item-void-full rotate: false - xy: 1478, 1155 + xy: 1478, 1121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void rotate: false - xy: 1478, 1155 + xy: 1478, 1121 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2561,14 +2603,14 @@ javelin-ship-pad index: -1 block-junction-full rotate: false - xy: 1444, 1087 + xy: 1478, 1087 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction rotate: false - xy: 1444, 1087 + xy: 1478, 1087 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2631,35 +2673,35 @@ launch-pad-large index: -1 block-liquid-junction-full rotate: false - xy: 1478, 1121 + xy: 1444, 1053 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-junction rotate: false - xy: 1478, 1121 + xy: 1444, 1053 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-router-full rotate: false - xy: 1478, 1087 + xy: 1478, 1053 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-liquid-source-full rotate: false - xy: 1444, 1053 + xy: 1512, 1189 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-source rotate: false - xy: 1444, 1053 + xy: 1512, 1189 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2673,7 +2715,7 @@ block-liquid-tank-full index: -1 block-magmarock-full rotate: false - xy: 1478, 1053 + xy: 1512, 1155 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2694,14 +2736,14 @@ block-mechanical-drill-full index: -1 block-mechanical-pump-full rotate: false - xy: 1512, 1189 + xy: 1512, 1121 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-pump rotate: false - xy: 1512, 1189 + xy: 1512, 1121 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2715,14 +2757,14 @@ block-meltdown-full index: -1 block-melter-full rotate: false - xy: 1512, 1155 + xy: 1512, 1087 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 melter rotate: false - xy: 1512, 1155 + xy: 1512, 1087 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2743,70 +2785,70 @@ mend-projector index: -1 block-mender-full rotate: false - xy: 1512, 1121 + xy: 1512, 1053 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender rotate: false - xy: 1512, 1121 + xy: 1512, 1053 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-message-full rotate: false - xy: 1512, 1087 + xy: 1546, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message rotate: false - xy: 1512, 1087 + xy: 1546, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-2-full rotate: false - xy: 1512, 1053 + xy: 1546, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-3-full rotate: false - xy: 1546, 1197 + xy: 1580, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-5-full rotate: false - xy: 1546, 1163 + xy: 1546, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-damaged-full rotate: false - xy: 1580, 1197 + xy: 1580, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-metal-floor-full rotate: false - xy: 1546, 1129 + xy: 1614, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-moss-full rotate: false - xy: 1614, 1197 + xy: 1580, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2848,14 +2890,14 @@ omega-mech-pad index: -1 block-ore-coal-full rotate: false - xy: 1546, 1095 + xy: 1614, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-coal-medium rotate: false - xy: 1546, 1095 + xy: 1614, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2890,14 +2932,14 @@ block-ore-coal-xlarge index: -1 block-ore-copper-full rotate: false - xy: 1580, 1129 + xy: 1648, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-copper-medium rotate: false - xy: 1580, 1129 + xy: 1648, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2932,14 +2974,14 @@ block-ore-copper-xlarge index: -1 block-ore-lead-full rotate: false - xy: 1614, 1163 + xy: 1546, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-lead-medium rotate: false - xy: 1614, 1163 + xy: 1546, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -2974,14 +3016,14 @@ block-ore-lead-xlarge index: -1 block-ore-scrap-full rotate: false - xy: 1648, 1197 + xy: 1580, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-scrap-medium rotate: false - xy: 1648, 1197 + xy: 1580, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3016,14 +3058,14 @@ block-ore-scrap-xlarge index: -1 block-ore-thorium-full rotate: false - xy: 1546, 1061 + xy: 1614, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-thorium-medium rotate: false - xy: 1546, 1061 + xy: 1614, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3058,14 +3100,14 @@ block-ore-thorium-xlarge index: -1 block-ore-titanium-full rotate: false - xy: 1580, 1095 + xy: 1648, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-ore-titanium-medium rotate: false - xy: 1580, 1095 + xy: 1648, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3114,21 +3156,21 @@ overdrive-projector index: -1 block-overflow-gate-full rotate: false - xy: 1614, 1129 + xy: 1682, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overflow-gate rotate: false - xy: 1614, 1129 + xy: 1682, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pebbles-full rotate: false - xy: 1648, 1163 + xy: 1580, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3142,42 +3184,42 @@ block-phantom-factory-full index: -1 block-phase-conduit-full rotate: false - xy: 1682, 1197 + xy: 1614, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit rotate: false - xy: 1682, 1197 + xy: 1614, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-conveyor-full rotate: false - xy: 1580, 1061 + xy: 1648, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor rotate: false - xy: 1580, 1061 + xy: 1648, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-phase-wall-full rotate: false - xy: 1614, 1095 + xy: 1682, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 1614, 1095 + xy: 1682, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3226,14 +3268,14 @@ plastanium-compressor index: -1 block-plastanium-wall-full rotate: false - xy: 1648, 1129 + xy: 1716, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-wall rotate: false - xy: 1648, 1129 + xy: 1716, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3261,14 +3303,14 @@ block-pneumatic-drill-full index: -1 block-power-node-full rotate: false - xy: 1682, 1163 + xy: 1614, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node rotate: false - xy: 1682, 1163 + xy: 1614, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3289,35 +3331,35 @@ power-node-large index: -1 block-power-source-full rotate: false - xy: 1716, 1197 + xy: 1648, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-power-void-full rotate: false - xy: 1614, 1061 + xy: 1682, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void rotate: false - xy: 1614, 1061 + xy: 1682, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulse-conduit-full rotate: false - xy: 1648, 1095 + xy: 1716, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-pulverizer-full rotate: false - xy: 1682, 1129 + xy: 1750, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3338,7 +3380,7 @@ pyratite-mixer index: -1 block-repair-point-full rotate: false - xy: 1716, 1163 + xy: 1648, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3366,7 +3408,7 @@ block-rock-full index: -1 block-rocks-full rotate: false - xy: 1750, 1197 + xy: 1682, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3387,14 +3429,14 @@ rotary-pump index: -1 block-router-full rotate: false - xy: 1648, 1061 + xy: 1716, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 router rotate: false - xy: 1648, 1061 + xy: 1716, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3415,14 +3457,14 @@ rtg-generator index: -1 block-salt-full rotate: false - xy: 1682, 1095 + xy: 1750, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-saltrocks-full rotate: false - xy: 1716, 1129 + xy: 1784, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3436,28 +3478,28 @@ block-salvo-full index: -1 block-sand-boulder-full rotate: false - xy: 1750, 1163 + xy: 1682, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-full rotate: false - xy: 1784, 1197 + xy: 1716, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sand-water-full rotate: false - xy: 1682, 1061 + xy: 1750, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-sandrocks-full rotate: false - xy: 1716, 1095 + xy: 1784, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3471,21 +3513,21 @@ block-scatter-full index: -1 block-scorch-full rotate: false - xy: 1750, 1129 + xy: 1818, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-scrap-wall-full rotate: false - xy: 1784, 1163 + xy: 1716, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall1 rotate: false - xy: 1784, 1163 + xy: 1716, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3541,35 +3583,35 @@ separator index: -1 block-shale-boulder-full rotate: false - xy: 1716, 1061 + xy: 1784, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shale-full rotate: false - xy: 1750, 1095 + xy: 1818, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shalerocks-full rotate: false - xy: 1784, 1129 + xy: 1852, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shock-mine-full rotate: false - xy: 1818, 1163 + xy: 1750, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-shrubs-full rotate: false - xy: 1852, 1197 + xy: 1784, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3590,7 +3632,7 @@ silicon-smelter index: -1 block-snow-full rotate: false - xy: 1750, 1061 + xy: 1818, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3611,21 +3653,21 @@ block-snowrock-full index: -1 block-snowrocks-full rotate: false - xy: 1784, 1095 + xy: 1852, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-solar-panel-full rotate: false - xy: 1818, 1129 + xy: 1886, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel rotate: false - xy: 1818, 1129 + xy: 1886, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3646,21 +3688,21 @@ solar-panel-large index: -1 block-sorter-full rotate: false - xy: 1852, 1163 + xy: 1784, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sorter rotate: false - xy: 1852, 1163 + xy: 1784, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-spawn-full rotate: false - xy: 1886, 1197 + xy: 1818, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3688,7 +3730,7 @@ block-spore-cluster-full index: -1 block-spore-moss-full rotate: false - xy: 1784, 1061 + xy: 1852, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3709,14 +3751,14 @@ block-spore-press-full index: -1 block-sporerocks-full rotate: false - xy: 1818, 1095 + xy: 1886, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-stone-full rotate: false - xy: 1852, 1129 + xy: 1920, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3737,14 +3779,14 @@ surge-tower index: -1 block-surge-wall-full rotate: false - xy: 1886, 1163 + xy: 1818, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall rotate: false - xy: 1886, 1163 + xy: 1818, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3772,14 +3814,14 @@ block-swarmer-full index: -1 block-tainted-water-full rotate: false - xy: 1920, 1197 + xy: 1852, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-tar-full rotate: false - xy: 1818, 1061 + xy: 1886, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3800,7 +3842,7 @@ tau-mech-pad index: -1 block-tendrils-full rotate: false - xy: 1852, 1095 + xy: 1920, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3849,14 +3891,14 @@ thorium-reactor index: -1 block-thorium-wall-full rotate: false - xy: 1886, 1129 + xy: 1954, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall rotate: false - xy: 1886, 1129 + xy: 1954, 1197 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3898,28 +3940,28 @@ block-titan-factory-full index: -1 block-titanium-conveyor-full rotate: false - xy: 1920, 1163 + xy: 1852, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-0-0 rotate: false - xy: 1920, 1163 + xy: 1852, 1061 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-titanium-wall-full rotate: false - xy: 1954, 1197 + xy: 1886, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall rotate: false - xy: 1954, 1197 + xy: 1886, 1095 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -3968,14 +4010,14 @@ turbine-generator index: -1 block-unloader-full rotate: false - xy: 1852, 1061 + xy: 1920, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader rotate: false - xy: 1852, 1061 + xy: 1920, 1129 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4003,7 +4045,7 @@ block-water-extractor-full index: -1 block-water-full rotate: false - xy: 1886, 1095 + xy: 1954, 1163 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4038,56 +4080,56 @@ block-wraith-factory-full index: -1 cracks-1-0 rotate: false - xy: 1674, 993 + xy: 1742, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-1 rotate: false - xy: 1708, 993 + xy: 1776, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-2 rotate: false - xy: 1742, 993 + xy: 1810, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-3 rotate: false - xy: 1776, 993 + xy: 1844, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-4 rotate: false - xy: 1810, 993 + xy: 1878, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-5 rotate: false - xy: 1844, 993 + xy: 1912, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-6 rotate: false - xy: 1878, 993 + xy: 1946, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cracks-1-7 rotate: false - xy: 1912, 993 + xy: 1980, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4325,7 +4367,7 @@ cyclone index: -1 duo rotate: false - xy: 1980, 993 + xy: 1335, 801 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4339,7 +4381,7 @@ fuse index: -1 hail rotate: false - xy: 2014, 993 + xy: 1369, 775 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4353,14 +4395,14 @@ item-blast-compound-large index: -1 item-blast-compound-medium rotate: false - xy: 1369, 775 + xy: 1380, 993 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-blast-compound-small rotate: false - xy: 1709, 831 + xy: 1777, 865 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -4388,14 +4430,14 @@ item-coal-large index: -1 item-coal-medium rotate: false - xy: 1380, 925 + xy: 1414, 951 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal-small rotate: false - xy: 1743, 865 + xy: 1743, 797 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -4423,7 +4465,7 @@ item-copper-large index: -1 item-copper-medium rotate: false - xy: 1380, 993 + xy: 1414, 917 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4458,7 +4500,7 @@ item-graphite-large index: -1 item-graphite-medium rotate: false - xy: 1414, 951 + xy: 1482, 985 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4493,7 +4535,7 @@ item-lead-large index: -1 item-lead-medium rotate: false - xy: 1414, 917 + xy: 1482, 951 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4528,7 +4570,7 @@ item-metaglass-large index: -1 item-metaglass-medium rotate: false - xy: 1482, 985 + xy: 1414, 883 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4563,14 +4605,14 @@ item-phase-fabric-large index: -1 item-phase-fabric-medium rotate: false - xy: 1482, 951 + xy: 1482, 883 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric-small rotate: false - xy: 1709, 805 + xy: 1777, 839 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -4598,14 +4640,14 @@ item-plastanium-large index: -1 item-plastanium-medium rotate: false - xy: 1414, 883 + xy: 1403, 815 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium-small rotate: false - xy: 1769, 865 + xy: 1803, 865 size: 24, 24 orig: 24, 24 offset: 0, 0 @@ -4633,7 +4675,7 @@ item-pyratite-large index: -1 item-pyratite-medium rotate: false - xy: 1482, 883 + xy: 1403, 781 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4668,7 +4710,7 @@ item-sand-large index: -1 item-sand-medium rotate: false - xy: 1403, 815 + xy: 1471, 849 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4703,7 +4745,7 @@ item-scrap-large index: -1 item-scrap-medium rotate: false - xy: 1403, 781 + xy: 1471, 815 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4738,7 +4780,7 @@ item-silicon-large index: -1 item-silicon-medium rotate: false - xy: 1471, 849 + xy: 1516, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -4773,21 +4815,21 @@ item-spore-pod-large index: -1 item-spore-pod-medium rotate: false - xy: 1471, 815 + xy: 1550, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod-small rotate: false - xy: 1795, 865 + xy: 1803, 839 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-spore-pod-tiny rotate: false - xy: 1329, 757 + xy: 1303, 731 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4808,21 +4850,21 @@ item-surge-alloy-large index: -1 item-surge-alloy-medium rotate: false - xy: 1516, 959 + xy: 1550, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy-small rotate: false - xy: 1321, 775 + xy: 1829, 865 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-surge-alloy-tiny rotate: false - xy: 1251, 271 + xy: 1329, 757 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4843,21 +4885,21 @@ item-thorium-large index: -1 item-thorium-medium rotate: false - xy: 1550, 959 + xy: 1550, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium-small rotate: false - xy: 1303, 749 + xy: 1321, 775 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-thorium-tiny rotate: false - xy: 1847, 873 + xy: 1251, 271 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4878,21 +4920,21 @@ item-titanium-large index: -1 item-titanium-medium rotate: false - xy: 1550, 925 + xy: 1618, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium-small rotate: false - xy: 1251, 289 + xy: 1303, 749 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-titanium-tiny rotate: false - xy: 1303, 705 + xy: 1273, 577 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4920,21 +4962,21 @@ liquid-cryofluid-large index: -1 liquid-cryofluid-medium rotate: false - xy: 1550, 891 + xy: 1618, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid-small rotate: false - xy: 1273, 595 + xy: 1251, 289 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-cryofluid-tiny rotate: false - xy: 1273, 551 + xy: 1855, 847 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4955,21 +4997,21 @@ liquid-oil-large index: -1 liquid-oil-medium rotate: false - xy: 1618, 959 + xy: 1618, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil-small rotate: false - xy: 1821, 865 + xy: 1273, 595 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-oil-tiny rotate: false - xy: 222, 1129 + xy: 1881, 873 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -4990,21 +5032,21 @@ liquid-slag-large index: -1 liquid-slag-medium rotate: false - xy: 1652, 925 + xy: 1720, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag-small rotate: false - xy: 1303, 723 + xy: 1829, 839 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-slag-tiny rotate: false - xy: 584, 929 + xy: 222, 1129 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -5025,21 +5067,21 @@ liquid-water-large index: -1 liquid-water-medium rotate: false - xy: 1652, 891 + xy: 1720, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water-small rotate: false - xy: 1273, 569 + xy: 1855, 865 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-water-tiny rotate: false - xy: 678, 831 + xy: 584, 929 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -5123,7 +5165,7 @@ meltdown index: -1 repair-point rotate: false - xy: 1856, 891 + xy: 1924, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5151,7 +5193,7 @@ scatter index: -1 scorch rotate: false - xy: 1890, 891 + xy: 1958, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -5228,140 +5270,140 @@ wave index: -1 item-blast-compound rotate: false - xy: 1335, 801 + xy: 1380, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-coal rotate: false - xy: 1380, 959 + xy: 1414, 985 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-copper rotate: false - xy: 1380, 891 + xy: 1448, 985 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-graphite rotate: false - xy: 1414, 985 + xy: 1448, 951 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-lead rotate: false - xy: 1448, 985 + xy: 1448, 917 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-metaglass rotate: false - xy: 1448, 951 + xy: 1482, 917 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-phase-fabric rotate: false - xy: 1448, 917 + xy: 1448, 883 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-plastanium rotate: false - xy: 1482, 917 + xy: 1403, 849 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-pyratite rotate: false - xy: 1448, 883 + xy: 1437, 849 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-sand rotate: false - xy: 1403, 849 + xy: 1437, 815 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-scrap rotate: false - xy: 1437, 849 + xy: 1437, 781 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 1437, 815 + xy: 1471, 781 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-spore-pod rotate: false - xy: 1437, 781 + xy: 1516, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 1471, 781 + xy: 1516, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 1516, 925 + xy: 1584, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 1516, 891 + xy: 1584, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-cryofluid rotate: false - xy: 1584, 959 + xy: 1584, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-oil rotate: false - xy: 1584, 925 + xy: 1652, 959 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-slag rotate: false - xy: 1618, 891 + xy: 1686, 925 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-water rotate: false - xy: 1686, 959 + xy: 1686, 891 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -7611,6 +7653,13 @@ differential-generator-icon-editor orig: 96, 96 offset: 0, 0 index: -1 +diode-icon-editor + rotate: false + xy: 623, 297 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 distributor-icon-editor rotate: false xy: 1471, 861 @@ -7620,7 +7669,7 @@ distributor-icon-editor index: -1 door-icon-editor rotate: false - xy: 623, 297 + xy: 589, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -7641,28 +7690,28 @@ draug-factory-icon-editor index: -1 dunerocks-icon-editor rotate: false - xy: 589, 263 + xy: 555, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 duo-icon-editor rotate: false - xy: 555, 229 + xy: 657, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char2 rotate: false - xy: 657, 297 + xy: 623, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-char3 rotate: false - xy: 623, 263 + xy: 589, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -7676,714 +7725,714 @@ editor-clear index: -1 editor-craters2 rotate: false - xy: 589, 229 + xy: 555, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-craters3 rotate: false - xy: 555, 195 + xy: 657, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand2 rotate: false - xy: 657, 263 + xy: 623, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-darksand3 rotate: false - xy: 623, 229 + xy: 589, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass1 rotate: false - xy: 589, 195 + xy: 657, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass-icon-editor rotate: false - xy: 589, 195 + xy: 657, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass2 rotate: false - xy: 657, 229 + xy: 623, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-grass3 rotate: false - xy: 623, 195 + xy: 657, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-holostone1 rotate: false - xy: 657, 195 + xy: 569, 161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 holostone-icon-editor rotate: false - xy: 657, 195 + xy: 569, 161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-holostone2 rotate: false - xy: 569, 161 + xy: 603, 161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-holostone3 rotate: false - xy: 603, 161 + xy: 637, 161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock1 rotate: false - xy: 637, 161 + xy: 671, 161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hotrock-icon-editor rotate: false - xy: 637, 161 + xy: 671, 161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock2 rotate: false - xy: 671, 161 + xy: 511, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-hotrock3 rotate: false - xy: 511, 69 + xy: 527, 103 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow1 rotate: false - xy: 637, 127 + xy: 671, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-snow-icon-editor rotate: false - xy: 637, 127 + xy: 671, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow2 rotate: false - xy: 671, 127 + xy: 545, 69 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice-snow3 rotate: false - xy: 545, 69 + xy: 691, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice1 rotate: false - xy: 527, 103 + xy: 569, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-icon-editor rotate: false - xy: 527, 103 + xy: 569, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice2 rotate: false - xy: 569, 127 + xy: 603, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ice3 rotate: false - xy: 603, 127 + xy: 637, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ignarock1 rotate: false - xy: 691, 331 + xy: 691, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ignarock-icon-editor rotate: false - xy: 691, 331 + xy: 691, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ignarock2 rotate: false - xy: 691, 297 + xy: 691, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ignarock3 rotate: false - xy: 691, 263 + xy: 691, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock1 rotate: false - xy: 691, 229 + xy: 691, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 magmarock-icon-editor rotate: false - xy: 691, 229 + xy: 691, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock2 rotate: false - xy: 691, 195 + xy: 705, 161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-magmarock3 rotate: false - xy: 705, 161 + xy: 705, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor rotate: false - xy: 705, 127 + xy: 465, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-icon-editor rotate: false - xy: 705, 127 + xy: 465, 29 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-2 rotate: false - xy: 465, 29 + xy: 499, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-2-icon-editor rotate: false - xy: 465, 29 + xy: 499, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-3 rotate: false - xy: 499, 35 + xy: 499, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-3-icon-editor rotate: false - xy: 499, 35 + xy: 499, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-5 rotate: false - xy: 499, 1 + xy: 533, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-5-icon-editor rotate: false - xy: 499, 1 + xy: 533, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged1 rotate: false - xy: 533, 35 + xy: 533, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-damaged-icon-editor rotate: false - xy: 533, 35 + xy: 533, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged2 rotate: false - xy: 533, 1 + xy: 705, 399 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-metal-floor-damaged3 rotate: false - xy: 705, 399 + xy: 705, 365 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss1 rotate: false - xy: 705, 365 + xy: 725, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 moss-icon-editor rotate: false - xy: 705, 365 + xy: 725, 331 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss2 rotate: false - xy: 725, 331 + xy: 725, 297 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-moss3 rotate: false - xy: 725, 297 + xy: 725, 263 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal1 rotate: false - xy: 725, 263 + xy: 725, 229 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal2 rotate: false - xy: 725, 229 + xy: 725, 195 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-coal3 rotate: false - xy: 725, 195 + xy: 739, 161 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper1 rotate: false - xy: 739, 161 + xy: 739, 127 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper2 rotate: false - xy: 739, 127 + xy: 567, 35 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-copper3 rotate: false - xy: 567, 35 + xy: 567, 1 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead1 rotate: false - xy: 567, 1 + xy: 579, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead2 rotate: false - xy: 579, 93 + xy: 613, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-lead3 rotate: false - xy: 613, 93 + xy: 647, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap1 rotate: false - xy: 647, 93 + xy: 681, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap2 rotate: false - xy: 681, 93 + xy: 715, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-scrap3 rotate: false - xy: 715, 93 + xy: 749, 93 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium1 rotate: false - xy: 749, 93 + xy: 601, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium2 rotate: false - xy: 601, 59 + xy: 601, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-thorium3 rotate: false - xy: 601, 25 + xy: 635, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium1 rotate: false - xy: 635, 59 + xy: 635, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium2 rotate: false - xy: 635, 25 + xy: 669, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-ore-titanium3 rotate: false - xy: 669, 59 + xy: 669, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles1 rotate: false - xy: 669, 25 + xy: 703, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles2 rotate: false - xy: 703, 59 + xy: 703, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-pebbles3 rotate: false - xy: 703, 25 + xy: 737, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-salt rotate: false - xy: 737, 59 + xy: 737, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salt-icon-editor rotate: false - xy: 737, 59 + xy: 737, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand-water rotate: false - xy: 733, 827 + xy: 767, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water-icon-editor rotate: false - xy: 733, 827 + xy: 767, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand1 rotate: false - xy: 737, 25 + xy: 771, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-icon-editor rotate: false - xy: 737, 25 + xy: 771, 59 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand2 rotate: false - xy: 771, 59 + xy: 771, 25 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-sand3 rotate: false - xy: 771, 25 + xy: 733, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale1 rotate: false - xy: 767, 827 + xy: 801, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-icon-editor rotate: false - xy: 767, 827 + xy: 801, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale2 rotate: false - xy: 801, 827 + xy: 835, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-shale3 rotate: false - xy: 835, 827 + xy: 869, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow1 rotate: false - xy: 869, 827 + xy: 903, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow2 rotate: false - xy: 903, 827 + xy: 937, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-snow3 rotate: false - xy: 937, 827 + xy: 971, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spawn rotate: false - xy: 971, 827 + xy: 1005, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss1 rotate: false - xy: 1005, 827 + xy: 1039, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-moss-icon-editor rotate: false - xy: 1005, 827 + xy: 1039, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss2 rotate: false - xy: 1039, 827 + xy: 1073, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-spore-moss3 rotate: false - xy: 1073, 827 + xy: 1107, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone1 rotate: false - xy: 1107, 827 + xy: 1141, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone-icon-editor rotate: false - xy: 1107, 827 + xy: 1141, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone2 rotate: false - xy: 1141, 827 + xy: 1175, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-stone3 rotate: false - xy: 1175, 827 + xy: 1209, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tainted-water rotate: false - xy: 1209, 827 + xy: 1243, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tainted-water-icon-editor rotate: false - xy: 1209, 827 + xy: 1243, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tar rotate: false - xy: 1243, 827 + xy: 1277, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-icon-editor rotate: false - xy: 1243, 827 + xy: 1277, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils1 rotate: false - xy: 1277, 827 + xy: 1311, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils2 rotate: false - xy: 1311, 827 + xy: 1345, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-tendrils3 rotate: false - xy: 1345, 827 + xy: 1379, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 editor-water rotate: false - xy: 1379, 827 + xy: 1413, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-icon-editor rotate: false - xy: 1379, 827 + xy: 1413, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8432,14 +8481,21 @@ graphite-press-icon-editor index: -1 hail-icon-editor rotate: false - xy: 1413, 827 + xy: 1447, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icerocks-icon-editor rotate: false - xy: 1447, 827 + xy: 1481, 827 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +illuminator-icon-editor + rotate: false + xy: 1515, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8453,28 +8509,28 @@ impact-reactor-icon-editor index: -1 incinerator-icon-editor rotate: false - xy: 1481, 827 + xy: 1549, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 inverted-sorter-icon-editor rotate: false - xy: 1515, 827 + xy: 1583, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source-icon-editor rotate: false - xy: 1549, 827 + xy: 1617, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void-icon-editor rotate: false - xy: 1583, 827 + xy: 1651, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8488,7 +8544,7 @@ javelin-ship-pad-icon-editor index: -1 junction-icon-editor rotate: false - xy: 1617, 827 + xy: 1685, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8530,21 +8586,21 @@ launch-pad-large-icon-editor index: -1 liquid-junction-icon-editor rotate: false - xy: 1651, 827 + xy: 1719, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-icon-editor rotate: false - xy: 1685, 827 + xy: 1753, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-source-icon-editor rotate: false - xy: 1719, 827 + xy: 1787, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8572,7 +8628,7 @@ mechanical-drill-icon-editor index: -1 mechanical-pump-icon-editor rotate: false - xy: 1753, 827 + xy: 1821, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8586,7 +8642,7 @@ meltdown-icon-editor index: -1 melter-icon-editor rotate: false - xy: 1787, 827 + xy: 1855, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8600,14 +8656,14 @@ mend-projector-icon-editor index: -1 mender-icon-editor rotate: false - xy: 1821, 827 + xy: 1889, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 message-icon-editor rotate: false - xy: 1855, 827 + xy: 1923, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8642,14 +8698,14 @@ overdrive-projector-icon-editor index: -1 overflow-gate-icon-editor rotate: false - xy: 1889, 827 + xy: 1957, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pebbles-icon-editor rotate: false - xy: 1923, 827 + xy: 717, 793 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8663,21 +8719,21 @@ phantom-factory-icon-editor index: -1 phase-conduit-icon-editor rotate: false - xy: 1957, 827 + xy: 717, 759 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-icon-editor rotate: false - xy: 717, 793 + xy: 751, 793 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-icon-editor rotate: false - xy: 717, 759 + xy: 717, 725 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8712,7 +8768,7 @@ plastanium-compressor-icon-editor index: -1 plastanium-wall-icon-editor rotate: false - xy: 751, 793 + xy: 785, 793 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8733,7 +8789,7 @@ pneumatic-drill-icon-editor index: -1 power-node-icon-editor rotate: false - xy: 717, 725 + xy: 751, 759 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8747,28 +8803,28 @@ power-node-large-icon-editor index: -1 power-source-icon-editor rotate: false - xy: 785, 793 + xy: 717, 691 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void-icon-editor rotate: false - xy: 751, 759 + xy: 819, 793 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-icon-editor rotate: false - xy: 717, 691 + xy: 785, 759 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-icon-editor rotate: false - xy: 819, 793 + xy: 751, 725 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8782,7 +8838,7 @@ pyratite-mixer-icon-editor index: -1 repair-point-icon-editor rotate: false - xy: 785, 759 + xy: 717, 657 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8810,7 +8866,7 @@ rock-icon-editor index: -1 rocks-icon-editor rotate: false - xy: 751, 725 + xy: 853, 793 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8824,7 +8880,7 @@ rotary-pump-icon-editor index: -1 router-icon-editor rotate: false - xy: 717, 657 + xy: 819, 759 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8838,7 +8894,7 @@ rtg-generator-icon-editor index: -1 saltrocks-icon-editor rotate: false - xy: 853, 793 + xy: 785, 725 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8852,14 +8908,14 @@ salvo-icon-editor index: -1 sand-boulder-icon-editor rotate: false - xy: 819, 759 + xy: 751, 691 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sandrocks-icon-editor rotate: false - xy: 785, 725 + xy: 717, 623 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8873,7 +8929,7 @@ scatter-icon-editor index: -1 scorch-icon-editor rotate: false - xy: 751, 691 + xy: 887, 793 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8894,7 +8950,7 @@ scrap-wall-huge-icon-editor index: -1 scrap-wall-icon-editor rotate: false - xy: 717, 623 + xy: 853, 759 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8915,28 +8971,28 @@ separator-icon-editor index: -1 shale-boulder-icon-editor rotate: false - xy: 887, 793 + xy: 819, 725 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shalerocks-icon-editor rotate: false - xy: 853, 759 + xy: 785, 691 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shock-mine-icon-editor rotate: false - xy: 819, 725 + xy: 751, 657 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs-icon-editor rotate: false - xy: 785, 691 + xy: 717, 589 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8950,7 +9006,7 @@ silicon-smelter-icon-editor index: -1 snow-icon-editor rotate: false - xy: 751, 657 + xy: 921, 793 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8971,14 +9027,14 @@ snowrock-icon-editor index: -1 snowrocks-icon-editor rotate: false - xy: 717, 589 + xy: 887, 759 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-icon-editor rotate: false - xy: 921, 793 + xy: 853, 725 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -8992,14 +9048,14 @@ solar-panel-large-icon-editor index: -1 sorter-icon-editor rotate: false - xy: 887, 759 + xy: 819, 691 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spawn-icon-editor rotate: false - xy: 853, 725 + xy: 785, 657 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9041,7 +9097,7 @@ spore-press-icon-editor index: -1 sporerocks-icon-editor rotate: false - xy: 819, 691 + xy: 751, 623 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9055,7 +9111,7 @@ surge-tower-icon-editor index: -1 surge-wall-icon-editor rotate: false - xy: 785, 657 + xy: 717, 555 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9083,7 +9139,7 @@ tau-mech-pad-icon-editor index: -1 tendrils-icon-editor rotate: false - xy: 751, 623 + xy: 955, 793 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9111,7 +9167,7 @@ thorium-reactor-icon-editor index: -1 thorium-wall-icon-editor rotate: false - xy: 717, 555 + xy: 921, 759 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9139,14 +9195,14 @@ titan-factory-icon-editor index: -1 titanium-conveyor-icon-editor rotate: false - xy: 955, 793 + xy: 887, 725 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-icon-editor rotate: false - xy: 921, 759 + xy: 853, 691 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9174,7 +9230,7 @@ turbine-generator-icon-editor index: -1 unloader-icon-editor rotate: false - xy: 887, 725 + xy: 819, 657 size: 32, 32 orig: 32, 32 offset: 0, 0 @@ -9319,7 +9375,7 @@ filter: Nearest,Nearest repeat: none bar rotate: false - xy: 1848, 439 + xy: 1963, 391 size: 27, 36 split: 9, 9, 9, 9 orig: 27, 36 @@ -9327,7 +9383,7 @@ bar index: -1 bar-top rotate: false - xy: 2019, 624 + xy: 936, 27 size: 27, 36 split: 9, 10, 9, 10 orig: 27, 36 @@ -9335,28 +9391,28 @@ bar-top index: -1 block-alloy-smelter-large rotate: false - xy: 351, 633 + xy: 301, 533 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-alloy-smelter-medium rotate: false - xy: 549, 523 + xy: 667, 536 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-alloy-smelter-small rotate: false - xy: 1135, 198 + xy: 936, 1 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-alloy-smelter-tiny rotate: false - xy: 945, 1 + xy: 1997, 597 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9370,28 +9426,28 @@ block-alloy-smelter-xlarge index: -1 block-arc-large rotate: false - xy: 401, 683 + xy: 351, 583 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-arc-medium rotate: false - xy: 583, 523 + xy: 553, 420 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-arc-small rotate: false - xy: 1877, 448 + xy: 962, 1 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-arc-tiny rotate: false - xy: 963, 1 + xy: 463, 1 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9405,28 +9461,28 @@ block-arc-xlarge index: -1 block-armored-conveyor-large rotate: false - xy: 301, 533 + xy: 401, 633 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-armored-conveyor-medium rotate: false - xy: 617, 523 + xy: 553, 386 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-armored-conveyor-small rotate: false - xy: 1903, 448 + xy: 1963, 365 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-armored-conveyor-tiny rotate: false - xy: 981, 1 + xy: 1, 2 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9440,35 +9496,35 @@ block-armored-conveyor-xlarge index: -1 block-battery-large rotate: false - xy: 351, 591 + xy: 451, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-large rotate: false - xy: 443, 683 + xy: 301, 491 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-battery-large-medium rotate: false - xy: 651, 523 + xy: 553, 352 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-large-small rotate: false - xy: 1929, 448 + xy: 977, 199 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-large-tiny rotate: false - xy: 999, 1 + xy: 1771, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9482,21 +9538,21 @@ block-battery-large-xlarge index: -1 block-battery-medium rotate: false - xy: 685, 523 + xy: 553, 318 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-battery-small rotate: false - xy: 1955, 448 + xy: 1003, 201 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-battery-tiny rotate: false - xy: 1, 2 + xy: 19, 2 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9510,28 +9566,28 @@ block-battery-xlarge index: -1 block-blast-drill-large rotate: false - xy: 301, 491 + xy: 493, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-drill-medium rotate: false - xy: 719, 523 + xy: 553, 284 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-drill-small rotate: false - xy: 1981, 450 + xy: 301, 3 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-drill-tiny rotate: false - xy: 2019, 606 + xy: 1771, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9545,28 +9601,28 @@ block-blast-drill-xlarge index: -1 block-blast-mixer-large rotate: false - xy: 485, 683 + xy: 301, 449 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-blast-mixer-medium rotate: false - xy: 753, 523 + xy: 553, 250 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-blast-mixer-small rotate: false - xy: 2007, 450 + xy: 327, 3 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-blast-mixer-tiny rotate: false - xy: 19, 2 + xy: 1789, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9580,28 +9636,28 @@ block-blast-mixer-xlarge index: -1 block-bridge-conduit-large rotate: false - xy: 301, 449 + xy: 535, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-bridge-conduit-medium rotate: false - xy: 787, 523 + xy: 553, 216 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conduit-small rotate: false - xy: 1877, 422 + xy: 353, 3 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-bridge-conduit-tiny rotate: false - xy: 2029, 757 + xy: 1789, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9615,28 +9671,28 @@ block-bridge-conduit-xlarge index: -1 block-bridge-conveyor-large rotate: false - xy: 527, 683 + xy: 301, 407 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-bridge-conveyor-medium rotate: false - xy: 821, 523 + xy: 705, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-bridge-conveyor-small rotate: false - xy: 1903, 422 + xy: 469, 19 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-bridge-conveyor-tiny rotate: false - xy: 2029, 739 + xy: 1807, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9650,28 +9706,28 @@ block-bridge-conveyor-xlarge index: -1 block-char-large rotate: false - xy: 301, 407 + xy: 577, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-char-medium rotate: false - xy: 855, 523 + xy: 739, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-char-small rotate: false - xy: 1929, 422 + xy: 1989, 615 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-char-tiny rotate: false - xy: 1315, 285 + xy: 1807, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9685,28 +9741,28 @@ block-char-xlarge index: -1 block-cliffs-large rotate: false - xy: 569, 683 + xy: 301, 365 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cliffs-medium rotate: false - xy: 889, 523 + xy: 773, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cliffs-small rotate: false - xy: 1955, 422 + xy: 2015, 623 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cliffs-tiny rotate: false - xy: 1333, 285 + xy: 1825, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9720,28 +9776,28 @@ block-cliffs-xlarge index: -1 block-coal-centrifuge-large rotate: false - xy: 301, 365 + xy: 619, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-coal-centrifuge-medium rotate: false - xy: 923, 523 + xy: 807, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-coal-centrifuge-small rotate: false - xy: 1981, 424 + xy: 385, 11 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-coal-centrifuge-tiny rotate: false - xy: 1351, 285 + xy: 1825, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9755,28 +9811,28 @@ block-coal-centrifuge-xlarge index: -1 block-combustion-generator-large rotate: false - xy: 611, 683 + xy: 301, 323 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-combustion-generator-medium rotate: false - xy: 957, 523 + xy: 841, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-combustion-generator-small rotate: false - xy: 2007, 424 + xy: 411, 11 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-combustion-generator-tiny rotate: false - xy: 1369, 285 + xy: 1843, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9790,28 +9846,28 @@ block-combustion-generator-xlarge index: -1 block-command-center-large rotate: false - xy: 301, 323 + xy: 661, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-command-center-medium rotate: false - xy: 991, 523 + xy: 875, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-command-center-small rotate: false - xy: 1135, 172 + xy: 437, 11 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-command-center-tiny rotate: false - xy: 1387, 285 + xy: 1843, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9825,28 +9881,28 @@ block-command-center-xlarge index: -1 block-conduit-large rotate: false - xy: 653, 683 + xy: 301, 281 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-conduit-medium rotate: false - xy: 1025, 523 + xy: 909, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conduit-small rotate: false - xy: 1164, 263 + xy: 2015, 597 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-conduit-tiny rotate: false - xy: 1405, 285 + xy: 1861, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9860,28 +9916,28 @@ block-conduit-xlarge index: -1 block-container-large rotate: false - xy: 301, 281 + xy: 703, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-container-medium rotate: false - xy: 1059, 523 + xy: 943, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-container-small rotate: false - xy: 1164, 237 + xy: 1997, 571 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-container-tiny rotate: false - xy: 1423, 285 + xy: 1861, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9895,28 +9951,28 @@ block-container-xlarge index: -1 block-conveyor-large rotate: false - xy: 695, 683 + xy: 301, 239 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-conveyor-medium rotate: false - xy: 1093, 523 + xy: 977, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-conveyor-small rotate: false - xy: 1164, 211 + xy: 2023, 571 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-conveyor-tiny rotate: false - xy: 1441, 285 + xy: 1879, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9930,35 +9986,35 @@ block-conveyor-xlarge index: -1 block-copper-wall-large rotate: false - xy: 301, 239 + xy: 745, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-copper-wall-large-large rotate: false - xy: 737, 683 + xy: 301, 197 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-copper-wall-large-medium rotate: false - xy: 1127, 523 + xy: 1011, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-copper-wall-large-small rotate: false - xy: 1161, 185 + xy: 2022, 545 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-copper-wall-large-tiny rotate: false - xy: 1459, 285 + xy: 1879, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -9972,21 +10028,21 @@ block-copper-wall-large-xlarge index: -1 block-copper-wall-medium rotate: false - xy: 1161, 523 + xy: 1045, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-copper-wall-small rotate: false - xy: 1161, 159 + xy: 2022, 519 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-copper-wall-tiny rotate: false - xy: 1477, 285 + xy: 1897, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10000,28 +10056,28 @@ block-copper-wall-xlarge index: -1 block-core-foundation-large rotate: false - xy: 301, 197 + xy: 787, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-core-foundation-medium rotate: false - xy: 1195, 523 + xy: 1079, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-foundation-small rotate: false - xy: 1187, 185 + xy: 2022, 493 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-core-foundation-tiny rotate: false - xy: 1495, 285 + xy: 1897, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10035,28 +10091,28 @@ block-core-foundation-xlarge index: -1 block-core-nucleus-large rotate: false - xy: 779, 683 + xy: 301, 155 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-core-nucleus-medium rotate: false - xy: 1229, 523 + xy: 1113, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-nucleus-small rotate: false - xy: 1187, 159 + xy: 495, 16 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-core-nucleus-tiny rotate: false - xy: 1513, 285 + xy: 1915, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10070,28 +10126,28 @@ block-core-nucleus-xlarge index: -1 block-core-shard-large rotate: false - xy: 301, 155 + xy: 829, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-core-shard-medium rotate: false - xy: 1263, 523 + xy: 1147, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-core-shard-small rotate: false - xy: 1237, 363 + xy: 521, 16 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-core-shard-tiny rotate: false - xy: 1531, 285 + xy: 1915, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10105,28 +10161,28 @@ block-core-shard-xlarge index: -1 block-craters-large rotate: false - xy: 821, 683 + xy: 301, 113 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-craters-medium rotate: false - xy: 1297, 523 + xy: 1181, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-craters-small rotate: false - xy: 1237, 337 + xy: 965, 39 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-craters-tiny rotate: false - xy: 1549, 285 + xy: 1933, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10140,28 +10196,28 @@ block-craters-xlarge index: -1 block-crawler-factory-large rotate: false - xy: 301, 113 + xy: 871, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-crawler-factory-medium rotate: false - xy: 1331, 523 + xy: 1215, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-crawler-factory-small rotate: false - xy: 1263, 365 + xy: 977, 173 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-crawler-factory-tiny rotate: false - xy: 1567, 285 + xy: 1933, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10175,28 +10231,28 @@ block-crawler-factory-xlarge index: -1 block-cryofluidmixer-large rotate: false - xy: 863, 683 + xy: 301, 71 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cryofluidmixer-medium rotate: false - xy: 1365, 523 + xy: 1249, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cryofluidmixer-small rotate: false - xy: 1263, 339 + xy: 1003, 175 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cryofluidmixer-tiny rotate: false - xy: 1585, 285 + xy: 1951, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10210,28 +10266,28 @@ block-cryofluidmixer-xlarge index: -1 block-cultivator-large rotate: false - xy: 301, 71 + xy: 913, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cultivator-medium rotate: false - xy: 1399, 523 + xy: 1283, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cultivator-small rotate: false - xy: 1099, 131 + xy: 975, 147 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cultivator-tiny rotate: false - xy: 1603, 285 + xy: 1951, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10245,28 +10301,28 @@ block-cultivator-xlarge index: -1 block-cyclone-large rotate: false - xy: 905, 683 + xy: 301, 29 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-cyclone-medium rotate: false - xy: 1433, 523 + xy: 1317, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-cyclone-small rotate: false - xy: 1099, 105 + xy: 971, 121 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-cyclone-tiny rotate: false - xy: 1621, 285 + xy: 1969, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10280,28 +10336,28 @@ block-cyclone-xlarge index: -1 block-dagger-factory-large rotate: false - xy: 301, 29 + xy: 955, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dagger-factory-medium rotate: false - xy: 1467, 523 + xy: 1351, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dagger-factory-small rotate: false - xy: 1097, 79 + xy: 971, 95 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dagger-factory-tiny rotate: false - xy: 1639, 285 + xy: 1969, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10315,28 +10371,28 @@ block-dagger-factory-xlarge index: -1 block-dark-metal-large rotate: false - xy: 947, 683 + xy: 997, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-metal-medium rotate: false - xy: 1501, 523 + xy: 1385, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-metal-small rotate: false - xy: 1097, 53 + xy: 971, 69 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-metal-tiny rotate: false - xy: 1657, 285 + xy: 1987, 269 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10350,28 +10406,28 @@ block-dark-metal-xlarge index: -1 block-dark-panel-1-large rotate: false - xy: 989, 683 + xy: 1039, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-1-medium rotate: false - xy: 1535, 523 + xy: 1419, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-1-small rotate: false - xy: 1305, 431 + xy: 1993, 476 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-1-tiny rotate: false - xy: 1675, 285 + xy: 1987, 251 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10385,28 +10441,28 @@ block-dark-panel-1-xlarge index: -1 block-dark-panel-2-large rotate: false - xy: 1031, 683 + xy: 1081, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-2-medium rotate: false - xy: 1569, 523 + xy: 1453, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-2-small rotate: false - xy: 1331, 433 + xy: 2019, 467 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-2-tiny rotate: false - xy: 1693, 285 + xy: 2029, 757 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10420,28 +10476,28 @@ block-dark-panel-2-xlarge index: -1 block-dark-panel-3-large rotate: false - xy: 1073, 683 + xy: 1123, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-3-medium rotate: false - xy: 1603, 523 + xy: 1487, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-3-small rotate: false - xy: 1357, 433 + xy: 1989, 450 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-3-tiny rotate: false - xy: 1711, 285 + xy: 2029, 739 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10455,28 +10511,28 @@ block-dark-panel-3-xlarge index: -1 block-dark-panel-4-large rotate: false - xy: 1115, 683 + xy: 1165, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-4-medium rotate: false - xy: 1637, 523 + xy: 1521, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-4-small rotate: false - xy: 1383, 433 + xy: 2015, 441 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-4-tiny rotate: false - xy: 1729, 277 + xy: 1985, 432 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10490,28 +10546,28 @@ block-dark-panel-4-xlarge index: -1 block-dark-panel-5-large rotate: false - xy: 1157, 683 + xy: 1207, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-5-medium rotate: false - xy: 1671, 523 + xy: 1555, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-5-small rotate: false - xy: 1409, 433 + xy: 549, 20 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-5-tiny rotate: false - xy: 1242, 253 + xy: 835, 7 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10525,28 +10581,28 @@ block-dark-panel-5-xlarge index: -1 block-dark-panel-6-large rotate: false - xy: 1199, 683 + xy: 1249, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dark-panel-6-medium rotate: false - xy: 1705, 523 + xy: 1589, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dark-panel-6-small rotate: false - xy: 1435, 433 + xy: 575, 15 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dark-panel-6-tiny rotate: false - xy: 1242, 235 + xy: 853, 7 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10560,49 +10616,49 @@ block-dark-panel-6-xlarge index: -1 block-darksand-large rotate: false - xy: 1241, 683 + xy: 1291, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-darksand-medium rotate: false - xy: 1739, 523 + xy: 1623, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-small rotate: false - xy: 1461, 433 + xy: 601, 10 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-darksand-tainted-water-large rotate: false - xy: 1283, 683 + xy: 1333, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-darksand-tainted-water-medium rotate: false - xy: 1773, 523 + xy: 1657, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-tainted-water-small rotate: false - xy: 1487, 433 + xy: 627, 10 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-darksand-tainted-water-tiny rotate: false - xy: 1783, 266 + xy: 871, 7 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10616,35 +10672,35 @@ block-darksand-tainted-water-xlarge index: -1 block-darksand-tiny rotate: false - xy: 1801, 266 + xy: 889, 7 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-darksand-water-large rotate: false - xy: 1325, 683 + xy: 1375, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-darksand-water-medium rotate: false - xy: 1807, 523 + xy: 1691, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-darksand-water-small rotate: false - xy: 1513, 433 + xy: 653, 10 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-darksand-water-tiny rotate: false - xy: 1981, 328 + xy: 907, 7 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10665,28 +10721,28 @@ block-darksand-xlarge index: -1 block-dart-mech-pad-large rotate: false - xy: 1367, 683 + xy: 1417, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-dart-mech-pad-medium rotate: false - xy: 427, 494 + xy: 1725, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-dart-mech-pad-small rotate: false - xy: 1539, 433 + xy: 679, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-dart-mech-pad-tiny rotate: false - xy: 1999, 328 + xy: 2005, 295 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10700,28 +10756,28 @@ block-dart-mech-pad-xlarge index: -1 block-deepwater-large rotate: false - xy: 1409, 683 + xy: 1459, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-deepwater-medium rotate: false - xy: 427, 460 + xy: 1759, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-deepwater-small rotate: false - xy: 1565, 433 + xy: 705, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-deepwater-tiny rotate: false - xy: 2017, 328 + xy: 2005, 277 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10735,28 +10791,28 @@ block-deepwater-xlarge index: -1 block-delta-mech-pad-large rotate: false - xy: 1451, 683 + xy: 1501, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-delta-mech-pad-medium rotate: false - xy: 461, 494 + xy: 1793, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-delta-mech-pad-small rotate: false - xy: 1591, 433 + xy: 731, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-delta-mech-pad-tiny rotate: false - xy: 1247, 295 + xy: 2005, 259 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10770,28 +10826,28 @@ block-delta-mech-pad-xlarge index: -1 block-differential-generator-large rotate: false - xy: 1493, 683 + xy: 1543, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 block-differential-generator-medium rotate: false - xy: 427, 426 + xy: 1827, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 block-differential-generator-small rotate: false - xy: 1617, 433 + xy: 757, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 block-differential-generator-tiny rotate: false - xy: 1265, 295 + xy: 1992, 414 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -10803,5154 +10859,5224 @@ block-differential-generator-xlarge orig: 48, 48 offset: 0, 0 index: -1 -block-distributor-large +block-diode-large rotate: false - xy: 1535, 683 + xy: 1585, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-distributor-medium +block-diode-medium rotate: false - xy: 461, 460 + xy: 1861, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-distributor-small +block-diode-small rotate: false - xy: 1643, 433 + xy: 783, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-distributor-tiny +block-diode-tiny rotate: false - xy: 1247, 277 + xy: 1992, 396 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-distributor-xlarge +block-diode-xlarge rotate: false xy: 1395, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-door-large +block-distributor-large rotate: false - xy: 1577, 683 + xy: 1627, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-door-large-large +block-distributor-medium rotate: false - xy: 1619, 683 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-door-large-medium - rotate: false - xy: 495, 494 + xy: 1895, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-door-large-small +block-distributor-small rotate: false - xy: 1669, 433 + xy: 809, 7 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-door-large-tiny +block-distributor-tiny rotate: false - xy: 1265, 277 + xy: 2005, 241 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-door-large-xlarge +block-distributor-xlarge rotate: false xy: 1445, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-door-medium +block-door-large rotate: false - xy: 427, 392 + xy: 1669, 683 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-door-large-large + rotate: false + xy: 1711, 683 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-door-large-medium + rotate: false + xy: 1929, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-door-small +block-door-large-small rotate: false - xy: 1695, 433 + xy: 1131, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-door-tiny +block-door-large-tiny rotate: false - xy: 1260, 259 + xy: 1745, 232 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-door-xlarge +block-door-large-xlarge rotate: false xy: 1495, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-draug-factory-large +block-door-medium rotate: false - xy: 1661, 683 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-draug-factory-medium - rotate: false - xy: 461, 426 + xy: 591, 449 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-draug-factory-small +block-door-small rotate: false - xy: 1721, 433 + xy: 1157, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-draug-factory-tiny +block-door-tiny rotate: false - xy: 1260, 241 + xy: 1763, 232 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-draug-factory-xlarge +block-door-xlarge rotate: false xy: 1545, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-dunerocks-large +block-draug-factory-large rotate: false - xy: 1703, 683 + xy: 1753, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-dunerocks-medium +block-draug-factory-medium rotate: false - xy: 495, 460 + xy: 587, 415 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-dunerocks-small +block-draug-factory-small rotate: false - xy: 1747, 425 + xy: 1183, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-dunerocks-tiny +block-draug-factory-tiny rotate: false - xy: 1283, 275 + xy: 1781, 233 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-dunerocks-xlarge +block-draug-factory-xlarge rotate: false xy: 1595, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-duo-large +block-dunerocks-large rotate: false - xy: 1745, 683 + xy: 1795, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-duo-medium +block-dunerocks-medium rotate: false - xy: 427, 358 + xy: 587, 381 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-duo-small +block-dunerocks-small rotate: false - xy: 1773, 425 + xy: 1209, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-duo-tiny +block-dunerocks-tiny rotate: false - xy: 1278, 257 + xy: 1799, 233 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-duo-xlarge +block-dunerocks-xlarge rotate: false xy: 1645, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-force-projector-large +block-duo-large rotate: false - xy: 1787, 683 + xy: 1837, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-force-projector-medium +block-duo-medium rotate: false - xy: 461, 392 + xy: 587, 347 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-force-projector-small +block-duo-small rotate: false - xy: 1799, 425 + xy: 1235, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-force-projector-tiny +block-duo-tiny rotate: false - xy: 1278, 239 + xy: 1817, 233 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-force-projector-xlarge +block-duo-xlarge rotate: false xy: 1695, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-fortress-factory-large +block-force-projector-large rotate: false - xy: 1829, 683 + xy: 1879, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-fortress-factory-medium +block-force-projector-medium rotate: false - xy: 495, 426 + xy: 587, 313 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-fortress-factory-small +block-force-projector-small rotate: false - xy: 1305, 405 + xy: 1261, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-fortress-factory-tiny +block-force-projector-tiny rotate: false - xy: 1260, 223 + xy: 1835, 233 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-fortress-factory-xlarge +block-force-projector-xlarge rotate: false xy: 1745, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-fuse-large +block-fortress-factory-large rotate: false - xy: 1871, 683 + xy: 1921, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-fuse-medium +block-fortress-factory-medium rotate: false - xy: 427, 324 + xy: 587, 279 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-fuse-small +block-fortress-factory-small rotate: false - xy: 1331, 407 + xy: 1287, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-fuse-tiny +block-fortress-factory-tiny rotate: false - xy: 1278, 221 + xy: 1853, 233 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-fuse-xlarge +block-fortress-factory-xlarge rotate: false xy: 1795, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ghoul-factory-large +block-fuse-large rotate: false - xy: 1913, 683 + xy: 1963, 683 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ghoul-factory-medium +block-fuse-medium rotate: false - xy: 461, 358 + xy: 587, 245 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ghoul-factory-small +block-fuse-small rotate: false - xy: 1357, 407 + xy: 1313, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ghoul-factory-tiny +block-fuse-tiny rotate: false - xy: 1296, 257 + xy: 1871, 233 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ghoul-factory-xlarge +block-fuse-xlarge rotate: false xy: 1845, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-glaive-ship-pad-large - rotate: false - xy: 1955, 683 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-glaive-ship-pad-medium - rotate: false - xy: 495, 392 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-glaive-ship-pad-small - rotate: false - xy: 1383, 407 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-glaive-ship-pad-tiny - rotate: false - xy: 1296, 239 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-glaive-ship-pad-xlarge - rotate: false - xy: 1895, 975 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-graphite-press-large +block-ghoul-factory-large rotate: false xy: 1987, 733 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-graphite-press-medium +block-ghoul-factory-medium rotate: false - xy: 427, 290 + xy: 629, 478 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-graphite-press-small +block-ghoul-factory-small rotate: false - xy: 1409, 407 + xy: 1339, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-graphite-press-tiny +block-ghoul-factory-tiny rotate: false - xy: 1296, 221 + xy: 1889, 233 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-graphite-press-xlarge +block-ghoul-factory-xlarge + rotate: false + xy: 1895, 975 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-glaive-ship-pad-large + rotate: false + xy: 2005, 691 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-glaive-ship-pad-medium + rotate: false + xy: 553, 182 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-glaive-ship-pad-small + rotate: false + xy: 1365, 339 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-glaive-ship-pad-tiny + rotate: false + xy: 1907, 233 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-glaive-ship-pad-xlarge rotate: false xy: 1945, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-grass-large +block-graphite-press-large rotate: false - xy: 1997, 691 + xy: 343, 533 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-grass-medium +block-graphite-press-medium rotate: false - xy: 461, 324 + xy: 587, 211 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-grass-small +block-graphite-press-small rotate: false - xy: 1435, 407 + xy: 1391, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-grass-tiny +block-graphite-press-tiny rotate: false - xy: 1314, 267 + xy: 1925, 233 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-grass-xlarge +block-graphite-press-xlarge rotate: false xy: 1995, 975 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-hail-large +block-grass-large rotate: false - xy: 351, 549 + xy: 343, 491 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hail-medium +block-grass-medium rotate: false - xy: 495, 358 + xy: 549, 148 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hail-small +block-grass-small rotate: false - xy: 1461, 407 + xy: 1417, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hail-tiny +block-grass-tiny rotate: false - xy: 1332, 267 + xy: 1943, 233 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hail-xlarge +block-grass-xlarge rotate: false xy: 237, 717 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-holostone-large +block-hail-large rotate: false - xy: 343, 507 + xy: 343, 449 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-holostone-medium +block-hail-medium rotate: false - xy: 427, 256 + xy: 549, 114 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-holostone-small +block-hail-small rotate: false - xy: 1487, 407 + xy: 1443, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-holostone-tiny +block-hail-tiny rotate: false - xy: 1314, 249 + xy: 1961, 233 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-holostone-xlarge +block-hail-xlarge rotate: false xy: 51, 667 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-hotrock-large +block-holostone-large rotate: false - xy: 343, 465 + xy: 343, 407 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-hotrock-medium +block-holostone-medium rotate: false - xy: 461, 290 + xy: 549, 80 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-hotrock-small +block-holostone-small rotate: false - xy: 1513, 407 + xy: 1469, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-hotrock-tiny +block-holostone-tiny rotate: false - xy: 1350, 267 + xy: 1979, 233 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-hotrock-xlarge +block-holostone-xlarge rotate: false xy: 51, 617 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ice-large +block-hotrock-large rotate: false - xy: 343, 423 + xy: 343, 365 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ice-medium +block-hotrock-medium rotate: false - xy: 495, 324 + xy: 549, 46 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ice-small +block-hotrock-small rotate: false - xy: 1539, 407 + xy: 1495, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ice-snow-large +block-hotrock-tiny rotate: false - xy: 343, 381 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-ice-snow-medium - rotate: false - xy: 427, 222 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-ice-snow-small - rotate: false - xy: 1565, 407 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-ice-snow-tiny - rotate: false - xy: 1314, 231 + xy: 2010, 423 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ice-snow-xlarge +block-hotrock-xlarge rotate: false xy: 101, 667 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ice-tiny +block-ice-large rotate: false - xy: 1332, 249 + xy: 343, 323 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ice-medium + rotate: false + xy: 587, 177 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-small + rotate: false + xy: 1521, 339 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ice-snow-large + rotate: false + xy: 343, 281 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-ice-snow-medium + rotate: false + xy: 583, 143 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-ice-snow-small + rotate: false + xy: 1547, 339 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-ice-snow-tiny + rotate: false + xy: 2010, 405 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ice-xlarge +block-ice-snow-xlarge rotate: false xy: 51, 567 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-icerocks-large +block-ice-tiny rotate: false - xy: 343, 339 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-icerocks-medium - rotate: false - xy: 461, 256 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-icerocks-small - rotate: false - xy: 1591, 407 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-icerocks-tiny - rotate: false - xy: 1368, 267 + xy: 2028, 423 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-icerocks-xlarge +block-ice-xlarge rotate: false xy: 101, 617 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ignarock-large +block-icerocks-large rotate: false - xy: 343, 297 + xy: 343, 239 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ignarock-medium +block-icerocks-medium rotate: false - xy: 495, 290 + xy: 583, 109 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ignarock-small +block-icerocks-small rotate: false - xy: 1617, 407 + xy: 1573, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ignarock-tiny +block-icerocks-tiny rotate: false - xy: 1332, 231 + xy: 2028, 405 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ignarock-xlarge +block-icerocks-xlarge rotate: false xy: 151, 667 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-impact-reactor-large +block-ignarock-large rotate: false - xy: 343, 255 + xy: 343, 197 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-impact-reactor-medium +block-ignarock-medium rotate: false - xy: 427, 188 + xy: 583, 75 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-impact-reactor-small +block-ignarock-small rotate: false - xy: 1643, 407 + xy: 1599, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-impact-reactor-tiny +block-ignarock-tiny rotate: false - xy: 1350, 249 + xy: 2015, 387 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-impact-reactor-xlarge +block-ignarock-xlarge rotate: false xy: 51, 517 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-incinerator-large +block-illuminator-large rotate: false - xy: 343, 213 + xy: 343, 155 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-incinerator-medium +block-illuminator-medium rotate: false - xy: 461, 222 + xy: 583, 41 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-incinerator-small +block-illuminator-small rotate: false - xy: 1669, 407 + xy: 1625, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-incinerator-tiny +block-illuminator-tiny rotate: false - xy: 1386, 267 + xy: 2015, 369 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-incinerator-xlarge +block-illuminator-xlarge rotate: false xy: 101, 567 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-inverted-sorter-large +block-impact-reactor-large rotate: false - xy: 343, 171 + xy: 343, 113 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-inverted-sorter-medium +block-impact-reactor-medium rotate: false - xy: 495, 256 + xy: 1963, 565 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-inverted-sorter-small +block-impact-reactor-small rotate: false - xy: 1695, 407 + xy: 1651, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-inverted-sorter-tiny +block-impact-reactor-tiny rotate: false - xy: 1350, 231 + xy: 2015, 351 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-inverted-sorter-xlarge +block-impact-reactor-xlarge rotate: false xy: 151, 617 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-item-source-large +block-incinerator-large rotate: false - xy: 343, 129 + xy: 343, 71 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-item-source-medium +block-incinerator-medium rotate: false - xy: 427, 154 + xy: 701, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-item-source-small +block-incinerator-small rotate: false - xy: 1721, 407 + xy: 1677, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-item-source-tiny +block-incinerator-tiny rotate: false - xy: 1368, 249 + xy: 2015, 333 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-item-source-xlarge +block-incinerator-xlarge rotate: false xy: 201, 667 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-item-void-large +block-inverted-sorter-large rotate: false - xy: 343, 87 + xy: 343, 29 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-item-void-medium +block-inverted-sorter-medium rotate: false - xy: 461, 188 + xy: 735, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-item-void-small +block-inverted-sorter-small rotate: false - xy: 1747, 399 + xy: 1703, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-item-void-tiny +block-inverted-sorter-tiny rotate: false - xy: 1404, 267 + xy: 2013, 315 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-item-void-xlarge +block-inverted-sorter-xlarge rotate: false xy: 51, 467 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-javelin-ship-pad-large +block-item-source-large rotate: false - xy: 343, 45 + xy: 393, 583 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-javelin-ship-pad-medium +block-item-source-medium rotate: false - xy: 495, 222 + xy: 769, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-javelin-ship-pad-small +block-item-source-small rotate: false - xy: 1773, 399 + xy: 1729, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-javelin-ship-pad-tiny +block-item-source-tiny rotate: false - xy: 1368, 231 + xy: 2031, 315 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-javelin-ship-pad-xlarge +block-item-source-xlarge rotate: false xy: 101, 517 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-junction-large +block-item-void-large rotate: false - xy: 343, 3 + xy: 385, 541 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-junction-medium +block-item-void-medium rotate: false - xy: 427, 120 + xy: 803, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-junction-small +block-item-void-small rotate: false - xy: 1799, 399 + xy: 1755, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-junction-tiny +block-item-void-tiny rotate: false - xy: 1386, 249 + xy: 2023, 297 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-junction-xlarge +block-item-void-xlarge rotate: false xy: 151, 567 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-kiln-large +block-javelin-ship-pad-large rotate: false - xy: 393, 633 + xy: 385, 499 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-kiln-medium +block-javelin-ship-pad-medium rotate: false - xy: 461, 154 + xy: 837, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-kiln-small +block-javelin-ship-pad-small rotate: false - xy: 1825, 413 + xy: 1781, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-kiln-tiny +block-javelin-ship-pad-tiny rotate: false - xy: 1422, 267 + xy: 2023, 279 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-kiln-xlarge +block-javelin-ship-pad-xlarge rotate: false xy: 201, 617 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-lancer-large +block-junction-large rotate: false - xy: 393, 591 + xy: 385, 457 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-lancer-medium +block-junction-medium rotate: false - xy: 495, 188 + xy: 871, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-lancer-small +block-junction-small rotate: false - xy: 1851, 413 + xy: 1807, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-lancer-tiny +block-junction-tiny rotate: false - xy: 1386, 231 + xy: 2023, 261 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-lancer-xlarge +block-junction-xlarge rotate: false xy: 51, 417 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-laser-drill-large +block-kiln-large rotate: false - xy: 393, 549 + xy: 385, 415 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-laser-drill-medium +block-kiln-medium rotate: false - xy: 427, 86 + xy: 905, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-laser-drill-small +block-kiln-small rotate: false - xy: 1825, 387 + xy: 1833, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-laser-drill-tiny +block-kiln-tiny rotate: false - xy: 1404, 249 + xy: 2023, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-laser-drill-xlarge +block-kiln-xlarge rotate: false xy: 101, 467 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-launch-pad-large +block-lancer-large rotate: false - xy: 385, 507 + xy: 385, 373 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-launch-pad-large-large +block-lancer-medium rotate: false - xy: 385, 465 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-launch-pad-large-medium - rotate: false - xy: 461, 120 + xy: 939, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-launch-pad-large-small +block-lancer-small rotate: false - xy: 1851, 387 + xy: 1859, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-launch-pad-large-tiny +block-lancer-tiny rotate: false - xy: 1440, 267 + xy: 547, 2 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-launch-pad-large-xlarge +block-lancer-xlarge rotate: false xy: 151, 517 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-launch-pad-medium +block-laser-drill-large rotate: false - xy: 495, 154 + xy: 385, 331 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-laser-drill-medium + rotate: false + xy: 973, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-launch-pad-small +block-laser-drill-small rotate: false - xy: 1877, 396 + xy: 1885, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-launch-pad-tiny +block-laser-drill-tiny rotate: false - xy: 1404, 231 + xy: 1055, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-launch-pad-xlarge +block-laser-drill-xlarge rotate: false xy: 201, 567 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-junction-large +block-launch-pad-large rotate: false - xy: 385, 423 + xy: 385, 289 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-junction-medium +block-launch-pad-large-large rotate: false - xy: 427, 52 + xy: 385, 247 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-launch-pad-large-medium + rotate: false + xy: 1007, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-junction-small +block-launch-pad-large-small rotate: false - xy: 1903, 396 + xy: 1911, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-junction-tiny +block-launch-pad-large-tiny rotate: false - xy: 1422, 249 + xy: 1049, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-junction-xlarge +block-launch-pad-large-xlarge rotate: false xy: 51, 367 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-router-large +block-launch-pad-medium rotate: false - xy: 385, 381 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-liquid-router-medium - rotate: false - xy: 461, 86 + xy: 1041, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-router-small +block-launch-pad-small rotate: false - xy: 1929, 396 + xy: 1937, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-router-tiny +block-launch-pad-tiny rotate: false - xy: 1458, 267 + xy: 1049, 103 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-router-xlarge +block-launch-pad-xlarge rotate: false xy: 101, 417 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-source-large +block-liquid-junction-large rotate: false - xy: 385, 339 + xy: 385, 205 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-source-medium +block-liquid-junction-medium rotate: false - xy: 495, 120 + xy: 1075, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-source-small +block-liquid-junction-small rotate: false - xy: 1955, 396 + xy: 1963, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-source-tiny +block-liquid-junction-tiny rotate: false - xy: 1422, 231 + xy: 1049, 85 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-source-xlarge +block-liquid-junction-xlarge rotate: false xy: 151, 467 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-liquid-tank-large +block-liquid-router-large rotate: false - xy: 385, 297 + xy: 385, 163 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-liquid-tank-medium +block-liquid-router-medium rotate: false - xy: 427, 18 + xy: 1109, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-liquid-tank-small +block-liquid-router-small rotate: false - xy: 1981, 398 + xy: 1129, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-liquid-tank-tiny +block-liquid-router-tiny rotate: false - xy: 1440, 249 + xy: 1073, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-liquid-tank-xlarge +block-liquid-router-xlarge rotate: false xy: 201, 517 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-magmarock-large +block-liquid-source-large rotate: false - xy: 385, 255 + xy: 385, 121 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-magmarock-medium +block-liquid-source-medium rotate: false - xy: 461, 52 + xy: 1143, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-magmarock-small +block-liquid-source-small rotate: false - xy: 2007, 398 + xy: 1155, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-magmarock-tiny +block-liquid-source-tiny rotate: false - xy: 1476, 267 + xy: 1067, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-magmarock-xlarge +block-liquid-source-xlarge rotate: false xy: 51, 317 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mass-driver-large +block-liquid-tank-large rotate: false - xy: 385, 213 + xy: 385, 79 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mass-driver-medium +block-liquid-tank-medium rotate: false - xy: 495, 86 + xy: 1177, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mass-driver-small +block-liquid-tank-small rotate: false - xy: 1877, 370 + xy: 1181, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mass-driver-tiny +block-liquid-tank-tiny rotate: false - xy: 1440, 231 + xy: 1067, 103 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mass-driver-xlarge +block-liquid-tank-xlarge rotate: false xy: 101, 367 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mechanical-drill-large +block-magmarock-large rotate: false - xy: 385, 171 + xy: 385, 37 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mechanical-drill-medium +block-magmarock-medium rotate: false - xy: 461, 18 + xy: 1211, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mechanical-drill-small +block-magmarock-small rotate: false - xy: 1903, 370 + xy: 1207, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mechanical-drill-tiny +block-magmarock-tiny rotate: false - xy: 1458, 249 + xy: 1067, 85 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mechanical-drill-xlarge +block-magmarock-xlarge rotate: false xy: 151, 417 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mechanical-pump-large +block-mass-driver-large rotate: false - xy: 385, 129 + xy: 443, 633 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mechanical-pump-medium +block-mass-driver-medium rotate: false - xy: 495, 52 + xy: 1245, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mechanical-pump-small +block-mass-driver-small rotate: false - xy: 1929, 370 + xy: 1233, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mechanical-pump-tiny +block-mass-driver-tiny rotate: false - xy: 1494, 267 + xy: 1085, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mechanical-pump-xlarge +block-mass-driver-xlarge rotate: false xy: 201, 467 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-meltdown-large +block-mechanical-drill-large rotate: false - xy: 385, 87 + xy: 435, 591 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-meltdown-medium +block-mechanical-drill-medium rotate: false - xy: 495, 18 + xy: 1279, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-meltdown-small +block-mechanical-drill-small rotate: false - xy: 1955, 370 + xy: 1259, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-meltdown-tiny +block-mechanical-drill-tiny rotate: false - xy: 1458, 231 + xy: 1085, 103 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-meltdown-xlarge +block-mechanical-drill-xlarge rotate: false xy: 51, 267 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-melter-large +block-mechanical-pump-large rotate: false - xy: 385, 45 + xy: 485, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-melter-medium +block-mechanical-pump-medium rotate: false - xy: 529, 489 + xy: 1313, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-melter-small +block-mechanical-pump-small rotate: false - xy: 1981, 372 + xy: 1285, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-melter-tiny +block-mechanical-pump-tiny rotate: false - xy: 1476, 249 + xy: 1085, 85 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-melter-xlarge +block-mechanical-pump-xlarge rotate: false xy: 101, 317 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mend-projector-large +block-meltdown-large rotate: false - xy: 385, 3 + xy: 527, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mend-projector-medium +block-meltdown-medium rotate: false - xy: 529, 455 + xy: 1347, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mend-projector-small +block-meltdown-small rotate: false - xy: 2007, 372 + xy: 1311, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mend-projector-tiny +block-meltdown-tiny rotate: false - xy: 1512, 267 + xy: 1103, 257 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mend-projector-xlarge +block-meltdown-xlarge rotate: false xy: 151, 367 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-mender-large +block-melter-large rotate: false - xy: 435, 641 + xy: 569, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-mender-medium +block-melter-medium rotate: false - xy: 563, 489 + xy: 1381, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-mender-small +block-melter-small rotate: false - xy: 1169, 295 + xy: 1337, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-mender-tiny +block-melter-tiny rotate: false - xy: 1476, 231 + xy: 1121, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-mender-xlarge +block-melter-xlarge rotate: false xy: 201, 417 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-message-large +block-mend-projector-large rotate: false - xy: 435, 599 + xy: 611, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-message-medium +block-mend-projector-medium rotate: false - xy: 529, 421 + xy: 1415, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-message-small +block-mend-projector-small rotate: false - xy: 1195, 297 + xy: 1363, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-message-tiny +block-mend-projector-tiny rotate: false - xy: 1494, 249 + xy: 1139, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-message-xlarge +block-mend-projector-xlarge rotate: false xy: 51, 217 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-2-large +block-mender-large rotate: false - xy: 477, 641 + xy: 653, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-2-medium +block-mender-medium rotate: false - xy: 563, 455 + xy: 1449, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-2-small +block-mender-small rotate: false - xy: 1263, 313 + xy: 1389, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-2-tiny +block-mender-tiny rotate: false - xy: 1530, 267 + xy: 1157, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-2-xlarge +block-mender-xlarge rotate: false xy: 101, 267 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-3-large +block-message-large rotate: false - xy: 435, 557 + xy: 695, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-3-medium +block-message-medium rotate: false - xy: 597, 489 + xy: 1483, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-3-small +block-message-small rotate: false - xy: 1103, 165 + xy: 1415, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-3-tiny +block-message-tiny rotate: false - xy: 1494, 231 + xy: 1175, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-3-xlarge +block-message-xlarge rotate: false xy: 151, 317 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-5-large +block-metal-floor-2-large rotate: false - xy: 477, 599 + xy: 737, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-5-medium +block-metal-floor-2-medium rotate: false - xy: 529, 387 + xy: 1517, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-5-small +block-metal-floor-2-small rotate: false - xy: 1123, 79 + xy: 1441, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-5-tiny +block-metal-floor-2-tiny rotate: false - xy: 1512, 249 + xy: 1193, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-5-xlarge +block-metal-floor-2-xlarge rotate: false xy: 201, 367 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-damaged-large +block-metal-floor-3-large rotate: false - xy: 519, 641 + xy: 779, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-damaged-medium +block-metal-floor-3-medium rotate: false - xy: 563, 421 + xy: 1551, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-damaged-small +block-metal-floor-3-small rotate: false - xy: 1123, 53 + xy: 1467, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-damaged-tiny +block-metal-floor-3-tiny rotate: false - xy: 1548, 267 + xy: 1211, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-damaged-xlarge +block-metal-floor-3-xlarge rotate: false xy: 51, 167 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-metal-floor-large +block-metal-floor-5-large rotate: false - xy: 477, 557 + xy: 821, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-metal-floor-medium +block-metal-floor-5-medium rotate: false - xy: 597, 455 + xy: 1585, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-metal-floor-small +block-metal-floor-5-small rotate: false - xy: 1271, 397 + xy: 1493, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-metal-floor-tiny +block-metal-floor-5-tiny rotate: false - xy: 1512, 231 + xy: 1229, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-metal-floor-xlarge +block-metal-floor-5-xlarge rotate: false xy: 101, 217 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-moss-large +block-metal-floor-damaged-large rotate: false - xy: 519, 599 + xy: 863, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-moss-medium +block-metal-floor-damaged-medium rotate: false - xy: 631, 489 + xy: 1619, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-moss-small +block-metal-floor-damaged-small rotate: false - xy: 1331, 381 + xy: 1519, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-moss-tiny +block-metal-floor-damaged-tiny rotate: false - xy: 1530, 249 + xy: 1247, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-moss-xlarge +block-metal-floor-damaged-xlarge rotate: false xy: 151, 267 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-multi-press-large +block-metal-floor-large rotate: false - xy: 561, 641 + xy: 905, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-multi-press-medium +block-metal-floor-medium rotate: false - xy: 529, 353 + xy: 1653, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-multi-press-small +block-metal-floor-small rotate: false - xy: 1357, 381 + xy: 1545, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-multi-press-tiny +block-metal-floor-tiny rotate: false - xy: 1566, 267 + xy: 1265, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-multi-press-xlarge +block-metal-floor-xlarge rotate: false xy: 201, 317 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-oil-extractor-large +block-moss-large rotate: false - xy: 519, 557 + xy: 947, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-oil-extractor-medium +block-moss-medium rotate: false - xy: 563, 387 + xy: 1687, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-oil-extractor-small +block-moss-small rotate: false - xy: 1383, 381 + xy: 1571, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-oil-extractor-tiny +block-moss-tiny rotate: false - xy: 1530, 231 + xy: 1283, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-oil-extractor-xlarge +block-moss-xlarge rotate: false xy: 51, 117 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-omega-mech-pad-large +block-multi-press-large rotate: false - xy: 561, 599 + xy: 989, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-omega-mech-pad-medium +block-multi-press-medium rotate: false - xy: 597, 421 + xy: 1721, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-omega-mech-pad-small +block-multi-press-small rotate: false - xy: 1409, 381 + xy: 1597, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-omega-mech-pad-tiny +block-multi-press-tiny rotate: false - xy: 1548, 249 + xy: 1301, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-omega-mech-pad-xlarge +block-multi-press-xlarge rotate: false xy: 101, 167 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overdrive-projector-large +block-oil-extractor-large rotate: false - xy: 603, 641 + xy: 1031, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overdrive-projector-medium +block-oil-extractor-medium rotate: false - xy: 631, 455 + xy: 1755, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overdrive-projector-small +block-oil-extractor-small rotate: false - xy: 1435, 381 + xy: 1623, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overdrive-projector-tiny +block-oil-extractor-tiny rotate: false - xy: 1584, 267 + xy: 1319, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overdrive-projector-xlarge +block-oil-extractor-xlarge rotate: false xy: 151, 217 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-overflow-gate-large +block-omega-mech-pad-large rotate: false - xy: 561, 557 + xy: 1073, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-overflow-gate-medium +block-omega-mech-pad-medium rotate: false - xy: 665, 489 + xy: 1789, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-overflow-gate-small +block-omega-mech-pad-small rotate: false - xy: 1461, 381 + xy: 1649, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-overflow-gate-tiny +block-omega-mech-pad-tiny rotate: false - xy: 1548, 231 + xy: 1337, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-overflow-gate-xlarge +block-omega-mech-pad-xlarge rotate: false xy: 201, 267 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pebbles-large +block-overdrive-projector-large rotate: false - xy: 603, 599 + xy: 1115, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pebbles-medium +block-overdrive-projector-medium rotate: false - xy: 529, 319 + xy: 1823, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pebbles-small +block-overdrive-projector-small rotate: false - xy: 1487, 381 + xy: 1675, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pebbles-tiny +block-overdrive-projector-tiny rotate: false - xy: 1566, 249 + xy: 1355, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pebbles-xlarge +block-overdrive-projector-xlarge rotate: false xy: 51, 67 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phantom-factory-large +block-overflow-gate-large rotate: false - xy: 645, 641 + xy: 1157, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phantom-factory-medium +block-overflow-gate-medium rotate: false - xy: 563, 353 + xy: 1857, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phantom-factory-small +block-overflow-gate-small rotate: false - xy: 1513, 381 + xy: 1701, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phantom-factory-tiny +block-overflow-gate-tiny rotate: false - xy: 1602, 267 + xy: 1373, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phantom-factory-xlarge +block-overflow-gate-xlarge rotate: false xy: 101, 117 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conduit-large +block-pebbles-large rotate: false - xy: 603, 557 + xy: 1199, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conduit-medium +block-pebbles-medium rotate: false - xy: 597, 387 + xy: 1891, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conduit-small +block-pebbles-small rotate: false - xy: 1539, 381 + xy: 1727, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conduit-tiny +block-pebbles-tiny rotate: false - xy: 1566, 231 + xy: 1391, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conduit-xlarge +block-pebbles-xlarge rotate: false xy: 151, 167 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-conveyor-large +block-phantom-factory-large rotate: false - xy: 645, 599 + xy: 1241, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-conveyor-medium +block-phantom-factory-medium rotate: false - xy: 631, 421 + xy: 1925, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-conveyor-small +block-phantom-factory-small rotate: false - xy: 1565, 381 + xy: 1753, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-conveyor-tiny +block-phantom-factory-tiny rotate: false - xy: 1584, 249 + xy: 1409, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-conveyor-xlarge +block-phantom-factory-xlarge rotate: false xy: 201, 217 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-large +block-phase-conduit-large rotate: false - xy: 687, 641 + xy: 1283, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-wall-large-large +block-phase-conduit-medium rotate: false - xy: 645, 557 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-phase-wall-large-medium - rotate: false - xy: 665, 455 + xy: 1959, 531 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-wall-large-small +block-phase-conduit-small rotate: false - xy: 1591, 381 + xy: 1779, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-wall-large-tiny +block-phase-conduit-tiny rotate: false - xy: 1620, 267 + xy: 1427, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-wall-large-xlarge +block-phase-conduit-xlarge rotate: false xy: 101, 67 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-wall-medium +block-phase-conveyor-large rotate: false - xy: 699, 489 + xy: 1325, 641 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-conveyor-medium + rotate: false + xy: 667, 502 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-wall-small +block-phase-conveyor-small rotate: false - xy: 1617, 381 + xy: 1805, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-wall-tiny +block-phase-conveyor-tiny rotate: false - xy: 1584, 231 + xy: 1445, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-wall-xlarge +block-phase-conveyor-xlarge rotate: false xy: 151, 117 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-phase-weaver-large +block-phase-wall-large rotate: false - xy: 687, 599 + xy: 1367, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-phase-weaver-medium +block-phase-wall-large-large rotate: false - xy: 529, 285 + xy: 1409, 641 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-phase-wall-large-medium + rotate: false + xy: 701, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-phase-weaver-small +block-phase-wall-large-small rotate: false - xy: 1643, 381 + xy: 1831, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-phase-weaver-tiny +block-phase-wall-large-tiny rotate: false - xy: 1602, 249 + xy: 1463, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-phase-weaver-xlarge +block-phase-wall-large-xlarge rotate: false xy: 201, 167 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pine-large +block-phase-wall-medium rotate: false - xy: 729, 641 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-pine-medium - rotate: false - xy: 563, 319 + xy: 735, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pine-small +block-phase-wall-small rotate: false - xy: 1669, 381 + xy: 1857, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pine-tiny +block-phase-wall-tiny rotate: false - xy: 1638, 267 + xy: 1481, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pine-xlarge +block-phase-wall-xlarge rotate: false xy: 151, 67 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-compressor-large +block-phase-weaver-large rotate: false - xy: 687, 557 + xy: 1451, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-compressor-medium +block-phase-weaver-medium rotate: false - xy: 597, 353 + xy: 769, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-compressor-small +block-phase-weaver-small rotate: false - xy: 1695, 381 + xy: 1883, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-compressor-tiny +block-phase-weaver-tiny rotate: false - xy: 1602, 231 + xy: 1499, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-compressor-xlarge +block-phase-weaver-xlarge rotate: false xy: 201, 117 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-large +block-pine-large rotate: false - xy: 729, 599 + xy: 1493, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-plastanium-wall-large-large +block-pine-medium rotate: false - xy: 771, 641 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-plastanium-wall-large-medium - rotate: false - xy: 631, 387 + xy: 803, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-large-small +block-pine-small rotate: false - xy: 1721, 381 + xy: 1909, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-large-tiny +block-pine-tiny rotate: false - xy: 1620, 249 + xy: 1517, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-large-xlarge +block-pine-xlarge rotate: false xy: 201, 67 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-plastanium-wall-medium +block-plastanium-compressor-large rotate: false - xy: 665, 421 + xy: 1535, 641 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-compressor-medium + rotate: false + xy: 837, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-plastanium-wall-small +block-plastanium-compressor-small rotate: false - xy: 1747, 373 + xy: 1935, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-plastanium-wall-tiny +block-plastanium-compressor-tiny rotate: false - xy: 1656, 267 + xy: 1535, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-plastanium-wall-xlarge +block-plastanium-compressor-xlarge rotate: false xy: 51, 17 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pneumatic-drill-large +block-plastanium-wall-large rotate: false - xy: 729, 557 + xy: 1577, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pneumatic-drill-medium +block-plastanium-wall-large-large rotate: false - xy: 699, 455 + xy: 1619, 641 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-plastanium-wall-large-medium + rotate: false + xy: 871, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pneumatic-drill-small +block-plastanium-wall-large-small rotate: false - xy: 1773, 373 + xy: 1961, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pneumatic-drill-tiny +block-plastanium-wall-large-tiny rotate: false - xy: 1620, 231 + xy: 1553, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pneumatic-drill-xlarge +block-plastanium-wall-large-xlarge rotate: false xy: 101, 17 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-large +block-plastanium-wall-medium rotate: false - xy: 771, 599 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-node-large-large - rotate: false - xy: 813, 641 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-node-large-medium - rotate: false - xy: 733, 489 + xy: 905, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-node-large-small +block-plastanium-wall-small rotate: false - xy: 1799, 373 + xy: 997, 121 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-node-large-tiny +block-plastanium-wall-tiny rotate: false - xy: 1638, 249 + xy: 1571, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-node-large-xlarge +block-plastanium-wall-xlarge rotate: false xy: 151, 17 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-node-medium +block-pneumatic-drill-large rotate: false - xy: 529, 251 + xy: 1661, 641 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-pneumatic-drill-medium + rotate: false + xy: 939, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-node-small +block-pneumatic-drill-small rotate: false - xy: 1825, 361 + xy: 997, 95 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-node-tiny +block-pneumatic-drill-tiny rotate: false - xy: 1674, 267 + xy: 1589, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-node-xlarge +block-pneumatic-drill-xlarge rotate: false xy: 201, 17 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-source-large +block-power-node-large rotate: false - xy: 771, 557 + xy: 1703, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-power-source-medium +block-power-node-large-large rotate: false - xy: 563, 285 + xy: 1745, 641 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-power-node-large-medium + rotate: false + xy: 973, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-source-small +block-power-node-large-small rotate: false - xy: 1851, 361 + xy: 997, 69 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-source-tiny +block-power-node-large-tiny rotate: false - xy: 1638, 231 + xy: 1607, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-source-xlarge +block-power-node-large-xlarge rotate: false xy: 251, 667 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-power-void-large +block-power-node-medium rotate: false - xy: 813, 599 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-power-void-medium - rotate: false - xy: 597, 319 + xy: 1007, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-power-void-small +block-power-node-small rotate: false - xy: 1877, 344 + xy: 1001, 147 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-power-void-tiny +block-power-node-tiny rotate: false - xy: 1656, 249 + xy: 1625, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-power-void-xlarge +block-power-node-xlarge rotate: false xy: 251, 617 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulse-conduit-large +block-power-source-large rotate: false - xy: 855, 641 + xy: 1787, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulse-conduit-medium +block-power-source-medium rotate: false - xy: 631, 353 + xy: 1041, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulse-conduit-small +block-power-source-small rotate: false - xy: 1903, 344 + xy: 991, 43 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulse-conduit-tiny +block-power-source-tiny rotate: false - xy: 1692, 267 + xy: 1643, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulse-conduit-xlarge +block-power-source-xlarge rotate: false xy: 251, 567 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pulverizer-large +block-power-void-large rotate: false - xy: 813, 557 + xy: 1829, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pulverizer-medium +block-power-void-medium rotate: false - xy: 665, 387 + xy: 1075, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pulverizer-small +block-power-void-small rotate: false - xy: 1929, 344 + xy: 1017, 43 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pulverizer-tiny +block-power-void-tiny rotate: false - xy: 1656, 231 + xy: 1661, 243 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pulverizer-xlarge +block-power-void-xlarge rotate: false xy: 251, 517 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-pyratite-mixer-large +block-pulse-conduit-large rotate: false - xy: 855, 599 + xy: 1871, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-pyratite-mixer-medium +block-pulse-conduit-medium rotate: false - xy: 699, 421 + xy: 1109, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-pyratite-mixer-small +block-pulse-conduit-small rotate: false - xy: 1955, 344 + xy: 991, 17 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-pyratite-mixer-tiny +block-pulse-conduit-tiny rotate: false - xy: 1674, 249 + xy: 1103, 239 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-pyratite-mixer-xlarge +block-pulse-conduit-xlarge rotate: false xy: 251, 467 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-repair-point-large +block-pulverizer-large rotate: false - xy: 897, 641 + xy: 1913, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-repair-point-medium +block-pulverizer-medium rotate: false - xy: 733, 455 + xy: 1143, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-repair-point-small +block-pulverizer-small rotate: false - xy: 1981, 346 + xy: 1017, 17 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-repair-point-tiny +block-pulverizer-tiny rotate: false - xy: 1710, 267 + xy: 1121, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-repair-point-xlarge +block-pulverizer-xlarge rotate: false xy: 251, 417 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-revenant-factory-large +block-pyratite-mixer-large rotate: false - xy: 855, 557 + xy: 1955, 641 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-revenant-factory-medium +block-pyratite-mixer-medium rotate: false - xy: 767, 489 + xy: 1177, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-revenant-factory-small +block-pyratite-mixer-small rotate: false - xy: 2007, 346 + xy: 1023, 121 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-revenant-factory-tiny +block-pyratite-mixer-tiny rotate: false - xy: 1674, 231 + xy: 1139, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-revenant-factory-xlarge +block-pyratite-mixer-xlarge rotate: false xy: 251, 367 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-ripple-large +block-repair-point-large rotate: false - xy: 897, 599 + xy: 2005, 649 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-ripple-medium +block-repair-point-medium rotate: false - xy: 529, 217 + xy: 1211, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-ripple-small +block-repair-point-small rotate: false - xy: 1203, 329 + xy: 1023, 95 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-ripple-tiny +block-repair-point-tiny rotate: false - xy: 1692, 249 + xy: 1157, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-ripple-xlarge +block-repair-point-xlarge rotate: false xy: 251, 317 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rock-large +block-revenant-factory-large rotate: false - xy: 939, 641 + xy: 427, 541 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rock-medium +block-revenant-factory-medium rotate: false - xy: 563, 251 + xy: 1245, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rock-small +block-revenant-factory-small rotate: false - xy: 1195, 271 + xy: 1023, 69 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rock-tiny +block-revenant-factory-tiny rotate: false - xy: 1692, 231 + xy: 1175, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rock-xlarge +block-revenant-factory-xlarge rotate: false xy: 251, 267 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rocks-large +block-ripple-large rotate: false - xy: 897, 557 + xy: 427, 499 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rocks-medium +block-ripple-medium rotate: false - xy: 597, 285 + xy: 1279, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rocks-small +block-ripple-small rotate: false - xy: 1190, 245 + xy: 1043, 43 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rocks-tiny +block-ripple-tiny rotate: false - xy: 1710, 249 + xy: 1193, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rocks-xlarge +block-ripple-xlarge rotate: false xy: 251, 217 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rotary-pump-large +block-rock-large rotate: false - xy: 939, 599 + xy: 427, 457 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rotary-pump-medium +block-rock-medium rotate: false - xy: 631, 319 + xy: 1313, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rotary-pump-small +block-rock-small rotate: false - xy: 1190, 219 + xy: 1043, 17 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rotary-pump-tiny +block-rock-tiny rotate: false - xy: 1710, 231 + xy: 1211, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rotary-pump-xlarge +block-rock-xlarge rotate: false xy: 251, 167 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-router-large +block-rocks-large rotate: false - xy: 981, 641 + xy: 427, 415 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-router-medium +block-rocks-medium rotate: false - xy: 665, 353 + xy: 1347, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-router-small +block-rocks-small rotate: false - xy: 1216, 245 + xy: 1989, 365 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-router-tiny +block-rocks-tiny rotate: false - xy: 1728, 259 + xy: 1229, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-router-xlarge +block-rocks-xlarge rotate: false xy: 251, 117 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-rtg-generator-large +block-rotary-pump-large rotate: false - xy: 939, 557 + xy: 427, 373 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-rtg-generator-medium +block-rotary-pump-medium rotate: false - xy: 699, 387 + xy: 1381, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-rtg-generator-small +block-rotary-pump-small rotate: false - xy: 1216, 219 + xy: 1989, 339 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-rtg-generator-tiny +block-rotary-pump-tiny rotate: false - xy: 1728, 241 + xy: 1247, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-rtg-generator-xlarge +block-rotary-pump-xlarge rotate: false xy: 251, 67 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-salt-large +block-router-large rotate: false - xy: 981, 599 + xy: 427, 331 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-salt-medium +block-router-medium rotate: false - xy: 733, 421 + xy: 1415, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-salt-small +block-router-small rotate: false - xy: 1213, 193 + xy: 1987, 313 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-salt-tiny +block-router-tiny rotate: false - xy: 1314, 213 + xy: 1265, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salt-xlarge +block-router-xlarge rotate: false xy: 251, 17 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-saltrocks-large +block-rtg-generator-large rotate: false - xy: 1023, 641 + xy: 427, 289 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-saltrocks-medium +block-rtg-generator-medium rotate: false - xy: 767, 455 + xy: 1449, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-saltrocks-small +block-rtg-generator-small rotate: false - xy: 1213, 167 + xy: 1027, 233 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-saltrocks-tiny +block-rtg-generator-tiny rotate: false - xy: 1332, 213 + xy: 1283, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-saltrocks-xlarge +block-rtg-generator-xlarge rotate: false xy: 309, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-salvo-large +block-salt-large rotate: false - xy: 981, 557 + xy: 427, 247 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-salvo-medium +block-salt-medium rotate: false - xy: 801, 489 + xy: 1483, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-salvo-small +block-salt-small rotate: false - xy: 1213, 141 + xy: 1029, 207 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-salvo-tiny +block-salt-tiny rotate: false - xy: 1350, 213 + xy: 1301, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-salvo-xlarge +block-salt-xlarge rotate: false xy: 309, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-boulder-large +block-saltrocks-large rotate: false - xy: 1023, 599 + xy: 427, 205 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-boulder-medium +block-saltrocks-medium rotate: false - xy: 529, 183 + xy: 1517, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sand-boulder-small +block-saltrocks-small rotate: false - xy: 1239, 193 + xy: 1029, 181 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sand-boulder-tiny +block-saltrocks-tiny rotate: false - xy: 1368, 213 + xy: 1319, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-boulder-xlarge +block-saltrocks-xlarge rotate: false xy: 359, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-large +block-salvo-large rotate: false - xy: 1065, 641 + xy: 427, 163 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sand-medium +block-salvo-medium rotate: false - xy: 563, 217 + xy: 1551, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sand-small +block-salvo-small rotate: false - xy: 1239, 167 + xy: 1053, 235 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sand-tiny +block-salvo-tiny rotate: false - xy: 1386, 213 + xy: 1337, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sand-water-large - rotate: false - xy: 1023, 557 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-sand-water-medium - rotate: false - xy: 597, 251 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-sand-water-small - rotate: false - xy: 1239, 141 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-sand-water-tiny - rotate: false - xy: 1404, 213 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-sand-water-xlarge +block-salvo-xlarge rotate: false xy: 309, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sand-xlarge +block-sand-boulder-large + rotate: false + xy: 427, 121 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sand-boulder-medium + rotate: false + xy: 1585, 497 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-boulder-small + rotate: false + xy: 1055, 209 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sand-boulder-tiny + rotate: false + xy: 1355, 225 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sand-boulder-xlarge rotate: false xy: 359, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sandrocks-large +block-sand-large rotate: false - xy: 1065, 599 + xy: 427, 79 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sandrocks-medium +block-sand-medium rotate: false - xy: 631, 285 + xy: 1619, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sandrocks-small +block-sand-small rotate: false - xy: 1289, 371 + xy: 1055, 183 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sandrocks-tiny +block-sand-tiny rotate: false - xy: 1422, 213 + xy: 1373, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sandrocks-xlarge +block-sand-water-large + rotate: false + xy: 427, 37 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-sand-water-medium + rotate: false + xy: 1653, 497 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-sand-water-small + rotate: false + xy: 1029, 155 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-sand-water-tiny + rotate: false + xy: 1391, 225 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-sand-water-xlarge rotate: false xy: 409, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scatter-large - rotate: false - xy: 1107, 641 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scatter-medium - rotate: false - xy: 665, 319 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-scatter-small - rotate: false - xy: 1289, 345 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-scatter-tiny - rotate: false - xy: 1440, 213 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-scatter-xlarge +block-sand-xlarge rotate: false xy: 359, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scorch-large +block-sandrocks-large rotate: false - xy: 1065, 557 + xy: 477, 591 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scorch-medium +block-sandrocks-medium rotate: false - xy: 699, 353 + xy: 1687, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scorch-small +block-sandrocks-small rotate: false - xy: 1289, 319 + xy: 1055, 157 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scorch-tiny +block-sandrocks-tiny rotate: false - xy: 1458, 213 + xy: 1409, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scorch-xlarge +block-sandrocks-xlarge rotate: false xy: 409, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-large +block-scatter-large rotate: false - xy: 1107, 599 + xy: 469, 549 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-medium +block-scatter-medium rotate: false - xy: 733, 387 + xy: 1721, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-small +block-scatter-small rotate: false - xy: 1315, 355 + xy: 1095, 301 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-tiny +block-scatter-tiny rotate: false - xy: 1476, 213 + xy: 1427, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-gigantic-xlarge +block-scatter-xlarge rotate: false xy: 459, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-huge-large +block-scorch-large rotate: false - xy: 1149, 641 + xy: 469, 507 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-huge-medium +block-scorch-medium rotate: false - xy: 767, 421 + xy: 1755, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-huge-small +block-scorch-small rotate: false - xy: 1341, 355 + xy: 1095, 275 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-huge-tiny +block-scorch-tiny rotate: false - xy: 1494, 213 + xy: 1445, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-huge-xlarge +block-scorch-xlarge rotate: false xy: 409, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-large +block-scrap-wall-gigantic-large rotate: false - xy: 1107, 557 + xy: 469, 465 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-scrap-wall-large-large +block-scrap-wall-gigantic-medium rotate: false - xy: 1149, 599 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-scrap-wall-large-medium - rotate: false - xy: 801, 455 + xy: 1789, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-large-small +block-scrap-wall-gigantic-small rotate: false - xy: 1315, 329 + xy: 1121, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-large-tiny +block-scrap-wall-gigantic-tiny rotate: false - xy: 1512, 213 + xy: 1463, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-large-xlarge +block-scrap-wall-gigantic-xlarge rotate: false xy: 459, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-scrap-wall-medium +block-scrap-wall-huge-large rotate: false - xy: 835, 489 + xy: 469, 423 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-huge-medium + rotate: false + xy: 1823, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-scrap-wall-small +block-scrap-wall-huge-small rotate: false - xy: 1367, 355 + xy: 1147, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-scrap-wall-tiny +block-scrap-wall-huge-tiny rotate: false - xy: 1530, 213 + xy: 1481, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-scrap-wall-xlarge +block-scrap-wall-huge-xlarge rotate: false xy: 509, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-separator-large +block-scrap-wall-large rotate: false - xy: 1191, 641 + xy: 469, 381 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-separator-medium +block-scrap-wall-large-large rotate: false - xy: 529, 149 + xy: 469, 339 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-scrap-wall-large-medium + rotate: false + xy: 1857, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-separator-small +block-scrap-wall-large-small rotate: false - xy: 1341, 329 + xy: 1173, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-separator-tiny +block-scrap-wall-large-tiny rotate: false - xy: 1548, 213 + xy: 1499, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-separator-xlarge +block-scrap-wall-large-xlarge rotate: false xy: 459, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shale-boulder-large +block-scrap-wall-medium rotate: false - xy: 1149, 557 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-shale-boulder-medium - rotate: false - xy: 563, 183 + xy: 1891, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shale-boulder-small +block-scrap-wall-small rotate: false - xy: 1393, 355 + xy: 1199, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shale-boulder-tiny +block-scrap-wall-tiny rotate: false - xy: 1566, 213 + xy: 1517, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-boulder-xlarge +block-scrap-wall-xlarge rotate: false xy: 509, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shale-large +block-separator-large rotate: false - xy: 1191, 599 + xy: 469, 297 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shale-medium +block-separator-medium rotate: false - xy: 597, 217 + xy: 1925, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shale-small +block-separator-small rotate: false - xy: 1367, 329 + xy: 1225, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shale-tiny +block-separator-tiny rotate: false - xy: 1584, 213 + xy: 1535, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shale-xlarge +block-separator-xlarge rotate: false xy: 559, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shalerocks-large +block-shale-boulder-large rotate: false - xy: 1233, 641 + xy: 469, 255 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shalerocks-medium +block-shale-boulder-medium rotate: false - xy: 631, 251 + xy: 1959, 497 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shalerocks-small +block-shale-boulder-small rotate: false - xy: 1419, 355 + xy: 1251, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shalerocks-tiny +block-shale-boulder-tiny rotate: false - xy: 1602, 213 + xy: 1553, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shalerocks-xlarge +block-shale-boulder-xlarge rotate: false xy: 509, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shock-mine-large +block-shale-large rotate: false - xy: 1191, 557 + xy: 469, 213 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shock-mine-medium +block-shale-medium rotate: false - xy: 665, 285 + xy: 625, 444 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shock-mine-small +block-shale-small rotate: false - xy: 1393, 329 + xy: 1277, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shock-mine-tiny +block-shale-tiny rotate: false - xy: 1620, 213 + xy: 1571, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shock-mine-xlarge +block-shale-xlarge rotate: false xy: 559, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-shrubs-large +block-shalerocks-large rotate: false - xy: 1233, 599 + xy: 469, 171 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-shrubs-medium +block-shalerocks-medium rotate: false - xy: 699, 319 + xy: 621, 410 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-shrubs-small +block-shalerocks-small rotate: false - xy: 1445, 355 + xy: 1303, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-shrubs-tiny +block-shalerocks-tiny rotate: false - xy: 1638, 213 + xy: 1589, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-shrubs-xlarge +block-shalerocks-xlarge rotate: false xy: 609, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-silicon-smelter-large +block-shock-mine-large rotate: false - xy: 1275, 641 + xy: 469, 129 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-silicon-smelter-medium +block-shock-mine-medium rotate: false - xy: 733, 353 + xy: 621, 376 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-silicon-smelter-small +block-shock-mine-small rotate: false - xy: 1419, 329 + xy: 1329, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-silicon-smelter-tiny +block-shock-mine-tiny rotate: false - xy: 1656, 213 + xy: 1607, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-silicon-smelter-xlarge +block-shock-mine-xlarge rotate: false xy: 559, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snow-large +block-shrubs-large rotate: false - xy: 1233, 557 + xy: 469, 87 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snow-medium +block-shrubs-medium rotate: false - xy: 767, 387 + xy: 621, 342 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snow-pine-large +block-shrubs-small rotate: false - xy: 1275, 599 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snow-pine-medium - rotate: false - xy: 801, 421 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snow-pine-small - rotate: false - xy: 1471, 355 + xy: 1355, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snow-pine-tiny +block-shrubs-tiny rotate: false - xy: 1674, 213 + xy: 1625, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snow-pine-xlarge +block-shrubs-xlarge rotate: false xy: 609, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snow-small +block-silicon-smelter-large rotate: false - xy: 1445, 329 + xy: 469, 45 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-silicon-smelter-medium + rotate: false + xy: 621, 308 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-silicon-smelter-small + rotate: false + xy: 1381, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snow-tiny +block-silicon-smelter-tiny rotate: false - xy: 1692, 213 + xy: 1643, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snow-xlarge +block-silicon-smelter-xlarge rotate: false xy: 659, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrock-large +block-snow-large rotate: false - xy: 1317, 641 + xy: 519, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-snowrock-medium +block-snow-medium rotate: false - xy: 835, 455 + xy: 621, 274 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-snowrock-small +block-snow-pine-large rotate: false - xy: 1497, 355 + xy: 561, 599 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snow-pine-medium + rotate: false + xy: 621, 240 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-snow-pine-small + rotate: false + xy: 1407, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snowrock-tiny +block-snow-pine-tiny rotate: false - xy: 1710, 213 + xy: 1661, 225 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrock-xlarge +block-snow-pine-xlarge rotate: false xy: 609, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-snowrocks-large +block-snow-small rotate: false - xy: 1275, 557 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-snowrocks-medium - rotate: false - xy: 869, 489 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-snowrocks-small - rotate: false - xy: 1471, 329 + xy: 1433, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-snowrocks-tiny +block-snow-tiny rotate: false - xy: 1728, 223 + xy: 1103, 221 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-snowrocks-xlarge +block-snow-xlarge rotate: false xy: 659, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-solar-panel-large +block-snowrock-large rotate: false - xy: 1317, 599 + xy: 603, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-solar-panel-large-large +block-snowrock-medium rotate: false - xy: 1359, 641 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-solar-panel-large-medium - rotate: false - xy: 529, 115 + xy: 621, 206 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-solar-panel-large-small +block-snowrock-small rotate: false - xy: 1523, 355 + xy: 1459, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-solar-panel-large-tiny +block-snowrock-tiny rotate: false - xy: 1728, 205 + xy: 1679, 227 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-solar-panel-large-xlarge +block-snowrock-xlarge rotate: false xy: 709, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-solar-panel-medium +block-snowrocks-large rotate: false - xy: 563, 149 + xy: 645, 599 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-snowrocks-medium + rotate: false + xy: 621, 172 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-solar-panel-small +block-snowrocks-small rotate: false - xy: 1497, 329 + xy: 1485, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-solar-panel-tiny +block-snowrocks-tiny rotate: false - xy: 1265, 203 + xy: 1697, 227 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-solar-panel-xlarge +block-snowrocks-xlarge rotate: false xy: 659, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sorter-large +block-solar-panel-large rotate: false - xy: 1317, 557 + xy: 687, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sorter-medium +block-solar-panel-large-large rotate: false - xy: 597, 183 + xy: 729, 599 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-solar-panel-large-medium + rotate: false + xy: 617, 138 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sorter-small +block-solar-panel-large-small rotate: false - xy: 1549, 355 + xy: 1511, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sorter-tiny +block-solar-panel-large-tiny rotate: false - xy: 1283, 203 + xy: 1715, 227 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sorter-xlarge +block-solar-panel-large-xlarge rotate: false xy: 709, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spawn-large +block-solar-panel-medium rotate: false - xy: 1359, 599 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-spawn-medium - rotate: false - xy: 631, 217 + xy: 617, 104 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spawn-small +block-solar-panel-small rotate: false - xy: 1523, 329 + xy: 1537, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spawn-tiny +block-solar-panel-tiny rotate: false - xy: 1265, 185 + xy: 1121, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spawn-xlarge +block-solar-panel-xlarge rotate: false xy: 759, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spectre-large +block-sorter-large rotate: false - xy: 1401, 641 + xy: 771, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spectre-medium +block-sorter-medium rotate: false - xy: 665, 251 + xy: 617, 70 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spectre-small +block-sorter-small rotate: false - xy: 1575, 355 + xy: 1563, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spectre-tiny +block-sorter-tiny rotate: false - xy: 1265, 167 + xy: 1139, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spectre-xlarge +block-sorter-xlarge rotate: false xy: 709, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spirit-factory-large +block-spawn-large rotate: false - xy: 1359, 557 + xy: 813, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spirit-factory-medium +block-spawn-medium rotate: false - xy: 699, 285 + xy: 617, 36 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spirit-factory-small +block-spawn-small rotate: false - xy: 1549, 329 + xy: 1589, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spirit-factory-tiny +block-spawn-tiny rotate: false - xy: 1283, 185 + xy: 1157, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spirit-factory-xlarge +block-spawn-xlarge rotate: false xy: 759, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-cluster-large +block-spectre-large rotate: false - xy: 1401, 599 + xy: 855, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-cluster-medium +block-spectre-medium rotate: false - xy: 733, 319 + xy: 663, 468 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-cluster-small +block-spectre-small rotate: false - xy: 1601, 355 + xy: 1615, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-cluster-tiny +block-spectre-tiny rotate: false - xy: 1265, 149 + xy: 1175, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-cluster-xlarge +block-spectre-xlarge rotate: false xy: 809, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-moss-large +block-spirit-factory-large rotate: false - xy: 1443, 641 + xy: 897, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-moss-medium +block-spirit-factory-medium rotate: false - xy: 767, 353 + xy: 697, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-moss-small +block-spirit-factory-small rotate: false - xy: 1575, 329 + xy: 1641, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-moss-tiny +block-spirit-factory-tiny rotate: false - xy: 1283, 167 + xy: 1193, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-moss-xlarge +block-spirit-factory-xlarge rotate: false xy: 759, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-pine-large +block-spore-cluster-large rotate: false - xy: 1401, 557 + xy: 939, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-pine-medium +block-spore-cluster-medium rotate: false - xy: 801, 387 + xy: 731, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-pine-small +block-spore-cluster-small rotate: false - xy: 1627, 355 + xy: 1667, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-pine-tiny +block-spore-cluster-tiny rotate: false - xy: 1283, 149 + xy: 1211, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-pine-xlarge +block-spore-cluster-xlarge rotate: false xy: 809, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-spore-press-large +block-spore-moss-large rotate: false - xy: 1443, 599 + xy: 981, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-spore-press-medium +block-spore-moss-medium rotate: false - xy: 835, 421 + xy: 765, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-spore-press-small +block-spore-moss-small rotate: false - xy: 1601, 329 + xy: 1693, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-spore-press-tiny +block-spore-moss-tiny rotate: false - xy: 1265, 131 + xy: 1229, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-spore-press-xlarge +block-spore-moss-xlarge rotate: false xy: 859, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-sporerocks-large +block-spore-pine-large rotate: false - xy: 1485, 641 + xy: 1023, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-sporerocks-medium +block-spore-pine-medium rotate: false - xy: 869, 455 + xy: 799, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-sporerocks-small +block-spore-pine-small rotate: false - xy: 1653, 355 + xy: 1719, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-sporerocks-tiny +block-spore-pine-tiny rotate: false - xy: 1283, 131 + xy: 1247, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-sporerocks-xlarge +block-spore-pine-xlarge rotate: false xy: 809, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-stone-large +block-spore-press-large rotate: false - xy: 1443, 557 + xy: 1065, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-stone-medium +block-spore-press-medium rotate: false - xy: 903, 489 + xy: 833, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-stone-small +block-spore-press-small rotate: false - xy: 1627, 329 + xy: 1745, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-stone-tiny +block-spore-press-tiny rotate: false - xy: 1301, 195 + xy: 1265, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-stone-xlarge +block-spore-press-xlarge rotate: false xy: 859, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-tower-large +block-sporerocks-large rotate: false - xy: 1485, 599 + xy: 1107, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-surge-tower-medium +block-sporerocks-medium rotate: false - xy: 529, 81 + xy: 867, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-tower-small +block-sporerocks-small rotate: false - xy: 1679, 355 + xy: 1771, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-tower-tiny +block-sporerocks-tiny rotate: false - xy: 1301, 177 + xy: 1283, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-tower-xlarge +block-sporerocks-xlarge rotate: false xy: 909, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-wall-large +block-stone-large rotate: false - xy: 1527, 641 + xy: 1149, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-surge-wall-large-large +block-stone-medium rotate: false - xy: 1485, 557 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-surge-wall-large-medium - rotate: false - xy: 563, 115 + xy: 901, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-wall-large-small +block-stone-small rotate: false - xy: 1653, 329 + xy: 1797, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-wall-large-tiny +block-stone-tiny rotate: false - xy: 1319, 195 + xy: 1301, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-wall-large-xlarge +block-stone-xlarge rotate: false xy: 859, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-surge-wall-medium +block-surge-tower-large rotate: false - xy: 597, 149 + xy: 1191, 599 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-surge-tower-medium + rotate: false + xy: 935, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-surge-wall-small +block-surge-tower-small rotate: false - xy: 1705, 355 + xy: 1823, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-surge-wall-tiny +block-surge-tower-tiny rotate: false - xy: 1301, 159 + xy: 1319, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-surge-wall-xlarge +block-surge-tower-xlarge rotate: false xy: 909, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-swarmer-large +block-surge-wall-large rotate: false - xy: 1527, 599 + xy: 1233, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-swarmer-medium +block-surge-wall-large-large rotate: false - xy: 631, 183 + xy: 1275, 599 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-surge-wall-large-medium + rotate: false + xy: 969, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-swarmer-small +block-surge-wall-large-small rotate: false - xy: 1679, 329 + xy: 1849, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-swarmer-tiny +block-surge-wall-large-tiny rotate: false - xy: 1319, 177 + xy: 1337, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-swarmer-xlarge +block-surge-wall-large-xlarge rotate: false xy: 959, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tainted-water-large +block-surge-wall-medium rotate: false - xy: 1569, 641 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-tainted-water-medium - rotate: false - xy: 665, 217 + xy: 1003, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tainted-water-small +block-surge-wall-small rotate: false - xy: 1705, 329 + xy: 1875, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tainted-water-tiny +block-surge-wall-tiny rotate: false - xy: 1337, 195 + xy: 1355, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tainted-water-xlarge +block-surge-wall-xlarge rotate: false xy: 909, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tar-large +block-swarmer-large rotate: false - xy: 1527, 557 + xy: 1317, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tar-medium +block-swarmer-medium rotate: false - xy: 699, 251 + xy: 1037, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tar-small +block-swarmer-small rotate: false - xy: 1315, 303 + xy: 1901, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tar-tiny +block-swarmer-tiny rotate: false - xy: 1301, 141 + xy: 1373, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tar-xlarge +block-swarmer-xlarge rotate: false xy: 959, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tau-mech-pad-large +block-tainted-water-large rotate: false - xy: 1569, 599 + xy: 1359, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tau-mech-pad-medium +block-tainted-water-medium rotate: false - xy: 733, 285 + xy: 1071, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tau-mech-pad-small +block-tainted-water-small rotate: false - xy: 1341, 303 + xy: 1927, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tau-mech-pad-tiny +block-tainted-water-tiny rotate: false - xy: 1319, 159 + xy: 1391, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tau-mech-pad-xlarge +block-tainted-water-xlarge rotate: false xy: 1009, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-tendrils-large +block-tar-large rotate: false - xy: 1611, 641 + xy: 1401, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-tendrils-medium +block-tar-medium rotate: false - xy: 767, 319 + xy: 1105, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-tendrils-small +block-tar-small rotate: false - xy: 1367, 303 + xy: 1953, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-tendrils-tiny +block-tar-tiny rotate: false - xy: 1337, 177 + xy: 1409, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-tendrils-xlarge +block-tar-xlarge rotate: false xy: 959, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thermal-generator-large +block-tau-mech-pad-large rotate: false - xy: 1569, 557 + xy: 1443, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thermal-generator-medium +block-tau-mech-pad-medium rotate: false - xy: 801, 353 + xy: 1139, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thermal-generator-small +block-tau-mech-pad-small rotate: false - xy: 1393, 303 + xy: 1979, 287 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thermal-generator-tiny +block-tau-mech-pad-tiny rotate: false - xy: 1355, 195 + xy: 1427, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thermal-generator-xlarge +block-tau-mech-pad-xlarge rotate: false xy: 1009, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thermal-pump-large +block-tendrils-large rotate: false - xy: 1611, 599 + xy: 1485, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thermal-pump-medium +block-tendrils-medium rotate: false - xy: 835, 387 + xy: 1173, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thermal-pump-small +block-tendrils-small rotate: false - xy: 1419, 303 + xy: 1121, 261 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thermal-pump-tiny +block-tendrils-tiny rotate: false - xy: 1319, 141 + xy: 1445, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thermal-pump-xlarge +block-tendrils-xlarge rotate: false xy: 1059, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-reactor-large +block-thermal-generator-large rotate: false - xy: 1653, 641 + xy: 1527, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-reactor-medium +block-thermal-generator-medium rotate: false - xy: 869, 421 + xy: 1207, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-reactor-small +block-thermal-generator-small rotate: false - xy: 1445, 303 + xy: 1147, 261 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-reactor-tiny +block-thermal-generator-tiny rotate: false - xy: 1337, 159 + xy: 1463, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-reactor-xlarge +block-thermal-generator-xlarge rotate: false xy: 1009, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-large +block-thermal-pump-large rotate: false - xy: 1611, 557 + xy: 1569, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thorium-wall-large-large +block-thermal-pump-medium rotate: false - xy: 1653, 599 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-thorium-wall-large-medium - rotate: false - xy: 903, 455 + xy: 1241, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-wall-large-small +block-thermal-pump-small rotate: false - xy: 1471, 303 + xy: 1173, 261 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-large-tiny +block-thermal-pump-tiny rotate: false - xy: 1355, 177 + xy: 1481, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-large-xlarge +block-thermal-pump-xlarge rotate: false xy: 1059, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thorium-wall-medium +block-thorium-reactor-large rotate: false - xy: 937, 489 + xy: 1611, 599 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-thorium-reactor-medium + rotate: false + xy: 1275, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-thorium-wall-small +block-thorium-reactor-small rotate: false - xy: 1497, 303 + xy: 1199, 261 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-thorium-wall-tiny +block-thorium-reactor-tiny rotate: false - xy: 1373, 195 + xy: 1499, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-thorium-wall-xlarge +block-thorium-reactor-xlarge rotate: false xy: 1109, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-thruster-large +block-thorium-wall-large rotate: false - xy: 1695, 641 + xy: 1653, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-thruster-medium - rotate: false - xy: 529, 47 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-thruster-small - rotate: false - xy: 1523, 303 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-thruster-tiny - rotate: false - xy: 1337, 141 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-thruster-xlarge - rotate: false - xy: 1059, 825 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-titan-factory-large - rotate: false - xy: 1653, 557 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-titan-factory-medium - rotate: false - xy: 563, 81 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-titan-factory-small - rotate: false - xy: 1549, 303 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-titan-factory-tiny - rotate: false - xy: 1355, 159 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-titan-factory-xlarge - rotate: false - xy: 1109, 875 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-titanium-conveyor-large +block-thorium-wall-large-large rotate: false xy: 1695, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-titanium-conveyor-medium +block-thorium-wall-large-medium rotate: false - xy: 597, 115 + xy: 1309, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-conveyor-small +block-thorium-wall-large-small rotate: false - xy: 1575, 303 + xy: 1225, 261 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-conveyor-tiny +block-thorium-wall-large-tiny rotate: false - xy: 1373, 177 + xy: 1517, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-conveyor-xlarge +block-thorium-wall-large-xlarge rotate: false - xy: 1159, 925 + xy: 1059, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-large +block-thorium-wall-medium rotate: false - xy: 1737, 641 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-titanium-wall-large-large - rotate: false - xy: 1695, 557 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-titanium-wall-large-medium - rotate: false - xy: 631, 149 + xy: 1343, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-titanium-wall-large-small +block-thorium-wall-small rotate: false - xy: 1601, 303 + xy: 1251, 261 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-titanium-wall-large-tiny +block-thorium-wall-tiny rotate: false - xy: 1391, 195 + xy: 1535, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-titanium-wall-large-xlarge +block-thorium-wall-xlarge rotate: false - xy: 1109, 825 + xy: 1109, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-titanium-wall-medium - rotate: false - xy: 665, 183 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-titanium-wall-small - rotate: false - xy: 1627, 303 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-titanium-wall-tiny - rotate: false - xy: 1355, 141 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-titanium-wall-xlarge - rotate: false - xy: 1159, 875 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-trident-ship-pad-large +block-thruster-large rotate: false xy: 1737, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-trident-ship-pad-medium +block-thruster-medium rotate: false - xy: 699, 217 + xy: 1377, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-trident-ship-pad-small +block-thruster-small rotate: false - xy: 1653, 303 + xy: 1277, 261 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-trident-ship-pad-tiny +block-thruster-tiny rotate: false - xy: 1373, 159 + xy: 1553, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-trident-ship-pad-xlarge +block-thruster-xlarge rotate: false - xy: 1209, 925 + xy: 1159, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-turbine-generator-large - rotate: false - xy: 1779, 641 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-turbine-generator-medium - rotate: false - xy: 733, 251 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-turbine-generator-small - rotate: false - xy: 1679, 303 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-turbine-generator-tiny - rotate: false - xy: 1391, 177 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-turbine-generator-xlarge - rotate: false - xy: 1159, 825 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-unloader-large - rotate: false - xy: 1737, 557 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-unloader-medium - rotate: false - xy: 767, 285 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-unloader-small - rotate: false - xy: 1705, 303 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-unloader-tiny - rotate: false - xy: 1409, 195 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-unloader-xlarge - rotate: false - xy: 1209, 875 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-vault-large +block-titan-factory-large rotate: false xy: 1779, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-vault-medium +block-titan-factory-medium rotate: false - xy: 801, 319 + xy: 1411, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-vault-small +block-titan-factory-small rotate: false - xy: 1289, 293 + xy: 1303, 261 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-vault-tiny +block-titan-factory-tiny rotate: false - xy: 1373, 141 + xy: 1571, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-vault-xlarge +block-titan-factory-xlarge rotate: false - xy: 1259, 925 + xy: 1109, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-water-extractor-large - rotate: false - xy: 1821, 641 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-water-extractor-medium - rotate: false - xy: 835, 353 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-water-extractor-small - rotate: false - xy: 1731, 347 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-water-extractor-tiny - rotate: false - xy: 1391, 159 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-water-extractor-xlarge - rotate: false - xy: 1209, 825 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-water-large - rotate: false - xy: 1779, 557 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-water-medium - rotate: false - xy: 869, 387 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-water-small - rotate: false - xy: 1757, 347 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-water-tiny - rotate: false - xy: 1409, 177 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-water-xlarge - rotate: false - xy: 1259, 875 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-wave-large +block-titanium-conveyor-large rotate: false xy: 1821, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-wave-medium +block-titanium-conveyor-medium rotate: false - xy: 903, 421 + xy: 1445, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-wave-small +block-titanium-conveyor-small rotate: false - xy: 1731, 321 + xy: 1329, 261 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-wave-tiny +block-titanium-conveyor-tiny rotate: false - xy: 1427, 195 + xy: 1589, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-wave-xlarge +block-titanium-conveyor-xlarge rotate: false - xy: 1309, 925 + xy: 1159, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 -block-white-tree-dead-large - rotate: false - xy: 1863, 641 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-white-tree-dead-medium - rotate: false - xy: 937, 455 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-white-tree-dead-small - rotate: false - xy: 1783, 347 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-white-tree-dead-tiny - rotate: false - xy: 1391, 141 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-white-tree-dead-xlarge - rotate: false - xy: 1259, 825 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-white-tree-large - rotate: false - xy: 1821, 557 - size: 40, 40 - orig: 40, 40 - offset: 0, 0 - index: -1 -block-white-tree-medium - rotate: false - xy: 971, 489 - size: 32, 32 - orig: 32, 32 - offset: 0, 0 - index: -1 -block-white-tree-small - rotate: false - xy: 1757, 321 - size: 24, 24 - orig: 24, 24 - offset: 0, 0 - index: -1 -block-white-tree-tiny - rotate: false - xy: 1409, 159 - size: 16, 16 - orig: 16, 16 - offset: 0, 0 - index: -1 -block-white-tree-xlarge - rotate: false - xy: 1309, 875 - size: 48, 48 - orig: 48, 48 - offset: 0, 0 - index: -1 -block-wraith-factory-large +block-titanium-wall-large rotate: false xy: 1863, 599 size: 40, 40 orig: 40, 40 offset: 0, 0 index: -1 -block-wraith-factory-medium +block-titanium-wall-large-large rotate: false - xy: 563, 47 + xy: 1905, 599 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-titanium-wall-large-medium + rotate: false + xy: 1479, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 -block-wraith-factory-small +block-titanium-wall-large-small rotate: false - xy: 1783, 321 + xy: 1355, 261 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 -block-wraith-factory-tiny +block-titanium-wall-large-tiny rotate: false - xy: 1427, 177 + xy: 1607, 207 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 -block-wraith-factory-xlarge +block-titanium-wall-large-xlarge + rotate: false + xy: 1209, 925 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-titanium-wall-medium + rotate: false + xy: 1513, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-titanium-wall-small + rotate: false + xy: 1381, 261 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-titanium-wall-tiny + rotate: false + xy: 1625, 207 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-titanium-wall-xlarge + rotate: false + xy: 1159, 825 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-trident-ship-pad-large + rotate: false + xy: 1947, 599 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-trident-ship-pad-medium + rotate: false + xy: 1547, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-trident-ship-pad-small + rotate: false + xy: 1407, 261 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-trident-ship-pad-tiny + rotate: false + xy: 1643, 207 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-trident-ship-pad-xlarge + rotate: false + xy: 1209, 875 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-turbine-generator-large + rotate: false + xy: 511, 549 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-turbine-generator-medium + rotate: false + xy: 1581, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-turbine-generator-small + rotate: false + xy: 1433, 261 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-turbine-generator-tiny + rotate: false + xy: 1661, 207 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-turbine-generator-xlarge + rotate: false + xy: 1259, 925 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-unloader-large + rotate: false + xy: 511, 507 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-unloader-medium + rotate: false + xy: 1615, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-unloader-small + rotate: false + xy: 1459, 261 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-unloader-tiny + rotate: false + xy: 1679, 209 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-unloader-xlarge + rotate: false + xy: 1209, 825 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-vault-large + rotate: false + xy: 511, 465 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-vault-medium + rotate: false + xy: 1649, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-vault-small + rotate: false + xy: 1485, 261 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-vault-tiny + rotate: false + xy: 1697, 209 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-vault-xlarge + rotate: false + xy: 1259, 875 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-water-extractor-large + rotate: false + xy: 511, 423 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-water-extractor-medium + rotate: false + xy: 1683, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-water-extractor-small + rotate: false + xy: 1511, 261 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-water-extractor-tiny + rotate: false + xy: 1715, 209 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-water-extractor-xlarge + rotate: false + xy: 1309, 925 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-water-large + rotate: false + xy: 511, 381 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-water-medium + rotate: false + xy: 1717, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-water-small + rotate: false + xy: 1537, 261 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-water-tiny + rotate: false + xy: 1103, 203 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-water-xlarge + rotate: false + xy: 1259, 825 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-wave-large + rotate: false + xy: 511, 339 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-wave-medium + rotate: false + xy: 1751, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-wave-small + rotate: false + xy: 1563, 261 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-wave-tiny + rotate: false + xy: 1733, 214 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-wave-xlarge + rotate: false + xy: 1309, 875 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-white-tree-dead-large + rotate: false + xy: 511, 297 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-white-tree-dead-medium + rotate: false + xy: 1785, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-white-tree-dead-small + rotate: false + xy: 1589, 261 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-white-tree-dead-tiny + rotate: false + xy: 1751, 214 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-white-tree-dead-xlarge rotate: false xy: 1359, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 +block-white-tree-large + rotate: false + xy: 511, 255 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-white-tree-medium + rotate: false + xy: 1819, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-white-tree-small + rotate: false + xy: 1615, 261 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-white-tree-tiny + rotate: false + xy: 1769, 214 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-white-tree-xlarge + rotate: false + xy: 1309, 825 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 +block-wraith-factory-large + rotate: false + xy: 511, 213 + size: 40, 40 + orig: 40, 40 + offset: 0, 0 + index: -1 +block-wraith-factory-medium + rotate: false + xy: 1853, 463 + size: 32, 32 + orig: 32, 32 + offset: 0, 0 + index: -1 +block-wraith-factory-small + rotate: false + xy: 1641, 261 + size: 24, 24 + orig: 24, 24 + offset: 0, 0 + index: -1 +block-wraith-factory-tiny + rotate: false + xy: 1787, 215 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-wraith-factory-xlarge + rotate: false + xy: 1359, 875 + size: 48, 48 + orig: 48, 48 + offset: 0, 0 + index: -1 button rotate: false - xy: 1901, 538 + xy: 629, 570 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -15958,7 +16084,7 @@ button index: -1 button-disabled rotate: false - xy: 1905, 654 + xy: 511, 158 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -15966,7 +16092,7 @@ button-disabled index: -1 button-down rotate: false - xy: 1863, 570 + xy: 511, 129 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -15974,7 +16100,7 @@ button-down index: -1 button-edge-1 rotate: false - xy: 1905, 625 + xy: 511, 100 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -15982,7 +16108,7 @@ button-edge-1 index: -1 button-edge-2 rotate: false - xy: 1943, 654 + xy: 511, 71 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -15990,7 +16116,7 @@ button-edge-2 index: -1 button-edge-3 rotate: false - xy: 1943, 625 + xy: 2009, 946 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -15998,7 +16124,7 @@ button-edge-3 index: -1 button-edge-4 rotate: false - xy: 2009, 946 + xy: 2009, 917 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16006,7 +16132,7 @@ button-edge-4 index: -1 button-edge-over-4 rotate: false - xy: 2009, 917 + xy: 2009, 888 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16014,7 +16140,7 @@ button-edge-over-4 index: -1 button-over rotate: false - xy: 2009, 888 + xy: 2009, 859 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16022,7 +16148,7 @@ button-over index: -1 button-red rotate: false - xy: 2009, 859 + xy: 2009, 830 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16030,7 +16156,7 @@ button-red index: -1 button-right rotate: false - xy: 1905, 596 + xy: 553, 570 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16038,7 +16164,7 @@ button-right index: -1 button-right-down rotate: false - xy: 2009, 830 + xy: 2009, 801 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16046,7 +16172,7 @@ button-right-down index: -1 button-right-over rotate: false - xy: 2009, 801 + xy: 511, 42 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16054,7 +16180,7 @@ button-right-over index: -1 button-select rotate: false - xy: 1731, 295 + xy: 1667, 261 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 @@ -16062,7 +16188,7 @@ button-select index: -1 button-square rotate: false - xy: 1939, 567 + xy: 553, 512 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16070,7 +16196,7 @@ button-square index: -1 button-square-down rotate: false - xy: 1943, 596 + xy: 553, 541 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16078,7 +16204,7 @@ button-square-down index: -1 button-square-over rotate: false - xy: 1901, 567 + xy: 591, 570 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16086,7 +16212,7 @@ button-square-over index: -1 button-trans rotate: false - xy: 1863, 541 + xy: 591, 541 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16094,56 +16220,56 @@ button-trans index: -1 check-disabled rotate: false - xy: 597, 81 + xy: 1887, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-off rotate: false - xy: 631, 115 + xy: 1921, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 665, 149 + xy: 1955, 463 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-disabled rotate: false - xy: 699, 183 + xy: 659, 434 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 733, 217 + xy: 655, 400 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 767, 251 + xy: 655, 366 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 clear rotate: false - xy: 1825, 439 + xy: 965, 27 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 cursor rotate: false - xy: 1203, 323 + xy: 379, 23 size: 4, 4 orig: 4, 4 offset: 0, 0 @@ -16157,7 +16283,7 @@ discord-banner index: -1 flat-down-base rotate: false - xy: 1939, 538 + xy: 553, 483 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -16165,3136 +16291,3136 @@ flat-down-base index: -1 icon-about rotate: false - xy: 1309, 825 + xy: 1409, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-about-small rotate: false - xy: 801, 285 + xy: 655, 332 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-about-smaller rotate: false - xy: 1039, 253 + xy: 1131, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-about-tiny rotate: false - xy: 1445, 195 + xy: 1805, 215 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-add rotate: false - xy: 1359, 875 + xy: 1359, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-add-small rotate: false - xy: 835, 319 + xy: 655, 298 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-add-smaller rotate: false - xy: 1073, 287 + xy: 995, 227 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-add-tiny rotate: false - xy: 1409, 141 + xy: 1823, 215 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-admin rotate: false - xy: 1409, 925 + xy: 1409, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-admin-badge rotate: false - xy: 1359, 825 + xy: 1459, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-admin-badge-small rotate: false - xy: 869, 353 + xy: 655, 264 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-admin-badge-smaller rotate: false - xy: 1107, 321 + xy: 1029, 261 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-admin-badge-tiny rotate: false - xy: 1427, 159 + xy: 1841, 215 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-admin-small rotate: false - xy: 903, 387 + xy: 655, 230 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-admin-smaller rotate: false - xy: 1141, 355 + xy: 1063, 295 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-admin-tiny rotate: false - xy: 1445, 177 + xy: 1859, 215 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-arrow rotate: false - xy: 1409, 875 + xy: 1409, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-arrow-16 rotate: false - xy: 1409, 875 + xy: 1409, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-arrow-16-small rotate: false - xy: 937, 421 + xy: 655, 196 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-arrow-small rotate: false - xy: 937, 421 + xy: 655, 196 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-arrow-16-smaller rotate: false - xy: 1175, 389 + xy: 1097, 329 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-arrow-smaller rotate: false - xy: 1175, 389 + xy: 1097, 329 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-arrow-16-tiny rotate: false - xy: 1463, 195 + xy: 1877, 215 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-arrow-tiny rotate: false - xy: 1463, 195 + xy: 1877, 215 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-arrow-down rotate: false - xy: 1459, 925 + xy: 1459, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-arrow-down-small rotate: false - xy: 971, 455 + xy: 693, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-arrow-down-smaller rotate: false - xy: 1209, 423 + xy: 1131, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-arrow-down-tiny rotate: false - xy: 1427, 141 + xy: 1895, 215 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-arrow-left rotate: false - xy: 1409, 825 + xy: 1509, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-arrow-left-small rotate: false - xy: 1005, 489 + xy: 727, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-arrow-left-smaller rotate: false - xy: 1243, 457 + xy: 1163, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-arrow-left-tiny rotate: false - xy: 1445, 159 + xy: 1913, 215 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-arrow-right rotate: false - xy: 1459, 875 + xy: 1459, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-arrow-right-small rotate: false - xy: 597, 47 + xy: 761, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-arrow-right-smaller rotate: false - xy: 1277, 491 + xy: 1163, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-arrow-right-tiny rotate: false - xy: 1463, 177 + xy: 1931, 215 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-arrow-up rotate: false - xy: 1509, 925 + xy: 1509, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-arrow-up-small rotate: false - xy: 631, 81 + xy: 795, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-arrow-up-smaller rotate: false - xy: 869, 49 + xy: 1195, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-arrow-up-tiny rotate: false - xy: 1481, 195 + xy: 1949, 215 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-back rotate: false - xy: 1459, 825 + xy: 1559, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-back-small rotate: false - xy: 665, 115 + xy: 829, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-back-smaller rotate: false - xy: 903, 83 + xy: 1195, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-back-tiny rotate: false - xy: 1445, 141 + xy: 1967, 215 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-ban rotate: false - xy: 1509, 875 + xy: 1509, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-ban-small rotate: false - xy: 699, 149 + xy: 863, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-ban-smaller rotate: false - xy: 937, 117 + xy: 1227, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-ban-tiny rotate: false - xy: 1463, 159 + xy: 1985, 215 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-break rotate: false - xy: 1559, 925 + xy: 1559, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-break-small rotate: false - xy: 733, 183 + xy: 897, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-break-smaller rotate: false - xy: 971, 151 + xy: 1227, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-break-tiny rotate: false - xy: 1481, 177 + xy: 2003, 223 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-cancel rotate: false - xy: 1509, 825 + xy: 1609, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-cancel-small rotate: false - xy: 767, 217 + xy: 931, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-cancel-smaller rotate: false - xy: 1005, 185 + xy: 1259, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-cancel-tiny rotate: false - xy: 1499, 195 + xy: 2003, 205 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-quit-tiny rotate: false - xy: 1499, 195 + xy: 2003, 205 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-changelog rotate: false - xy: 1559, 875 + xy: 1559, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-changelog-small rotate: false - xy: 801, 251 + xy: 965, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-changelog-smaller rotate: false - xy: 1039, 221 + xy: 1259, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-changelog-tiny rotate: false - xy: 1463, 141 + xy: 1733, 196 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-chat rotate: false - xy: 1609, 925 + xy: 1609, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-chat-small rotate: false - xy: 835, 285 + xy: 999, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-chat-smaller rotate: false - xy: 1309, 491 + xy: 1291, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-chat-tiny rotate: false - xy: 1481, 159 + xy: 1751, 196 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-check rotate: false - xy: 1559, 825 + xy: 1659, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-check-small rotate: false - xy: 869, 319 + xy: 1033, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-check-smaller rotate: false - xy: 1341, 491 + xy: 1291, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-check-tiny rotate: false - xy: 1499, 177 + xy: 1769, 196 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-command-attack rotate: false - xy: 1609, 875 + xy: 1609, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-command-attack-small rotate: false - xy: 903, 353 + xy: 1067, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-command-attack-smaller rotate: false - xy: 1373, 491 + xy: 1323, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-command-attack-tiny rotate: false - xy: 1517, 195 + xy: 1787, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-command-patrol rotate: false - xy: 1659, 925 + xy: 1659, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-command-patrol-small rotate: false - xy: 937, 387 + xy: 1101, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-command-patrol-smaller rotate: false - xy: 1405, 491 + xy: 1323, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-command-patrol-tiny rotate: false - xy: 1481, 141 + xy: 1805, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-command-rally rotate: false - xy: 1609, 825 + xy: 1709, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-command-rally-small rotate: false - xy: 971, 421 + xy: 1135, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-command-rally-smaller rotate: false - xy: 1437, 491 + xy: 1355, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-command-rally-tiny rotate: false - xy: 1499, 159 + xy: 1823, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-command-retreat rotate: false - xy: 1659, 875 + xy: 1659, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-command-retreat-small rotate: false - xy: 1005, 455 + xy: 1169, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-command-retreat-smaller rotate: false - xy: 1469, 491 + xy: 1355, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-command-retreat-tiny rotate: false - xy: 1517, 177 + xy: 1841, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-copy rotate: false - xy: 1709, 925 + xy: 1709, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-copy-small rotate: false - xy: 1039, 489 + xy: 1203, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-copy-smaller rotate: false - xy: 1501, 491 + xy: 1387, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-copy-tiny rotate: false - xy: 1535, 195 + xy: 1859, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-crafting rotate: false - xy: 1659, 825 + xy: 1759, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-crafting-small rotate: false - xy: 631, 47 + xy: 1237, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-crafting-smaller rotate: false - xy: 1533, 491 + xy: 1387, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-crafting-tiny rotate: false - xy: 1499, 141 + xy: 1877, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-cursor rotate: false - xy: 1709, 875 + xy: 1709, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-cursor-small rotate: false - xy: 665, 81 + xy: 1271, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-cursor-smaller rotate: false - xy: 1565, 491 + xy: 1419, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-cursor-tiny rotate: false - xy: 1517, 159 + xy: 1895, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-database rotate: false - xy: 1759, 925 + xy: 1759, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-database-small rotate: false - xy: 699, 115 + xy: 1305, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-database-smaller rotate: false - xy: 1597, 491 + xy: 1419, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-database-tiny rotate: false - xy: 1535, 177 + xy: 1913, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-defense rotate: false - xy: 1709, 825 + xy: 1809, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-defense-small rotate: false - xy: 733, 149 + xy: 1339, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-defense-smaller rotate: false - xy: 1629, 491 + xy: 1451, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-defense-tiny rotate: false - xy: 1553, 195 + xy: 1931, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-dev-builds rotate: false - xy: 1759, 875 + xy: 1759, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-dev-builds-small rotate: false - xy: 767, 183 + xy: 1373, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-dev-builds-smaller rotate: false - xy: 1661, 491 + xy: 1451, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-dev-builds-tiny rotate: false - xy: 1517, 141 + xy: 1949, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-diagonal rotate: false - xy: 1809, 925 + xy: 1809, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-diagonal-small rotate: false - xy: 801, 217 + xy: 1407, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-diagonal-smaller rotate: false - xy: 1693, 491 + xy: 1483, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-diagonal-tiny rotate: false - xy: 1535, 159 + xy: 1967, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-discord rotate: false - xy: 1759, 825 + xy: 1859, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-discord-small rotate: false - xy: 835, 251 + xy: 1441, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-discord-smaller rotate: false - xy: 1725, 491 + xy: 1483, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-discord-tiny rotate: false - xy: 1553, 177 + xy: 1985, 197 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-distribution rotate: false - xy: 1809, 875 + xy: 1809, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-distribution-small rotate: false - xy: 869, 285 + xy: 1475, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-distribution-smaller rotate: false - xy: 1757, 491 + xy: 1515, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-distribution-tiny rotate: false - xy: 1571, 195 + xy: 2003, 187 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-donate rotate: false - xy: 1859, 925 + xy: 1859, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-donate-small rotate: false - xy: 903, 319 + xy: 1509, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-donate-smaller rotate: false - xy: 1789, 491 + xy: 1515, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-donate-tiny rotate: false - xy: 1535, 141 + xy: 1121, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-dots rotate: false - xy: 1809, 825 + xy: 1909, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-dots-small rotate: false - xy: 937, 353 + xy: 1543, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-dots-smaller rotate: false - xy: 529, 15 + xy: 1547, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-dots-tiny rotate: false - xy: 1553, 159 + xy: 1139, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-editor rotate: false - xy: 1859, 875 + xy: 1859, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-editor-small rotate: false - xy: 971, 387 + xy: 1577, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-editor-smaller rotate: false - xy: 561, 15 + xy: 1547, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-editor-tiny rotate: false - xy: 1571, 177 + xy: 1157, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-effect rotate: false - xy: 1909, 925 + xy: 1909, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-effect-small rotate: false - xy: 1005, 421 + xy: 1611, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-effect-smaller rotate: false - xy: 593, 15 + xy: 1579, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-effect-tiny rotate: false - xy: 1589, 195 + xy: 1175, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-elevation rotate: false - xy: 1859, 825 + xy: 1959, 925 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-elevation-small rotate: false - xy: 1039, 455 + xy: 1645, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-elevation-smaller rotate: false - xy: 625, 15 + xy: 1579, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-elevation-tiny rotate: false - xy: 1553, 141 + xy: 1193, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-eraser rotate: false - xy: 1909, 875 + xy: 1909, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-eraser-small rotate: false - xy: 1073, 489 + xy: 1679, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-eraser-smaller rotate: false - xy: 657, 15 + xy: 1611, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-eraser-tiny rotate: false - xy: 1571, 159 + xy: 1211, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-exit rotate: false - xy: 1959, 925 + xy: 1959, 875 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-exit-small rotate: false - xy: 665, 47 + xy: 1713, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-exit-smaller rotate: false - xy: 689, 15 + xy: 1611, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-exit-tiny rotate: false - xy: 1589, 177 + xy: 1229, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-fdroid rotate: false - xy: 1909, 825 + xy: 1959, 825 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-fdroid-small rotate: false - xy: 699, 81 + xy: 1747, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-fdroid-smaller rotate: false - xy: 721, 15 + xy: 1643, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-fdroid-tiny rotate: false - xy: 1607, 195 + xy: 1247, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-file rotate: false - xy: 1959, 875 + xy: 309, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-file-image rotate: false - xy: 1959, 825 + xy: 359, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-file-image-small rotate: false - xy: 733, 115 + xy: 1781, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-file-image-smaller rotate: false - xy: 753, 15 + xy: 1643, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-file-image-tiny rotate: false - xy: 1571, 141 + xy: 1265, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-file-small rotate: false - xy: 767, 149 + xy: 1815, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-file-smaller rotate: false - xy: 785, 15 + xy: 1675, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-file-text rotate: false - xy: 309, 775 + xy: 409, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-file-text-small rotate: false - xy: 801, 183 + xy: 1849, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-file-text-smaller rotate: false - xy: 817, 15 + xy: 1675, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-file-text-tiny rotate: false - xy: 1589, 159 + xy: 1283, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-file-tiny rotate: false - xy: 1607, 177 + xy: 1301, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-fill rotate: false - xy: 359, 775 + xy: 459, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-fill-small rotate: false - xy: 835, 217 + xy: 1883, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-fill-smaller rotate: false - xy: 1821, 491 + xy: 1707, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-fill-tiny rotate: false - xy: 1625, 195 + xy: 1319, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-flip rotate: false - xy: 409, 775 + xy: 509, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-flip-small rotate: false - xy: 869, 251 + xy: 1917, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-flip-smaller rotate: false - xy: 849, 15 + xy: 1707, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-flip-tiny rotate: false - xy: 1589, 141 + xy: 1337, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-floppy rotate: false - xy: 459, 775 + xy: 559, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-floppy-16 rotate: false - xy: 509, 775 + xy: 609, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-floppy-16-small rotate: false - xy: 903, 285 + xy: 1951, 429 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-floppy-16-smaller rotate: false - xy: 881, 17 + xy: 1739, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-floppy-16-tiny rotate: false - xy: 1607, 159 + xy: 1355, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-floppy-small rotate: false - xy: 937, 319 + xy: 689, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-floppy-smaller rotate: false - xy: 901, 49 + xy: 1739, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-floppy-tiny rotate: false - xy: 1625, 177 + xy: 1373, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-folder rotate: false - xy: 559, 775 + xy: 659, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-folder-parent rotate: false - xy: 609, 775 + xy: 709, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-folder-parent-small rotate: false - xy: 971, 353 + xy: 689, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-folder-parent-smaller rotate: false - xy: 913, 17 + xy: 1771, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-folder-parent-tiny rotate: false - xy: 1643, 195 + xy: 1391, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-folder-small rotate: false - xy: 1005, 387 + xy: 723, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-folder-smaller rotate: false - xy: 1981, 572 + xy: 1771, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-folder-tiny rotate: false - xy: 1607, 141 + xy: 1409, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-github rotate: false - xy: 659, 775 + xy: 759, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-github-small rotate: false - xy: 1039, 421 + xy: 689, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-github-smaller rotate: false - xy: 1977, 540 + xy: 1803, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-github-tiny rotate: false - xy: 1625, 159 + xy: 1427, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-google-play rotate: false - xy: 709, 775 + xy: 809, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-google-play-small rotate: false - xy: 1073, 455 + xy: 723, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-google-play-smaller rotate: false - xy: 2013, 572 + xy: 1803, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-google-play-tiny rotate: false - xy: 1643, 177 + xy: 1445, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-grid rotate: false - xy: 759, 775 + xy: 859, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-grid-small rotate: false - xy: 1107, 489 + xy: 757, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-grid-smaller rotate: false - xy: 2009, 540 + xy: 1835, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-grid-tiny rotate: false - xy: 1661, 195 + xy: 1463, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-home rotate: false - xy: 809, 775 + xy: 909, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-home-small rotate: false - xy: 699, 47 + xy: 689, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-home-smaller rotate: false - xy: 1039, 189 + xy: 1835, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-home-tiny rotate: false - xy: 1625, 141 + xy: 1481, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-host rotate: false - xy: 859, 775 + xy: 959, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-host-small rotate: false - xy: 733, 81 + xy: 723, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-host-smaller rotate: false - xy: 1853, 509 + xy: 1867, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-host-tiny rotate: false - xy: 1643, 159 + xy: 1499, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-info rotate: false - xy: 909, 775 + xy: 1009, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-info-small rotate: false - xy: 767, 115 + xy: 757, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-info-smaller rotate: false - xy: 1853, 477 + xy: 1867, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-info-tiny rotate: false - xy: 1661, 177 + xy: 1517, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-itch.io rotate: false - xy: 959, 775 + xy: 1059, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-itch.io-small rotate: false - xy: 801, 149 + xy: 791, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-itch.io-smaller rotate: false - xy: 1885, 506 + xy: 1899, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-itch.io-tiny rotate: false - xy: 1679, 195 + xy: 1535, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-item rotate: false - xy: 1009, 775 + xy: 1109, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-item-small rotate: false - xy: 835, 183 + xy: 689, 259 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-item-smaller rotate: false - xy: 1917, 506 + xy: 1899, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-item-tiny rotate: false - xy: 1643, 141 + xy: 1553, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-line rotate: false - xy: 1059, 775 + xy: 1159, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-line-small rotate: false - xy: 869, 217 + xy: 723, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-line-smaller rotate: false - xy: 1885, 474 + xy: 1931, 397 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-line-tiny rotate: false - xy: 1661, 159 + xy: 1571, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-link rotate: false - xy: 1109, 775 + xy: 1209, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-link-small rotate: false - xy: 903, 251 + xy: 757, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-link-smaller rotate: false - xy: 1917, 474 + xy: 1931, 365 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-link-tiny rotate: false - xy: 1679, 177 + xy: 1589, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-liquid rotate: false - xy: 1159, 775 + xy: 1259, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-liquid-consume rotate: false - xy: 1209, 775 + xy: 1309, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-liquid-consume-small rotate: false - xy: 937, 285 + xy: 791, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-liquid-consume-smaller rotate: false - xy: 1949, 506 + xy: 689, 193 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-liquid-consume-tiny rotate: false - xy: 1697, 195 + xy: 1607, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-liquid-small rotate: false - xy: 971, 319 + xy: 825, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-liquid-smaller rotate: false - xy: 1949, 474 + xy: 721, 193 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-liquid-tiny rotate: false - xy: 1661, 141 + xy: 1625, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-load rotate: false - xy: 1259, 775 + xy: 1359, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-load-image rotate: false - xy: 1309, 775 + xy: 1409, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-load-image-small rotate: false - xy: 1005, 353 + xy: 689, 225 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-load-image-smaller rotate: false - xy: 1981, 508 + xy: 753, 193 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-load-image-tiny rotate: false - xy: 1679, 159 + xy: 1643, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-load-map rotate: false - xy: 1359, 775 + xy: 1459, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-load-map-small rotate: false - xy: 1039, 387 + xy: 723, 259 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-load-map-smaller rotate: false - xy: 1981, 476 + xy: 785, 193 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-load-map-tiny rotate: false - xy: 1697, 177 + xy: 1661, 189 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-load-small rotate: false - xy: 1073, 421 + xy: 757, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-load-smaller rotate: false - xy: 2013, 508 + xy: 817, 193 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-load-tiny rotate: false - xy: 1679, 141 + xy: 1679, 191 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-loading rotate: false - xy: 1409, 775 + xy: 1509, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-loading-small rotate: false - xy: 1107, 455 + xy: 791, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-loading-smaller rotate: false - xy: 2013, 476 + xy: 849, 193 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-loading-tiny rotate: false - xy: 1697, 159 + xy: 1697, 191 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-locked rotate: false - xy: 1459, 775 + xy: 1559, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-locked-small rotate: false - xy: 1141, 489 + xy: 825, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-locked-smaller rotate: false - xy: 1071, 253 + xy: 881, 193 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-locked-tiny rotate: false - xy: 1697, 141 + xy: 1715, 191 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-map rotate: false - xy: 1509, 775 + xy: 1609, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-map-small rotate: false - xy: 733, 47 + xy: 859, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-map-smaller rotate: false - xy: 1071, 221 + xy: 913, 193 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-map-tiny rotate: false - xy: 1301, 123 + xy: 1103, 185 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-menu rotate: false - xy: 1559, 775 + xy: 1659, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-menu-large rotate: false - xy: 1609, 775 + xy: 1709, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-menu-large-small rotate: false - xy: 767, 81 + xy: 723, 225 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-menu-large-smaller rotate: false - xy: 1071, 189 + xy: 945, 193 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-menu-large-tiny rotate: false - xy: 1125, 105 + xy: 1733, 178 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-menu-small rotate: false - xy: 801, 115 + xy: 757, 259 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-menu-smaller rotate: false - xy: 1105, 287 + xy: 655, 164 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-menu-tiny rotate: false - xy: 1319, 123 + xy: 1751, 178 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-missing rotate: false - xy: 1659, 775 + xy: 1759, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-missing-small rotate: false - xy: 835, 149 + xy: 791, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-missing-smaller rotate: false - xy: 1103, 255 + xy: 651, 132 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-missing-tiny rotate: false - xy: 1125, 123 + xy: 1769, 178 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-mode-attack rotate: false - xy: 1709, 775 + xy: 1809, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-mode-attack-small rotate: false - xy: 869, 183 + xy: 825, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-mode-attack-smaller rotate: false - xy: 1103, 223 + xy: 651, 100 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-mode-attack-tiny rotate: false - xy: 1337, 123 + xy: 1787, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-mode-pvp rotate: false - xy: 1759, 775 + xy: 1859, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-mode-pvp-small rotate: false - xy: 903, 217 + xy: 859, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-mode-pvp-smaller rotate: false - xy: 1103, 191 + xy: 651, 68 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-mode-pvp-tiny rotate: false - xy: 1355, 123 + xy: 1805, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-mode-survival rotate: false - xy: 1809, 775 + xy: 1909, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-mode-survival-small rotate: false - xy: 937, 251 + xy: 893, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-mode-survival-smaller rotate: false - xy: 1139, 321 + xy: 651, 36 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-mode-survival-tiny rotate: false - xy: 1373, 123 + xy: 1823, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-none rotate: false - xy: 1859, 775 + xy: 1959, 775 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-none-small rotate: false - xy: 971, 285 + xy: 757, 225 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-none-smaller rotate: false - xy: 1137, 289 + xy: 687, 161 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-none-tiny rotate: false - xy: 1391, 123 + xy: 1841, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-paste rotate: false - xy: 1909, 775 + xy: 287, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-paste-small rotate: false - xy: 1005, 319 + xy: 791, 259 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-paste-smaller rotate: false - xy: 1173, 355 + xy: 719, 161 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-paste-tiny rotate: false - xy: 1409, 123 + xy: 1859, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-pause rotate: false - xy: 1959, 775 + xy: 337, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-pause-small rotate: false - xy: 1039, 353 + xy: 825, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-pause-smaller rotate: false - xy: 1171, 323 + xy: 751, 161 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-pause-tiny rotate: false - xy: 1427, 123 + xy: 1877, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-pencil rotate: false - xy: 287, 725 + xy: 387, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-pencil-small rotate: false - xy: 1073, 387 + xy: 859, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-pencil-smaller rotate: false - xy: 1207, 389 + xy: 783, 161 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-pencil-tiny rotate: false - xy: 1445, 123 + xy: 1895, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-pick rotate: false - xy: 337, 725 + xy: 437, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-pick-small rotate: false - xy: 1107, 421 + xy: 893, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-pick-smaller rotate: false - xy: 1205, 357 + xy: 815, 161 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-pick-tiny rotate: false - xy: 1463, 123 + xy: 1913, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-play rotate: false - xy: 387, 725 + xy: 487, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-play-2 rotate: false - xy: 437, 725 + xy: 537, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-play-2-small rotate: false - xy: 1141, 455 + xy: 927, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-play-2-smaller rotate: false - xy: 1241, 423 + xy: 847, 161 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-play-2-tiny rotate: false - xy: 1481, 123 + xy: 1931, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-play-tiny rotate: false - xy: 1481, 123 + xy: 1931, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-play-custom rotate: false - xy: 487, 725 + xy: 587, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-play-custom-small rotate: false - xy: 1175, 489 + xy: 791, 225 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-play-custom-smaller rotate: false - xy: 1239, 391 + xy: 879, 161 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-play-custom-tiny rotate: false - xy: 1499, 123 + xy: 1949, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-play-small rotate: false - xy: 767, 47 + xy: 825, 259 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-play-smaller rotate: false - xy: 969, 117 + xy: 911, 161 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-players rotate: false - xy: 537, 725 + xy: 637, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-players-small rotate: false - xy: 801, 81 + xy: 859, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-players-smaller rotate: false - xy: 1003, 151 + xy: 943, 161 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-players-tiny rotate: false - xy: 1517, 123 + xy: 1967, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-power rotate: false - xy: 587, 725 + xy: 687, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-power-small rotate: false - xy: 835, 115 + xy: 893, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-power-smaller rotate: false - xy: 1001, 119 + xy: 683, 129 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-power-tiny rotate: false - xy: 1535, 123 + xy: 1985, 179 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-production rotate: false - xy: 637, 725 + xy: 737, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-production-small rotate: false - xy: 869, 149 + xy: 927, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-production-smaller rotate: false - xy: 935, 83 + xy: 683, 97 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-production-tiny rotate: false - xy: 1553, 123 + xy: 2003, 169 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-quit rotate: false - xy: 687, 725 + xy: 787, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-quit-small rotate: false - xy: 903, 183 + xy: 961, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-quit-smaller rotate: false - xy: 933, 51 + xy: 715, 129 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-reddit rotate: false - xy: 737, 725 + xy: 837, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-reddit-small rotate: false - xy: 937, 217 + xy: 825, 225 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-reddit-smaller rotate: false - xy: 967, 85 + xy: 683, 65 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-reddit-tiny rotate: false - xy: 1571, 123 + xy: 1121, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-redo rotate: false - xy: 787, 725 + xy: 887, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-redo-small rotate: false - xy: 971, 251 + xy: 859, 259 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-redo-smaller rotate: false - xy: 945, 19 + xy: 715, 97 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-redo-tiny rotate: false - xy: 1589, 123 + xy: 1139, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-refresh rotate: false - xy: 837, 725 + xy: 937, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-refresh-small rotate: false - xy: 1005, 285 + xy: 893, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-refresh-smaller rotate: false - xy: 965, 51 + xy: 747, 129 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-refresh-tiny rotate: false - xy: 1607, 123 + xy: 1157, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-rename rotate: false - xy: 887, 725 + xy: 987, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-rename-small rotate: false - xy: 1039, 319 + xy: 927, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-rename-smaller rotate: false - xy: 977, 19 + xy: 715, 65 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-rename-tiny rotate: false - xy: 1625, 123 + xy: 1175, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-resize rotate: false - xy: 937, 725 + xy: 1037, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-resize-small rotate: false - xy: 1073, 353 + xy: 961, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-resize-smaller rotate: false - xy: 1037, 157 + xy: 747, 97 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-resize-tiny rotate: false - xy: 1643, 123 + xy: 1193, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-rotate rotate: false - xy: 987, 725 + xy: 1087, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-rotate-arrow rotate: false - xy: 1037, 725 + xy: 1137, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-rotate-arrow-small rotate: false - xy: 1107, 387 + xy: 995, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-rotate-arrow-smaller rotate: false - xy: 1069, 157 + xy: 779, 129 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-rotate-arrow-tiny rotate: false - xy: 1661, 123 + xy: 1211, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-rotate-left rotate: false - xy: 1087, 725 + xy: 1187, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-rotate-left-small rotate: false - xy: 1141, 421 + xy: 859, 225 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-rotate-left-smaller rotate: false - xy: 1035, 125 + xy: 747, 65 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-rotate-left-tiny rotate: false - xy: 1679, 123 + xy: 1229, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-rotate-right rotate: false - xy: 1137, 725 + xy: 1237, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-rotate-right-small rotate: false - xy: 1175, 455 + xy: 893, 259 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-rotate-right-smaller rotate: false - xy: 1067, 125 + xy: 779, 97 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-rotate-right-tiny rotate: false - xy: 1697, 123 + xy: 1247, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-rotate-small rotate: false - xy: 1209, 489 + xy: 927, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-rotate-smaller rotate: false - xy: 1033, 93 + xy: 811, 129 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-rotate-tiny rotate: false - xy: 1125, 141 + xy: 1265, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-save rotate: false - xy: 1187, 725 + xy: 1287, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-save-image rotate: false - xy: 1237, 725 + xy: 1337, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-save-image-small rotate: false - xy: 801, 47 + xy: 961, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-save-image-smaller rotate: false - xy: 1065, 93 + xy: 779, 65 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-save-image-tiny rotate: false - xy: 1143, 154 + xy: 1283, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-save-map rotate: false - xy: 1287, 725 + xy: 1387, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-save-map-small rotate: false - xy: 835, 81 + xy: 995, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-save-map-smaller rotate: false - xy: 1001, 87 + xy: 811, 97 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-save-map-tiny rotate: false - xy: 1143, 136 + xy: 1301, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-save-small rotate: false - xy: 869, 115 + xy: 1029, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-save-smaller rotate: false - xy: 1033, 61 + xy: 843, 129 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-save-tiny rotate: false - xy: 1161, 141 + xy: 1319, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-settings rotate: false - xy: 1337, 725 + xy: 1437, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-settings-small rotate: false - xy: 903, 149 + xy: 893, 225 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-settings-smaller rotate: false - xy: 1065, 61 + xy: 811, 65 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-settings-tiny rotate: false - xy: 1143, 118 + xy: 1337, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-spray rotate: false - xy: 1387, 725 + xy: 1487, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-spray-small rotate: false - xy: 937, 183 + xy: 927, 259 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-spray-smaller rotate: false - xy: 1275, 457 + xy: 843, 97 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-spray-tiny rotate: false - xy: 1161, 123 + xy: 1355, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-terrain rotate: false - xy: 1437, 725 + xy: 1537, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-terrain-small rotate: false - xy: 971, 217 + xy: 961, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-terrain-smaller rotate: false - xy: 1273, 425 + xy: 875, 129 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-terrain-tiny rotate: false - xy: 1179, 141 + xy: 1373, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-tools rotate: false - xy: 1487, 725 + xy: 1587, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-tools-small rotate: false - xy: 1005, 251 + xy: 995, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-tools-smaller rotate: false - xy: 1307, 459 + xy: 843, 65 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-tools-tiny rotate: false - xy: 1179, 123 + xy: 1391, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-trash rotate: false - xy: 1537, 725 + xy: 1637, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-trash-16 rotate: false - xy: 1587, 725 + xy: 1687, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-trash-16-small rotate: false - xy: 1039, 285 + xy: 1029, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-trash-16-smaller rotate: false - xy: 1339, 459 + xy: 875, 97 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-trash-16-tiny rotate: false - xy: 1715, 187 + xy: 1409, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-trash-small rotate: false - xy: 1073, 319 + xy: 1063, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-trash-smaller rotate: false - xy: 1371, 459 + xy: 907, 129 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-trash-tiny rotate: false - xy: 1715, 169 + xy: 1427, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-tree rotate: false - xy: 1637, 725 + xy: 1737, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-tree-small rotate: false - xy: 1107, 353 + xy: 927, 225 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-tree-smaller rotate: false - xy: 1403, 459 + xy: 875, 65 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-tree-tiny rotate: false - xy: 1715, 151 + xy: 1445, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-trello rotate: false - xy: 1687, 725 + xy: 1787, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-trello-small rotate: false - xy: 1141, 387 + xy: 961, 259 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-trello-smaller rotate: false - xy: 1435, 459 + xy: 907, 97 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-trello-tiny rotate: false - xy: 1715, 133 + xy: 1463, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-turret rotate: false - xy: 1737, 725 + xy: 1837, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-turret-small rotate: false - xy: 1175, 421 + xy: 995, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-turret-smaller rotate: false - xy: 1467, 459 + xy: 939, 129 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-turret-tiny rotate: false - xy: 1733, 187 + xy: 1481, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-tutorial rotate: false - xy: 1787, 725 + xy: 1887, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-tutorial-small rotate: false - xy: 1209, 455 + xy: 1029, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-tutorial-smaller rotate: false - xy: 1499, 459 + xy: 907, 65 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-tutorial-tiny rotate: false - xy: 1733, 169 + xy: 1499, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-undo rotate: false - xy: 1837, 725 + xy: 1937, 725 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-undo-small rotate: false - xy: 1243, 489 + xy: 1063, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-undo-smaller rotate: false - xy: 1531, 459 + xy: 939, 97 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-undo-tiny rotate: false - xy: 1733, 151 + xy: 1517, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-units rotate: false - xy: 1887, 725 + xy: 301, 675 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-units-small rotate: false - xy: 835, 47 + xy: 1097, 395 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-units-smaller rotate: false - xy: 1563, 459 + xy: 939, 65 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-units-tiny rotate: false - xy: 1733, 133 + xy: 1535, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-unlocks rotate: false - xy: 1937, 725 + xy: 301, 625 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-unlocks-small rotate: false - xy: 869, 81 + xy: 961, 225 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-unlocks-smaller rotate: false - xy: 1595, 459 + xy: 683, 33 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-unlocks-tiny rotate: false - xy: 1715, 115 + xy: 1553, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-upgrade rotate: false - xy: 301, 675 + xy: 351, 675 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-upgrade-small rotate: false - xy: 903, 115 + xy: 995, 259 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-upgrade-smaller rotate: false - xy: 1627, 459 + xy: 715, 33 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-upgrade-tiny rotate: false - xy: 1733, 115 + xy: 1571, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-wiki rotate: false - xy: 301, 625 + xy: 301, 575 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-wiki-small rotate: false - xy: 937, 149 + xy: 1029, 293 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-wiki-smaller rotate: false - xy: 1659, 459 + xy: 747, 33 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-wiki-tiny rotate: false - xy: 1161, 105 + xy: 1589, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-workshop rotate: false - xy: 351, 675 + xy: 351, 625 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-workshop-small rotate: false - xy: 971, 183 + xy: 1063, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-workshop-smaller rotate: false - xy: 1691, 459 + xy: 779, 33 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-workshop-tiny rotate: false - xy: 1179, 105 + xy: 1607, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-zoom rotate: false - xy: 301, 575 + xy: 401, 675 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-zoom-small rotate: false - xy: 1005, 217 + xy: 1097, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-zoom-smaller rotate: false - xy: 1723, 459 + xy: 811, 33 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-zoom-tiny rotate: false - xy: 1149, 87 + xy: 1625, 171 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -19308,7 +19434,7 @@ info-banner index: -1 inventory rotate: false - xy: 1221, 271 + xy: 1693, 245 size: 24, 40 split: 10, 10, 10, 14 orig: 24, 40 @@ -19323,7 +19449,7 @@ nomap index: -1 pane rotate: false - xy: 1981, 633 + xy: 629, 541 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19331,7 +19457,7 @@ pane index: -1 pane-2 rotate: false - xy: 1997, 662 + xy: 591, 512 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19339,7 +19465,7 @@ pane-2 index: -1 scroll rotate: false - xy: 1783, 284 + xy: 1745, 250 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -19355,21 +19481,21 @@ scroll-horizontal index: -1 scroll-knob-horizontal-black rotate: false - xy: 301, 3 + xy: 511, 187 size: 40, 24 orig: 40, 24 offset: 0, 0 index: -1 scroll-knob-vertical-black rotate: false - xy: 1757, 279 + xy: 1719, 245 size: 24, 40 orig: 24, 40 offset: 0, 0 index: -1 scroll-knob-vertical-thin rotate: false - xy: 1809, 331 + xy: 2033, 363 size: 12, 40 orig: 12, 40 offset: 0, 0 @@ -19383,28 +19509,28 @@ selection index: -1 slider rotate: false - xy: 1161, 214 + xy: 2046, 791 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 1755, 451 + xy: 843, 25 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 1786, 451 + xy: 874, 25 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 1817, 451 + xy: 905, 25 size: 29, 38 orig: 29, 38 offset: 0, 0 @@ -19418,7 +19544,7 @@ slider-vertical index: -1 underline rotate: false - xy: 511, 528 + xy: 629, 512 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19426,7 +19552,7 @@ underline index: -1 underline-2 rotate: false - xy: 1981, 604 + xy: 667, 570 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19434,7 +19560,7 @@ underline-2 index: -1 underline-disabled rotate: false - xy: 435, 528 + xy: 553, 454 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19442,7 +19568,7 @@ underline-disabled index: -1 underline-red rotate: false - xy: 473, 528 + xy: 591, 483 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -19450,14 +19576,14 @@ underline-red index: -1 whiteui rotate: false - xy: 529, 523 + xy: 575, 41 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 window-empty rotate: false - xy: 1135, 224 + xy: 1993, 502 size: 27, 61 split: 4, 4, 2, 2 orig: 27, 61 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 1267024e62..d0a60f7f83 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/assets/sprites/sprites3.png b/core/assets/sprites/sprites3.png index 19f0b3e1d4..af8200ae79 100644 Binary files a/core/assets/sprites/sprites3.png and b/core/assets/sprites/sprites3.png differ diff --git a/core/assets/sprites/sprites5.png b/core/assets/sprites/sprites5.png index 91291e0a86..e793251b5a 100644 Binary files a/core/assets/sprites/sprites5.png and b/core/assets/sprites/sprites5.png differ diff --git a/core/src/io/anuke/mindustry/content/Blocks.java b/core/src/io/anuke/mindustry/content/Blocks.java index 4dad59002c..6a6c61531e 100644 --- a/core/src/io/anuke/mindustry/content/Blocks.java +++ b/core/src/io/anuke/mindustry/content/Blocks.java @@ -48,7 +48,7 @@ public class Blocks implements ContentList{ melter, separator, sporePress, pulverizer, incinerator, coalCentrifuge, //sandbox - powerVoid, powerSource, itemSource, liquidSource, itemVoid, message, light, + powerSource, powerVoid, itemSource, itemVoid, liquidSource, message, illuminator, //defense scrapWall, scrapWallLarge, scrapWallHuge, scrapWallGigantic, thruster, //ok, these names are getting ridiculous, but at least I don't have humongous walls yet @@ -63,7 +63,7 @@ public class Blocks implements ContentList{ //power combustionGenerator, thermalGenerator, turbineGenerator, differentialGenerator, rtgGenerator, solarPanel, largeSolarPanel, thoriumReactor, - impactReactor, battery, batteryLarge, powerNode, powerNodeLarge, surgeTower, + impactReactor, battery, batteryLarge, powerNode, powerNodeLarge, surgeTower, diode, //production mechanicalDrill, pneumaticDrill, laserDrill, blastDrill, waterExtractor, oilExtractor, cultivator, @@ -537,7 +537,7 @@ public class Blocks implements ContentList{ hasPower = true; consumes.power(4f); - consumes.items(new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 4), new ItemStack(Items.silicon, 3), new ItemStack(Items.copper, 3)); + consumes.items(new ItemStack(Items.copper, 3), new ItemStack(Items.lead, 4), new ItemStack(Items.titanium, 2), new ItemStack(Items.silicon, 3)); }}; cryofluidMixer = new LiquidConverter("cryofluidmixer"){{ @@ -713,11 +713,11 @@ public class Blocks implements ContentList{ //endregion //region sandbox - powerVoid = new PowerVoid("power-void"){{ + powerSource = new PowerSource("power-source"){{ requirements(Category.power, BuildVisibility.sandboxOnly, ItemStack.with()); alwaysUnlocked = true; }}; - powerSource = new PowerSource("power-source"){{ + powerVoid = new PowerVoid("power-void"){{ requirements(Category.power, BuildVisibility.sandboxOnly, ItemStack.with()); alwaysUnlocked = true; }}; @@ -736,8 +736,11 @@ public class Blocks implements ContentList{ message = new MessageBlock("message"){{ requirements(Category.effect, ItemStack.with(Items.graphite, 5)); }}; - light = new LightBlock("light"){{ + illuminator = new LightBlock("illuminator"){{ requirements(Category.effect, ItemStack.with(Items.graphite, 5)); + color = Color.valueOf("7d93ff"); + brightness = 0.6f; + radius = 80f; consumes.power(0.05f); }}; @@ -1014,6 +1017,7 @@ public class Blocks implements ContentList{ pulseConduit = new Conduit("pulse-conduit"){{ requirements(Category.liquid, ItemStack.with(Items.titanium, 2, Items.metaglass, 1)); liquidCapacity = 16f; + liquidPressure = 1.025f; health = 90; }}; @@ -1069,6 +1073,10 @@ public class Blocks implements ContentList{ laserRange = 30f; }}; + diode = new PowerDiode("diode"){{ + requirements(Category.power, ItemStack.with(Items.silicon, 10, Items.plastanium, 5, Items.metaglass, 10)); + }}; + battery = new Battery("battery"){{ requirements(Category.power, ItemStack.with(Items.copper, 4, Items.lead, 20)); consumes.powerBuffered(4000f); diff --git a/core/src/io/anuke/mindustry/content/TechTree.java b/core/src/io/anuke/mindustry/content/TechTree.java index 45723688dc..e59fc3ab90 100644 --- a/core/src/io/anuke/mindustry/content/TechTree.java +++ b/core/src/io/anuke/mindustry/content/TechTree.java @@ -215,8 +215,10 @@ public class TechTree implements ContentList{ node(combustionGenerator, () -> { node(powerNode, () -> { node(powerNodeLarge, () -> { - node(surgeTower, () -> { + node(diode, () -> { + node(surgeTower, () -> { + }); }); }); diff --git a/core/src/io/anuke/mindustry/content/Zones.java b/core/src/io/anuke/mindustry/content/Zones.java index 6c4932e814..ae6598f60c 100644 --- a/core/src/io/anuke/mindustry/content/Zones.java +++ b/core/src/io/anuke/mindustry/content/Zones.java @@ -189,7 +189,6 @@ public class Zones implements ContentList{ startingItems = list(copper, 250, lead, 100); conditionWave = 15; launchPeriod = 10; - requirements = with(new ZoneWave(ruinousShores, 20)); resources = with(copper, scrap, lead, coal, titanium, thorium, sand); requirements = with( new ZoneWave(ruinousShores, 20), diff --git a/core/src/io/anuke/mindustry/editor/EditorTile.java b/core/src/io/anuke/mindustry/editor/EditorTile.java index 6d627399df..91b76b2364 100644 --- a/core/src/io/anuke/mindustry/editor/EditorTile.java +++ b/core/src/io/anuke/mindustry/editor/EditorTile.java @@ -103,6 +103,7 @@ public class EditorTile extends Tile{ return; } + if(floor.isLiquid) return; if(overlayID() == overlay) return; op(OpType.overlay, this.overlay.id); super.setOverlayID(overlay); diff --git a/core/src/io/anuke/mindustry/editor/WaveInfoDialog.java b/core/src/io/anuke/mindustry/editor/WaveInfoDialog.java index fa94b6b2f2..37f55cb775 100644 --- a/core/src/io/anuke/mindustry/editor/WaveInfoDialog.java +++ b/core/src/io/anuke/mindustry/editor/WaveInfoDialog.java @@ -186,7 +186,7 @@ public class WaveInfoDialog extends FloatingDialog{ }).width(80f); a.add(" + "); - a.addField(Strings.fixed(Math.max((Mathf.isZero(group.unitScaling) ? 0 : 1f / group.unitScaling), 0), 2), TextFieldFilter.floatsOnly, text -> { + a.addField(Strings.fixed(Math.max((Mathf.zero(group.unitScaling) ? 0 : 1f / group.unitScaling), 0), 2), TextFieldFilter.floatsOnly, text -> { if(Strings.canParsePositiveFloat(text)){ group.unitScaling = 1f / Strings.parseFloat(text); updateWaves(); @@ -217,21 +217,23 @@ public class WaveInfoDialog extends FloatingDialog{ void showUpdate(SpawnGroup group){ FloatingDialog dialog = new FloatingDialog(""); - dialog.setFillParent(false); - int i = 0; - for(UnitType type : content.units()){ - dialog.cont.addButton(t -> { - t.left(); - t.addImage(type.icon(io.anuke.mindustry.ui.Cicon.medium)).size(40f).padRight(2f); - t.add(type.localizedName); - }, () -> { - lastType = type; - group.type = type; - dialog.hide(); - buildGroups(); - }).pad(2).margin(12f).fillX(); - if(++i % 3 == 0) dialog.cont.row(); - } + dialog.setFillParent(true); + dialog.cont.pane(p -> { + int i = 0; + for(UnitType type : content.units()){ + p.addButton(t -> { + t.left(); + t.addImage(type.icon(io.anuke.mindustry.ui.Cicon.medium)).size(40f).padRight(2f); + t.add(type.localizedName); + }, () -> { + lastType = type; + group.type = type; + dialog.hide(); + buildGroups(); + }).pad(2).margin(12f).fillX(); + if(++i % 3 == 0) p.row(); + } + }); dialog.show(); } diff --git a/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java b/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java index 35205daa42..bb02ed792d 100644 --- a/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java +++ b/core/src/io/anuke/mindustry/entities/traits/BuilderTrait.java @@ -34,39 +34,36 @@ public interface BuilderTrait extends Entity, TeamTrait{ default void updateBuilding(){ float finalPlaceDst = state.rules.infiniteResources ? Float.MAX_VALUE : placeDistance; Unit unit = (Unit)this; + //remove already completed build requests removal.clear(); - for(BuildRequest req : buildQueue()){ - removal.add(req); - } + removal.addAll(buildQueue()); - buildQueue().clear(); + Structs.filter(buildQueue(), req -> { + Tile tile = world.tile(req.x, req.y); + return tile == null || (req.breaking && tile.block() == Blocks.air) || (!req.breaking && (tile.rotation() == req.rotation || !req.block.rotate) && tile.block() == req.block); + }); - for(BuildRequest request : removal){ - Tile tile = world.tile(request.x, request.y); + TileEntity core = unit.getClosestCore(); - if(!(tile == null || (request.breaking && tile.block() == Blocks.air) || - (!request.breaking && (tile.rotation() == request.rotation || !request.block.rotate) && tile.block() == request.block))){ - buildQueue().addLast(request); + //nothing to build. + if(buildRequest() == null) return; + + //find the next build request + if(buildQueue().size > 1){ + int total = 0; + BuildRequest req; + while((dst((req = buildRequest()).tile()) > finalPlaceDst || shouldSkip(req, core)) && total < buildQueue().size){ + buildQueue().removeFirst(); + buildQueue().addLast(req); + total++; } } BuildRequest current = buildRequest(); - if(current == null){ - return; - } - Tile tile = world.tile(current.x, current.y); - if(dst(tile) > finalPlaceDst){ - if(buildQueue().size > 1){ - buildQueue().removeFirst(); - buildQueue().addLast(current); - } - return; - } - if(!(tile.block() instanceof BuildBlock)){ if(!current.initialized && canCreateBlocks() && !current.breaking && Build.validPlace(getTeam(), current.x, current.y, current.block, current.rotation)){ Call.beginPlace(getTeam(), current.x, current.y, current.block, current.rotation); @@ -78,8 +75,6 @@ public interface BuilderTrait extends Entity, TeamTrait{ } } - TileEntity core = unit.getClosestCore(); - if(tile.entity instanceof BuildEntity && !current.initialized){ Core.app.post(() -> Events.fire(new BuildSelectEvent(tile, unit.getTeam(), this, current.breaking))); current.initialized = true; @@ -111,9 +106,17 @@ public interface BuilderTrait extends Entity, TeamTrait{ } } + current.stuck = Mathf.equal(current.progress, entity.progress); current.progress = entity.progress; } + /** @return whether this request should be skipped, in favor of the next one. */ + default boolean shouldSkip(BuildRequest request, @Nullable TileEntity core){ + //requests that you have at least *started* are considered + if(state.rules.infiniteResources || request.breaking || !request.initialized || core == null) return false; + return request.stuck && !core.items.has(request.block.requirements); + } + /** Returns the queue for storing build requests. */ Queue buildQueue(); @@ -287,8 +290,8 @@ public interface BuilderTrait extends Entity, TeamTrait{ /** Last progress.*/ public float progress; - /** Whether construction has started for this request.*/ - public boolean initialized, worldContext = true; + /** Whether construction has started for this request, and other special variables.*/ + public boolean initialized, worldContext = true, stuck; /** Visual scale. Used only for rendering.*/ public float animScale = 0f; diff --git a/core/src/io/anuke/mindustry/entities/type/Player.java b/core/src/io/anuke/mindustry/entities/type/Player.java index b9f9df688d..4e83cd1091 100644 --- a/core/src/io/anuke/mindustry/entities/type/Player.java +++ b/core/src/io/anuke/mindustry/entities/type/Player.java @@ -592,6 +592,11 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ movement.x += xa * speed; } + if(Core.input.keyDown(Binding.mouse_move)){ + movement.x += Mathf.clamp((Core.input.mouseX() - Core.graphics.getWidth() / 2) * 0.005f, -1, 1) * speed; + movement.y += Mathf.clamp((Core.input.mouseY() - Core.graphics.getHeight() / 2) * 0.005f, -1, 1) * speed; + } + Vector2 vec = Core.input.mouseWorld(control.input.getMouseX(), control.input.getMouseY()); pointerX = vec.x; pointerY = vec.y; diff --git a/core/src/io/anuke/mindustry/entities/type/TileEntity.java b/core/src/io/anuke/mindustry/entities/type/TileEntity.java index 5fa2ea9aae..3438eac854 100644 --- a/core/src/io/anuke/mindustry/entities/type/TileEntity.java +++ b/core/src/io/anuke/mindustry/entities/type/TileEntity.java @@ -87,6 +87,11 @@ public class TileEntity extends BaseEntity implements TargetTrait, HealthTrait{ return Time.delta() * timeScale; } + /** Base efficiency. If this entity has non-buffered power, returns the power %, otherwise returns 1. */ + public float efficiency(){ + return power != null && !block.consumes.getPower().buffered ? power.status : 1f; + } + /** Call when nothing is happening to the entity. This increments the internal sleep timer. */ public void sleep(){ sleepTime += Time.delta(); diff --git a/core/src/io/anuke/mindustry/game/EventType.java b/core/src/io/anuke/mindustry/game/EventType.java index 567a4a706f..ac56c86b6e 100644 --- a/core/src/io/anuke/mindustry/game/EventType.java +++ b/core/src/io/anuke/mindustry/game/EventType.java @@ -27,7 +27,8 @@ public class EventType{ drown, exclusionDeath, suicideBomb, - openWiki + openWiki, + teamCoreDamage } public static class WinEvent{} diff --git a/core/src/io/anuke/mindustry/game/LoopControl.java b/core/src/io/anuke/mindustry/game/LoopControl.java index 8a60711ece..e69d3bd260 100644 --- a/core/src/io/anuke/mindustry/game/LoopControl.java +++ b/core/src/io/anuke/mindustry/game/LoopControl.java @@ -30,7 +30,7 @@ public class LoopControl{ data.curVolume = Mathf.lerpDelta(data.curVolume, data.volume * avol, 0.2f); boolean play = data.curVolume > 0.01f; - float pan = Mathf.isZero(data.total, 0.0001f) ? 0f : sound.calcPan(data.sum.x / data.total, data.sum.y / data.total); + float pan = Mathf.zero(data.total, 0.0001f) ? 0f : sound.calcPan(data.sum.x / data.total, data.sum.y / data.total); if(data.soundID <= 0){ if(play){ data.soundID = sound.loop(data.curVolume, 1f, pan); diff --git a/core/src/io/anuke/mindustry/game/Rules.java b/core/src/io/anuke/mindustry/game/Rules.java index 94cf4225ad..98d9cb978c 100644 --- a/core/src/io/anuke/mindustry/game/Rules.java +++ b/core/src/io/anuke/mindustry/game/Rules.java @@ -25,6 +25,8 @@ public class Rules{ public boolean pvp; /** Whether enemy units drop random items on death. */ public boolean unitDrops = true; + /** Whether reactors can explode and damage other blocks. */ + public boolean reactorExplosions = true; /** How fast unit pads build units. */ public float unitBuildSpeedMultiplier = 1f; /** How much health units start with. */ @@ -65,7 +67,7 @@ public class Rules{ public boolean attackMode = false; /** Whether this is the editor gamemode. */ public boolean editor = false; - /** Whether the tutorial is enabled. False by default.*/ + /** Whether the tutorial is enabled. False by default. */ public boolean tutorial = false; /** Starting items put in cores */ public Array loadout = Array.with(ItemStack.with(Items.copper, 100)); diff --git a/core/src/io/anuke/mindustry/graphics/LightRenderer.java b/core/src/io/anuke/mindustry/graphics/LightRenderer.java index d49031f6da..cdff26866d 100644 --- a/core/src/io/anuke/mindustry/graphics/LightRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/LightRenderer.java @@ -20,15 +20,19 @@ public class LightRenderer{ } public void add(float x, float y, float radius, Color color, float opacity){ + float res = color.toFloatBits(); add(() -> { - Draw.color(color, opacity); + Draw.color(res); + Draw.alpha(opacity); Draw.rect("circle-shadow", x, y, radius * 2, radius * 2); }); } public void add(float x, float y, TextureRegion region, Color color, float opacity){ + float res = color.toFloatBits(); add(() -> { - Draw.color(color, opacity); + Draw.color(res); + Draw.alpha(opacity); Draw.rect(region, x, y); }); } diff --git a/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java b/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java index f9e7797f71..a3884d6ba8 100644 --- a/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java @@ -67,7 +67,7 @@ public class OverlayRenderer{ if(!rect.setSize(Core.camera.width * 0.9f, Core.camera.height * 0.9f) .setCenter(Core.camera.position.x, Core.camera.position.y).contains(mechpad.x, mechpad.y)){ - Tmp.v1.set(mechpad.worldx(), mechpad.worldy()).sub(Core.camera.position.x, Core.camera.position.y).setLength(indicatorLength); + Tmp.v1.set(mechpad.drawx(), mechpad.drawy()).sub(Core.camera.position.x, Core.camera.position.y).setLength(indicatorLength); Lines.stroke(2f, ((MechPad) mechpad.block()).mech.engineColor); Lines.lineAngle(Core.camera.position.x + Tmp.v1.x, Core.camera.position.y + Tmp.v1.y, Tmp.v1.angle(), 0.5f); diff --git a/core/src/io/anuke/mindustry/input/Binding.java b/core/src/io/anuke/mindustry/input/Binding.java index 8e5ca2bf64..c96b58a1cc 100644 --- a/core/src/io/anuke/mindustry/input/Binding.java +++ b/core/src/io/anuke/mindustry/input/Binding.java @@ -9,6 +9,8 @@ import io.anuke.arc.input.KeyCode; public enum Binding implements KeyBind{ move_x(new Axis(KeyCode.A, KeyCode.D), "general"), move_y(new Axis(KeyCode.S, KeyCode.W)), + mouse_move(KeyCode.MOUSE_BACK), + dash(KeyCode.SHIFT_LEFT), select(KeyCode.MOUSE_LEFT), deselect(KeyCode.MOUSE_RIGHT), break_block(KeyCode.MOUSE_RIGHT), @@ -22,7 +24,6 @@ public enum Binding implements KeyBind{ schematic_flip_x(KeyCode.Z), schematic_flip_y(KeyCode.X), schematic_menu(KeyCode.T), - dash(KeyCode.SHIFT_LEFT), zoom_hold(KeyCode.CONTROL_LEFT, "view"), zoom(new Axis(KeyCode.SCROLL)), menu(Core.app.getType() == ApplicationType.Android ? KeyCode.BACK : KeyCode.ESCAPE), diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index e3af574cff..7b015600ce 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -50,9 +50,9 @@ public class DesktopInput extends InputHandler{ b.defaults().left(); b.label(() -> Core.bundle.format(!player.isBuilding ? "resumebuilding" : "pausebuilding", Core.keybinds.get(Binding.pause_building).key.toString())).style(Styles.outlineLabel); b.row(); - b.add(Core.bundle.format("cancelbuilding", Core.keybinds.get(Binding.clear_building).key.toString())).style(Styles.outlineLabel); + b.label(() -> Core.bundle.format("cancelbuilding", Core.keybinds.get(Binding.clear_building).key.toString())).style(Styles.outlineLabel); b.row(); - b.add(Core.bundle.format("selectschematic", Core.keybinds.get(Binding.schematic_select).key.toString())).style(Styles.outlineLabel); + b.label(() -> Core.bundle.format("selectschematic", Core.keybinds.get(Binding.schematic_select).key.toString())).style(Styles.outlineLabel); }).margin(10f); }); @@ -61,7 +61,7 @@ public class DesktopInput extends InputHandler{ t.bottom(); t.table(Styles.black6, b -> { b.defaults().left(); - b.add(Core.bundle.format("schematic.flip", + b.label( () -> Core.bundle.format("schematic.flip", Core.keybinds.get(Binding.schematic_flip_x).key.toString(), Core.keybinds.get(Binding.schematic_flip_y).key.toString())).style(Styles.outlineLabel); b.row(); diff --git a/core/src/io/anuke/mindustry/io/JsonIO.java b/core/src/io/anuke/mindustry/io/JsonIO.java index 4dc253672b..1edc718c6a 100644 --- a/core/src/io/anuke/mindustry/io/JsonIO.java +++ b/core/src/io/anuke/mindustry/io/JsonIO.java @@ -4,7 +4,7 @@ import io.anuke.arc.util.serialization.*; import io.anuke.arc.util.serialization.Json.*; import io.anuke.mindustry.*; import io.anuke.mindustry.content.*; -import io.anuke.mindustry.ctype.MappableContent; +import io.anuke.mindustry.ctype.*; import io.anuke.mindustry.game.*; import io.anuke.mindustry.type.*; import io.anuke.mindustry.world.*; @@ -31,6 +31,10 @@ public class JsonIO{ } }; + public static Json json(){ + return json; + } + public static String write(Object object){ return json.toJson(object, object.getClass()); } diff --git a/core/src/io/anuke/mindustry/mod/ContentParser.java b/core/src/io/anuke/mindustry/mod/ContentParser.java index e8b242223d..3d76c4575b 100644 --- a/core/src/io/anuke/mindustry/mod/ContentParser.java +++ b/core/src/io/anuke/mindustry/mod/ContentParser.java @@ -10,10 +10,9 @@ import io.anuke.arc.func.*; import io.anuke.arc.graphics.*; import io.anuke.arc.util.ArcAnnotate.*; import io.anuke.arc.util.*; -import io.anuke.arc.util.reflect.Field; -import io.anuke.arc.util.reflect.*; import io.anuke.arc.util.serialization.*; import io.anuke.arc.util.serialization.Json.*; +import io.anuke.arc.util.serialization.Jval.*; import io.anuke.mindustry.*; import io.anuke.mindustry.content.*; import io.anuke.mindustry.content.TechTree.*; @@ -182,7 +181,7 @@ public class ContentParser{ }else if(child.name.equals("liquid")){ block.consumes.add((Consume)parser.readValue(ConsumeLiquid.class, child)); }else if(child.name.equals("power")){ - if(child.isDouble()){ + if(child.isNumber()){ block.consumes.power(child.asFloat()); }else{ block.consumes.add((Consume)parser.readValue(ConsumePower.class, child)); @@ -342,10 +341,7 @@ public class ContentParser{ init(); } - //add comments starting with //, but ignore links - json = json.replace("http://", "http:~~").replace("https://", "https:~~").replaceAll("//.*?\n","\n").replace("http:~~", "http://").replace("https:~~", "https://"); - - JsonValue value = parser.fromJson(null, json); + JsonValue value = parser.fromJson(null, Jval.read(json).toString(Jformat.plain)); if(!parsers.containsKey(type)){ throw new SerializationException("No parsers for content type '" + type + "'"); } @@ -363,7 +359,7 @@ public class ContentParser{ private T make(Class type){ try{ - java.lang.reflect.Constructor cons = type.getDeclaredConstructor(); + Constructor cons = type.getDeclaredConstructor(); cons.setAccessible(true); return cons.newInstance(); }catch(Exception e){ @@ -373,7 +369,7 @@ public class ContentParser{ private T make(Class type, String name){ try{ - java.lang.reflect.Constructor cons = type.getDeclaredConstructor(String.class); + Constructor cons = type.getDeclaredConstructor(String.class); cons.setAccessible(true); return cons.newInstance(name); }catch(Exception e){ @@ -383,7 +379,7 @@ public class ContentParser{ private Prov supply(Class type){ try{ - java.lang.reflect.Constructor cons = type.getDeclaredConstructor(); + Constructor cons = type.getDeclaredConstructor(); return () -> { try{ return cons.newInstance(); @@ -459,7 +455,7 @@ public class ContentParser{ Field field = metadata.field; try{ field.set(object, parser.readValue(field.getType(), metadata.elementType, child, metadata.keyType)); - }catch(ReflectionException ex){ + }catch(IllegalAccessException ex){ throw new SerializationException("Error accessing field: " + field.getName() + " (" + type.getName() + ")", ex); }catch(SerializationException ex){ ex.addTrace(field.getName() + " (" + type.getName() + ")"); diff --git a/core/src/io/anuke/mindustry/mod/Mods.java b/core/src/io/anuke/mindustry/mod/Mods.java index 2d3c51a6c7..59347e01ab 100644 --- a/core/src/io/anuke/mindustry/mod/Mods.java +++ b/core/src/io/anuke/mindustry/mod/Mods.java @@ -354,7 +354,7 @@ public class Mods implements Loadable{ FileHandle folder = contentRoot.child(type.name().toLowerCase() + "s"); if(folder.exists()){ for(FileHandle file : folder.list()){ - if(file.extension().equals("json")){ + if(file.extension().equals("json") || file.extension().equals("hjson") || file.extension().equals("js")){ runs.add(new LoadRun(type, file, mod)); } } diff --git a/core/src/io/anuke/mindustry/ui/Bar.java b/core/src/io/anuke/mindustry/ui/Bar.java index da4fa7eaf8..cc9e87b84b 100644 --- a/core/src/io/anuke/mindustry/ui/Bar.java +++ b/core/src/io/anuke/mindustry/ui/Bar.java @@ -63,7 +63,7 @@ public class Bar extends Element{ if(fraction == null) return; float computed = Mathf.clamp(fraction.get()); - if(!Mathf.isEqual(lastValue, computed)){ + if(!Mathf.equal(lastValue, computed)){ blink = 1f; lastValue = computed; } diff --git a/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java index b3bea499c3..095a0cd77c 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java @@ -135,13 +135,11 @@ public class CustomRulesDialog extends FloatingDialog{ number("$rules.dropzoneradius", false, f -> rules.dropZoneRadius = f * tilesize, () -> rules.dropZoneRadius / tilesize, () -> true); title("$rules.title.respawns"); - //limited respawns don't work on PvP, commented out until they're fixed - //check("$rules.limitedRespawns", b -> rules.limitedRespawns = b, () -> rules.limitedRespawns); - //number("$rules.respawns", true, f -> rules.respawns = (int)f, () -> rules.respawns, () -> rules.limitedRespawns); number("$rules.respawntime", f -> rules.respawnTime = f * 60f, () -> rules.respawnTime / 60f); title("$rules.title.resourcesbuilding"); check("$rules.infiniteresources", b -> rules.infiniteResources = b, () -> rules.infiniteResources); + check("$rules.reactorexplosions", b -> rules.reactorExplosions = b, () -> rules.reactorExplosions); number("$rules.buildcostmultiplier", false, f -> rules.buildCostMultiplier = f, () -> rules.buildCostMultiplier, () -> !rules.infiniteResources); number("$rules.buildspeedmultiplier", f -> rules.buildSpeedMultiplier = f, () -> rules.buildSpeedMultiplier); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/JoinDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/JoinDialog.java index b786bc3fe4..ac8c22a0a5 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/JoinDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/JoinDialog.java @@ -32,14 +32,14 @@ public class JoinDialog extends FloatingDialog{ loadServers(); - buttons.add().width(60f); - buttons.add().growX(); + if(!steam) buttons.add().width(60f); + buttons.add().growX().width(-1); addCloseButton(); - buttons.add().growX(); + buttons.add().growX().width(-1); if(!steam){ - buttons.addButton("?", () -> ui.showInfo("$join.info")).size(60f, 64f); + buttons.addButton("?", () -> ui.showInfo("$join.info")).size(60f, 64f).width(-1); } add = new FloatingDialog("$joingame.title"); @@ -271,7 +271,7 @@ public class JoinDialog extends FloatingDialog{ Cell cell = ((Table)pane.getParent()).getCell(button); - if(!Mathf.isEqual(cell.minWidth(), pw)){ + if(!Mathf.equal(cell.minWidth(), pw)){ cell.width(pw); cell.padLeft(pad); pane.getParent().invalidateHierarchy(); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java index f351fd133a..a840b2a9fd 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -218,7 +218,7 @@ public class SettingsMenuDialog extends SettingsDialog{ control.setInput(new MobileInput()); } }*/ - game.sliderPref("saveinterval", 60, 10, 5 * 120, i -> Core.bundle.format("setting.seconds", i)); + game.sliderPref("saveinterval", 60, 10, 5 * 120, 10, i -> Core.bundle.format("setting.seconds", i)); if(!mobile){ game.checkPref("crashreport", true); @@ -360,7 +360,11 @@ public class SettingsMenuDialog extends SettingsDialog{ keyDown(key -> { if(key == KeyCode.ESCAPE || key == KeyCode.BACK){ - hide(); + if(prefs.getChildren().first() != menu){ + back(); + }else{ + hide(); + } } }); } diff --git a/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java b/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java index 0f96947f54..6afd96619b 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/HudFragment.java @@ -42,10 +42,6 @@ public class HudFragment extends Fragment{ private boolean shown = true; private float dsize = 47.2f; - private float coreAttackTime; - private float lastCoreHP; - private Team lastTeam; - private float coreAttackOpacity = 0f; private long lastToast; public void build(Group parent){ @@ -284,44 +280,29 @@ public class HudFragment extends Fragment{ parent.fill(t -> { t.touchable(Touchable.disabled); float notifDuration = 240f; + float[] coreAttackTime = {0}; + float[] coreAttackOpacity = {0}; - Events.on(StateChangeEvent.class, event -> { - if(event.to == State.menu || event.from == State.menu){ - coreAttackTime = 0f; - lastCoreHP = Float.NaN; - } + Events.on(Trigger.teamCoreDamage, () -> { + coreAttackTime[0] = notifDuration; }); t.top().visible(() -> { if(state.is(State.menu) || state.teams.get(player.getTeam()).cores.size == 0 || state.teams.get(player.getTeam()).cores.first().entity == null){ - coreAttackTime = 0f; + coreAttackTime[0] = 0f; return false; } - float curr = state.teams.get(player.getTeam()).cores.first().entity.health; - - if(lastTeam != player.getTeam()){ - lastCoreHP = curr; - lastTeam = player.getTeam(); - return false; - } - - if(!Float.isNaN(lastCoreHP) && curr < lastCoreHP){ - coreAttackTime = notifDuration; - } - lastCoreHP = curr; - - t.getColor().a = coreAttackOpacity; - if(coreAttackTime > 0){ - coreAttackOpacity = Mathf.lerpDelta(coreAttackOpacity, 1f, 0.1f); + t.getColor().a = coreAttackOpacity[0]; + if(coreAttackTime[0] > 0){ + coreAttackOpacity[0] = Mathf.lerpDelta(coreAttackOpacity[0], 1f, 0.1f); }else{ - coreAttackOpacity = Mathf.lerpDelta(coreAttackOpacity, 0f, 0.1f); + coreAttackOpacity[0] = Mathf.lerpDelta(coreAttackOpacity[0], 0f, 0.1f); } - coreAttackTime -= Time.delta(); - lastTeam = player.getTeam(); + coreAttackTime[0] -= Time.delta(); - return coreAttackOpacity > 0; + return coreAttackOpacity[0] > 0; }); t.table(Tex.button, top -> top.add("$coreattack").pad(2) .update(label -> label.getColor().set(Color.orange).lerp(Color.scarlet, Mathf.absin(Time.time(), 2f, 1f)))).touchable(Touchable.disabled); diff --git a/core/src/io/anuke/mindustry/world/Block.java b/core/src/io/anuke/mindustry/world/Block.java index d64edbd706..1adcfe9f6c 100644 --- a/core/src/io/anuke/mindustry/world/Block.java +++ b/core/src/io/anuke/mindustry/world/Block.java @@ -207,7 +207,8 @@ public class Block extends BlockStorage{ if(tile == null || tile.entity == null || tile.entity.power == null) return out; for(Tile other : tile.entity.proximity()){ - if(other != null && other.entity != null && other.entity.power != null && !(consumesPower && other.block().consumesPower && !outputsPower && !other.block().outputsPower) + if(other != null && other.entity != null && other.entity.power != null + && !(consumesPower && other.block().consumesPower && !outputsPower && !other.block().outputsPower) && !tile.entity.power.links.contains(other.pos())){ out.add(other); } @@ -221,11 +222,7 @@ public class Block extends BlockStorage{ } protected float getProgressIncrease(TileEntity entity, float baseTime){ - float progressIncrease = 1f / baseTime * entity.delta(); - if(hasPower){ - progressIncrease *= entity.power.satisfaction; // Reduced increase in case of low power - } - return progressIncrease; + return 1f / baseTime * entity.delta() * entity.efficiency(); } /** @return whether this block should play its active sound.*/ @@ -370,6 +367,16 @@ public class Block extends BlockStorage{ return sum; } + public float percentSolid(int x, int y){ + Tile tile = world.tile(x, y); + if(tile == null) return 0; + float sum = 0; + for(Tile other : tile.getLinkedTilesAs(this, tempTiles)){ + sum += !other.floor.isLiquid ? 1f : 0f; + } + return sum / size / size; + } + @Override public String localizedName(){ return localizedName; @@ -536,8 +543,8 @@ public class Block extends BlockStorage{ boolean buffered = cons.buffered; float capacity = cons.capacity; - bars.add("power", entity -> new Bar(() -> buffered ? Core.bundle.format("bar.poweramount", Float.isNaN(entity.power.satisfaction * capacity) ? "" : (int)(entity.power.satisfaction * capacity)) : - Core.bundle.get("bar.power"), () -> Pal.powerBar, () -> Mathf.isZero(cons.requestedPower(entity)) && entity.power.graph.getPowerProduced() + entity.power.graph.getBatteryStored() > 0f ? 1f : entity.power.satisfaction)); + bars.add("power", entity -> new Bar(() -> buffered ? Core.bundle.format("bar.poweramount", Float.isNaN(entity.power.status * capacity) ? "" : (int)(entity.power.status * capacity)) : + Core.bundle.get("bar.power"), () -> Pal.powerBar, () -> Mathf.zero(cons.requestedPower(entity)) && entity.power.graph.getPowerProduced() + entity.power.graph.getBatteryStored() > 0f ? 1f : entity.power.status)); } if(hasItems && configurable){ @@ -598,7 +605,7 @@ public class Block extends BlockStorage{ } if(consumes.hasPower() && consumes.getPower().buffered){ - power += tile.entity.power.satisfaction * consumes.getPower().capacity; + power += tile.entity.power.status * consumes.getPower().capacity; } if(hasLiquids){ diff --git a/core/src/io/anuke/mindustry/world/BlockStorage.java b/core/src/io/anuke/mindustry/world/BlockStorage.java index 6b37683f99..a60cd04716 100644 --- a/core/src/io/anuke/mindustry/world/BlockStorage.java +++ b/core/src/io/anuke/mindustry/world/BlockStorage.java @@ -28,6 +28,7 @@ public abstract class BlockStorage extends UnlockableContent{ public int itemCapacity = 10; public float liquidCapacity = 10f; + public float liquidPressure = 1f; public final BlockStats stats = new BlockStats(); public final BlockBars bars = new BlockBars(); @@ -150,7 +151,7 @@ public abstract class BlockStorage extends UnlockableContent{ if(next.block().acceptLiquid(next, tile, liquid, 0f)){ float ofract = next.entity.liquids.get(liquid) / next.block().liquidCapacity; - float fract = tile.entity.liquids.get(liquid) / liquidCapacity; + float fract = tile.entity.liquids.get(liquid) / liquidCapacity * liquidPressure; float flow = Math.min(Mathf.clamp((fract - ofract) * (1f)) * (liquidCapacity), tile.entity.liquids.get(liquid)); flow = Math.min(flow, next.block().liquidCapacity - next.entity.liquids.get(liquid) - 0.001f); diff --git a/core/src/io/anuke/mindustry/world/Tile.java b/core/src/io/anuke/mindustry/world/Tile.java index 004f32304c..bb63b8098d 100644 --- a/core/src/io/anuke/mindustry/world/Tile.java +++ b/core/src/io/anuke/mindustry/world/Tile.java @@ -318,6 +318,31 @@ public class Tile implements Position, TargetTrait{ return null; } + public Tile getNearbyLink(int rotation){ + if(rotation == 0) return world.ltile(x + 1, y); + if(rotation == 1) return world.ltile(x, y + 1); + if(rotation == 2) return world.ltile(x - 1, y); + if(rotation == 3) return world.ltile(x, y - 1); + return null; + } + + // ▲ ▲ ▼ ▼ ◀ ▶ ◀ ▶ B A + public Tile front(){ + return getNearbyLink((rotation + 4) % 4); + } + + public Tile right(){ + return getNearbyLink((rotation + 3) % 4); + } + + public Tile back(){ + return getNearbyLink((rotation + 2) % 4); + } + + public Tile left(){ + return getNearbyLink((rotation + 1) % 4); + } + public boolean interactable(Team team){ return getTeam() == Team.derelict || team == getTeam(); } diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java b/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java index 52977033f3..0ef91424a3 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/ForceProjector.java @@ -108,12 +108,12 @@ public class ForceProjector extends Block{ Effects.effect(Fx.reactorsmoke, tile.drawx() + Mathf.range(tilesize / 2f), tile.drawy() + Mathf.range(tilesize / 2f)); } - entity.warmup = Mathf.lerpDelta(entity.warmup, entity.power.satisfaction, 0.1f); + entity.warmup = Mathf.lerpDelta(entity.warmup, entity.efficiency(), 0.1f); /* - if(entity.power.satisfaction < relativePowerDraw){ + if(entity.power.status < relativePowerDraw){ entity.warmup = Mathf.lerpDelta(entity.warmup, 0f, 0.15f); - entity.power.satisfaction = 0f; + entity.power.status = 0f; if(entity.warmup <= 0.09f){ entity.broken = true; } diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java b/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java index 57aa0944de..53d1d0cc5f 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/MendProjector.java @@ -70,7 +70,7 @@ public class MendProjector extends Block{ entity.phaseHeat = Mathf.lerpDelta(entity.phaseHeat, Mathf.num(entity.cons.optionalValid()), 0.1f); - if(entity.cons.optionalValid() && entity.timer.get(timerUse, useTime) && entity.power.satisfaction > 0){ + if(entity.cons.optionalValid() && entity.timer.get(timerUse, useTime) && entity.efficiency() > 0){ entity.cons.trigger(); } @@ -90,7 +90,7 @@ public class MendProjector extends Block{ if(other == null) continue; if(other.getTeamID() == tile.getTeamID() && !healed.contains(other.pos()) && other.entity != null && other.entity.health < other.entity.maxHealth()){ - other.entity.healBy(other.entity.maxHealth() * (healPercent + entity.phaseHeat * phaseBoost) / 100f * entity.power.satisfaction); + other.entity.healBy(other.entity.maxHealth() * (healPercent + entity.phaseHeat * phaseBoost) / 100f * entity.efficiency()); Effects.effect(Fx.healBlockFull, Tmp.c1.set(color).lerp(phase, entity.phaseHeat), other.drawx(), other.drawy(), other.block().size); healed.add(other.pos()); } @@ -134,7 +134,7 @@ public class MendProjector extends Block{ @Override public void drawLight(Tile tile){ - renderer.lights.add(tile.drawx(), tile.drawy(), 50f * tile.entity.power.satisfaction, color, 0.7f * tile.entity.power.satisfaction); + renderer.lights.add(tile.drawx(), tile.drawy(), 50f * tile.entity.efficiency(), color, 0.7f * tile.entity.efficiency()); } @Override diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java b/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java index bcb2371b66..d0a27e81d1 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/OverdriveProjector.java @@ -68,7 +68,7 @@ public class OverdriveProjector extends Block{ @Override public void drawLight(Tile tile){ - renderer.lights.add(tile.drawx(), tile.drawy(), 50f * tile.entity.power.satisfaction, color, 0.7f * tile.entity.power.satisfaction); + renderer.lights.add(tile.drawx(), tile.drawy(), 50f * tile.entity.efficiency(), color, 0.7f * tile.entity.efficiency()); } @Override @@ -79,13 +79,13 @@ public class OverdriveProjector extends Block{ entity.phaseHeat = Mathf.lerpDelta(entity.phaseHeat, Mathf.num(entity.cons.optionalValid()), 0.1f); - if(entity.timer.get(timerUse, useTime) && entity.power.satisfaction > 0){ + if(entity.timer.get(timerUse, useTime) && entity.efficiency() > 0){ entity.cons.trigger(); } if(entity.charge >= reload){ float realRange = range + entity.phaseHeat * phaseRangeBoost; - float realBoost = (speedBoost + entity.phaseHeat * speedBoostPhase) * entity.power.satisfaction; + float realBoost = (speedBoost + entity.phaseHeat * speedBoostPhase) * entity.efficiency(); entity.charge = 0f; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/PowerTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/PowerTurret.java index 2150fdac4d..7e4c54ace4 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/PowerTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/PowerTurret.java @@ -47,6 +47,6 @@ public class PowerTurret extends CooledTurret{ @Override protected float baseReloadSpeed(Tile tile){ - return tile.isEnemyCheat() ? 1f : tile.entity.power.satisfaction; + return tile.isEnemyCheat() ? 1f : tile.entity.power.status; } } diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java index 4c6aae0be6..9a909700e5 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java @@ -200,7 +200,7 @@ public class Conveyor extends Block implements Autotiler{ if(maxmove > minmove){ pos.y += maxmove; - if(Mathf.isEqual(pos.x, 0, 0.1f)){ + if(Mathf.equal(pos.x, 0, 0.1f)){ pos.x = 0f; } pos.x = Mathf.lerpDelta(pos.x, 0, 0.1f); diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java b/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java index f30fa0433f..89c6d868d9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/ItemBridge.java @@ -45,18 +45,7 @@ public class ItemBridge extends Block{ @Override public void configured(Tile tile, Player player, int value){ - ItemBridgeEntity entity = tile.entity(); - - if(world.tile(entity.link) != null && world.tile(entity.link).entity instanceof ItemBridgeEntity){ - ItemBridgeEntity oe = world.tile(entity.link).entity(); - oe.incoming.remove(tile.pos()); - } - - entity.link = value; - - if(world.tile(value) != null && world.tile(value).entity instanceof ItemBridgeEntity){ - ((ItemBridgeEntity)world.tile(value).entity).incoming.add(tile.pos()); - } + tile.entity().link = value; } @Override @@ -195,8 +184,9 @@ public class ItemBridge extends Block{ tryDump(tile); entity.uptime = 0f; }else{ + ((ItemBridgeEntity)world.tile(entity.link).entity).incoming.add(tile.pos()); - if(entity.cons.valid() && (!hasPower || Mathf.isZero(1f - entity.power.satisfaction))){ + if(entity.cons.valid() && Mathf.zero(1f - entity.efficiency())){ entity.uptime = Mathf.lerpDelta(entity.uptime, 1f, 0.04f); }else{ entity.uptime = Mathf.lerpDelta(entity.uptime, 0f, 0.02f); diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidBridge.java b/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidBridge.java index d282321114..b676950594 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidBridge.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/LiquidBridge.java @@ -32,7 +32,7 @@ public class LiquidBridge extends ItemBridge{ if(entity.cons.valid()){ float alpha = 0.04f; if(hasPower){ - alpha *= entity.power.satisfaction; // Exceed boot time unless power is at max. + alpha *= entity.efficiency(); // Exceed boot time unless power is at max. } entity.uptime = Mathf.lerpDelta(entity.uptime, 1f, alpha); }else{ diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/MassDriver.java b/core/src/io/anuke/mindustry/world/blocks/distribution/MassDriver.java index 04a8af5b9b..61caaa5fae 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/MassDriver.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/MassDriver.java @@ -77,7 +77,7 @@ public class MassDriver extends Block{ //reload regardless of state if(entity.reload > 0f){ - entity.reload = Mathf.clamp(entity.reload - entity.delta() / reloadTime * entity.power.satisfaction); + entity.reload = Mathf.clamp(entity.reload - entity.delta() / reloadTime * entity.efficiency()); } //cleanup waiting shooters that are not valid @@ -113,7 +113,7 @@ public class MassDriver extends Block{ } //align to shooter rotation - entity.rotation = Mathf.slerpDelta(entity.rotation, tile.angleTo(entity.currentShooter()), rotateSpeed * entity.power.satisfaction); + entity.rotation = Mathf.slerpDelta(entity.rotation, tile.angleTo(entity.currentShooter()), rotateSpeed * entity.efficiency()); }else if(entity.state == DriverState.shooting){ //if there's nothing to shoot at OR someone wants to shoot at this thing, bail if(!hasLink || (!entity.waitingShooters.isEmpty() && (itemCapacity - entity.items.total() >= minDistribute))){ @@ -133,7 +133,7 @@ public class MassDriver extends Block{ if(entity.reload <= 0.0001f){ //align to target location - entity.rotation = Mathf.slerpDelta(entity.rotation, targetRotation, rotateSpeed * entity.power.satisfaction); + entity.rotation = Mathf.slerpDelta(entity.rotation, targetRotation, rotateSpeed * entity.efficiency()); //fire when it's the first in the queue and angles are ready. if(other.currentShooter() == tile && diff --git a/core/src/io/anuke/mindustry/world/blocks/power/ImpactReactor.java b/core/src/io/anuke/mindustry/world/blocks/power/ImpactReactor.java index 82fd6dc1b3..bebb81e7e6 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/ImpactReactor.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/ImpactReactor.java @@ -17,7 +17,7 @@ import io.anuke.mindustry.world.meta.*; import java.io.*; -import static io.anuke.mindustry.Vars.tilesize; +import static io.anuke.mindustry.Vars.*; public class ImpactReactor extends PowerGenerator{ protected int timerUse = timers++; @@ -71,11 +71,11 @@ public class ImpactReactor extends PowerGenerator{ public void update(Tile tile){ FusionReactorEntity entity = tile.entity(); - if(entity.cons.valid() && entity.power.satisfaction >= 0.99f){ + if(entity.cons.valid() && entity.power.status >= 0.99f){ boolean prevOut = getPowerProduction(tile) <= consumes.getPower().requestedPower(entity); entity.warmup = Mathf.lerpDelta(entity.warmup, 1f, warmupSpeed); - if(Mathf.isEqual(entity.warmup, 1f, 0.001f)){ + if(Mathf.equal(entity.warmup, 1f, 0.001f)){ entity.warmup = 1f; } @@ -116,6 +116,12 @@ public class ImpactReactor extends PowerGenerator{ Draw.color(); } + @Override + public void drawLight(Tile tile){ + float fract = tile.entity().warmup; + renderer.lights.add(tile.drawx(), tile.drawy(), (110f + Mathf.absin(5, 5f)) * fract, Tmp.c1.set(plasma2).lerp(plasma1, Mathf.absin(7f, 0.2f)), 0.8f * fract); + } + @Override public TextureRegion[] generateIcons(){ return new TextureRegion[]{Core.atlas.find(name + "-bottom"), Core.atlas.find(name)}; diff --git a/core/src/io/anuke/mindustry/world/blocks/power/LightBlock.java b/core/src/io/anuke/mindustry/world/blocks/power/LightBlock.java index 47639c3066..f2c0a6830c 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/LightBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/LightBlock.java @@ -1,22 +1,36 @@ package io.anuke.mindustry.world.blocks.power; import io.anuke.arc.graphics.*; +import io.anuke.arc.graphics.g2d.*; import io.anuke.mindustry.world.*; import static io.anuke.mindustry.Vars.renderer; public class LightBlock extends Block{ protected Color color = Color.royal; + protected float brightness = 0.5f; protected float radius = 200f; + protected int topRegion; public LightBlock(String name){ super(name); hasPower = true; update = true; + topRegion = reg("-top"); + } + + @Override + public void draw(Tile tile){ + super.draw(tile); + Draw.blend(Blending.additive); + Draw.color(color, tile.entity.efficiency() * 0.3f); + Draw.rect(reg(topRegion), tile.drawx(), tile.drawy()); + Draw.color(); + Draw.blend(); } @Override public void drawLight(Tile tile){ - renderer.lights.add(tile.drawx(), tile.drawy(), radius, color, 0.5f * tile.entity.power.satisfaction); + renderer.lights.add(tile.drawx(), tile.drawy(), radius, color, brightness * tile.entity.efficiency()); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/power/NuclearReactor.java b/core/src/io/anuke/mindustry/world/blocks/power/NuclearReactor.java index 9a1d12ac39..1bc9e3b4c0 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/NuclearReactor.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/NuclearReactor.java @@ -1,39 +1,37 @@ package io.anuke.mindustry.world.blocks.power; import io.anuke.arc.*; -import io.anuke.arc.graphics.Color; +import io.anuke.arc.graphics.*; import io.anuke.arc.graphics.g2d.*; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.math.geom.Vector2; -import io.anuke.arc.util.Time; -import io.anuke.mindustry.content.Fx; -import io.anuke.mindustry.entities.Damage; -import io.anuke.mindustry.entities.Effects; -import io.anuke.mindustry.entities.type.TileEntity; +import io.anuke.arc.math.*; +import io.anuke.arc.math.geom.*; +import io.anuke.arc.util.*; +import io.anuke.mindustry.content.*; +import io.anuke.mindustry.entities.*; +import io.anuke.mindustry.entities.type.*; import io.anuke.mindustry.game.EventType.*; import io.anuke.mindustry.gen.*; -import io.anuke.mindustry.graphics.Pal; -import io.anuke.mindustry.type.Item; -import io.anuke.mindustry.type.Liquid; -import io.anuke.mindustry.ui.Bar; -import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.graphics.*; +import io.anuke.mindustry.type.*; +import io.anuke.mindustry.ui.*; +import io.anuke.mindustry.world.*; import io.anuke.mindustry.world.consumers.*; -import io.anuke.mindustry.world.meta.BlockStat; -import io.anuke.mindustry.world.meta.StatUnit; +import io.anuke.mindustry.world.meta.*; import java.io.*; -import static io.anuke.mindustry.Vars.tilesize; +import static io.anuke.mindustry.Vars.*; public class NuclearReactor extends PowerGenerator{ protected final int timerFuel = timers++; protected final Vector2 tr = new Vector2(); + protected Color lightColor = Color.valueOf("b174f1"); protected Color coolColor = new Color(1, 1, 1, 0f); protected Color hotColor = Color.valueOf("ff9575a3"); protected float itemDuration = 120; //time to consume 1 fuel - protected float heating = 0.01f; //heating per frame * fullness + protected float heating = 0.005f; //heating per frame * fullness protected float smokeThreshold = 0.3f; //threshold at which block starts smoking protected int explosionRadius = 40; protected int explosionDamage = 1350; @@ -127,7 +125,7 @@ public class NuclearReactor extends PowerGenerator{ int fuel = entity.items.get(consumes.get(ConsumeType.item).items[0].item); - if(fuel < 5 && entity.heat < 0.5f) return; + if((fuel < 5 && entity.heat < 0.5f) || !state.rules.reactorExplosions) return; Effects.shake(6f, 16f, tile.worldx(), tile.worldy()); Effects.effect(Fx.nuclearShockwave, tile.worldx(), tile.worldy()); @@ -152,6 +150,13 @@ public class NuclearReactor extends PowerGenerator{ } } + @Override + public void drawLight(Tile tile){ + NuclearReactorEntity entity = tile.entity(); + float fract = entity.productionEfficiency; + renderer.lights.add(tile.drawx(), tile.drawy(), (90f + Mathf.absin(5, 5f)) * fract, Tmp.c1.set(lightColor).lerp(Color.scarlet, entity.heat), 0.6f * fract); + } + @Override public void draw(Tile tile){ super.draw(tile); diff --git a/core/src/io/anuke/mindustry/world/blocks/power/PowerDiode.java b/core/src/io/anuke/mindustry/world/blocks/power/PowerDiode.java new file mode 100644 index 0000000000..3d2f76d08c --- /dev/null +++ b/core/src/io/anuke/mindustry/world/blocks/power/PowerDiode.java @@ -0,0 +1,89 @@ +package io.anuke.mindustry.world.blocks.power; + +import io.anuke.arc.Core; +import io.anuke.arc.math.Mathf; +import io.anuke.mindustry.ui.Bar; +import io.anuke.arc.util.Eachable; +import io.anuke.mindustry.ui.Cicon; +import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.world.Block; +import io.anuke.arc.graphics.g2d.Draw; +import io.anuke.mindustry.graphics.Pal; +import io.anuke.arc.graphics.g2d.TextureRegion; +import io.anuke.mindustry.entities.traits.BuilderTrait; + +public class PowerDiode extends Block{ + protected TextureRegion arrow; + + public PowerDiode(String name){ + super(name); + rotate = true; + update = true; + solid = true; + insulated = true; + } + + @Override + public void update(Tile tile){ + super.update(tile); + + if(!tile.back().block().hasPower || !tile.front().block().hasPower) return; + + PowerGraph backGraph = tile.back().entity.power.graph; + PowerGraph frontGraph = tile.front().entity.power.graph; + if(backGraph == frontGraph) return; + + // 0f - 1f of battery capacity in use + float backStored = backGraph.getBatteryStored() / backGraph.getTotalBatteryCapacity(); + float frontStored = frontGraph.getBatteryStored() / frontGraph.getTotalBatteryCapacity(); + + // try to send if the back side has more % capacity stored than the front side + if(backStored > frontStored) { + // send half of the difference + float amount = backGraph.getBatteryStored() * (backStored - frontStored) / 2; + // prevent sending more than the front can handle + amount = Mathf.clamp(amount, 0, frontGraph.getTotalBatteryCapacity() * (1 - frontStored)); + + backGraph.useBatteries(amount); + frontGraph.chargeBatteries(amount); + } + } + + // battery % of the graph on either side, defaults to zero + protected float bar(Tile tile){ + return tile.block().hasPower ? tile.entity.power.graph.getBatteryStored() / tile.entity.power.graph.getTotalBatteryCapacity() : 0f; + } + + @Override + public void setBars(){ + super.setBars(); + + bars.add("back", entity -> new Bar("bar.input", Pal.lighterOrange, () -> bar(entity.tile.back())) ); + bars.add("front", entity -> new Bar("bar.output", Pal.lighterOrange, () -> bar(entity.tile.front())) ); + } + + @Override + public void load(){ + super.load(); + arrow = Core.atlas.find(name + "-arrow"); + } + + @Override + public void draw(Tile tile){ + Draw.rect(region, tile.drawx(), tile.drawy(), 0); + Draw.rect(arrow, tile.drawx(), tile.drawy(), rotate ? tile.rotation() * 90 : 0); + } + + @Override + public void drawRequestRegion(BuilderTrait.BuildRequest req, Eachable list) { + TextureRegion reg = icon(Cicon.full); + Draw.rect(icon(Cicon.full), req.drawx(), req.drawy(), + reg.getWidth() * req.animScale * Draw.scl, + reg.getHeight() * req.animScale * Draw.scl, + 0); + Draw.rect(arrow, req.drawx(), req.drawy(), + arrow.getWidth() * req.animScale * Draw.scl, + arrow.getHeight() * req.animScale * Draw.scl, + !rotate ? 0 : req.rotation * 90); + } +} diff --git a/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java b/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java index e4cbf26c65..07ebe96040 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/PowerGraph.java @@ -47,9 +47,9 @@ public class PowerGraph{ } public float getSatisfaction(){ - if(Mathf.isZero(lastPowerProduced)){ + if(Mathf.zero(lastPowerProduced)){ return 0f; - }else if(Mathf.isZero(lastPowerNeeded)){ + }else if(Mathf.zero(lastPowerNeeded)){ return 1f; } return Mathf.clamp(lastPowerProduced / lastPowerNeeded); @@ -83,7 +83,7 @@ public class PowerGraph{ for(Tile battery : batteries){ Consumers consumes = battery.block().consumes; if(consumes.hasPower()){ - totalAccumulator += battery.entity.power.satisfaction * consumes.getPower().capacity; + totalAccumulator += battery.entity.power.status * consumes.getPower().capacity; } } return totalAccumulator; @@ -94,7 +94,7 @@ public class PowerGraph{ for(Tile battery : batteries){ if(battery.block().consumes.hasPower()){ ConsumePower power = battery.block().consumes.getPower(); - totalCapacity += (1f - battery.entity.power.satisfaction) * power.capacity; + totalCapacity += (1f - battery.entity.power.status) * power.capacity; } } return totalCapacity; @@ -112,14 +112,14 @@ public class PowerGraph{ public float useBatteries(float needed){ float stored = getBatteryStored(); - if(Mathf.isEqual(stored, 0f)) return 0f; + if(Mathf.equal(stored, 0f)) return 0f; float used = Math.min(stored, needed); float consumedPowerPercentage = Math.min(1.0f, needed / stored); for(Tile battery : batteries){ Consumers consumes = battery.block().consumes; if(consumes.hasPower()){ - battery.entity.power.satisfaction *= (1f-consumedPowerPercentage); + battery.entity.power.status *= (1f-consumedPowerPercentage); } } return used; @@ -129,14 +129,14 @@ public class PowerGraph{ float capacity = getBatteryCapacity(); //how much of the missing in each battery % is charged float chargedPercent = Math.min(excess/capacity, 1f); - if(Mathf.isEqual(capacity, 0f)) return 0f; + if(Mathf.equal(capacity, 0f)) return 0f; for(Tile battery : batteries){ Consumers consumes = battery.block().consumes; if(consumes.hasPower()){ ConsumePower consumePower = consumes.getPower(); if(consumePower.capacity > 0f){ - battery.entity.power.satisfaction += (1f-battery.entity.power.satisfaction) * chargedPercent; + battery.entity.power.status += (1f-battery.entity.power.status) * chargedPercent; } } } @@ -145,26 +145,26 @@ public class PowerGraph{ public void distributePower(float needed, float produced){ //distribute even if not needed. this is because some might be requiring power but not using it; it updates consumers - float coverage = Mathf.isZero(needed) && Mathf.isZero(produced) ? 0f : Mathf.isZero(needed) ? 1f : Math.min(1, produced / needed); + float coverage = Mathf.zero(needed) && Mathf.zero(produced) ? 0f : Mathf.zero(needed) ? 1f : Math.min(1, produced / needed); for(Tile consumer : consumers){ Consumers consumes = consumer.block().consumes; if(consumes.hasPower()){ ConsumePower consumePower = consumes.getPower(); if(consumePower.buffered){ - if(!Mathf.isZero(consumePower.capacity)){ + if(!Mathf.zero(consumePower.capacity)){ // Add an equal percentage of power to all buffers, based on the global power coverage in this graph float maximumRate = consumePower.requestedPower(consumer.entity) * coverage * consumer.entity.delta(); - consumer.entity.power.satisfaction = Mathf.clamp(consumer.entity.power.satisfaction + maximumRate / consumePower.capacity); + consumer.entity.power.status = Mathf.clamp(consumer.entity.power.status + maximumRate / consumePower.capacity); } }else{ //valid consumers get power as usual if(otherConsumersAreValid(consumer, consumePower)){ - consumer.entity.power.satisfaction = coverage; + consumer.entity.power.status = coverage; }else{ //invalid consumers get an estimate, if they were to activate - consumer.entity.power.satisfaction = Math.min(1, produced / (needed + consumePower.usage * consumer.entity.delta())); + consumer.entity.power.status = Math.min(1, produced / (needed + consumePower.usage * consumer.entity.delta())); //just in case - if(Float.isNaN(consumer.entity.power.satisfaction)){ - consumer.entity.power.satisfaction = 0f; + if(Float.isNaN(consumer.entity.power.status)){ + consumer.entity.power.status = 0f; } } } @@ -176,9 +176,9 @@ public class PowerGraph{ if(Core.graphics.getFrameId() == lastFrameUpdated){ return; }else if(!consumers.isEmpty() && consumers.first().isEnemyCheat()){ - //when cheating, just set satisfaction to 1 + //when cheating, just set status to 1 for(Tile tile : consumers){ - tile.entity.power.satisfaction = 1f; + tile.entity.power.status = 1f; } return; @@ -198,7 +198,7 @@ public class PowerGraph{ return; } - if(!Mathf.isEqual(powerNeeded, powerProduced)){ + if(!Mathf.equal(powerNeeded, powerProduced)){ if(powerNeeded > powerProduced){ powerProduced += useBatteries(powerNeeded - powerProduced); }else if(powerProduced > powerNeeded){ diff --git a/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java b/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java index 2103f4d58e..6a5d1e9c11 100644 --- a/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java +++ b/core/src/io/anuke/mindustry/world/blocks/power/PowerNode.java @@ -19,6 +19,8 @@ import io.anuke.mindustry.world.meta.*; import static io.anuke.mindustry.Vars.*; public class PowerNode extends PowerBlock{ + protected static boolean returnValue = false; + protected ObjectSet graphs = new ObjectSet<>(); protected Vector2 t1 = new Vector2(), t2 = new Vector2(); protected TextureRegion laser, laserEnd; @@ -305,7 +307,7 @@ public class PowerNode extends PowerBlock{ public boolean overlaps(@Nullable Tile src, @Nullable Tile other){ if(src == null || other == null) return true; - return overlaps(src.drawx(), src.drawy(), other, laserRange * tilesize); + return Intersector.overlaps(Tmp.cr1.set(src.worldx() + offset(), src.worldy() + offset(), laserRange * tilesize), Tmp.r1.setSize(size * tilesize).setCenter(other.worldx() + offset(), other.worldy() + offset())); } protected void drawLaser(Tile tile, Tile target){ @@ -339,11 +341,9 @@ public class PowerNode extends PowerBlock{ } public static boolean insulated(int x, int y, int x2, int y2){ - final Boolean[] bool = {false}; - insulators(x, y, x2, y2, cause -> { - bool[0] = true; - }); - return bool[0]; + returnValue = false; + insulators(x, y, x2, y2, cause -> returnValue = true); + return returnValue; } public static void insulators(int x, int y, int x2, int y2, Cons iterator){ diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Drill.java b/core/src/io/anuke/mindustry/world/blocks/production/Drill.java index ab9af6ea9e..d3756dbd35 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Drill.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Drill.java @@ -257,9 +257,7 @@ public class Drill extends Block{ speed = liquidBoostIntensity; } - if(hasPower){ - speed *= entity.power.satisfaction; // Drill slower when not at full power - } + speed *= entity.efficiency(); // Drill slower when not at full power entity.lastDrillSpeed = (speed * entity.dominantItems * entity.warmup) / (drillTime + hardnessDrillMultiplier * entity.dominantItem.hardness); entity.warmup = Mathf.lerpDelta(entity.warmup, speed, warmupSpeed); diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java b/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java index 632fe30b7d..3e77f8f666 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Fracker.java @@ -79,7 +79,7 @@ public class Fracker extends SolidPump{ } super.update(tile); - entity.accumulator += entity.delta() * entity.power.satisfaction; + entity.accumulator += entity.delta() * entity.efficiency(); }else{ tryDumpLiquid(tile, result); } diff --git a/core/src/io/anuke/mindustry/world/blocks/production/LiquidConverter.java b/core/src/io/anuke/mindustry/world/blocks/production/LiquidConverter.java index 7c9da8619d..6fa9477e69 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/LiquidConverter.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/LiquidConverter.java @@ -38,10 +38,8 @@ public class LiquidConverter extends GenericCrafter{ ConsumeLiquidBase cl = consumes.get(ConsumeType.liquid); if(tile.entity.cons.valid()){ - float use = Math.min(cl.amount * entity.delta(), liquidCapacity - entity.liquids.get(outputLiquid.liquid)); - if(hasPower){ - use *= entity.power.satisfaction; // Produce less liquid if power is not maxed - } + float use = Math.min(cl.amount * entity.delta(), liquidCapacity - entity.liquids.get(outputLiquid.liquid)) * entity.efficiency(); + useContent(tile, outputLiquid.liquid); entity.progress += use / cl.amount / craftTime; entity.liquids.add(outputLiquid.liquid, use); 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 a2e989d81c..9b91d8b98f 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Pump.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Pump.java @@ -119,10 +119,7 @@ public class Pump extends LiquidBlock{ } if(tile.entity.cons.valid() && liquidDrop != null){ - float maxPump = Math.min(liquidCapacity - tile.entity.liquids.total(), tiles * pumpAmount * tile.entity.delta() / size / size); - if(hasPower){ - maxPump *= tile.entity.power.satisfaction; // Produce slower if not at full power - } + float maxPump = Math.min(liquidCapacity - tile.entity.liquids.total(), tiles * pumpAmount * tile.entity.delta() / size / size) * tile.entity.efficiency(); tile.entity.liquids.add(liquidDrop, maxPump); } 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 9f5c2bcc96..15a0e4f88d 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java @@ -42,7 +42,7 @@ public class SolidPump extends Pump{ @Override public void drawPlace(int x, int y, int rotation, boolean valid){ if(attribute != null){ - drawPlaceText(Core.bundle.formatFloat("bar.efficiency", (sumAttribute(attribute, x, y) + 1f) * 100, 1), x, y, valid); + drawPlaceText(Core.bundle.formatFloat("bar.efficiency", (sumAttribute(attribute, x, y) + 1f) * 100 * percentSolid(x, y), 1), x, y, valid); } } @@ -51,7 +51,7 @@ public class SolidPump extends Pump{ super.setBars(); bars.add("efficiency", entity -> new Bar(() -> Core.bundle.formatFloat("bar.efficiency", - ((((SolidPumpEntity)entity).boost + 1f) * ((SolidPumpEntity)entity).warmup) * 100, 1), + ((((SolidPumpEntity)entity).boost + 1f) * ((SolidPumpEntity)entity).warmup) * 100 * percentSolid(entity.tile.x, entity.tile.y), 1), () -> Pal.ammo, () -> ((SolidPumpEntity)entity).warmup)); } @@ -101,7 +101,7 @@ public class SolidPump extends Pump{ fraction += entity.boost; if(tile.entity.cons.valid() && typeLiquid(tile) < liquidCapacity - 0.001f){ - float maxPump = Math.min(liquidCapacity - typeLiquid(tile), pumpAmount * entity.delta() * fraction * entity.power.satisfaction); + float maxPump = Math.min(liquidCapacity - typeLiquid(tile), pumpAmount * entity.delta() * fraction * entity.efficiency()); tile.entity.liquids.add(result, maxPump); entity.warmup = Mathf.lerpDelta(entity.warmup, 1f, 0.02f); if(Mathf.chance(entity.delta() * updateEffectChance)) diff --git a/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java b/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java index 24ce233ae5..6e709b62f6 100644 --- a/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java +++ b/core/src/io/anuke/mindustry/world/blocks/storage/CoreBlock.java @@ -135,6 +135,14 @@ public class CoreBlock extends StorageBlock{ return tile.entity instanceof StorageBlockEntity; } + @Override + public float handleDamage(Tile tile, float amount){ + if(player != null && tile.getTeam() == player.getTeam()){ + Events.fire(Trigger.teamCoreDamage); + } + return amount; + } + @Override public boolean canBreak(Tile tile){ return false; diff --git a/core/src/io/anuke/mindustry/world/blocks/units/RepairPoint.java b/core/src/io/anuke/mindustry/world/blocks/units/RepairPoint.java index 28c700caee..917f2748d6 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/RepairPoint.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/RepairPoint.java @@ -100,7 +100,7 @@ public class RepairPoint extends Block{ if(entity.target != null && (entity.target.isDead() || entity.target.dst(tile) > repairRadius || entity.target.health >= entity.target.maxHealth())){ entity.target = null; }else if(entity.target != null && entity.cons.valid()){ - entity.target.health += repairSpeed * Time.delta() * entity.strength * entity.power.satisfaction; + entity.target.health += repairSpeed * Time.delta() * entity.strength * entity.efficiency(); entity.target.clampHealth(); entity.rotation = Mathf.slerpDelta(entity.rotation, entity.angleTo(entity.target), 0.5f); targetIsBeingRepaired = true; diff --git a/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java b/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java index 1090f84015..2747093746 100644 --- a/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java +++ b/core/src/io/anuke/mindustry/world/blocks/units/UnitFactory.java @@ -159,8 +159,8 @@ public class UnitFactory extends Block{ } if(entity.cons.valid() || tile.isEnemyCheat()){ - entity.time += entity.delta() * entity.speedScl * Vars.state.rules.unitBuildSpeedMultiplier * entity.power.satisfaction; - entity.buildTime += entity.delta() * entity.power.satisfaction * Vars.state.rules.unitBuildSpeedMultiplier; + entity.time += entity.delta() * entity.speedScl * Vars.state.rules.unitBuildSpeedMultiplier * entity.efficiency(); + entity.buildTime += entity.delta() * entity.efficiency() * Vars.state.rules.unitBuildSpeedMultiplier; entity.speedScl = Mathf.lerpDelta(entity.speedScl, 1f, 0.05f); }else{ entity.speedScl = Mathf.lerpDelta(entity.speedScl, 0f, 0.05f); diff --git a/core/src/io/anuke/mindustry/world/consumers/ConsumePower.java b/core/src/io/anuke/mindustry/world/consumers/ConsumePower.java index dcdc1fd487..3343332fc4 100644 --- a/core/src/io/anuke/mindustry/world/consumers/ConsumePower.java +++ b/core/src/io/anuke/mindustry/world/consumers/ConsumePower.java @@ -42,7 +42,7 @@ public class ConsumePower extends Consume{ @Override public void update(TileEntity entity){ - // Nothing to do since PowerGraph directly updates entity.power.satisfaction + // Nothing to do since PowerGraph directly updates entity.power.status } @Override @@ -50,7 +50,7 @@ public class ConsumePower extends Consume{ if(buffered){ return true; }else{ - return entity.power.satisfaction > 0f; + return entity.power.status > 0f; } } @@ -71,7 +71,7 @@ public class ConsumePower extends Consume{ public float requestedPower(TileEntity entity){ if(entity.tile.entity == null) return 0f; if(buffered){ - return (1f-entity.power.satisfaction)*capacity; + return (1f-entity.power.status)*capacity; }else{ try{ return usage * Mathf.num(entity.block.shouldConsume(entity.tile)); diff --git a/core/src/io/anuke/mindustry/world/meta/values/AmmoListValue.java b/core/src/io/anuke/mindustry/world/meta/values/AmmoListValue.java index 86f51320b6..c531fabe45 100644 --- a/core/src/io/anuke/mindustry/world/meta/values/AmmoListValue.java +++ b/core/src/io/anuke/mindustry/world/meta/values/AmmoListValue.java @@ -41,9 +41,9 @@ public class AmmoListValue implements StatValue{ sep(bt, Core.bundle.format("bullet.splashdamage", (int)type.splashDamage, Strings.fixed(type.splashDamageRadius / tilesize, 1))); } - if(!Mathf.isEqual(type.ammoMultiplier, 1f)) + if(!Mathf.equal(type.ammoMultiplier, 1f)) sep(bt, Core.bundle.format("bullet.multiplier", (int)type.ammoMultiplier)); - if(!Mathf.isEqual(type.reloadMultiplier, 1f)) + if(!Mathf.equal(type.reloadMultiplier, 1f)) sep(bt, Core.bundle.format("bullet.reload", Strings.fixed(type.reloadMultiplier, 1))); if(type.knockback > 0){ diff --git a/core/src/io/anuke/mindustry/world/modules/PowerModule.java b/core/src/io/anuke/mindustry/world/modules/PowerModule.java index ad82a5aedb..ad1a958fb7 100644 --- a/core/src/io/anuke/mindustry/world/modules/PowerModule.java +++ b/core/src/io/anuke/mindustry/world/modules/PowerModule.java @@ -13,7 +13,7 @@ public class PowerModule extends BlockModule{ * Blocks will work at a reduced efficiency if this is not equal to 1.0f. * In case of buffered consumers, this is the percentage of power stored in relation to the maximum capacity. */ - public float satisfaction = 0.0f; + public float status = 0.0f; public PowerGraph graph = new PowerGraph(); public IntArray links = new IntArray(); @@ -23,7 +23,7 @@ public class PowerModule extends BlockModule{ for(int i = 0; i < links.size; i++){ stream.writeInt(links.get(i)); } - stream.writeFloat(satisfaction); + stream.writeFloat(status); } @Override @@ -32,7 +32,7 @@ public class PowerModule extends BlockModule{ for(int i = 0; i < amount; i++){ links.add(stream.readInt()); } - satisfaction = stream.readFloat(); - if(Float.isNaN(satisfaction) || Float.isInfinite(satisfaction)) satisfaction = 0f; + status = stream.readFloat(); + if(Float.isNaN(status) || Float.isInfinite(status)) status = 0f; } } diff --git a/desktop/build.gradle b/desktop/build.gradle index 90d7fbdca2..f8af30311c 100644 --- a/desktop/build.gradle +++ b/desktop/build.gradle @@ -40,7 +40,7 @@ task dist(type: Jar, dependsOn: classes){ from {configurations.compile.collect {zipTree(it)}} from files(project.assetsDir) - archiveName = "${appName}.jar" + archiveFileName = "${appName}.jar" manifest{ attributes 'Main-Class': project.mainClassName @@ -163,8 +163,8 @@ PackrConfig.Platform.values().each{ platform -> task "zip${platform.toString()}"(type: Zip){ from "build/packr/output" - archiveName "${generateDeployName(platform.toString())}.zip" - destinationDir(file("../deploy")) + archiveFileName = "${generateDeployName(platform.toString())}.zip" + destinationDirectory = (file("../deploy")) doLast{ delete{ diff --git a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java index 1ce411d804..1bea20db40 100644 --- a/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java +++ b/desktop/src/io/anuke/mindustry/desktop/DesktopLauncher.java @@ -35,7 +35,6 @@ import java.util.*; import static io.anuke.mindustry.Vars.*; - public class DesktopLauncher extends ClientLauncher{ public final static String discordID = "610508934456934412"; diff --git a/gradle.properties b/gradle.properties index 9b5dd0832a..7a2bc0d5fe 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.daemon=true org.gradle.jvmargs=-Xms256m -Xmx1024m -archash=60e1edbc61f05c329019d0c5479672a298a9706c +archash=68a64d9e8a3016ad433d0959be78f6acdcdaa385 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 94336fcae9..5c2d1cf016 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index b0acbdcd73..6ce793f21e 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-5.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.0-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 383f0901c9..8e25e6c19d 100755 --- a/gradlew +++ b/gradlew @@ -1,4 +1,20 @@ -#!/usr/bin/env bash +#!/usr/bin/env sh + +# +# Copyright 2015 the original author or authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ############################################################################## ## @@ -28,7 +44,7 @@ APP_NAME="Gradle" APP_BASE_NAME=`basename "$0"` # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD="maximum" diff --git a/gradlew.bat b/gradlew.bat index e95643d6a2..9618d8d960 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -1,84 +1,100 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windows variants - -if not "%OS%" == "Windows_NT" goto win9xME_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/ios/src/io/anuke/mindustry/IOSLauncher.java b/ios/src/io/anuke/mindustry/IOSLauncher.java index 601964b384..7f2998a317 100644 --- a/ios/src/io/anuke/mindustry/IOSLauncher.java +++ b/ios/src/io/anuke/mindustry/IOSLauncher.java @@ -39,7 +39,8 @@ public class IOSLauncher extends IOSApplication.Delegate{ @Override public void showFileChooser(boolean open, String extension, Cons cons){ - UIDocumentBrowserViewController cont = new UIDocumentBrowserViewController((NSArray)null); + UIDocumentBrowserViewController cont = new UIDocumentBrowserViewController((NSArray)null); + NSArray arr = new NSArray<>(new UIBarButtonItem(Core.bundle.get("cancel"), UIBarButtonItemStyle.Plain, uiBarButtonItem -> cont.dismissViewController(true, () -> {}))); @@ -58,6 +59,112 @@ public class IOSLauncher extends IOSApplication.Delegate{ if(documentURLs.size() < 1) return; cont.dismissViewController(true, () -> {}); + NSFileCoordinator coord = new NSFileCoordinator(null); + + try{ + coord.coordinateReadingItem(documentURLs.get(0), NSFileCoordinatorReadingOptions.None, url -> { + if(url.startAccessingSecurityScopedResource()){ + try{ + controller.importDocument(url, new NSURL(getDocumentsDirectory() + "/document"), UIDocumentBrowserImportMode.Copy, (result, error) -> { + if(error != null){ + ui.showErrorMessage("Import error.\n" + error.getLocalizedFailureReason() + "\n" + error.getLocalizedDescription()); + }else{ + try{ + cons.get(Core.files.absolute(url.getPath())); + }catch(Throwable t){ + ui.showException(t); + } + } + }); + }catch(Throwable t){ + ui.showException(t); + } + + /* + + try{ + int[] tread = {0}; + + cons.get(new FileHandle(url.getPath()){ + @Override + public InputStream read(){ + NSInputStream stream = new NSInputStream(url); + + return new InputStream(){ + byte[] tmp = {0}; + + @Override + public int read() throws IOException{ + read(tmp); + return tmp[0]; + } + + @Override + public int read(byte[] bytes, int offset, int length){ + int read = (int)stream.read(bytes, offset, length); + tread[0] += read; + return read; + } + }; + } + }); + Core.app.post(() -> Core.app.post(() -> Core.app.post(() -> ui.showInfo("Read " + tread[0])))); + //cons.get(new FileHandle(url.getAbsoluteString())); + }catch(Throwable t){ + ui.showException(t); + + try{ + cons.get(new FileHandle(url.getPath())); + }catch(Throwable t2){ + ui.showException(t2); + + try{ + cons.get(new FileHandle(url.getAbsoluteURL().getPath())); + }catch(Throwable t3){ + ui.showException(t3); + } + } + }*/ + }else{ + ui.showErrorMessage("Failed to access file."); + } + + /* + try{ + int[] tread = {0}; + + cons.get(new FileHandle(url.getPath()){ + @Override + public InputStream read(){ + NSInputStream stream = new NSInputStream(url); + + return new InputStream(){ + byte[] tmp = {0}; + + @Override + public int read() throws IOException{ + read(tmp); + return tmp[0]; + } + + @Override + public int read(byte[] bytes, int offset, int length){ + int read = (int)stream.read(bytes, offset, length); + tread[0] += read; + return read; + } + }; + } + }); + Core.app.post(() -> Core.app.post(() -> Core.app.post(() -> ui.showInfo("Read " + tread[0])))); + }catch(Throwable t){ + ui.showException(t); + }*/ + }); + }catch(Throwable t){ + ui.showException(t); + } + /* try{ controller.importDocument(documentURLs.get(0), new NSURL(getDocumentsDirectory() + "/document"), UIDocumentBrowserImportMode.Copy, (url, error) -> { @@ -73,7 +180,7 @@ public class IOSLauncher extends IOSApplication.Delegate{ }); }catch(Throwable t){ ui.showException(t); - } + }*/ } @Override @@ -83,7 +190,7 @@ public class IOSLauncher extends IOSApplication.Delegate{ @Override public void didImportDocument(UIDocumentBrowserViewController controller, NSURL sourceURL, NSURL destinationURL){ - cons.get(Core.files.absolute(destinationURL.getAbsoluteString())); + //cons.get(Core.files.absolute(destinationURL.getAbsoluteString())); } @Override @@ -104,24 +211,22 @@ public class IOSLauncher extends IOSApplication.Delegate{ cont.setDelegate(new ChooserDelegate()); - // DispatchQueue.getMainQueue().sync(() -> { UIApplication.getSharedApplication().getKeyWindow().getRootViewController().presentViewController(cont, true, () -> {}); - // }); } @Override public void shareFile(FileHandle file){ - Log.info("Attempting to share file " + file); - FileHandle to = Core.files.absolute(getDocumentsDirectory()).child(file.name()); - file.copyTo(to); + try{ + Log.info("Attempting to share file " + file); + FileHandle to = Core.files.absolute(getDocumentsDirectory()).child(file.name()); + file.copyTo(to); - NSURL url = new NSURL(to.file()); - UIActivityViewController p = new UIActivityViewController(Collections.singletonList(url), null); - - //DispatchQueue.getMainQueue().sync(() -> { - UIApplication.getSharedApplication().getKeyWindow().getRootViewController() - .presentViewController(p, true, () -> Log.info("Success! Presented {0}", to)); - //}); + NSURL url = new NSURL(to.file()); + UIActivityViewController p = new UIActivityViewController(Collections.singletonList(url), null); + UIApplication.getSharedApplication().getKeyWindow().getRootViewController().presentViewController(p, true, () -> Log.info("Success! Presented {0}", to)); + }catch(Throwable t){ + ui.showException(t); + } } @Override diff --git a/server/build.gradle b/server/build.gradle index 7b2fb63159..26fe08a653 100644 --- a/server/build.gradle +++ b/server/build.gradle @@ -51,8 +51,8 @@ task dist(type: Jar){ task dzip(type: Zip){ from getServerFolder() - archiveName "${generateDeployName('server')}.zip" - destinationDir(file("../deploy/")) + archiveFileName = "${generateDeployName('server')}.zip" + destinationDirectory = file("../deploy/") finalizedBy 'cleanup' } diff --git a/server/src/io/anuke/mindustry/server/ServerControl.java b/server/src/io/anuke/mindustry/server/ServerControl.java index 7297a3c138..953b02ae36 100644 --- a/server/src/io/anuke/mindustry/server/ServerControl.java +++ b/server/src/io/anuke/mindustry/server/ServerControl.java @@ -8,6 +8,8 @@ import io.anuke.arc.util.*; import io.anuke.arc.util.Timer; import io.anuke.arc.util.CommandHandler.*; import io.anuke.arc.util.Timer.*; +import io.anuke.arc.util.serialization.*; +import io.anuke.arc.util.serialization.JsonValue.*; import io.anuke.mindustry.*; import io.anuke.mindustry.core.GameState.*; import io.anuke.mindustry.core.*; @@ -59,7 +61,8 @@ public class ServerControl implements ApplicationListener{ "crashreport", false, "port", port, "logging", true, - "socket", false + "socket", false, + "globalrules", "{reactorExplosions: false}" ); Log.setLogger(new LogHandler(){ @@ -142,6 +145,7 @@ public class ServerControl implements ApplicationListener{ Events.on(GameOverEvent.class, event -> { if(inExtraRound) return; info("Game over!"); + displayStatus(); if(Core.settings.getBool("shuffle")){ if(maps.all().size > 0){ @@ -249,8 +253,9 @@ public class ServerControl implements ApplicationListener{ logic.reset(); lastMode = preset; try{ - world.loadMap(result, result.applyRules(lastMode)); + world.loadMap(result, result.applyRules(lastMode)); state.rules = result.applyRules(preset); + applyRules(); logic.play(); info("Map loaded."); @@ -299,29 +304,7 @@ public class ServerControl implements ApplicationListener{ }); handler.register("status", "Display server status.", arg -> { - if(state.is(State.menu)){ - info("Status: &rserver closed"); - }else{ - info("Status:"); - info(" &lyPlaying on map &fi{0}&fb &lb/&ly Wave {1}", Strings.capitalize(world.getMap().name()), state.wave); - - if(state.rules.waves){ - info("&ly {0} enemies.", unitGroups[Team.crux.ordinal()].size()); - }else{ - info("&ly {0} seconds until next wave.", (int)(state.wavetime / 60)); - } - - info(" &ly{0} FPS, {1} MB used.", (int)(60f / Time.delta()), Core.app.getJavaHeap() / 1024 / 1024); - - if(playerGroup.size() > 0){ - info(" &lyPlayers: {0}", playerGroup.size()); - for(Player p : playerGroup.all()){ - info(" &y{0} / {1}", p.name, p.uuid); - } - }else{ - info(" &lyNo players connected."); - } - } + displayStatus(); }); handler.register("mods", "Display all loaded mods.", arg -> { @@ -369,6 +352,58 @@ public class ServerControl implements ApplicationListener{ } }); + handler.register("rules", "[remove/add] [name] [value...]", "List, remove or add global rules. These will apply regardless of map.", arg -> { + String rules = Core.settings.getString("globalrules"); + JsonValue base = JsonIO.json().fromJson(null, rules); + + if(arg.length == 0){ + Log.info("&lyRules:\n{0}", JsonIO.print(rules)); + }else if(arg.length == 1){ + Log.err("Invalid usage. Specify which rule to remove or add."); + }else{ + if(!(arg[0].equals("remove") || arg[0].equals("add"))){ + Log.err("Invalid usage. Either add or remove rules."); + return; + } + + boolean remove = arg[0].equals("remove"); + if(remove){ + if(base.has(arg[1])){ + Log.info("Rule &lc'{0}'&lg removed.", arg[1]); + base.remove(arg[1]); + }else{ + Log.err("Rule not defined, so not removed."); + return; + } + }else{ + if(arg.length < 3){ + Log.err("Missing last argument. Specify which value to set the rule to."); + return; + } + + try{ + JsonValue value = new JsonReader().parse(arg[2]); + value.name = arg[1]; + + JsonValue parent = new JsonValue(ValueType.object); + parent.addChild(value); + + JsonIO.json().readField(state.rules, value.name, parent); + if(base.has(value.name)){ + base.remove(value.name); + } + base.addChild(arg[1], value); + Log.info("Changed rule: &ly{0}", value.toString().replace("\n", " ")); + }catch(Throwable e){ + Log.err("Error parsing rule JSON", e); + } + } + + Core.settings.putSave("globalrules", base.toString()); + Call.onSetRules(state.rules); + } + }); + handler.register("fillitems", "[team]", "Fill the core with items.", arg -> { if(!state.is(State.playing)){ err("Not playing. Host first."); @@ -765,6 +800,41 @@ public class ServerControl implements ApplicationListener{ mods.each(p -> p.registerClientCommands(netServer.clientCommands)); } + private void applyRules(){ + try{ + JsonValue value = JsonIO.json().fromJson(null, Core.settings.getString("globalrules")); + JsonIO.json().readFields(state.rules, value); + }catch(Throwable t){ + Log.err("Error applying custom rules, proceeding without them.", t); + } + } + + private void displayStatus() { + if(state.is(State.menu)){ + info("Status: &rserver closed"); + }else{ + info("Status:"); + info(" &lyPlaying on map &fi{0}&fb &lb/&ly Wave {1}", Strings.capitalize(world.getMap().name()), state.wave); + + if(state.rules.waves){ + info("&ly {0} enemies.", unitGroups[Team.crux.ordinal()].size()); + }else{ + info("&ly {0} seconds until next wave.", (int)(state.wavetime / 60)); + } + + info(" &ly{0} FPS, {1} MB used.", (int)(60f / Time.delta()), Core.app.getJavaHeap() / 1024 / 1024); + + if(playerGroup.size() > 0){ + info(" &lyPlayers: {0}", playerGroup.size()); + for(Player p : playerGroup.all()){ + info(" &y{0} / {1}", p.name, p.uuid); + } + }else{ + info(" &lyNo players connected."); + } + } + } + private void readCommands(){ Scanner scan = new Scanner(System.in); @@ -819,6 +889,7 @@ public class ServerControl implements ApplicationListener{ run.run(); logic.play(); state.rules = world.getMap().applyRules(lastMode); + applyRules(); for(Player p : players){ if(p.con == null) continue; diff --git a/tests/src/test/java/power/DirectConsumerTests.java b/tests/src/test/java/power/DirectConsumerTests.java index 7fdc9ef612..89ed331c8b 100644 --- a/tests/src/test/java/power/DirectConsumerTests.java +++ b/tests/src/test/java/power/DirectConsumerTests.java @@ -50,6 +50,6 @@ public class DirectConsumerTests extends PowerTestFixture{ consumerTile.entity.update(); graph.update(); - assertEquals(expectedSatisfaction, consumerTile.entity.power.satisfaction); + assertEquals(expectedSatisfaction, consumerTile.entity.power.status); } } diff --git a/tests/src/test/java/power/ItemLiquidGeneratorTests.java b/tests/src/test/java/power/ItemLiquidGeneratorTests.java index a4c0c78608..77f5b67570 100644 --- a/tests/src/test/java/power/ItemLiquidGeneratorTests.java +++ b/tests/src/test/java/power/ItemLiquidGeneratorTests.java @@ -20,7 +20,7 @@ import static org.junit.jupiter.api.DynamicTest.dynamicTest; * All tests are run with a fixed delta of 0.5 so delta considerations can be tested as well. * Additionally, each PowerGraph::update() call will have its own thread frame, i.e. the method will never be called twice within the same frame. * Both of these constraints are handled by FakeThreadHandler within PowerTestFixture. - * Any expected power amount (produced, consumed, buffered) should be affected by FakeThreadHandler.fakeDelta but satisfaction should not! + * Any expected power amount (produced, consumed, buffered) should be affected by FakeThreadHandler.fakeDelta but status should not! */ public class ItemLiquidGeneratorTests extends PowerTestFixture{ diff --git a/tests/src/test/java/power/PowerTests.java b/tests/src/test/java/power/PowerTests.java index 3c6e20e288..6b253e4f29 100644 --- a/tests/src/test/java/power/PowerTests.java +++ b/tests/src/test/java/power/PowerTests.java @@ -16,7 +16,7 @@ import static org.junit.jupiter.api.DynamicTest.dynamicTest; * All tests are run with a fixed delta of 0.5 so delta considerations can be tested as well. * Additionally, each PowerGraph::update() call will have its own thread frame, i.e. the method will never be called twice within the same frame. * Both of these constraints are handled by FakeThreadHandler within PowerTestFixture. - * Any power amount (produced, consumed, buffered) should be affected by Time.delta() but satisfaction should not! + * Any power amount (produced, consumed, buffered) should be affected by Time.delta() but status should not! */ public class PowerTests extends PowerTestFixture{ @@ -29,9 +29,9 @@ public class PowerTests extends PowerTestFixture{ class PowerGraphTests{ /** - * Tests the satisfaction of a single consumer after a single update of the power graph which contains a single producer. + * Tests the status of a single consumer after a single update of the power graph which contains a single producer. *

- * Assumption: When the consumer requests zero power, satisfaction does not change. Default is 0.0f. + * Assumption: When the consumer requests zero power, status does not change. Default is 0.0f. */ @TestFactory DynamicTest[] directConsumerSatisfactionIsAsExpected(){ @@ -61,13 +61,13 @@ public class PowerTests extends PowerTestFixture{ assertEquals(producedPower * Time.delta(), powerGraph.getPowerProduced(), Mathf.FLOAT_ROUNDING_ERROR); assertEquals(requiredPower * Time.delta(), powerGraph.getPowerNeeded(), Mathf.FLOAT_ROUNDING_ERROR); - // Update and check for the expected power satisfaction of the consumer + // Update and check for the expected power status of the consumer powerGraph.update(); - assertEquals(expectedSatisfaction, directConsumerTile.entity.power.satisfaction, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Satisfaction of direct consumer did not match"); + assertEquals(expectedSatisfaction, directConsumerTile.entity.power.status, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Satisfaction of direct consumer did not match"); } /** - * Tests the satisfaction of a single direct consumer after a single update of the power graph which contains a single producer and a single battery. + * Tests the status of a single direct consumer after a single update of the power graph which contains a single producer and a single battery. * The used battery is created with a maximum capacity of 100 and receives ten power per tick. */ @TestFactory @@ -101,14 +101,14 @@ public class PowerTests extends PowerTestFixture{ } float maxCapacity = 100f; Tile batteryTile = createFakeTile(0, 2, createFakeBattery(maxCapacity)); - batteryTile.entity.power.satisfaction = initialBatteryCapacity / maxCapacity; + batteryTile.entity.power.status = initialBatteryCapacity / maxCapacity; powerGraph.add(batteryTile); powerGraph.update(); - assertEquals(expectedBatteryCapacity / maxCapacity, batteryTile.entity.power.satisfaction, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Expected battery satisfaction did not match"); + assertEquals(expectedBatteryCapacity / maxCapacity, batteryTile.entity.power.status, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Expected battery status did not match"); if(directConsumerTile != null){ - assertEquals(expectedSatisfaction, directConsumerTile.entity.power.satisfaction, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Satisfaction of direct consumer did not match"); + assertEquals(expectedSatisfaction, directConsumerTile.entity.power.status, Mathf.FLOAT_ROUNDING_ERROR, parameterDescription + ": Satisfaction of direct consumer did not match"); } } @@ -124,13 +124,13 @@ public class PowerTests extends PowerTestFixture{ powerGraph.add(consumerTile); powerGraph.update(); - assertEquals(1.0f, consumerTile.entity.power.satisfaction, Mathf.FLOAT_ROUNDING_ERROR); + assertEquals(1.0f, consumerTile.entity.power.status, Mathf.FLOAT_ROUNDING_ERROR); powerGraph.remove(producerTile); powerGraph.add(consumerTile); powerGraph.update(); - assertEquals(0.0f, consumerTile.entity.power.satisfaction, Mathf.FLOAT_ROUNDING_ERROR); + assertEquals(0.0f, consumerTile.entity.power.status, Mathf.FLOAT_ROUNDING_ERROR); if(consumerTile.block().consumes.hasPower()){ ConsumePower consumePower = consumerTile.block().consumes.getPower(); assertFalse(consumePower.valid(consumerTile.entity()));