diff --git a/core/assets-raw/sprites/blocks/drills/drill-top.png b/core/assets-raw/sprites/blocks/drills/drill-top.png new file mode 100644 index 0000000000..dade4f64a3 Binary files /dev/null and b/core/assets-raw/sprites/blocks/drills/drill-top.png differ diff --git a/core/assets-raw/sprites/blocks/environment/lead1.png b/core/assets-raw/sprites/blocks/environment/lead1.png index ea20a9261d..75b71b0f8d 100644 Binary files a/core/assets-raw/sprites/blocks/environment/lead1.png and b/core/assets-raw/sprites/blocks/environment/lead1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/lead2.png b/core/assets-raw/sprites/blocks/environment/lead2.png index 7741575e00..b61a3a5cfb 100644 Binary files a/core/assets-raw/sprites/blocks/environment/lead2.png and b/core/assets-raw/sprites/blocks/environment/lead2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/lead3.png b/core/assets-raw/sprites/blocks/environment/lead3.png index c7e5ab676a..87360e6656 100644 Binary files a/core/assets-raw/sprites/blocks/environment/lead3.png and b/core/assets-raw/sprites/blocks/environment/lead3.png differ diff --git a/core/assets-raw/sprites/blocks/environment/thorium1.png b/core/assets-raw/sprites/blocks/environment/thorium1.png index ce0de1271c..6c69abda01 100644 Binary files a/core/assets-raw/sprites/blocks/environment/thorium1.png and b/core/assets-raw/sprites/blocks/environment/thorium1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/thorium2.png b/core/assets-raw/sprites/blocks/environment/thorium2.png index 9372bf6f81..5995079270 100644 Binary files a/core/assets-raw/sprites/blocks/environment/thorium2.png and b/core/assets-raw/sprites/blocks/environment/thorium2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/titanium1.png b/core/assets-raw/sprites/blocks/environment/titanium1.png index 9ba087608a..21d2c9a938 100644 Binary files a/core/assets-raw/sprites/blocks/environment/titanium1.png and b/core/assets-raw/sprites/blocks/environment/titanium1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/titanium2.png b/core/assets-raw/sprites/blocks/environment/titanium2.png index c6add6ad54..e1edbe3046 100644 Binary files a/core/assets-raw/sprites/blocks/environment/titanium2.png and b/core/assets-raw/sprites/blocks/environment/titanium2.png differ diff --git a/core/assets-raw/sprites/blocks/liquid/liquid-tank-liquid.png b/core/assets-raw/sprites/blocks/liquid/liquid-tank-liquid.png index 6ce6c746da..3e7b0e032e 100644 Binary files a/core/assets-raw/sprites/blocks/liquid/liquid-tank-liquid.png and b/core/assets-raw/sprites/blocks/liquid/liquid-tank-liquid.png differ diff --git a/core/assets-raw/sprites/ui/button-square-down.9.png b/core/assets-raw/sprites/ui/button-square-down.9.png new file mode 100644 index 0000000000..44f9870ac6 Binary files /dev/null and b/core/assets-raw/sprites/ui/button-square-down.9.png differ diff --git a/core/assets-raw/sprites/ui/button-square-over.9.png b/core/assets-raw/sprites/ui/button-square-over.9.png new file mode 100644 index 0000000000..4bdc6aa350 Binary files /dev/null and b/core/assets-raw/sprites/ui/button-square-over.9.png differ diff --git a/core/assets-raw/sprites/ui/button-square.9.png b/core/assets-raw/sprites/ui/button-square.9.png new file mode 100644 index 0000000000..a137425df9 Binary files /dev/null and b/core/assets-raw/sprites/ui/button-square.9.png differ diff --git a/core/assets-raw/sprites/units/power-cell.png b/core/assets-raw/sprites/units/power-cell.png index dfbc73a20b..04a09f93f3 100644 Binary files a/core/assets-raw/sprites/units/power-cell.png and b/core/assets-raw/sprites/units/power-cell.png differ diff --git a/core/assets/bundles/bundle.properties b/core/assets/bundles/bundle.properties index 7b0243b2bc..a0a6516ea1 100644 --- a/core/assets/bundles/bundle.properties +++ b/core/assets/bundles/bundle.properties @@ -216,7 +216,7 @@ editor.errorsave = Error saving file:\n[accent]{0} editor.errorimage = That's an image, not a map. Don't go around changing extensions expecting it to work.\n\nIf you want to import a legacy map, use the 'import legacy map' button in the editor. editor.errorlegacy = This map is too old, and uses a legacy map format that is no longer supported. editor.errorheader = This map file is either not valid or corrupt. -editor.errorname = Map has no name defined. +editor.errorname = Map has no name defined. Are you trying to load a save file? editor.update = Update editor.randomize = Randomize editor.apply = Apply @@ -268,6 +268,7 @@ filters.empty = [lightgray]No filters! Add one with the button below. filter.distort = Distort filter.noise = Noise filter.median = Median +filter.oremedian = Ore Median filter.blend = Blend filter.defaultores = Default Ores filter.ore = Ore @@ -361,6 +362,7 @@ zone.tarFields.name = Tar Fields zone.saltFlats.name = Salt Flats zone.impact0078.name = Impact 0078 zone.crags.name = Crags +zone.fungalPass.name = Fungal Pass zone.groundZero.description = The optimal location to begin once more. Low enemy threat. Few resources.\nGather as much lead and copper as possible.\nMove on. zone.frozenForest.description = Even here, closer to mountains, the spores have spread. The fridgid temperatures cannot contain them forever.\n\nBegin the venture into power. Build combustion generators. Learn to use menders. @@ -369,10 +371,11 @@ zone.saltFlats.description = On the outskirts of the desert lie the Salt Flats. zone.craters.description = Water has accumulated in this crater, relic of the old wars. Reclaim the area. Collect sand. Smelt metaglass. Pump water to cool turrets and drills. zone.ruinousShores.description = Past the wastes, is the shoreline. Once, this location housed a coastal defense array. Not much of it remains. Only the most basic defense structures have remained unscathed, everything else reduced to scrap.\nContinue the expansion outwards. Rediscover the technology. zone.stainedMountains.description = Further inland lie the mountains, yet untainted by spores.\nExtract the abundant titanium in this area. Learn how to use it.\n\nThe enemy presence is greater here. Do not give them time to send their strongest units. -zone.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build dagger units. Destroy it. Reclaim that which was lost. +zone.overgrowth.description = This area is overgrown, closer to the source of the spores.\nThe enemy has established an outpost here. Build Titan units. Destroy it. Reclaim that which was lost. zone.tarFields.description = The outskirts of an oil production zone, between the mountains and desert. One of the few areas with usable tar reserves.\nAlthough abandoned, this area has some dangerous enemy forces nearby. Do not underestimate them.\n\n[lightgray]Research oil processing technology if possible. zone.desolateRift.description = An extremely dangerous zone. Plentiful resources, but little space. High risk of destruction. Leave as soon as possible. Do not be fooled by the long spacing between enemy attacks. zone.nuclearComplex.description = A former facility for the production and processing of thorium, reduced to ruins.\n[lightgray]Research the thorium and its many uses.\n\nThe enemy is present here in great numbers, constantly scouting for attackers. +zone.fungalPass.description = A transition area between high mountains and lower, spore-ridden lands. A small enemy reconnaissance base is located here.\nDestroy it.\nUse Dagger and Crawler units. Take out the two cores. zone.impact0078.description = zone.crags.description = @@ -429,6 +432,7 @@ blocks.shots = Shots blocks.reload = Shots/Second blocks.ammo = Ammo + bar.drillspeed = Drill Speed: {0}/s bar.efficiency = Efficiency: {0}% bar.powerbalance = Power: {0}/s @@ -836,9 +840,10 @@ block.container.name = Container block.launch-pad.name = Launch Pad block.launch-pad-large.name = Large Launch Pad team.blue.name = blue -team.red.name = red +team.crux.name = red +team.sharded.name = orange team.orange.name = orange -team.none.name = gray +team.derelict.name = derelict team.green.name = green team.purple.name = purple unit.spirit.name = Spirit Repair Drone diff --git a/core/assets/contributors b/core/assets/contributors index 42bea20654..0b022ae2f0 100644 --- a/core/assets/contributors +++ b/core/assets/contributors @@ -69,4 +69,5 @@ Michael Plotke Niko Paul T Dominik -Arkanic \ No newline at end of file +Arkanic +Potion diff --git a/core/assets/maps/craters.msav b/core/assets/maps/craters.msav index 14f91c18ca..17f07a58b6 100644 Binary files a/core/assets/maps/craters.msav and b/core/assets/maps/craters.msav differ diff --git a/core/assets/maps/desolateRift.msav b/core/assets/maps/desolateRift.msav index e1f7fe3394..d140c9e5ba 100644 Binary files a/core/assets/maps/desolateRift.msav and b/core/assets/maps/desolateRift.msav differ diff --git a/core/assets/maps/fortress.msav b/core/assets/maps/fortress.msav index 25f2c10835..c5f58e0380 100644 Binary files a/core/assets/maps/fortress.msav and b/core/assets/maps/fortress.msav differ diff --git a/core/assets/maps/frozenForest.msav b/core/assets/maps/frozenForest.msav index 8e6ab8fdc9..431b4ce947 100644 Binary files a/core/assets/maps/frozenForest.msav and b/core/assets/maps/frozenForest.msav differ diff --git a/core/assets/maps/fungalPass.msav b/core/assets/maps/fungalPass.msav new file mode 100644 index 0000000000..3935a0c04d Binary files /dev/null and b/core/assets/maps/fungalPass.msav differ diff --git a/core/assets/maps/groundZero.msav b/core/assets/maps/groundZero.msav index 75232a33f3..a09d2bfcc7 100644 Binary files a/core/assets/maps/groundZero.msav and b/core/assets/maps/groundZero.msav differ diff --git a/core/assets/maps/maze.msav b/core/assets/maps/maze.msav index edcf158f33..062d3784be 100644 Binary files a/core/assets/maps/maze.msav and b/core/assets/maps/maze.msav differ diff --git a/core/assets/maps/nuclearProductionComplex.msav b/core/assets/maps/nuclearProductionComplex.msav index 5a48206817..248f9096fd 100644 Binary files a/core/assets/maps/nuclearProductionComplex.msav and b/core/assets/maps/nuclearProductionComplex.msav differ diff --git a/core/assets/maps/overgrowth.msav b/core/assets/maps/overgrowth.msav index 2c3316bd81..927f58d1c4 100644 Binary files a/core/assets/maps/overgrowth.msav and b/core/assets/maps/overgrowth.msav differ diff --git a/core/assets/maps/ruinousShores.msav b/core/assets/maps/ruinousShores.msav index 36ec4cc868..9e85303605 100644 Binary files a/core/assets/maps/ruinousShores.msav and b/core/assets/maps/ruinousShores.msav differ diff --git a/core/assets/maps/stainedMountains.msav b/core/assets/maps/stainedMountains.msav index 5cd9828d85..fabee936e8 100644 Binary files a/core/assets/maps/stainedMountains.msav and b/core/assets/maps/stainedMountains.msav differ diff --git a/core/assets/maps/tarFields.msav b/core/assets/maps/tarFields.msav index 8976acc148..48eb25f358 100644 Binary files a/core/assets/maps/tarFields.msav and b/core/assets/maps/tarFields.msav differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index c2eb5af812..fc29cded09 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -27,21 +27,21 @@ force-projector-top index: -1 mend-projector rotate: false - xy: 1544, 1597 + xy: 1610, 1597 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector-icon-full rotate: false - xy: 1544, 1597 + xy: 1610, 1597 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mend-projector-top rotate: false - xy: 1610, 1597 + xy: 1676, 1597 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -69,21 +69,21 @@ mender-top index: -1 overdrive-projector rotate: false - xy: 1742, 1593 + xy: 1808, 1593 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-projector-icon-full rotate: false - xy: 1742, 1593 + xy: 1808, 1593 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 overdrive-projector-top rotate: false - xy: 1808, 1593 + xy: 1874, 1593 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -571,6 +571,20 @@ blast-drill-top orig: 128, 128 offset: 0, 0 index: -1 +drill-top + rotate: false + xy: 525, 54 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 +turbine-generator-liquid + rotate: false + xy: 525, 54 + size: 64, 64 + orig: 64, 64 + offset: 0, 0 + index: -1 laser-drill rotate: false xy: 685, 186 @@ -601,21 +615,21 @@ laser-drill-top index: -1 mechanical-drill rotate: false - xy: 1412, 1625 + xy: 1346, 1559 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-rotator rotate: false - xy: 1412, 1559 + xy: 1478, 1597 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 mechanical-drill-top rotate: false - xy: 1478, 1597 + xy: 1544, 1597 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -650,21 +664,21 @@ oil-extractor-top index: -1 pneumatic-drill rotate: false - xy: 1940, 1527 + xy: 1148, 1493 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-rotator rotate: false - xy: 1214, 1493 + xy: 1280, 1493 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pneumatic-drill-top rotate: false - xy: 1280, 1493 + xy: 1346, 1493 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -734,28 +748,28 @@ place-arrow index: -1 rubble-1-0 rotate: false - xy: 1610, 1465 + xy: 1676, 1465 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rubble-1-1 rotate: false - xy: 1676, 1465 + xy: 1742, 1461 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rubble-2-0 rotate: false - xy: 1742, 1461 + xy: 1808, 1461 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rubble-2-1 rotate: false - xy: 1808, 1461 + xy: 1874, 1461 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1091,14 +1105,14 @@ pulse-conduit-top-6 index: -1 rotary-pump rotate: false - xy: 1478, 1465 + xy: 1544, 1465 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rotary-pump-icon-full rotate: false - xy: 1478, 1465 + xy: 1544, 1465 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1161,14 +1175,14 @@ glaive-ship-pad-icon-full index: -1 javelin-ship-pad rotate: false - xy: 1214, 1625 + xy: 1148, 1559 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 javelin-ship-pad-icon-full rotate: false - xy: 1214, 1625 + xy: 1148, 1559 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1189,28 +1203,28 @@ omega-mech-pad-icon-full index: -1 tau-mech-pad rotate: false - xy: 1035, 1353 + xy: 913, 1287 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 tau-mech-pad-icon-full rotate: false - xy: 1035, 1353 + xy: 913, 1287 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 trident-ship-pad rotate: false - xy: 979, 1155 + xy: 913, 1089 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 trident-ship-pad-icon-full rotate: false - xy: 979, 1155 + xy: 913, 1089 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1357,14 +1371,14 @@ power-node-icon-full index: -1 power-node-large rotate: false - xy: 1346, 1493 + xy: 1412, 1493 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 power-node-large-icon-full rotate: false - xy: 1346, 1493 + xy: 1412, 1493 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1392,14 +1406,14 @@ power-void-icon-full index: -1 rtg-generator rotate: false - xy: 1544, 1465 + xy: 1610, 1465 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 rtg-generator-icon-full rotate: false - xy: 1544, 1465 + xy: 1610, 1465 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1441,28 +1455,28 @@ solar-panel-large-icon-full index: -1 surge-tower rotate: false - xy: 1045, 1419 + xy: 913, 1419 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 surge-tower-icon-full rotate: false - xy: 1045, 1419 + xy: 913, 1419 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-generator rotate: false - xy: 913, 1287 + xy: 979, 1287 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thermal-generator-icon-full rotate: false - xy: 913, 1287 + xy: 979, 1287 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1497,19 +1511,12 @@ thorium-reactor-lights index: -1 turbine-generator rotate: false - xy: 913, 1089 + xy: 979, 1089 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 turbine-generator-icon-full - rotate: false - xy: 913, 1089 - size: 64, 64 - orig: 64, 64 - offset: 0, 0 - index: -1 -turbine-generator-liquid rotate: false xy: 979, 1089 size: 64, 64 @@ -1616,14 +1623,14 @@ cultivator-top index: -1 graphite-press rotate: false - xy: 1148, 1625 + xy: 1214, 1625 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 graphite-press-icon-full rotate: false - xy: 1148, 1625 + xy: 1214, 1625 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1672,28 +1679,28 @@ item-void-icon-full index: -1 kiln rotate: false - xy: 1148, 1559 + xy: 1280, 1625 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln-icon-full rotate: false - xy: 1148, 1559 + xy: 1280, 1625 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 kiln-top rotate: false - xy: 1280, 1625 + xy: 1214, 1559 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter-top rotate: false - xy: 1280, 1625 + xy: 1214, 1559 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1742,42 +1749,42 @@ multi-press-icon-full index: -1 phase-weaver rotate: false - xy: 1544, 1531 + xy: 1610, 1531 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-bottom rotate: false - xy: 1610, 1531 + xy: 1676, 1531 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-weave rotate: false - xy: 1742, 1527 + xy: 1808, 1527 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor rotate: false - xy: 1808, 1527 + xy: 1874, 1527 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor-icon-full rotate: false - xy: 1808, 1527 + xy: 1874, 1527 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 plastanium-compressor-top rotate: false - xy: 1874, 1527 + xy: 1940, 1527 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -1805,91 +1812,91 @@ pump-liquid index: -1 pyratite-mixer rotate: false - xy: 1412, 1493 + xy: 1478, 1465 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 pyratite-mixer-icon-full rotate: false - xy: 1412, 1493 + xy: 1478, 1465 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator rotate: false - xy: 1273, 1427 + xy: 1339, 1427 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-icon-full rotate: false - xy: 1273, 1427 + xy: 1339, 1427 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 1339, 1427 + xy: 1405, 1427 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter rotate: false - xy: 1405, 1427 + xy: 1471, 1399 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 silicon-smelter-icon-full rotate: false - xy: 1405, 1427 + xy: 1471, 1399 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press rotate: false - xy: 1603, 1399 + xy: 1669, 1399 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame0 rotate: false - xy: 1669, 1399 + xy: 1735, 1395 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame1 rotate: false - xy: 1735, 1395 + xy: 1801, 1395 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-frame2 rotate: false - xy: 1801, 1395 + xy: 1867, 1395 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-liquid rotate: false - xy: 1933, 1395 + xy: 979, 1419 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 spore-press-top rotate: false - xy: 979, 1419 + xy: 1045, 1419 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2050,7 +2057,7 @@ hail-heat index: -1 lancer-heat rotate: false - xy: 1346, 1625 + xy: 1280, 1559 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2071,21 +2078,21 @@ ripple-heat index: -1 salvo-heat rotate: false - xy: 1940, 1461 + xy: 723, 98 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-left rotate: false - xy: 789, 98 + xy: 855, 98 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-panel-right rotate: false - xy: 855, 98 + xy: 921, 98 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2204,7 +2211,7 @@ ghoul-factory index: -1 phantom-factory-top rotate: false - xy: 1940, 1593 + xy: 1478, 1531 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2232,7 +2239,7 @@ revenant-factory-top index: -1 spirit-factory-top rotate: false - xy: 1537, 1399 + xy: 1603, 1399 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2337,14 +2344,14 @@ phase-wall-icon-full index: -1 phase-wall-large rotate: false - xy: 1478, 1531 + xy: 1544, 1531 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-wall-large-icon-full rotate: false - xy: 1478, 1531 + xy: 1544, 1531 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2393,28 +2400,28 @@ scrap-wall-huge3 index: -1 scrap-wall-large1 rotate: false - xy: 789, 32 + xy: 855, 32 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large2 rotate: false - xy: 855, 32 + xy: 921, 32 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large3 rotate: false - xy: 921, 32 + xy: 1141, 1427 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scrap-wall-large4 rotate: false - xy: 1141, 1427 + xy: 1207, 1427 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2477,14 +2484,14 @@ surge-wall-icon-full index: -1 surge-wall-large rotate: false - xy: 913, 1419 + xy: 903, 1353 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 surge-wall-large-icon-full rotate: false - xy: 913, 1419 + xy: 903, 1353 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2505,14 +2512,14 @@ thorium-wall-icon-full index: -1 thorium-wall-large rotate: false - xy: 979, 1287 + xy: 913, 1221 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 thorium-wall-large-icon-full rotate: false - xy: 979, 1287 + xy: 913, 1221 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -2547,14 +2554,14 @@ titanium-wall-icon-full index: -1 titanium-wall-large rotate: false - xy: 913, 1155 + xy: 979, 1155 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titanium-wall-large-icon-full rotate: false - xy: 913, 1155 + xy: 979, 1155 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3751,14 +3758,14 @@ item-titanium-xxlarge index: -1 lancer rotate: false - xy: 1214, 1559 + xy: 1346, 1625 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 lancer-icon-full rotate: false - xy: 1280, 1559 + xy: 1412, 1625 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -3863,7 +3870,7 @@ mech-icon-trident-ship index: -1 mechanical-drill-icon-full rotate: false - xy: 1346, 1559 + xy: 1412, 1559 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4108,14 +4115,14 @@ pebbles-icon-full index: -1 phantom-factory-icon-full rotate: false - xy: 1874, 1593 + xy: 1940, 1593 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 phase-weaver-icon-full rotate: false - xy: 1676, 1531 + xy: 1742, 1527 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4129,7 +4136,7 @@ pine-icon-full index: -1 pneumatic-drill-icon-full rotate: false - xy: 1148, 1493 + xy: 1214, 1493 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4220,14 +4227,14 @@ saltrocks-icon-full index: -1 salvo rotate: false - xy: 1874, 1461 + xy: 1940, 1461 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 salvo-icon-full rotate: false - xy: 723, 98 + xy: 789, 98 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4262,14 +4269,14 @@ sandrocks-icon-full index: -1 scatter rotate: false - xy: 921, 98 + xy: 723, 32 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 scatter-icon-full rotate: false - xy: 723, 32 + xy: 789, 32 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4290,7 +4297,7 @@ scorch-icon-full index: -1 scrap-wall-large-icon-full rotate: false - xy: 1207, 1427 + xy: 1273, 1427 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4381,7 +4388,7 @@ spectre-icon-full index: -1 spirit-factory-icon-full rotate: false - xy: 1471, 1399 + xy: 1537, 1399 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4409,7 +4416,7 @@ spore-pine-icon-full index: -1 spore-press-icon-full rotate: false - xy: 1867, 1395 + xy: 1933, 1395 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4430,14 +4437,14 @@ stone-icon-full index: -1 swarmer rotate: false - xy: 903, 1353 + xy: 969, 1353 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 swarmer-icon-full rotate: false - xy: 969, 1353 + xy: 1035, 1353 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4759,7 +4766,7 @@ omega-mech index: -1 omega-mech-armor rotate: false - xy: 1676, 1597 + xy: 1742, 1593 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -4948,49 +4955,49 @@ eradicator-leg index: -1 eruptor rotate: false - xy: 525, 54 + xy: 591, 54 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 eruptor-base rotate: false - xy: 591, 54 + xy: 657, 54 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 eruptor-leg rotate: false - xy: 657, 54 + xy: 1082, 1617 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress rotate: false - xy: 1082, 1617 + xy: 1082, 1551 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-base rotate: false - xy: 1082, 1551 + xy: 1075, 1485 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titan-base rotate: false - xy: 1082, 1551 + xy: 1075, 1485 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 fortress-leg rotate: false - xy: 1075, 1485 + xy: 1148, 1625 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -5046,14 +5053,14 @@ spirit index: -1 titan rotate: false - xy: 913, 1221 + xy: 979, 1221 size: 64, 64 orig: 64, 64 offset: 0, 0 index: -1 titan-leg rotate: false - xy: 979, 1221 + xy: 913, 1155 size: 64, 64 orig: 64, 64 offset: 0, 0 @@ -8529,49 +8536,49 @@ filter: Nearest,Nearest repeat: none alloy-smelter-icon-large rotate: false - xy: 87, 972 + xy: 87, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 alloy-smelter-icon-medium rotate: false - xy: 351, 180 + xy: 165, 40 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 alloy-smelter-icon-small rotate: false - xy: 2023, 794 + xy: 1230, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 arc-icon-large rotate: false - xy: 1, 878 + xy: 1, 880 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 arc-icon-medium rotate: false - xy: 127, 38 + xy: 199, 40 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 arc-icon-small rotate: false - xy: 365, 43 + xy: 1256, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 bar rotate: false - xy: 487, 85 + xy: 1201, 586 size: 27, 36 split: 9, 9, 9, 9 orig: 27, 36 @@ -8579,7 +8586,7 @@ bar index: -1 bar-top rotate: false - xy: 458, 85 + xy: 1172, 586 size: 27, 36 split: 9, 10, 9, 10 orig: 27, 36 @@ -8587,133 +8594,133 @@ bar-top index: -1 battery-icon-large rotate: false - xy: 137, 972 + xy: 137, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 battery-icon-medium rotate: false - xy: 161, 38 + xy: 1114, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-icon-small rotate: false - xy: 516, 79 + xy: 1282, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 battery-large-icon-large rotate: false - xy: 1, 828 + xy: 1, 830 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 battery-large-icon-medium rotate: false - xy: 195, 38 + xy: 1148, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 battery-large-icon-small rotate: false - xy: 396, 57 + xy: 1308, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 blast-drill-icon-large rotate: false - xy: 187, 972 + xy: 187, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 blast-drill-icon-medium rotate: false - xy: 1076, 888 + xy: 1182, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blast-drill-icon-small rotate: false - xy: 422, 57 + xy: 1334, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 blast-mixer-icon-large rotate: false - xy: 1, 778 + xy: 1, 780 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 blast-mixer-icon-medium rotate: false - xy: 1110, 888 + xy: 1216, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 blast-mixer-icon-small rotate: false - xy: 391, 31 + xy: 1360, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 bridge-conduit-icon-large rotate: false - xy: 237, 972 + xy: 237, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 bridge-conduit-icon-medium rotate: false - xy: 1144, 888 + xy: 1250, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conduit-icon-small rotate: false - xy: 417, 31 + xy: 1386, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 bridge-conveyor-icon-large rotate: false - xy: 1, 728 + xy: 1, 730 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 bridge-conveyor-icon-medium rotate: false - xy: 1178, 888 + xy: 1284, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 bridge-conveyor-icon-small rotate: false - xy: 391, 5 + xy: 1412, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 button rotate: false - xy: 851, 743 + xy: 1001, 895 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -8721,7 +8728,7 @@ button index: -1 button-disabled rotate: false - xy: 51, 43 + xy: 51, 45 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -8729,7 +8736,7 @@ button-disabled index: -1 button-down rotate: false - xy: 351, 243 + xy: 351, 245 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -8737,7 +8744,7 @@ button-down index: -1 button-edge-1 rotate: false - xy: 401, 293 + xy: 401, 295 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -8745,7 +8752,7 @@ button-edge-1 index: -1 button-edge-2 rotate: false - xy: 451, 343 + xy: 451, 345 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -8753,7 +8760,7 @@ button-edge-2 index: -1 button-edge-3 rotate: false - xy: 501, 393 + xy: 501, 395 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -8761,7 +8768,7 @@ button-edge-3 index: -1 button-edge-4 rotate: false - xy: 551, 443 + xy: 551, 445 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -8769,7 +8776,7 @@ button-edge-4 index: -1 button-over rotate: false - xy: 601, 493 + xy: 601, 495 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -8777,7 +8784,7 @@ button-over index: -1 button-red rotate: false - xy: 651, 543 + xy: 651, 545 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -8785,7 +8792,7 @@ button-red index: -1 button-right rotate: false - xy: 801, 693 + xy: 801, 695 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -8793,7 +8800,7 @@ button-right index: -1 button-right-down rotate: false - xy: 701, 593 + xy: 701, 595 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -8801,7 +8808,7 @@ button-right-down index: -1 button-right-over rotate: false - xy: 751, 643 + xy: 751, 645 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -8809,876 +8816,900 @@ button-right-over index: -1 button-select rotate: false - xy: 417, 5 + xy: 1438, 598 size: 24, 24 split: 4, 4, 4, 4 orig: 24, 24 offset: 0, 0 index: -1 +button-square + rotate: false + xy: 951, 845 + size: 36, 27 + split: 12, 12, 12, 12 + orig: 36, 27 + offset: 0, 0 + index: -1 +button-square-down + rotate: false + xy: 851, 745 + size: 36, 27 + split: 12, 12, 12, 12 + orig: 36, 27 + offset: 0, 0 + index: -1 +button-square-over + rotate: false + xy: 901, 795 + size: 36, 27 + split: 12, 12, 12, 12 + orig: 36, 27 + offset: 0, 0 + index: -1 char-icon-large rotate: false - xy: 287, 972 + xy: 287, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 char-icon-medium rotate: false - xy: 1212, 888 + xy: 1318, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 char-icon-small rotate: false - xy: 448, 57 + xy: 1464, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 check-disabled rotate: false - xy: 1246, 888 + xy: 1352, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-off rotate: false - xy: 1280, 888 + xy: 1386, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on rotate: false - xy: 1314, 888 + xy: 1420, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-disabled rotate: false - xy: 1348, 888 + xy: 1454, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-on-over rotate: false - xy: 1382, 888 + xy: 1488, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 check-over rotate: false - xy: 1416, 888 + xy: 1522, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 clear rotate: false - xy: 389, 260 + xy: 389, 262 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 cliffs-icon-large rotate: false - xy: 1, 678 + xy: 1, 680 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 cliffs-icon-medium rotate: false - xy: 1450, 888 + xy: 1556, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cliffs-icon-small rotate: false - xy: 443, 31 + xy: 1490, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 coal-centrifuge-icon-large rotate: false - xy: 337, 972 + xy: 337, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 coal-centrifuge-icon-medium rotate: false - xy: 1484, 888 + xy: 1590, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 coal-centrifuge-icon-small rotate: false - xy: 443, 5 + xy: 1516, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 combustion-generator-icon-large rotate: false - xy: 1, 628 + xy: 1, 630 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 combustion-generator-icon-medium rotate: false - xy: 1518, 888 + xy: 1624, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 combustion-generator-icon-small rotate: false - xy: 474, 59 + xy: 1542, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 conduit-icon-large rotate: false - xy: 387, 972 + xy: 387, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 conduit-icon-medium rotate: false - xy: 1552, 888 + xy: 1658, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conduit-icon-small rotate: false - xy: 2021, 862 + xy: 1568, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 container-icon-large rotate: false - xy: 1, 578 + xy: 1, 580 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 container-icon-medium rotate: false - xy: 1586, 888 + xy: 1692, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 container-icon-small rotate: false - xy: 469, 31 + xy: 1594, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 conveyor-icon-large rotate: false - xy: 437, 972 + xy: 437, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 conveyor-icon-medium rotate: false - xy: 1620, 888 + xy: 1726, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 conveyor-icon-small rotate: false - xy: 469, 5 + xy: 1620, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 copper-wall-icon-large rotate: false - xy: 1, 528 + xy: 1, 530 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 copper-wall-icon-medium rotate: false - xy: 1654, 888 + xy: 1760, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-icon-small rotate: false - xy: 887, 569 + xy: 1646, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 copper-wall-large-icon-large rotate: false - xy: 487, 972 + xy: 487, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 copper-wall-large-icon-medium rotate: false - xy: 1688, 888 + xy: 1794, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 copper-wall-large-icon-small rotate: false - xy: 913, 569 + xy: 1672, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 core-foundation-icon-large rotate: false - xy: 1, 478 + xy: 1, 480 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 core-foundation-icon-medium rotate: false - xy: 1722, 888 + xy: 1828, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 core-foundation-icon-small rotate: false - xy: 939, 569 + xy: 1698, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 core-nucleus-icon-large rotate: false - xy: 537, 972 + xy: 537, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 core-nucleus-icon-medium rotate: false - xy: 1756, 888 + xy: 1862, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 core-nucleus-icon-small rotate: false - xy: 637, 319 + xy: 1724, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 core-shard-icon-large rotate: false - xy: 1, 428 + xy: 1, 430 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 core-shard-icon-medium rotate: false - xy: 1790, 888 + xy: 1896, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 core-shard-icon-small rotate: false - xy: 663, 319 + xy: 1750, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 craters-icon-large rotate: false - xy: 587, 972 + xy: 587, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 craters-icon-medium rotate: false - xy: 1824, 888 + xy: 1930, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 craters-icon-small rotate: false - xy: 689, 319 + xy: 1776, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 crawler-factory-icon-large rotate: false - xy: 1, 378 + xy: 1, 380 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 crawler-factory-icon-medium rotate: false - xy: 1858, 888 + xy: 1964, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 crawler-factory-icon-small rotate: false - xy: 715, 319 + xy: 1802, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 cryofluidmixer-icon-large rotate: false - xy: 637, 972 + xy: 637, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 cryofluidmixer-icon-medium rotate: false - xy: 1892, 888 + xy: 1998, 890 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cryofluidmixer-icon-small rotate: false - xy: 500, 53 + xy: 255, 1 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 cultivator-icon-large rotate: false - xy: 1, 328 + xy: 1, 330 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 cultivator-icon-medium rotate: false - xy: 1926, 888 + xy: 401, 261 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cultivator-icon-small rotate: false - xy: 495, 27 + xy: 281, 1 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 cursor rotate: false - xy: 51, 922 + xy: 51, 924 size: 4, 4 orig: 4, 4 offset: 0, 0 index: -1 cyclone-icon-large rotate: false - xy: 687, 972 + xy: 687, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 cyclone-icon-medium rotate: false - xy: 1960, 888 + xy: 389, 227 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 cyclone-icon-small rotate: false - xy: 495, 1 + xy: 1828, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 dagger-factory-icon-large rotate: false - xy: 1, 278 + xy: 1, 280 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dagger-factory-icon-medium rotate: false - xy: 1994, 888 + xy: 389, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dagger-factory-icon-small rotate: false - xy: 526, 53 + xy: 765, 336 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 dark-metal-icon-large rotate: false - xy: 737, 972 + xy: 737, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dark-metal-icon-medium rotate: false - xy: 229, 38 + xy: 451, 311 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-metal-icon-small rotate: false - xy: 521, 27 + xy: 1015, 567 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 dark-panel-1-icon-large rotate: false - xy: 1, 228 + xy: 1, 230 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dark-panel-1-icon-medium rotate: false - xy: 401, 259 + xy: 501, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-1-icon-small rotate: false - xy: 521, 1 + xy: 1041, 567 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 dark-panel-2-icon-large rotate: false - xy: 787, 972 + xy: 787, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dark-panel-2-icon-medium rotate: false - xy: 389, 225 + xy: 551, 411 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-2-icon-small rotate: false - xy: 552, 53 + xy: 1863, 694 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 dark-panel-3-icon-large rotate: false - xy: 1, 178 + xy: 1, 180 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dark-panel-3-icon-medium rotate: false - xy: 451, 309 + xy: 601, 461 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-3-icon-small rotate: false - xy: 547, 27 + xy: 1889, 696 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 dark-panel-4-icon-large rotate: false - xy: 837, 972 + xy: 837, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dark-panel-4-icon-medium rotate: false - xy: 501, 359 + xy: 651, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-4-icon-small rotate: false - xy: 547, 1 + xy: 1230, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 dark-panel-5-icon-large rotate: false - xy: 1, 128 + xy: 1, 130 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dark-panel-5-icon-medium rotate: false - xy: 551, 409 + xy: 701, 561 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-5-icon-small rotate: false - xy: 578, 53 + xy: 1256, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 dark-panel-6-icon-large rotate: false - xy: 887, 972 + xy: 887, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dark-panel-6-icon-medium rotate: false - xy: 601, 459 + xy: 751, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dark-panel-6-icon-small rotate: false - xy: 573, 27 + xy: 1282, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 darksand-icon-large rotate: false - xy: 1, 78 + xy: 1, 80 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 darksand-icon-medium rotate: false - xy: 651, 509 + xy: 801, 661 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-icon-small rotate: false - xy: 573, 1 + xy: 1308, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 darksand-tainted-water-icon-large rotate: false - xy: 937, 972 + xy: 937, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 darksand-tainted-water-icon-medium rotate: false - xy: 701, 559 + xy: 851, 711 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-tainted-water-icon-small rotate: false - xy: 599, 27 + xy: 1334, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 darksand-water-icon-large rotate: false - xy: 1, 28 + xy: 1, 30 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 darksand-water-icon-medium rotate: false - xy: 751, 609 + xy: 901, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 darksand-water-icon-small rotate: false - xy: 599, 1 + xy: 1360, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 dart-mech-pad-icon-large rotate: false - xy: 987, 972 + xy: 987, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dart-mech-pad-icon-medium rotate: false - xy: 801, 659 + xy: 951, 811 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dart-mech-pad-icon-small rotate: false - xy: 1433, 660 + xy: 1386, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 deepwater-icon-large rotate: false - xy: 1037, 972 + xy: 1037, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 deepwater-icon-medium rotate: false - xy: 851, 709 + xy: 251, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 deepwater-icon-small rotate: false - xy: 1459, 660 + xy: 1412, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 delta-mech-pad-icon-large rotate: false - xy: 1087, 972 + xy: 1087, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 delta-mech-pad-icon-medium rotate: false - xy: 901, 759 + xy: 301, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 delta-mech-pad-icon-small rotate: false - xy: 1485, 660 + xy: 1438, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 differential-generator-icon-large rotate: false - xy: 1137, 972 + xy: 1137, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 differential-generator-icon-medium rotate: false - xy: 951, 809 + xy: 1001, 861 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 differential-generator-icon-small rotate: false - xy: 1511, 660 + xy: 1464, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 discord-banner rotate: false - xy: 1, 975 + xy: 1, 977 size: 84, 45 orig: 84, 45 offset: 0, 0 index: -1 distributor-icon-large rotate: false - xy: 1187, 972 + xy: 1187, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 distributor-icon-medium rotate: false - xy: 301, 109 + xy: 1035, 861 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 distributor-icon-small rotate: false - xy: 1537, 660 + xy: 1490, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 door-icon-large rotate: false - xy: 1237, 972 + xy: 1237, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 door-icon-medium rotate: false - xy: 1001, 859 + xy: 51, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-icon-small rotate: false - xy: 1563, 660 + xy: 1516, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 door-large-icon-large rotate: false - xy: 1287, 972 + xy: 1287, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 door-large-icon-medium rotate: false - xy: 51, 9 + xy: 85, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 door-large-icon-small rotate: false - xy: 1589, 660 + xy: 1542, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 draug-factory-icon-large rotate: false - xy: 1337, 972 + xy: 1337, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 draug-factory-icon-medium rotate: false - xy: 85, 9 + xy: 119, 11 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 draug-factory-icon-small rotate: false - xy: 1615, 660 + xy: 1568, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 dunerocks-icon-large rotate: false - xy: 1387, 972 + xy: 1387, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 dunerocks-icon-medium rotate: false - xy: 119, 4 + xy: 153, 6 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 dunerocks-icon-small rotate: false - xy: 1641, 660 + xy: 1594, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 duo-icon-large rotate: false - xy: 1437, 972 + xy: 1437, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 duo-icon-medium rotate: false - xy: 153, 4 + xy: 187, 6 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 duo-icon-small rotate: false - xy: 1667, 660 + xy: 1620, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 flat-down-base rotate: false - xy: 901, 793 + xy: 251, 95 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -9686,2527 +9717,2527 @@ flat-down-base index: -1 force-projector-icon-large rotate: false - xy: 1487, 972 + xy: 1487, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 force-projector-icon-medium rotate: false - xy: 187, 4 + xy: 351, 153 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 force-projector-icon-small rotate: false - xy: 1693, 660 + xy: 1646, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 fortress-factory-icon-large rotate: false - xy: 1537, 972 + xy: 1537, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fortress-factory-icon-medium rotate: false - xy: 221, 4 + xy: 423, 227 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 fortress-factory-icon-small rotate: false - xy: 1719, 660 + xy: 1672, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 fuse-icon-large rotate: false - xy: 1587, 972 + xy: 1587, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 fuse-icon-medium rotate: false - xy: 423, 225 + xy: 423, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 fuse-icon-small rotate: false - xy: 1745, 660 + xy: 1698, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 ghoul-factory-icon-large rotate: false - xy: 1637, 972 + xy: 1637, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 ghoul-factory-icon-medium rotate: false - xy: 435, 259 + xy: 435, 261 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ghoul-factory-icon-small rotate: false - xy: 1771, 660 + xy: 1724, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 glaive-ship-pad-icon-large rotate: false - xy: 1687, 972 + xy: 1687, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 glaive-ship-pad-icon-medium rotate: false - xy: 457, 225 + xy: 221, 6 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 glaive-ship-pad-icon-small rotate: false - xy: 1797, 660 + xy: 1750, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 graphite-press-icon-large rotate: false - xy: 1737, 972 + xy: 1737, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 graphite-press-icon-medium rotate: false - xy: 389, 191 + xy: 457, 227 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 graphite-press-icon-small rotate: false - xy: 1823, 660 + xy: 1776, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 grass-icon-large rotate: false - xy: 1787, 972 + xy: 1787, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 grass-icon-medium rotate: false - xy: 423, 191 + xy: 457, 193 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 grass-icon-small rotate: false - xy: 1849, 660 + xy: 1802, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 hail-icon-large rotate: false - xy: 1837, 972 + xy: 1837, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 hail-icon-medium rotate: false - xy: 457, 191 + xy: 255, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hail-icon-small rotate: false - xy: 1875, 660 + xy: 1828, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 holostone-icon-large rotate: false - xy: 1887, 972 + xy: 1887, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 holostone-icon-medium rotate: false - xy: 351, 146 + xy: 1069, 861 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 holostone-icon-small rotate: false - xy: 1901, 660 + xy: 1847, 630 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 hotrock-icon-large rotate: false - xy: 1937, 972 + xy: 1937, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 hotrock-icon-medium rotate: false - xy: 385, 157 + xy: 1103, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 hotrock-icon-small rotate: false - xy: 1927, 660 + xy: 1854, 604 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 ice-icon-large rotate: false - xy: 1987, 972 + xy: 1987, 974 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 ice-icon-medium rotate: false - xy: 419, 157 + xy: 1137, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-icon-small rotate: false - xy: 1953, 660 + xy: 1854, 578 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 ice-snow-icon-large rotate: false - xy: 87, 922 + xy: 87, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 ice-snow-icon-medium rotate: false - xy: 453, 157 + xy: 1171, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ice-snow-icon-small rotate: false - xy: 1979, 660 + xy: 2021, 864 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 icerocks-icon-large rotate: false - xy: 137, 922 + xy: 137, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icerocks-icon-medium rotate: false - xy: 385, 123 + xy: 1205, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icerocks-icon-small rotate: false - xy: 2005, 660 + xy: 2023, 838 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 icon-about rotate: false - xy: 187, 922 + xy: 187, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-about-med rotate: false - xy: 619, 409 + xy: 619, 411 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-about-small rotate: false - xy: 419, 123 + xy: 1239, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-add rotate: false - xy: 237, 922 + xy: 237, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-add-med rotate: false - xy: 869, 659 + xy: 869, 661 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-add-small rotate: false - xy: 453, 123 + xy: 1273, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-admin rotate: false - xy: 287, 922 + xy: 287, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-admin-med rotate: false - xy: 1433, 686 + xy: 1875, 722 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-admin-small rotate: false - xy: 337, 922 + xy: 337, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-admin-small-med rotate: false - xy: 651, 409 + xy: 1909, 756 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-admin-small-small rotate: false - xy: 255, 4 + xy: 1307, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-arrow rotate: false - xy: 387, 922 + xy: 387, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-arrow-16 rotate: false - xy: 387, 922 + xy: 387, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-arrow-16-med rotate: false - xy: 637, 377 + xy: 651, 411 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-arrow-med rotate: false - xy: 637, 377 + xy: 651, 411 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-arrow-16-small rotate: false - xy: 263, 59 + xy: 1341, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-arrow-small rotate: false - xy: 263, 59 + xy: 1341, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-arrow-down rotate: false - xy: 437, 922 + xy: 437, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-arrow-down-med rotate: false - xy: 901, 659 + xy: 637, 379 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-arrow-down-small rotate: false - xy: 297, 75 + xy: 1375, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-arrow-left rotate: false - xy: 487, 922 + xy: 487, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-arrow-left-med rotate: false - xy: 887, 627 + xy: 901, 661 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-arrow-left-small rotate: false - xy: 297, 41 + xy: 1409, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-arrow-right rotate: false - xy: 537, 922 + xy: 537, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-arrow-right-med rotate: false - xy: 1465, 686 + xy: 887, 629 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-arrow-right-small rotate: false - xy: 289, 7 + xy: 1443, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-arrow-up rotate: false - xy: 587, 922 + xy: 587, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-arrow-up-med rotate: false - xy: 683, 409 + xy: 1941, 756 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-arrow-up-small rotate: false - xy: 323, 7 + xy: 1477, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-back rotate: false - xy: 637, 922 + xy: 637, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-back-med rotate: false - xy: 637, 345 + xy: 683, 411 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-back-small rotate: false - xy: 535, 359 + xy: 1511, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-ban rotate: false - xy: 687, 922 + xy: 687, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-ban-med rotate: false - xy: 669, 377 + xy: 637, 347 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-ban-small rotate: false - xy: 585, 409 + xy: 1545, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-break rotate: false - xy: 737, 922 + xy: 737, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-break-med rotate: false - xy: 933, 659 + xy: 669, 379 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-break-small rotate: false - xy: 569, 375 + xy: 1579, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-cancel rotate: false - xy: 787, 922 + xy: 787, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-cancel-med rotate: false - xy: 887, 595 + xy: 933, 661 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-cancel-small rotate: false - xy: 569, 341 + xy: 1613, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-changelog rotate: false - xy: 837, 922 + xy: 837, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-changelog-med rotate: false - xy: 919, 627 + xy: 887, 597 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-changelog-small rotate: false - xy: 603, 375 + xy: 1647, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-chat rotate: false - xy: 887, 922 + xy: 887, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-chat-med rotate: false - xy: 1497, 686 + xy: 919, 629 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-chat-small rotate: false - xy: 603, 341 + xy: 1681, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-check rotate: false - xy: 937, 922 + xy: 937, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-check-med rotate: false - xy: 715, 409 + xy: 1973, 756 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-check-small rotate: false - xy: 639, 475 + xy: 1715, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-copy rotate: false - xy: 987, 922 + xy: 987, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-copy-med rotate: false - xy: 669, 345 + xy: 715, 411 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-copy-small rotate: false - xy: 673, 475 + xy: 1749, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-crafting rotate: false - xy: 1037, 922 + xy: 1037, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-crafting-med rotate: false - xy: 701, 377 + xy: 669, 347 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-crafting-small rotate: false - xy: 685, 509 + xy: 1783, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-cursor rotate: false - xy: 1087, 922 + xy: 1087, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-cursor-med rotate: false - xy: 919, 595 + xy: 701, 379 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-cursor-small rotate: false - xy: 635, 441 + xy: 1817, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-database rotate: false - xy: 1137, 922 + xy: 1137, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-database-med rotate: false - xy: 1529, 686 + xy: 919, 597 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-database-small rotate: false - xy: 669, 441 + xy: 1851, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-defense rotate: false - xy: 1187, 922 + xy: 1187, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-defense-med rotate: false - xy: 701, 345 + xy: 701, 347 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-defense-small rotate: false - xy: 707, 475 + xy: 1885, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-dev-builds rotate: false - xy: 1237, 922 + xy: 1237, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-dev-builds-med rotate: false - xy: 1561, 686 + xy: 1127, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-dev-builds-small rotate: false - xy: 703, 441 + xy: 1919, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-diagonal rotate: false - xy: 1287, 922 + xy: 1287, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-diagonal-med rotate: false - xy: 1593, 686 + xy: 1159, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-diagonal-small rotate: false - xy: 785, 609 + xy: 1953, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-discord rotate: false - xy: 1337, 922 + xy: 1337, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-discord-med rotate: false - xy: 1625, 686 + xy: 1191, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-discord-small rotate: false - xy: 835, 659 + xy: 1987, 856 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-distribution rotate: false - xy: 1387, 922 + xy: 1387, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-distribution-med rotate: false - xy: 1657, 686 + xy: 1223, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-distribution-small rotate: false - xy: 819, 625 + xy: 285, 61 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-donate rotate: false - xy: 1437, 922 + xy: 1437, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-donate-med rotate: false - xy: 1689, 686 + xy: 1255, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-donate-small rotate: false - xy: 819, 591 + xy: 289, 27 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-dots rotate: false - xy: 1487, 922 + xy: 1487, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-dots-med rotate: false - xy: 1721, 686 + xy: 1287, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-dots-small rotate: false - xy: 853, 625 + xy: 389, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-editor rotate: false - xy: 1537, 922 + xy: 1537, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-editor-med rotate: false - xy: 1753, 686 + xy: 1319, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-editor-small rotate: false - xy: 853, 591 + xy: 423, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-effect rotate: false - xy: 1587, 922 + xy: 1587, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-effect-med rotate: false - xy: 1785, 686 + xy: 1351, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-effect-small rotate: false - xy: 889, 725 + xy: 457, 159 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-elevation rotate: false - xy: 1637, 922 + xy: 1637, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-elevation-med rotate: false - xy: 1817, 686 + xy: 1383, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-elevation-small rotate: false - xy: 923, 725 + xy: 535, 361 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-eraser rotate: false - xy: 1687, 922 + xy: 1687, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-eraser-med rotate: false - xy: 1849, 686 + xy: 1415, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-eraser-small rotate: false - xy: 935, 759 + xy: 585, 411 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-exit rotate: false - xy: 1737, 922 + xy: 1737, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-exit-med rotate: false - xy: 1881, 686 + xy: 1447, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-exit-small rotate: false - xy: 885, 691 + xy: 569, 377 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-file rotate: false - xy: 1787, 922 + xy: 1787, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-file-image rotate: false - xy: 1837, 922 + xy: 1837, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-file-image-med rotate: false - xy: 1913, 686 + xy: 1479, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-file-image-small rotate: false - xy: 919, 691 + xy: 569, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-file-med rotate: false - xy: 1945, 686 + xy: 1511, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-file-small rotate: false - xy: 957, 725 + xy: 603, 377 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-file-text rotate: false - xy: 1887, 922 + xy: 1887, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-file-text-med rotate: false - xy: 1977, 686 + xy: 1543, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-file-text-small rotate: false - xy: 953, 691 + xy: 603, 343 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-fill rotate: false - xy: 1937, 922 + xy: 1937, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-fill-med rotate: false - xy: 2009, 686 + xy: 1575, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-fill-small rotate: false - xy: 1035, 859 + xy: 639, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-floppy rotate: false - xy: 1987, 922 + xy: 1987, 924 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-floppy-16 rotate: false - xy: 51, 872 + xy: 51, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-floppy-16-med rotate: false - xy: 951, 627 + xy: 1607, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-floppy-16-small rotate: false - xy: 1069, 854 + xy: 673, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-floppy-med rotate: false - xy: 951, 595 + xy: 1639, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-floppy-small rotate: false - xy: 1103, 854 + xy: 685, 511 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-folder rotate: false - xy: 51, 822 + xy: 51, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-folder-med rotate: false - xy: 733, 377 + xy: 1671, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-folder-parent rotate: false - xy: 101, 872 + xy: 101, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-folder-parent-med rotate: false - xy: 733, 345 + xy: 1703, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-folder-parent-small rotate: false - xy: 1137, 854 + xy: 635, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-folder-small rotate: false - xy: 1171, 854 + xy: 669, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-github rotate: false - xy: 51, 772 + xy: 51, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-github-med rotate: false - xy: 983, 641 + xy: 1735, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-github-small rotate: false - xy: 1205, 854 + xy: 707, 477 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-google-play rotate: false - xy: 101, 822 + xy: 101, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-google-play-med rotate: false - xy: 983, 609 + xy: 1767, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-google-play-small rotate: false - xy: 1239, 854 + xy: 703, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-grid rotate: false - xy: 151, 872 + xy: 151, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-grid-med rotate: false - xy: 1015, 641 + xy: 1799, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-grid-small rotate: false - xy: 1273, 854 + xy: 785, 611 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-home rotate: false - xy: 51, 722 + xy: 51, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-home-med rotate: false - xy: 1015, 609 + xy: 1831, 688 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-home-small rotate: false - xy: 1307, 854 + xy: 835, 661 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-host rotate: false - xy: 101, 772 + xy: 101, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-host-med rotate: false - xy: 983, 577 + xy: 1123, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-host-small rotate: false - xy: 1341, 854 + xy: 819, 627 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-info rotate: false - xy: 151, 822 + xy: 151, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-info-med rotate: false - xy: 1015, 577 + xy: 1155, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-info-small rotate: false - xy: 1375, 854 + xy: 819, 593 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-itch.io rotate: false - xy: 201, 872 + xy: 201, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-itch.io-med rotate: false - xy: 765, 391 + xy: 1187, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-itch.io-small rotate: false - xy: 1409, 854 + xy: 853, 627 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-item rotate: false - xy: 51, 672 + xy: 51, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-item-med rotate: false - xy: 765, 359 + xy: 1219, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-item-small rotate: false - xy: 1443, 854 + xy: 853, 593 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-line rotate: false - xy: 101, 722 + xy: 101, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-line-med rotate: false - xy: 765, 327 + xy: 1251, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-line-small rotate: false - xy: 1477, 854 + xy: 889, 727 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-link rotate: false - xy: 151, 772 + xy: 151, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-link-med rotate: false - xy: 1047, 641 + xy: 1283, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-link-small rotate: false - xy: 1511, 854 + xy: 923, 727 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-liquid rotate: false - xy: 201, 822 + xy: 201, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-liquid-consume rotate: false - xy: 251, 872 + xy: 251, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-liquid-consume-med rotate: false - xy: 1047, 609 + xy: 1315, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-liquid-consume-small rotate: false - xy: 1545, 854 + xy: 935, 761 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-liquid-med rotate: false - xy: 1047, 577 + xy: 1347, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-liquid-small rotate: false - xy: 1579, 854 + xy: 885, 693 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-load rotate: false - xy: 51, 622 + xy: 51, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-load-image rotate: false - xy: 101, 672 + xy: 101, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-load-image-med rotate: false - xy: 1079, 652 + xy: 1379, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-load-image-small rotate: false - xy: 1613, 854 + xy: 919, 693 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-load-map rotate: false - xy: 151, 722 + xy: 151, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-load-map-med rotate: false - xy: 1079, 620 + xy: 1411, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-load-map-small rotate: false - xy: 1647, 854 + xy: 957, 727 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-load-med rotate: false - xy: 1111, 652 + xy: 1443, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-load-small rotate: false - xy: 1681, 854 + xy: 953, 693 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-loading rotate: false - xy: 201, 772 + xy: 201, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-loading-med rotate: false - xy: 1079, 588 + xy: 1475, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-loading-small rotate: false - xy: 1715, 854 + xy: 335, 111 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-locked rotate: false - xy: 251, 822 + xy: 251, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-locked-med rotate: false - xy: 1111, 620 + xy: 1507, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-locked-small rotate: false - xy: 1749, 854 + xy: 319, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-map rotate: false - xy: 301, 872 + xy: 301, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-map-med rotate: false - xy: 1143, 652 + xy: 1539, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-map-small rotate: false - xy: 1783, 854 + xy: 353, 77 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-menu rotate: false - xy: 51, 572 + xy: 51, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-menu-large rotate: false - xy: 101, 622 + xy: 101, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-menu-large-med rotate: false - xy: 1111, 588 + xy: 1571, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-menu-large-small rotate: false - xy: 1817, 854 + xy: 323, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-menu-med rotate: false - xy: 1143, 620 + xy: 1603, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-menu-small rotate: false - xy: 1851, 854 + xy: 357, 43 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-missing rotate: false - xy: 151, 672 + xy: 151, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-missing-med rotate: false - xy: 1175, 652 + xy: 1635, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-missing-small rotate: false - xy: 1885, 854 + xy: 323, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-mode-attack rotate: false - xy: 201, 722 + xy: 201, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-mode-attack-med rotate: false - xy: 1143, 588 + xy: 1667, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-mode-attack-small rotate: false - xy: 1919, 854 + xy: 357, 9 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-mode-pvp rotate: false - xy: 251, 772 + xy: 251, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-mode-pvp-med rotate: false - xy: 1175, 620 + xy: 1699, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-mode-pvp-small rotate: false - xy: 1953, 854 + xy: 369, 119 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-mode-survival rotate: false - xy: 301, 822 + xy: 301, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-mode-survival-med rotate: false - xy: 1207, 652 + xy: 1731, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-mode-survival-small rotate: false - xy: 1987, 854 + xy: 403, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-none rotate: false - xy: 351, 872 + xy: 351, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-none-med rotate: false - xy: 1175, 588 + xy: 1763, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-none-small rotate: false - xy: 487, 157 + xy: 437, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-paste rotate: false - xy: 51, 522 + xy: 51, 524 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-paste-med rotate: false - xy: 1207, 620 + xy: 1795, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-paste-small rotate: false - xy: 487, 123 + xy: 471, 125 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-pause rotate: false - xy: 101, 572 + xy: 101, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-pause-med rotate: false - xy: 1239, 652 + xy: 1827, 656 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-pause-small rotate: false - xy: 335, 109 + xy: 387, 85 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-pencil rotate: false - xy: 151, 622 + xy: 151, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-pencil-med rotate: false - xy: 1207, 588 + xy: 2005, 756 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-pencil-small rotate: false - xy: 331, 75 + xy: 421, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-pick rotate: false - xy: 201, 672 + xy: 201, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-pick-med rotate: false - xy: 1239, 620 + xy: 951, 629 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-pick-small rotate: false - xy: 331, 41 + xy: 455, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-play rotate: false - xy: 251, 722 + xy: 251, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-play-2 rotate: false - xy: 301, 772 + xy: 301, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-play-2-med rotate: false - xy: 1271, 652 + xy: 951, 597 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-play-2-small rotate: false - xy: 357, 7 + xy: 391, 51 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-play-custom rotate: false - xy: 351, 822 + xy: 351, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-play-custom-med rotate: false - xy: 1239, 588 + xy: 733, 379 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-play-custom-small rotate: false - xy: 485, 309 + xy: 391, 17 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-play-med rotate: false - xy: 1271, 620 + xy: 733, 347 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-play-small rotate: false - xy: 469, 275 + xy: 425, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-players rotate: false - xy: 401, 872 + xy: 401, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-players-med rotate: false - xy: 1303, 652 + xy: 983, 643 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-players-small rotate: false - xy: 519, 325 + xy: 425, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-power rotate: false - xy: 51, 472 + xy: 51, 474 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-power-med rotate: false - xy: 1271, 588 + xy: 983, 611 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-power-small rotate: false - xy: 503, 275 + xy: 459, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-production rotate: false - xy: 101, 522 + xy: 101, 524 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-production-med rotate: false - xy: 1303, 620 + xy: 1015, 625 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-production-small rotate: false - xy: 491, 241 + xy: 459, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-quit rotate: false - xy: 151, 572 + xy: 151, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-quit-med rotate: false - xy: 1335, 652 + xy: 1047, 625 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-quit-small rotate: false - xy: 491, 207 + xy: 489, 91 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-redo rotate: false - xy: 201, 622 + xy: 201, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-redo-med rotate: false - xy: 1303, 588 + xy: 1079, 625 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-redo-small rotate: false - xy: 525, 241 + xy: 493, 57 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-refresh rotate: false - xy: 251, 672 + xy: 251, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-refresh-med rotate: false - xy: 1335, 620 + xy: 1111, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-refresh-small rotate: false - xy: 525, 207 + xy: 493, 23 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-rename rotate: false - xy: 301, 722 + xy: 301, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-rename-med rotate: false - xy: 1367, 652 + xy: 1143, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-rename-small rotate: false - xy: 521, 173 + xy: 485, 311 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-resize rotate: false - xy: 351, 772 + xy: 351, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-resize-med rotate: false - xy: 1335, 588 + xy: 1175, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-resize-small rotate: false - xy: 521, 139 + xy: 469, 277 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-rotate rotate: false - xy: 401, 822 + xy: 401, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-rotate-arrow rotate: false - xy: 451, 872 + xy: 451, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-rotate-arrow-med rotate: false - xy: 1367, 620 + xy: 1207, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-rotate-arrow-small rotate: false - xy: 521, 105 + xy: 519, 327 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-rotate-left rotate: false - xy: 51, 422 + xy: 51, 424 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-rotate-left-med rotate: false - xy: 1399, 652 + xy: 1239, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-rotate-left-small rotate: false - xy: 737, 441 + xy: 503, 277 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-rotate-med rotate: false - xy: 1367, 588 + xy: 1271, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-rotate-right rotate: false - xy: 101, 472 + xy: 101, 474 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-rotate-right-med rotate: false - xy: 1399, 620 + xy: 1303, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-rotate-right-small rotate: false - xy: 735, 559 + xy: 491, 243 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-rotate-small rotate: false - xy: 719, 525 + xy: 491, 209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-save rotate: false - xy: 151, 522 + xy: 151, 524 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-save-image rotate: false - xy: 201, 572 + xy: 201, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-save-image-med rotate: false - xy: 1399, 588 + xy: 1335, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-save-image-small rotate: false - xy: 769, 575 + xy: 491, 175 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-save-map rotate: false - xy: 251, 622 + xy: 251, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-save-map-med rotate: false - xy: 1079, 556 + xy: 1367, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-save-map-small rotate: false - xy: 753, 525 + xy: 525, 243 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-save-med rotate: false - xy: 1111, 556 + xy: 1399, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-save-small rotate: false - xy: 741, 491 + xy: 525, 209 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-settings rotate: false - xy: 301, 672 + xy: 301, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-settings-med rotate: false - xy: 1143, 556 + xy: 1431, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-settings-small rotate: false - xy: 775, 491 + xy: 525, 175 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-spray rotate: false - xy: 351, 722 + xy: 351, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-spray-med rotate: false - xy: 1175, 556 + xy: 1463, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-spray-small rotate: false - xy: 771, 457 + xy: 505, 141 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-terrain rotate: false - xy: 401, 772 + xy: 401, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-terrain-med rotate: false - xy: 1207, 556 + xy: 1495, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-terrain-small rotate: false - xy: 771, 423 + xy: 539, 141 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-tools rotate: false - xy: 451, 822 + xy: 451, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-tools-med rotate: false - xy: 1239, 556 + xy: 1527, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-tools-small rotate: false - xy: 985, 809 + xy: 523, 107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-trash rotate: false - xy: 501, 872 + xy: 501, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-trash-16 rotate: false - xy: 51, 372 + xy: 51, 374 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-trash-16-med rotate: false - xy: 1271, 556 + xy: 1559, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-trash-16-small rotate: false - xy: 969, 775 + xy: 557, 107 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-trash-med rotate: false - xy: 1303, 556 + xy: 1591, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-trash-small rotate: false - xy: 1019, 825 + xy: 527, 73 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-tree rotate: false - xy: 101, 422 + xy: 101, 424 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-tree-med rotate: false - xy: 1335, 556 + xy: 1623, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-tree-small rotate: false - xy: 1003, 775 + xy: 527, 39 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-trello rotate: false - xy: 151, 472 + xy: 151, 474 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-trello-med rotate: false - xy: 1367, 556 + xy: 1655, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-trello-small rotate: false - xy: 991, 741 + xy: 561, 73 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-turret rotate: false - xy: 201, 522 + xy: 201, 524 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-turret-med rotate: false - xy: 1399, 556 + xy: 1687, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-turret-small rotate: false - xy: 991, 707 + xy: 561, 39 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-tutorial rotate: false - xy: 251, 572 + xy: 251, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-tutorial-med rotate: false - xy: 797, 391 + xy: 1719, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-tutorial-small rotate: false - xy: 1053, 820 + xy: 527, 5 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-undo rotate: false - xy: 301, 622 + xy: 301, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-undo-med rotate: false - xy: 797, 359 + xy: 1751, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-undo-small rotate: false - xy: 1087, 820 + xy: 561, 5 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-units rotate: false - xy: 351, 672 + xy: 351, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-units-med rotate: false - xy: 797, 327 + xy: 1783, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-units-small rotate: false - xy: 1121, 820 + xy: 737, 443 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-unlocks rotate: false - xy: 401, 722 + xy: 401, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-unlocks-med rotate: false - xy: 555, 175 + xy: 1815, 624 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-unlocks-small rotate: false - xy: 1155, 820 + xy: 735, 561 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-upgrade rotate: false - xy: 451, 772 + xy: 451, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-upgrade-med rotate: false - xy: 555, 143 + xy: 983, 579 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-upgrade-small rotate: false - xy: 1189, 820 + xy: 719, 527 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-wiki rotate: false - xy: 501, 822 + xy: 501, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-wiki-med rotate: false - xy: 555, 111 + xy: 1015, 593 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-wiki-small rotate: false - xy: 1223, 820 + xy: 769, 577 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 icon-zoom rotate: false - xy: 551, 872 + xy: 551, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 icon-zoom-med rotate: false - xy: 555, 79 + xy: 1047, 593 size: 30, 30 orig: 30, 30 offset: 0, 0 index: -1 icon-zoom-small rotate: false - xy: 1257, 820 + xy: 753, 527 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ignarock-icon-large rotate: false - xy: 51, 322 + xy: 51, 324 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 ignarock-icon-medium rotate: false - xy: 1291, 820 + xy: 741, 493 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ignarock-icon-small rotate: false - xy: 1431, 634 + xy: 2023, 812 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 impact-reactor-icon-large rotate: false - xy: 101, 372 + xy: 101, 374 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 impact-reactor-icon-medium rotate: false - xy: 1325, 820 + xy: 775, 493 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 impact-reactor-icon-small rotate: false - xy: 1431, 608 + xy: 794, 399 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 incinerator-icon-large rotate: false - xy: 151, 422 + xy: 151, 424 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 incinerator-icon-medium rotate: false - xy: 1359, 820 + xy: 771, 459 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 incinerator-icon-small rotate: false - xy: 1457, 634 + xy: 794, 373 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 info-banner rotate: false - xy: 1, 928 + xy: 1, 930 size: 84, 45 orig: 84, 45 offset: 0, 0 index: -1 inventory rotate: false - xy: 1431, 566 + xy: 805, 451 size: 24, 40 split: 10, 10, 10, 14 orig: 24, 40 @@ -12214,679 +12245,679 @@ inventory index: -1 item-source-icon-large rotate: false - xy: 201, 472 + xy: 201, 474 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-source-icon-medium rotate: false - xy: 1393, 820 + xy: 771, 425 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-source-icon-small rotate: false - xy: 1457, 608 + xy: 805, 425 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 item-void-icon-large rotate: false - xy: 251, 522 + xy: 251, 524 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 item-void-icon-medium rotate: false - xy: 1427, 820 + xy: 985, 811 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 item-void-icon-small rotate: false - xy: 1483, 634 + xy: 794, 347 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 javelin-ship-pad-icon-large rotate: false - xy: 301, 572 + xy: 301, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 javelin-ship-pad-icon-medium rotate: false - xy: 1461, 820 + xy: 969, 777 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 javelin-ship-pad-icon-small rotate: false - xy: 1457, 582 + xy: 820, 399 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 junction-icon-large rotate: false - xy: 351, 622 + xy: 351, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 junction-icon-medium rotate: false - xy: 1495, 820 + xy: 1019, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 junction-icon-small rotate: false - xy: 1483, 608 + xy: 820, 373 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 kiln-icon-large rotate: false - xy: 401, 672 + xy: 401, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 kiln-icon-medium rotate: false - xy: 1529, 820 + xy: 1053, 827 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 kiln-icon-small rotate: false - xy: 1509, 634 + xy: 820, 347 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 lancer-icon-large rotate: false - xy: 451, 722 + xy: 451, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 lancer-icon-medium rotate: false - xy: 1563, 820 + xy: 1003, 777 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 lancer-icon-small rotate: false - xy: 1483, 582 + xy: 791, 321 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 laser-drill-icon-large rotate: false - xy: 501, 772 + xy: 501, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 laser-drill-icon-medium rotate: false - xy: 1597, 820 + xy: 991, 743 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 laser-drill-icon-small rotate: false - xy: 1509, 608 + xy: 817, 321 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 launch-pad-icon-large rotate: false - xy: 551, 822 + xy: 551, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 launch-pad-icon-medium rotate: false - xy: 1631, 820 + xy: 1037, 793 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 launch-pad-icon-small rotate: false - xy: 1535, 634 + xy: 1067, 559 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 launch-pad-large-icon-large rotate: false - xy: 601, 872 + xy: 601, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 launch-pad-large-icon-medium rotate: false - xy: 1665, 820 + xy: 991, 709 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 launch-pad-large-icon-small rotate: false - xy: 1509, 582 + xy: 1093, 558 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-junction-icon-large rotate: false - xy: 51, 272 + xy: 51, 274 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-junction-icon-medium rotate: false - xy: 1699, 820 + xy: 1037, 759 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-junction-icon-small rotate: false - xy: 1535, 608 + xy: 1119, 558 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-router-icon-large rotate: false - xy: 101, 322 + xy: 101, 324 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-router-icon-medium rotate: false - xy: 1733, 820 + xy: 1025, 725 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-router-icon-small rotate: false - xy: 1561, 634 + xy: 1145, 558 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-source-icon-large rotate: false - xy: 151, 372 + xy: 151, 374 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-source-icon-medium rotate: false - xy: 1767, 820 + xy: 1071, 793 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-source-icon-small rotate: false - xy: 1535, 582 + xy: 1863, 668 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 liquid-tank-icon-large rotate: false - xy: 201, 422 + xy: 201, 424 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 liquid-tank-icon-medium rotate: false - xy: 1801, 820 + xy: 1071, 759 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 liquid-tank-icon-small rotate: false - xy: 1561, 608 + xy: 1889, 670 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 magmarock-icon-large rotate: false - xy: 251, 472 + xy: 251, 474 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 magmarock-icon-medium rotate: false - xy: 1835, 820 + xy: 1059, 725 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 magmarock-icon-small rotate: false - xy: 1587, 634 + xy: 1854, 552 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 mass-driver-icon-large rotate: false - xy: 301, 522 + xy: 301, 524 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mass-driver-icon-medium rotate: false - xy: 1869, 820 + xy: 1025, 691 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mass-driver-icon-small rotate: false - xy: 1561, 582 + xy: 887, 571 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 mechanical-drill-icon-large rotate: false - xy: 351, 572 + xy: 351, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mechanical-drill-icon-medium rotate: false - xy: 1903, 820 + xy: 1059, 691 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-drill-icon-small rotate: false - xy: 1587, 608 + xy: 913, 571 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 mechanical-pump-icon-large rotate: false - xy: 401, 622 + xy: 401, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mechanical-pump-icon-medium rotate: false - xy: 1937, 820 + xy: 1093, 725 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mechanical-pump-icon-small rotate: false - xy: 1613, 634 + xy: 939, 571 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 meltdown-icon-large rotate: false - xy: 451, 672 + xy: 451, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 meltdown-icon-medium rotate: false - xy: 1971, 820 + xy: 1093, 691 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 meltdown-icon-small rotate: false - xy: 1587, 582 + xy: 637, 321 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 melter-icon-large rotate: false - xy: 501, 722 + xy: 501, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 melter-icon-medium rotate: false - xy: 2005, 820 + xy: 987, 675 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 melter-icon-small rotate: false - xy: 1613, 608 + xy: 663, 321 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 mend-projector-icon-large rotate: false - xy: 551, 772 + xy: 551, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mend-projector-icon-medium rotate: false - xy: 1025, 741 + xy: 1021, 657 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mend-projector-icon-small rotate: false - xy: 1639, 634 + xy: 689, 321 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 mender-icon-large rotate: false - xy: 601, 822 + xy: 601, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 mender-icon-medium rotate: false - xy: 1025, 707 + xy: 1055, 657 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 mender-icon-small rotate: false - xy: 1613, 582 + xy: 715, 321 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 metal-floor-2-icon-large rotate: false - xy: 651, 872 + xy: 651, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 metal-floor-2-icon-medium rotate: false - xy: 987, 673 + xy: 1089, 657 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-2-icon-small rotate: false - xy: 1639, 608 + xy: 1873, 642 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 metal-floor-3-icon-large rotate: false - xy: 51, 222 + xy: 51, 224 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 metal-floor-3-icon-medium rotate: false - xy: 1021, 673 + xy: 1105, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-3-icon-small rotate: false - xy: 1665, 634 + xy: 1899, 644 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 metal-floor-5-icon-large rotate: false - xy: 101, 272 + xy: 101, 274 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 metal-floor-5-icon-medium rotate: false - xy: 1037, 786 + xy: 1105, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-5-icon-small rotate: false - xy: 1639, 582 + xy: 1880, 616 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 metal-floor-damaged-icon-large rotate: false - xy: 151, 322 + xy: 151, 324 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 metal-floor-damaged-icon-medium rotate: false - xy: 1071, 786 + xy: 1139, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-damaged-icon-small rotate: false - xy: 1665, 608 + xy: 1880, 590 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 metal-floor-icon-large rotate: false - xy: 201, 372 + xy: 201, 374 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 metal-floor-icon-medium rotate: false - xy: 1105, 786 + xy: 1139, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 metal-floor-icon-small rotate: false - xy: 1691, 634 + xy: 1880, 564 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 moss-icon-large rotate: false - xy: 251, 422 + xy: 251, 424 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 moss-icon-medium rotate: false - xy: 1139, 786 + xy: 1173, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 moss-icon-small rotate: false - xy: 1665, 582 + xy: 1906, 618 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 multi-press-icon-large rotate: false - xy: 301, 472 + xy: 301, 474 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 multi-press-icon-medium rotate: false - xy: 1173, 786 + xy: 1173, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 multi-press-icon-small rotate: false - xy: 1691, 608 + xy: 1906, 592 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 oil-extractor-icon-large rotate: false - xy: 351, 522 + xy: 351, 524 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 oil-extractor-icon-medium rotate: false - xy: 1207, 786 + xy: 1207, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 oil-extractor-icon-small rotate: false - xy: 1717, 634 + xy: 1906, 566 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 omega-mech-pad-icon-large rotate: false - xy: 401, 572 + xy: 401, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 omega-mech-pad-icon-medium rotate: false - xy: 1241, 786 + xy: 1207, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 omega-mech-pad-icon-small rotate: false - xy: 1691, 582 + xy: 1880, 538 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 overdrive-projector-icon-large rotate: false - xy: 451, 622 + xy: 451, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 overdrive-projector-icon-medium rotate: false - xy: 1275, 786 + xy: 1241, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overdrive-projector-icon-small rotate: false - xy: 1717, 608 + xy: 1906, 540 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 overflow-gate-icon-large rotate: false - xy: 501, 672 + xy: 501, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 overflow-gate-icon-medium rotate: false - xy: 1309, 786 + xy: 1241, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 overflow-gate-icon-small rotate: false - xy: 1743, 634 + xy: 843, 321 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 pane rotate: false - xy: 1001, 893 + xy: 89, 45 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -12894,7 +12925,7 @@ pane index: -1 pane-2 rotate: false - xy: 951, 843 + xy: 301, 145 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -12902,805 +12933,805 @@ pane-2 index: -1 pebbles-icon-large rotate: false - xy: 551, 722 + xy: 551, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 pebbles-icon-medium rotate: false - xy: 1343, 786 + xy: 1275, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pebbles-icon-small rotate: false - xy: 1717, 582 + xy: 1907, 728 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 phantom-factory-icon-large rotate: false - xy: 601, 772 + xy: 601, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 phantom-factory-icon-medium rotate: false - xy: 1377, 786 + xy: 1275, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phantom-factory-icon-small rotate: false - xy: 1743, 608 + xy: 1933, 730 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 phase-conduit-icon-large rotate: false - xy: 651, 822 + xy: 651, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 phase-conduit-icon-medium rotate: false - xy: 1411, 786 + xy: 1309, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conduit-icon-small rotate: false - xy: 1769, 634 + xy: 1959, 730 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 phase-conveyor-icon-large rotate: false - xy: 701, 872 + xy: 701, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 phase-conveyor-icon-medium rotate: false - xy: 1445, 786 + xy: 1309, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-conveyor-icon-small rotate: false - xy: 1743, 582 + xy: 1985, 730 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 phase-wall-icon-large rotate: false - xy: 51, 172 + xy: 51, 174 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 phase-wall-icon-medium rotate: false - xy: 1479, 786 + xy: 1343, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-icon-small rotate: false - xy: 1769, 608 + xy: 2011, 730 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 phase-wall-large-icon-large rotate: false - xy: 101, 222 + xy: 101, 224 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 phase-wall-large-icon-medium rotate: false - xy: 1513, 786 + xy: 1343, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-wall-large-icon-small rotate: false - xy: 1795, 634 + xy: 1915, 702 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 phase-weaver-icon-large rotate: false - xy: 151, 272 + xy: 151, 274 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 phase-weaver-icon-medium rotate: false - xy: 1547, 786 + xy: 1377, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 phase-weaver-icon-small rotate: false - xy: 1769, 582 + xy: 1915, 676 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 pine-icon-large rotate: false - xy: 201, 322 + xy: 201, 324 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 pine-icon-medium rotate: false - xy: 1581, 786 + xy: 1377, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pine-icon-small rotate: false - xy: 1795, 608 + xy: 1941, 704 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 plastanium-compressor-icon-large rotate: false - xy: 251, 372 + xy: 251, 374 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 plastanium-compressor-icon-medium rotate: false - xy: 1615, 786 + xy: 1411, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 plastanium-compressor-icon-small rotate: false - xy: 1821, 634 + xy: 1941, 678 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 pneumatic-drill-icon-large rotate: false - xy: 301, 422 + xy: 301, 424 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 pneumatic-drill-icon-medium rotate: false - xy: 1649, 786 + xy: 1411, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pneumatic-drill-icon-small rotate: false - xy: 1795, 582 + xy: 1967, 704 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 power-node-icon-large rotate: false - xy: 351, 472 + xy: 351, 474 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 power-node-icon-medium rotate: false - xy: 1683, 786 + xy: 1445, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node-icon-small rotate: false - xy: 1821, 608 + xy: 1967, 678 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 power-node-large-icon-large rotate: false - xy: 401, 522 + xy: 401, 524 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 power-node-large-icon-medium rotate: false - xy: 1717, 786 + xy: 1445, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-node-large-icon-small rotate: false - xy: 1847, 634 + xy: 1993, 704 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 power-source-icon-large rotate: false - xy: 451, 572 + xy: 451, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 power-source-icon-medium rotate: false - xy: 1751, 786 + xy: 1479, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-source-icon-small rotate: false - xy: 1821, 582 + xy: 1993, 678 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 power-void-icon-large rotate: false - xy: 501, 622 + xy: 501, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 power-void-icon-medium rotate: false - xy: 1785, 786 + xy: 1479, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 power-void-icon-small rotate: false - xy: 1847, 608 + xy: 2019, 704 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 pulse-conduit-icon-large rotate: false - xy: 551, 672 + xy: 551, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 pulse-conduit-icon-medium rotate: false - xy: 1819, 786 + xy: 1513, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulse-conduit-icon-small rotate: false - xy: 1873, 634 + xy: 2019, 678 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 pulverizer-icon-large rotate: false - xy: 601, 722 + xy: 601, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 pulverizer-icon-medium rotate: false - xy: 1853, 786 + xy: 1513, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pulverizer-icon-small rotate: false - xy: 1847, 582 + xy: 1925, 650 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 pyratite-mixer-icon-large rotate: false - xy: 651, 772 + xy: 651, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 pyratite-mixer-icon-medium rotate: false - xy: 1887, 786 + xy: 1547, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 pyratite-mixer-icon-small rotate: false - xy: 1873, 608 + xy: 1951, 652 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 repair-point-icon-large rotate: false - xy: 701, 822 + xy: 701, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 repair-point-icon-medium rotate: false - xy: 1921, 786 + xy: 1547, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 repair-point-icon-small rotate: false - xy: 1899, 634 + xy: 1977, 652 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 revenant-factory-icon-large rotate: false - xy: 751, 872 + xy: 751, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 revenant-factory-icon-medium rotate: false - xy: 1955, 786 + xy: 1581, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 revenant-factory-icon-small rotate: false - xy: 1873, 582 + xy: 2003, 652 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 ripple-icon-large rotate: false - xy: 51, 122 + xy: 51, 124 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 ripple-icon-medium rotate: false - xy: 1989, 786 + xy: 1581, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 ripple-icon-small rotate: false - xy: 1899, 608 + xy: 1932, 624 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 rock-icon-large rotate: false - xy: 101, 172 + xy: 101, 174 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rock-icon-medium rotate: false - xy: 1059, 752 + xy: 1615, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rock-icon-small rotate: false - xy: 1925, 634 + xy: 1932, 598 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 rocks-icon-large rotate: false - xy: 151, 222 + xy: 151, 224 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rocks-icon-medium rotate: false - xy: 1059, 718 + xy: 1615, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rocks-icon-small rotate: false - xy: 1899, 582 + xy: 1932, 572 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 rotary-pump-icon-large rotate: false - xy: 201, 272 + xy: 201, 274 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rotary-pump-icon-medium rotate: false - xy: 1093, 752 + xy: 1649, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rotary-pump-icon-small rotate: false - xy: 1925, 608 + xy: 1932, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 router-icon-large rotate: false - xy: 251, 322 + xy: 251, 324 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 router-icon-medium rotate: false - xy: 1093, 718 + xy: 1649, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 router-icon-small rotate: false - xy: 1951, 634 + xy: 1958, 626 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 rtg-generator-icon-large rotate: false - xy: 301, 372 + xy: 301, 374 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 rtg-generator-icon-medium rotate: false - xy: 1127, 752 + xy: 1683, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 rtg-generator-icon-small rotate: false - xy: 1925, 582 + xy: 1958, 600 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 salt-icon-large rotate: false - xy: 351, 422 + xy: 351, 424 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 salt-icon-medium rotate: false - xy: 1127, 718 + xy: 1683, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salt-icon-small rotate: false - xy: 1951, 608 + xy: 1984, 626 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 saltrocks-icon-large rotate: false - xy: 401, 472 + xy: 401, 474 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 saltrocks-icon-medium rotate: false - xy: 1161, 752 + xy: 1717, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 saltrocks-icon-small rotate: false - xy: 1977, 634 + xy: 1958, 574 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 salvo-icon-large rotate: false - xy: 451, 522 + xy: 451, 524 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 salvo-icon-medium rotate: false - xy: 1161, 718 + xy: 1717, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 salvo-icon-small rotate: false - xy: 1951, 582 + xy: 1984, 600 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 sand-boulder-icon-large rotate: false - xy: 501, 572 + xy: 501, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sand-boulder-icon-medium rotate: false - xy: 1195, 752 + xy: 1751, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-boulder-icon-small rotate: false - xy: 1977, 608 + xy: 1958, 548 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 sand-icon-large rotate: false - xy: 551, 622 + xy: 551, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sand-icon-medium rotate: false - xy: 1195, 718 + xy: 1751, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-icon-small rotate: false - xy: 2003, 634 + xy: 1984, 574 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 sand-water-icon-large rotate: false - xy: 601, 672 + xy: 601, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sand-water-icon-medium rotate: false - xy: 1229, 752 + xy: 1785, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sand-water-icon-small rotate: false - xy: 1977, 582 + xy: 1984, 548 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 sandrocks-icon-large rotate: false - xy: 651, 722 + xy: 651, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sandrocks-icon-medium rotate: false - xy: 1229, 718 + xy: 1785, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sandrocks-icon-small rotate: false - xy: 2003, 608 + xy: 2010, 626 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 scatter-icon-large rotate: false - xy: 701, 772 + xy: 701, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 scatter-icon-medium rotate: false - xy: 1263, 752 + xy: 1819, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scatter-icon-small rotate: false - xy: 2003, 582 + xy: 2010, 600 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 scorch-icon-large rotate: false - xy: 751, 822 + xy: 751, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 scorch-icon-medium rotate: false - xy: 1263, 718 + xy: 1819, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scorch-icon-small rotate: false - xy: 1457, 556 + xy: 2010, 574 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 scrap-wall-gigantic-icon-large rotate: false - xy: 801, 872 + xy: 801, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 scrap-wall-gigantic-icon-medium rotate: false - xy: 1297, 752 + xy: 1853, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall-gigantic-icon-small rotate: false - xy: 1483, 556 + xy: 2010, 548 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 scrap-wall-huge-icon-large rotate: false - xy: 51, 72 + xy: 51, 74 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 scrap-wall-huge-icon-medium rotate: false - xy: 1297, 718 + xy: 1853, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall-huge-icon-small rotate: false - xy: 1509, 556 + xy: 1932, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 scrap-wall-icon-large rotate: false - xy: 101, 122 + xy: 101, 124 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 scrap-wall-icon-medium rotate: false - xy: 1331, 752 + xy: 1887, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall-icon-small rotate: false - xy: 1535, 556 + xy: 1958, 522 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 scrap-wall-large-icon-large rotate: false - xy: 151, 172 + xy: 151, 174 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 scrap-wall-large-icon-medium rotate: false - xy: 1331, 718 + xy: 1887, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 scrap-wall-large-icon-small rotate: false - xy: 1561, 556 + xy: 1984, 522 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 scroll rotate: false - xy: 1613, 545 + xy: 1906, 503 size: 24, 35 split: 10, 10, 6, 5 orig: 24, 35 @@ -13708,7 +13739,7 @@ scroll index: -1 scroll-horizontal rotate: false - xy: 1039, 896 + xy: 1077, 898 size: 35, 24 split: 6, 5, 10, 10 orig: 35, 24 @@ -13716,7 +13747,7 @@ scroll-horizontal index: -1 scroll-knob-horizontal-black rotate: false - xy: 1, 2 + xy: 1, 4 size: 40, 24 split: 11, 10, 10, 10 orig: 40, 24 @@ -13724,7 +13755,7 @@ scroll-knob-horizontal-black index: -1 scroll-knob-vertical-black rotate: false - xy: 1587, 540 + xy: 2010, 506 size: 24, 40 split: 10, 10, 6, 10 orig: 24, 40 @@ -13732,952 +13763,952 @@ scroll-knob-vertical-black index: -1 selection rotate: false - xy: 1049, 893 + xy: 1123, 688 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 separator-icon-large rotate: false - xy: 201, 222 + xy: 201, 224 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 separator-icon-medium rotate: false - xy: 1365, 752 + xy: 1921, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 separator-icon-small rotate: false - xy: 1639, 556 + xy: 1932, 494 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 shale-boulder-icon-large rotate: false - xy: 251, 272 + xy: 251, 274 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 shale-boulder-icon-medium rotate: false - xy: 1365, 718 + xy: 1921, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-boulder-icon-small rotate: false - xy: 1665, 556 + xy: 1958, 496 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 shale-icon-large rotate: false - xy: 301, 322 + xy: 301, 324 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 shale-icon-medium rotate: false - xy: 1399, 752 + xy: 1955, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shale-icon-small rotate: false - xy: 1691, 556 + xy: 1984, 496 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 shalerocks-icon-large rotate: false - xy: 351, 372 + xy: 351, 374 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 shalerocks-icon-medium rotate: false - xy: 1399, 718 + xy: 1955, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shalerocks-icon-small rotate: false - xy: 1717, 556 + xy: 2010, 480 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 shock-mine-icon-large rotate: false - xy: 401, 422 + xy: 401, 424 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 shock-mine-icon-medium rotate: false - xy: 1433, 752 + xy: 1989, 822 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shock-mine-icon-small rotate: false - xy: 1743, 556 + xy: 1172, 560 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 shrubs-icon-large rotate: false - xy: 451, 472 + xy: 451, 474 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 shrubs-icon-medium rotate: false - xy: 1433, 718 + xy: 1989, 788 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 shrubs-icon-small rotate: false - xy: 1769, 556 + xy: 1198, 560 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 silicon-smelter-icon-large rotate: false - xy: 501, 522 + xy: 501, 524 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 silicon-smelter-icon-medium rotate: false - xy: 1467, 752 + xy: 1127, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 silicon-smelter-icon-small rotate: false - xy: 1795, 556 + xy: 1224, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 slider rotate: false - xy: 43, 18 + xy: 791, 352 size: 1, 8 orig: 1, 8 offset: 0, 0 index: -1 slider-knob rotate: false - xy: 365, 69 + xy: 1079, 585 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-down rotate: false - xy: 396, 83 + xy: 1110, 584 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-knob-over rotate: false - xy: 427, 83 + xy: 1141, 584 size: 29, 38 orig: 29, 38 offset: 0, 0 index: -1 slider-vertical rotate: false - xy: 1039, 893 + xy: 1077, 895 size: 8, 1 orig: 8, 1 offset: 0, 0 index: -1 snow-icon-large rotate: false - xy: 551, 572 + xy: 551, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snow-icon-medium rotate: false - xy: 1467, 718 + xy: 1127, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow-icon-small rotate: false - xy: 1821, 556 + xy: 1250, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 snow-pine-icon-large rotate: false - xy: 601, 622 + xy: 601, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snow-pine-icon-medium rotate: false - xy: 1501, 752 + xy: 1161, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snow-pine-icon-small rotate: false - xy: 1847, 556 + xy: 1276, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 snowrock-icon-large rotate: false - xy: 651, 672 + xy: 651, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrock-icon-medium rotate: false - xy: 1501, 718 + xy: 1161, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snowrock-icon-small rotate: false - xy: 1873, 556 + xy: 1302, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 snowrocks-icon-large rotate: false - xy: 701, 722 + xy: 701, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 snowrocks-icon-medium rotate: false - xy: 1535, 752 + xy: 1195, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 snowrocks-icon-small rotate: false - xy: 1899, 556 + xy: 1328, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 solar-panel-icon-large rotate: false - xy: 751, 772 + xy: 751, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 solar-panel-icon-medium rotate: false - xy: 1535, 718 + xy: 1195, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-icon-small rotate: false - xy: 1925, 556 + xy: 1354, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 solar-panel-large-icon-large rotate: false - xy: 801, 822 + xy: 801, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 solar-panel-large-icon-medium rotate: false - xy: 1569, 752 + xy: 1229, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 solar-panel-large-icon-small rotate: false - xy: 1951, 556 + xy: 1380, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 sorter-icon-large rotate: false - xy: 851, 872 + xy: 851, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sorter-icon-medium rotate: false - xy: 1569, 718 + xy: 1229, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sorter-icon-small rotate: false - xy: 1977, 556 + xy: 1406, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 spawn-icon-large rotate: false - xy: 101, 72 + xy: 101, 74 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spawn-icon-medium rotate: false - xy: 1603, 752 + xy: 1263, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spawn-icon-small rotate: false - xy: 2003, 556 + xy: 1432, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 spectre-icon-large rotate: false - xy: 151, 122 + xy: 151, 124 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spectre-icon-medium rotate: false - xy: 1603, 718 + xy: 1263, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spectre-icon-small rotate: false - xy: 1431, 540 + xy: 1458, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 spirit-factory-icon-large rotate: false - xy: 201, 172 + xy: 201, 174 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spirit-factory-icon-medium rotate: false - xy: 1637, 752 + xy: 1297, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spirit-factory-icon-small rotate: false - xy: 1457, 530 + xy: 1484, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 spore-cluster-icon-large rotate: false - xy: 251, 222 + xy: 251, 224 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-cluster-icon-medium rotate: false - xy: 1637, 718 + xy: 1297, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-cluster-icon-small rotate: false - xy: 1483, 530 + xy: 1510, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 spore-moss-icon-large rotate: false - xy: 301, 272 + xy: 301, 274 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-moss-icon-medium rotate: false - xy: 1671, 752 + xy: 1331, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-moss-icon-small rotate: false - xy: 1509, 530 + xy: 1536, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 spore-pine-icon-large rotate: false - xy: 351, 322 + xy: 351, 324 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-pine-icon-medium rotate: false - xy: 1671, 718 + xy: 1331, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-pine-icon-small rotate: false - xy: 1535, 530 + xy: 1562, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 spore-press-icon-large rotate: false - xy: 401, 372 + xy: 401, 374 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 spore-press-icon-medium rotate: false - xy: 1705, 752 + xy: 1365, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 spore-press-icon-small rotate: false - xy: 1561, 530 + xy: 1588, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 sporerocks-icon-large rotate: false - xy: 451, 422 + xy: 451, 424 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 sporerocks-icon-medium rotate: false - xy: 1705, 718 + xy: 1365, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 sporerocks-icon-small rotate: false - xy: 1639, 530 + xy: 1614, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 stone-icon-large rotate: false - xy: 501, 472 + xy: 501, 474 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 stone-icon-medium rotate: false - xy: 1739, 752 + xy: 1399, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 stone-icon-small rotate: false - xy: 1665, 530 + xy: 1640, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 surge-tower-icon-large rotate: false - xy: 551, 522 + xy: 551, 524 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 surge-tower-icon-medium rotate: false - xy: 1739, 718 + xy: 1399, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-tower-icon-small rotate: false - xy: 1691, 530 + xy: 1666, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 surge-wall-icon-large rotate: false - xy: 601, 572 + xy: 601, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 surge-wall-icon-medium rotate: false - xy: 1773, 752 + xy: 1433, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-icon-small rotate: false - xy: 1717, 530 + xy: 1692, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 surge-wall-large-icon-large rotate: false - xy: 651, 622 + xy: 651, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 surge-wall-large-icon-medium rotate: false - xy: 1773, 718 + xy: 1433, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 surge-wall-large-icon-small rotate: false - xy: 1743, 530 + xy: 1718, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 swarmer-icon-large rotate: false - xy: 701, 672 + xy: 701, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 swarmer-icon-medium rotate: false - xy: 1807, 752 + xy: 1467, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 swarmer-icon-small rotate: false - xy: 1769, 530 + xy: 1744, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 tainted-water-icon-large rotate: false - xy: 751, 722 + xy: 751, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 tainted-water-icon-medium rotate: false - xy: 1807, 718 + xy: 1467, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tainted-water-icon-small rotate: false - xy: 1795, 530 + xy: 1770, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 tar-icon-large rotate: false - xy: 801, 772 + xy: 801, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 tar-icon-medium rotate: false - xy: 1841, 752 + xy: 1501, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tar-icon-small rotate: false - xy: 1821, 530 + xy: 1796, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 tau-mech-pad-icon-large rotate: false - xy: 851, 822 + xy: 851, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 tau-mech-pad-icon-medium rotate: false - xy: 1841, 718 + xy: 1501, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tau-mech-pad-icon-small rotate: false - xy: 1847, 530 + xy: 1822, 546 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 tendrils-icon-large rotate: false - xy: 901, 872 + xy: 901, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 tendrils-icon-medium rotate: false - xy: 1875, 752 + xy: 1535, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 tendrils-icon-small rotate: false - xy: 1873, 530 + xy: 1958, 470 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 thermal-generator-icon-large rotate: false - xy: 151, 72 + xy: 151, 74 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 thermal-generator-icon-medium rotate: false - xy: 1875, 718 + xy: 1535, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thermal-generator-icon-small rotate: false - xy: 1899, 530 + xy: 1984, 470 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 thermal-pump-icon-large rotate: false - xy: 201, 122 + xy: 201, 124 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 thermal-pump-icon-medium rotate: false - xy: 1909, 752 + xy: 1569, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thermal-pump-icon-small rotate: false - xy: 1925, 530 + xy: 2010, 454 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 thorium-reactor-icon-large rotate: false - xy: 251, 172 + xy: 251, 174 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 thorium-reactor-icon-medium rotate: false - xy: 1909, 718 + xy: 1569, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-reactor-icon-small rotate: false - xy: 1951, 530 + xy: 1171, 534 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 thorium-wall-icon-large rotate: false - xy: 301, 222 + xy: 301, 224 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 thorium-wall-icon-medium rotate: false - xy: 1943, 752 + xy: 1603, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-icon-small rotate: false - xy: 1977, 530 + xy: 1197, 534 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 thorium-wall-large-icon-large rotate: false - xy: 351, 272 + xy: 351, 274 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 thorium-wall-large-icon-medium rotate: false - xy: 1943, 718 + xy: 1603, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thorium-wall-large-icon-small rotate: false - xy: 2003, 530 + xy: 1223, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 thruster-icon-large rotate: false - xy: 401, 322 + xy: 401, 324 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 thruster-icon-medium rotate: false - xy: 1977, 752 + xy: 1637, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 thruster-icon-small rotate: false - xy: 1613, 519 + xy: 1249, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 titan-factory-icon-large rotate: false - xy: 451, 372 + xy: 451, 374 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 titan-factory-icon-medium rotate: false - xy: 1977, 718 + xy: 1637, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titan-factory-icon-small rotate: false - xy: 1587, 514 + xy: 1275, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 titanium-conveyor-icon-large rotate: false - xy: 501, 422 + xy: 501, 424 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 titanium-conveyor-icon-medium rotate: false - xy: 2011, 752 + xy: 1671, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-conveyor-icon-small rotate: false - xy: 1639, 504 + xy: 1301, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 titanium-wall-icon-large rotate: false - xy: 551, 472 + xy: 551, 474 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 titanium-wall-icon-medium rotate: false - xy: 2011, 718 + xy: 1671, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-icon-small rotate: false - xy: 1665, 504 + xy: 1327, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 titanium-wall-large-icon-large rotate: false - xy: 601, 522 + xy: 601, 524 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 titanium-wall-large-icon-medium rotate: false - xy: 1059, 684 + xy: 1705, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 titanium-wall-large-icon-small rotate: false - xy: 1691, 504 + xy: 1353, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 trident-ship-pad-icon-large rotate: false - xy: 651, 572 + xy: 651, 574 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 trident-ship-pad-icon-medium rotate: false - xy: 1093, 684 + xy: 1705, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 trident-ship-pad-icon-small rotate: false - xy: 1717, 504 + xy: 1379, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 turbine-generator-icon-large rotate: false - xy: 701, 622 + xy: 701, 624 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 turbine-generator-icon-medium rotate: false - xy: 1127, 684 + xy: 1739, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 turbine-generator-icon-small rotate: false - xy: 1743, 504 + xy: 1405, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 underline rotate: false - xy: 351, 214 + xy: 351, 187 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -14685,7 +14716,7 @@ underline index: -1 underline-2 rotate: false - xy: 251, 93 + xy: 351, 216 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -14693,7 +14724,7 @@ underline-2 index: -1 underline-disabled rotate: false - xy: 301, 143 + xy: 1039, 895 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -14701,7 +14732,7 @@ underline-disabled index: -1 underline-red rotate: false - xy: 89, 43 + xy: 127, 45 size: 36, 27 split: 12, 12, 12, 12 orig: 36, 27 @@ -14709,161 +14740,161 @@ underline-red index: -1 unloader-icon-large rotate: false - xy: 751, 672 + xy: 751, 674 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 unloader-icon-medium rotate: false - xy: 1161, 684 + xy: 1739, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 unloader-icon-small rotate: false - xy: 1769, 504 + xy: 1431, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 vault-icon-large rotate: false - xy: 801, 722 + xy: 801, 724 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 vault-icon-medium rotate: false - xy: 1195, 684 + xy: 1773, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 vault-icon-small rotate: false - xy: 1795, 504 + xy: 1457, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 water-extractor-icon-large rotate: false - xy: 851, 772 + xy: 851, 774 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 water-extractor-icon-medium rotate: false - xy: 1229, 684 + xy: 1773, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-extractor-icon-small rotate: false - xy: 1821, 504 + xy: 1483, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 water-icon-large rotate: false - xy: 901, 822 + xy: 901, 824 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 water-icon-medium rotate: false - xy: 1263, 684 + xy: 1807, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 water-icon-small rotate: false - xy: 1847, 504 + xy: 1509, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 wave-icon-large rotate: false - xy: 951, 872 + xy: 951, 874 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 wave-icon-medium rotate: false - xy: 1297, 684 + xy: 1807, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 wave-icon-small rotate: false - xy: 1873, 504 + xy: 1535, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 white-tree-dead-icon-large rotate: false - xy: 201, 72 + xy: 201, 74 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 white-tree-dead-icon-medium rotate: false - xy: 1331, 684 + xy: 1841, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 white-tree-dead-icon-small rotate: false - xy: 1899, 504 + xy: 1561, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 white-tree-icon-large rotate: false - xy: 251, 122 + xy: 251, 124 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 white-tree-icon-medium rotate: false - xy: 1365, 684 + xy: 1841, 720 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 white-tree-icon-small rotate: false - xy: 1925, 504 + xy: 1587, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 index: -1 whiteui rotate: false - xy: 119, 38 + xy: 153, 40 size: 3, 3 orig: 3, 3 offset: 0, 0 index: -1 window-empty rotate: false - xy: 805, 428 + xy: 765, 362 size: 27, 61 split: 8, 8, 44, 11 orig: 27, 61 @@ -14871,21 +14902,21 @@ window-empty index: -1 wraith-factory-icon-large rotate: false - xy: 301, 172 + xy: 301, 174 size: 48, 48 orig: 48, 48 offset: 0, 0 index: -1 wraith-factory-icon-medium rotate: false - xy: 1399, 684 + xy: 1875, 754 size: 32, 32 orig: 32, 32 offset: 0, 0 index: -1 wraith-factory-icon-small rotate: false - xy: 1951, 504 + xy: 1613, 520 size: 24, 24 orig: 24, 24 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 2fd70aacfd..ff21c9b274 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/assets/sprites/sprites4.png b/core/assets/sprites/sprites4.png index 8840e3ee12..a8a71840cf 100644 Binary files a/core/assets/sprites/sprites4.png and b/core/assets/sprites/sprites4.png differ diff --git a/core/assets/sprites/uiskin.json b/core/assets/sprites/uiskin.json index 5c0e25d6e1..3733444677 100644 --- a/core/assets/sprites/uiskin.json +++ b/core/assets/sprites/uiskin.json @@ -54,6 +54,12 @@ down: button-down, up: button }, + square: { + over: button-square-over, + disabled: button-disabled, + down: button-square-down, + up: button-square + }, toggle: { checked: button-down, down: button-down, @@ -64,15 +70,24 @@ default: { over: button-over, disabled: button-disabled, - font: default-font, + font: default, fontColor: white, disabledFontColor: gray, down: button-down, up: button }, + square: { + font: default, + fontColor: white, + disabledFontColor: gray, + over: button-square-over, + disabled: button-disabled, + down: button-square-down, + up: button-square + }, node: { disabled: button, - font: default-font, + font: default, fontColor: white, disabledFontColor: gray, up: button-over, @@ -80,33 +95,33 @@ }, right: { over: button-right-over, - font: default-font, + font: default, fontColor: white, disabledFontColor: gray, down: button-right-down, up: button-right }, wave: { - font: default-font, + font: default, fontColor: white, disabledFontColor: gray, up: button-edge-4 }, clear: { over: flat-over, - font: default-font, + font: default, fontColor: white, disabledFontColor: gray, down: flat-over, up: flat }, discord: { - font: default-font, + font: default, fontColor: white, up: discord-banner }, info: { - font: default-font, + font: default, fontColor: white, up: info-banner }, @@ -114,7 +129,7 @@ down: whiteui, up: pane, over: flat-down, - font: default-font, + font: default, fontColor: white, disabledFontColor: gray }, @@ -122,15 +137,15 @@ down: flat-over, up: none, over: flat-over, - font: default-font, + font: default, fontColor: white, disabledFontColor: gray }, empty: { - font: default-font + font: default }, clear-toggle: { - font: default-font, + font: default, fontColor: white, checked: flat-down, down: flat-down, @@ -140,7 +155,7 @@ disabledFontColor: gray }, clear-toggle-menu: { - font: default-font, + font: default, fontColor: white, checked: flat-down, down: flat-down, @@ -150,7 +165,7 @@ disabledFontColor: gray } toggle: { - font: default-font, + font: default, fontColor: white, checked: button-down, down: button-down, @@ -256,18 +271,18 @@ }, WindowStyle: { default: { - titleFont: default-font, + titleFont: default, titleFontColor: accent }, dialog: { stageBackground: dialogDim, - titleFont: default-font, + titleFont: default, background: window-empty, titleFontColor: accent }, fulldialog: { stageBackground: dark, - titleFont: default-font, + titleFont: default, background: window-empty, titleFontColor: accent } @@ -295,17 +310,17 @@ }, LabelStyle: { default: { - font: default-font, + font: default, fontColor: white }, - small: { - font: default-font, + outline: { + font: outline, fontColor: white } }, TextFieldStyle: { default: { - font: default-font-chat, + font: chat, fontColor: white, disabledFontColor: gray, disabledBackground: underline-disabled, @@ -313,17 +328,17 @@ background: underline, invalidBackground: underline-red, cursor: cursor, - messageFont: default-font, + messageFont: default, messageFontColor: gray } textarea: { - font: default-font-chat, + font: chat, fontColor: white, disabledFontColor: gray, selection: selection, background: underline, cursor: cursor, - messageFont: default-font, + messageFont: default, messageFontColor: gray } }, @@ -335,7 +350,7 @@ checkboxOver: check-over, checkboxOnDisabled: check-on-disabled, checkboxOffDisabled: check-disabled, - font: default-font, + font: default, fontColor: white, disabledFontColor: gray, diff --git a/core/assets/zones/craters.png b/core/assets/zones/craters.png new file mode 100644 index 0000000000..9675beb0b3 Binary files /dev/null and b/core/assets/zones/craters.png differ diff --git a/core/assets/zones/desertWastes.png b/core/assets/zones/desertWastes.png new file mode 100644 index 0000000000..7fcde99aac Binary files /dev/null and b/core/assets/zones/desertWastes.png differ diff --git a/core/assets/zones/desolateRift.png b/core/assets/zones/desolateRift.png new file mode 100644 index 0000000000..8b24d6be6b Binary files /dev/null and b/core/assets/zones/desolateRift.png differ diff --git a/core/assets/zones/frozenForest.png b/core/assets/zones/frozenForest.png new file mode 100644 index 0000000000..8faccbdcaf Binary files /dev/null and b/core/assets/zones/frozenForest.png differ diff --git a/core/assets/zones/fungalPass.png b/core/assets/zones/fungalPass.png new file mode 100644 index 0000000000..c59fbc57e3 Binary files /dev/null and b/core/assets/zones/fungalPass.png differ diff --git a/core/assets/zones/groundZero.png b/core/assets/zones/groundZero.png new file mode 100644 index 0000000000..261c94bd8e Binary files /dev/null and b/core/assets/zones/groundZero.png differ diff --git a/core/assets/zones/nuclearComplex.png b/core/assets/zones/nuclearComplex.png new file mode 100644 index 0000000000..84268346f9 Binary files /dev/null and b/core/assets/zones/nuclearComplex.png differ diff --git a/core/assets/zones/overgrowth.png b/core/assets/zones/overgrowth.png new file mode 100644 index 0000000000..99ace71e99 Binary files /dev/null and b/core/assets/zones/overgrowth.png differ diff --git a/core/assets/zones/ruinousShores.png b/core/assets/zones/ruinousShores.png new file mode 100644 index 0000000000..28f01f2a45 Binary files /dev/null and b/core/assets/zones/ruinousShores.png differ diff --git a/core/assets/zones/saltFlats.png b/core/assets/zones/saltFlats.png new file mode 100644 index 0000000000..3a31279c30 Binary files /dev/null and b/core/assets/zones/saltFlats.png differ diff --git a/core/assets/zones/stainedMountains.png b/core/assets/zones/stainedMountains.png new file mode 100644 index 0000000000..0fb9bb2b10 Binary files /dev/null and b/core/assets/zones/stainedMountains.png differ diff --git a/core/assets/zones/tarFields.png b/core/assets/zones/tarFields.png new file mode 100644 index 0000000000..976af5c1d3 Binary files /dev/null and b/core/assets/zones/tarFields.png differ diff --git a/core/src/io/anuke/mindustry/Vars.java b/core/src/io/anuke/mindustry/Vars.java index 8d9a4e0c5f..183eb56a0c 100644 --- a/core/src/io/anuke/mindustry/Vars.java +++ b/core/src/io/anuke/mindustry/Vars.java @@ -42,9 +42,9 @@ public class Vars{ /** maximum distance between mine and core that supports automatic transferring */ public static final float mineTransferRange = 220f; /** team of the player by default */ - public static final Team defaultTeam = Team.blue; + public static final Team defaultTeam = Team.sharded; /** team of the enemy in waves/sectors */ - public static final Team waveTeam = Team.red; + public static final Team waveTeam = Team.crux; /** whether to enable editing of units in the editor */ public static final boolean enableUnitEditing = false; /** max chat message length */ diff --git a/core/src/io/anuke/mindustry/ai/BlockIndexer.java b/core/src/io/anuke/mindustry/ai/BlockIndexer.java index 71a79a262c..8a7b70717b 100644 --- a/core/src/io/anuke/mindustry/ai/BlockIndexer.java +++ b/core/src/io/anuke/mindustry/ai/BlockIndexer.java @@ -219,7 +219,7 @@ public class BlockIndexer{ } private void process(Tile tile){ - if(tile.block().flags.size() > 0 && tile.getTeam() != Team.none){ + if(tile.block().flags.size() > 0 && tile.getTeam() != Team.derelict){ ObjectSet[] map = getFlagged(tile.getTeam()); for(BlockFlag flag : tile.block().flags){ diff --git a/core/src/io/anuke/mindustry/content/Blocks.java b/core/src/io/anuke/mindustry/content/Blocks.java index 5ce4ee6276..24faea8266 100644 --- a/core/src/io/anuke/mindustry/content/Blocks.java +++ b/core/src/io/anuke/mindustry/content/Blocks.java @@ -411,7 +411,7 @@ public class Blocks implements ContentList{ //region crafting graphitePress = new GenericCrafter("graphite-press"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 150, Items.lead, 60)); + requirements(Category.crafting, ItemStack.with(Items.copper, 75, Items.lead, 30)); craftEffect = Fx.pulverizeMedium; outputItem = new ItemStack(Items.graphite, 1); @@ -423,7 +423,7 @@ public class Blocks implements ContentList{ }}; multiPress = new GenericCrafter("multi-press"){{ - requirements(Category.crafting, ItemStack.with(Items.titanium, 200, Items.silicon, 50, Items.lead, 200, Items.graphite, 100)); + requirements(Category.crafting, ItemStack.with(Items.titanium, 100, Items.silicon, 25, Items.lead, 100, Items.graphite, 50)); craftEffect = Fx.pulverizeMedium; outputItem = new ItemStack(Items.graphite, 2); @@ -439,7 +439,7 @@ public class Blocks implements ContentList{ }}; siliconSmelter = new GenericSmelter("silicon-smelter"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.lead, 50)); + requirements(Category.crafting, ItemStack.with(Items.copper, 30, Items.lead, 25)); craftEffect = Fx.smeltsmoke; outputItem = new ItemStack(Items.silicon, 1); craftTime = 40f; @@ -453,7 +453,7 @@ public class Blocks implements ContentList{ }}; kiln = new GenericSmelter("kiln"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 120, Items.graphite, 60, Items.lead, 60)); + requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.graphite, 30, Items.lead, 30)); craftEffect = Fx.smeltsmoke; outputItem = new ItemStack(Items.metaglass, 1); craftTime = 30f; @@ -466,7 +466,7 @@ public class Blocks implements ContentList{ }}; plastaniumCompressor = new GenericCrafter("plastanium-compressor"){{ - requirements(Category.crafting, ItemStack.with(Items.silicon, 160, Items.lead, 230, Items.graphite, 120, Items.titanium, 160)); + requirements(Category.crafting, ItemStack.with(Items.silicon, 80, Items.lead, 115, Items.graphite, 60, Items.titanium, 80)); hasItems = true; liquidCapacity = 60f; craftTime = 60f; @@ -495,7 +495,7 @@ public class Blocks implements ContentList{ }}; phaseWeaver = new GenericCrafter("phase-weaver"){{ - requirements(Category.crafting, ItemStack.with(Items.silicon, 260, Items.lead, 240, Items.thorium, 150)); + requirements(Category.crafting, ItemStack.with(Items.silicon, 130, Items.lead, 120, Items.thorium, 75)); craftEffect = Fx.smeltsmoke; outputItem = new ItemStack(Items.phasefabric, 1); craftTime = 120f; @@ -531,7 +531,7 @@ public class Blocks implements ContentList{ }}; surgeSmelter = new GenericSmelter("alloy-smelter"){{ - requirements(Category.crafting, ItemStack.with(Items.silicon, 160, Items.lead, 160, Items.thorium, 140)); + requirements(Category.crafting, ItemStack.with(Items.silicon, 80, Items.lead, 80, Items.thorium, 70)); craftEffect = Fx.smeltsmoke; outputItem = new ItemStack(Items.surgealloy, 1); craftTime = 75f; @@ -543,9 +543,9 @@ public class Blocks implements ContentList{ }}; cryofluidMixer = new LiquidConverter("cryofluidmixer"){{ - requirements(Category.crafting, ItemStack.with(Items.lead, 130, Items.silicon, 80, Items.thorium, 90)); - outputLiquid = new LiquidStack(Liquids.cryofluid, 0.1f); - craftTime = 60f; + requirements(Category.crafting, ItemStack.with(Items.lead, 65, Items.silicon, 40, Items.titanium, 60)); + outputLiquid = new LiquidStack(Liquids.cryofluid, 0.2f); + craftTime = 120f; size = 2; hasPower = true; hasItems = true; @@ -556,7 +556,7 @@ public class Blocks implements ContentList{ consumes.power(1f); consumes.item(Items.titanium); - consumes.liquid(Liquids.water, 0.1f); + consumes.liquid(Liquids.water, 0.2f); int liquidRegion = reg("-liquid"), topRegion = reg("-top"), bottomRegion = reg("-bottom"); @@ -581,7 +581,7 @@ public class Blocks implements ContentList{ }}; blastMixer = new GenericCrafter("blast-mixer"){{ - requirements(Category.crafting, ItemStack.with(Items.lead, 60, Items.titanium, 40)); + requirements(Category.crafting, ItemStack.with(Items.lead, 30, Items.titanium, 20)); hasItems = true; hasPower = true; outputItem = new ItemStack(Items.blastCompound, 1); @@ -592,7 +592,7 @@ public class Blocks implements ContentList{ }}; pyratiteMixer = new GenericSmelter("pyratite-mixer"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 100, Items.lead, 50)); + requirements(Category.crafting, ItemStack.with(Items.copper, 50, Items.lead, 25)); flameColor = Color.CLEAR; hasItems = true; hasPower = true; @@ -605,7 +605,7 @@ public class Blocks implements ContentList{ }}; melter = new GenericCrafter("melter"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.lead, 70, Items.graphite, 90)); + requirements(Category.crafting, ItemStack.with(Items.copper, 30, Items.lead, 35, Items.graphite, 45)); health = 200; outputLiquid = new LiquidStack(Liquids.slag, 2f); craftTime = 10f; @@ -616,12 +616,12 @@ public class Blocks implements ContentList{ }}; separator = new Separator("separator"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.titanium, 50)); + requirements(Category.crafting, ItemStack.with(Items.copper, 30, Items.titanium, 25)); results = ItemStack.with( - Items.copper, 5, - Items.lead, 3, - Items.graphite, 2, - Items.titanium, 2 + Items.copper, 5, + Items.lead, 3, + Items.graphite, 2, + Items.titanium, 2 ); hasPower = true; craftTime = 35f; @@ -636,7 +636,7 @@ public class Blocks implements ContentList{ }}; sporePress = new GenericCrafter("spore-press"){{ - requirements(Category.crafting, ItemStack.with(Items.lead, 70, Items.silicon, 60)); + requirements(Category.crafting, ItemStack.with(Items.lead, 35, Items.silicon, 30)); liquidCapacity = 60f; craftTime = 20f; outputLiquid = new LiquidStack(Liquids.oil, 6f); @@ -672,7 +672,7 @@ public class Blocks implements ContentList{ }}; pulverizer = new GenericCrafter("pulverizer"){{ - requirements(Category.crafting, ItemStack.with(Items.copper, 60, Items.lead, 50)); + requirements(Category.crafting, ItemStack.with(Items.copper, 30, Items.lead, 25)); outputItem = new ItemStack(Items.sand, 1); craftEffect = Fx.pulverize; craftTime = 40f; @@ -695,7 +695,7 @@ public class Blocks implements ContentList{ }}; coalCentrifuge = new GenericCrafter("coal-centrifuge"){{ - requirements(Category.crafting, ItemStack.with(Items.titanium, 40, Items.graphite, 80, Items.lead, 60)); + requirements(Category.crafting, ItemStack.with(Items.titanium, 20, Items.graphite, 40, Items.lead, 30)); craftEffect = Fx.smeltsmoke; outputItem = new ItemStack(Items.coal, 1); craftTime = 30f; @@ -707,7 +707,7 @@ public class Blocks implements ContentList{ }}; incinerator = new Incinerator("incinerator"){{ - requirements(Category.crafting, ItemStack.with(Items.graphite, 10, Items.lead, 30)); + requirements(Category.crafting, ItemStack.with(Items.graphite, 5, Items.lead, 15)); health = 90; consumes.power(0.50f); }}; @@ -773,67 +773,67 @@ public class Blocks implements ContentList{ }}; copperWall = new Wall("copper-wall"){{ - requirements(Category.defense, ItemStack.with(Items.copper, 12)); + requirements(Category.defense, ItemStack.with(Items.copper, 6)); health = 80 * wallHealthMultiplier; }}; copperWallLarge = new Wall("copper-wall-large"){{ - requirements(Category.defense, ItemStack.with(Items.copper, 12 * 4)); + requirements(Category.defense, ItemStack.mult(copperWall.buildRequirements, 4)); health = 80 * 4 * wallHealthMultiplier; size = 2; }}; titaniumWall = new Wall("titanium-wall"){{ - requirements(Category.defense, ItemStack.with(Items.titanium, 12)); + requirements(Category.defense, ItemStack.with(Items.titanium, 6)); health = 110 * wallHealthMultiplier; }}; titaniumWallLarge = new Wall("titanium-wall-large"){{ - requirements(Category.defense, ItemStack.with(Items.titanium, 12 * 4)); + requirements(Category.defense, ItemStack.mult(titaniumWall.buildRequirements, 4)); health = 110 * wallHealthMultiplier * 4; size = 2; }}; thoriumWall = new Wall("thorium-wall"){{ - requirements(Category.defense, ItemStack.with(Items.thorium, 12)); + requirements(Category.defense, ItemStack.with(Items.thorium, 6)); health = 200 * wallHealthMultiplier; }}; thoriumWallLarge = new Wall("thorium-wall-large"){{ - requirements(Category.defense, ItemStack.with(Items.thorium, 12 * 4)); + requirements(Category.defense, ItemStack.mult(thoriumWall.buildRequirements, 4)); health = 200 * wallHealthMultiplier * 4; size = 2; }}; phaseWall = new DeflectorWall("phase-wall"){{ - requirements(Category.defense, ItemStack.with(Items.phasefabric, 12)); + requirements(Category.defense, ItemStack.with(Items.phasefabric, 6)); health = 150 * wallHealthMultiplier; }}; phaseWallLarge = new DeflectorWall("phase-wall-large"){{ - requirements(Category.defense, ItemStack.with(Items.phasefabric, 12 * 4)); + requirements(Category.defense, ItemStack.mult(phaseWall.buildRequirements, 4)); health = 150 * 4 * wallHealthMultiplier; size = 2; }}; surgeWall = new SurgeWall("surge-wall"){{ - requirements(Category.defense, ItemStack.with(Items.surgealloy, 12)); + requirements(Category.defense, ItemStack.with(Items.surgealloy, 6)); health = 230 * wallHealthMultiplier; }}; surgeWallLarge = new SurgeWall("surge-wall-large"){{ - requirements(Category.defense, ItemStack.with(Items.surgealloy, 12 * 4)); + requirements(Category.defense, ItemStack.mult(surgeWall.buildRequirements, 4)); health = 230 * 4 * wallHealthMultiplier; size = 2; }}; door = new Door("door"){{ - requirements(Category.defense, ItemStack.with(Items.titanium, 12, Items.silicon, 8)); + requirements(Category.defense, ItemStack.with(Items.graphite, 6, Items.silicon, 4)); health = 100 * wallHealthMultiplier; }}; doorLarge = new Door("door-large"){{ - requirements(Category.defense, ItemStack.with(Items.titanium, 12 * 4, Items.silicon, 8 * 4)); + requirements(Category.defense, ItemStack.mult(door.buildRequirements, 4)); openfx = Fx.dooropenlarge; closefx = Fx.doorcloselarge; health = 100 * 4 * wallHealthMultiplier; @@ -841,7 +841,7 @@ public class Blocks implements ContentList{ }}; mender = new MendProjector("mender"){{ - requirements(Category.effect, ItemStack.with(Items.lead, 60, Items.copper, 50)); + requirements(Category.effect, ItemStack.with(Items.lead, 30, Items.copper, 25)); consumes.power(0.3f); size = 1; reload = 200f; @@ -854,7 +854,7 @@ public class Blocks implements ContentList{ }}; mendProjector = new MendProjector("mend-projector"){{ - requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 50, Items.silicon, 80)); + requirements(Category.effect, ItemStack.with(Items.lead, 100, Items.titanium, 25, Items.silicon, 40)); consumes.power(1.5f); size = 2; reload = 250f; @@ -865,21 +865,21 @@ public class Blocks implements ContentList{ }}; overdriveProjector = new OverdriveProjector("overdrive-projector"){{ - requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 150, Items.silicon, 150, Items.plastanium, 60)); + requirements(Category.effect, ItemStack.with(Items.lead, 100, Items.titanium, 75, Items.silicon, 75, Items.plastanium, 30)); consumes.power(3.50f); size = 2; consumes.item(Items.phasefabric).boost(); }}; forceProjector = new ForceProjector("force-projector"){{ - requirements(Category.effect, ItemStack.with(Items.lead, 200, Items.titanium, 150, Items.silicon, 250)); + requirements(Category.effect, ItemStack.with(Items.lead, 100, Items.titanium, 75, Items.silicon, 125)); size = 3; consumes.item(Items.phasefabric).boost(); consumes.power(3f); }}; shockMine = new ShockMine("shock-mine"){{ - requirements(Category.effect, ItemStack.with(Items.lead, 50, Items.silicon, 25)); + requirements(Category.effect, ItemStack.with(Items.lead, 25, Items.silicon, 12)); hasShadow = false; health = 40; damage = 11; @@ -898,53 +898,53 @@ public class Blocks implements ContentList{ }}; titaniumConveyor = new Conveyor("titanium-conveyor"){{ - requirements(Category.distribution, ItemStack.with(Items.copper, 2, Items.lead, 1, Items.titanium, 1)); + requirements(Category.distribution, ItemStack.with(Items.copper, 1, Items.lead, 1, Items.titanium, 1)); health = 65; speed = 0.08f; }}; junction = new Junction("junction"){{ - requirements(Category.distribution, ItemStack.with(Items.copper, 3), true); + requirements(Category.distribution, ItemStack.with(Items.copper, 1), true); speed = 26; capacity = 15; health = 30; }}; itemBridge = new BufferedItemBridge("bridge-conveyor"){{ - requirements(Category.distribution, ItemStack.with(Items.lead, 8, Items.copper, 8)); + requirements(Category.distribution, ItemStack.with(Items.lead, 4, Items.copper, 4)); range = 4; speed = 70f; bufferCapacity = 15; }}; phaseConveyor = new ItemBridge("phase-conveyor"){{ - requirements(Category.distribution, ItemStack.with(Items.phasefabric, 10, Items.silicon, 15, Items.lead, 20, Items.graphite, 20)); + requirements(Category.distribution, ItemStack.with(Items.phasefabric, 5, Items.silicon, 7, Items.lead, 10, Items.graphite, 10)); range = 12; hasPower = true; consumes.power(0.30f); }}; sorter = new Sorter("sorter"){{ - requirements(Category.distribution, ItemStack.with(Items.lead, 4, Items.copper, 4)); + requirements(Category.distribution, ItemStack.with(Items.lead, 2, Items.copper, 2)); }}; router = new Router("router"){{ - requirements(Category.distribution, ItemStack.with(Items.copper, 6)); + requirements(Category.distribution, ItemStack.with(Items.copper, 3)); }}; distributor = new Router("distributor"){{ - requirements(Category.distribution, ItemStack.with(Items.lead, 8, Items.copper, 8)); + requirements(Category.distribution, ItemStack.with(Items.lead, 4, Items.copper, 4)); size = 2; }}; overflowGate = new OverflowGate("overflow-gate"){{ - requirements(Category.distribution, ItemStack.with(Items.lead, 4, Items.copper, 8)); + requirements(Category.distribution, ItemStack.with(Items.lead, 2, Items.copper, 4)); }}; massDriver = new MassDriver("mass-driver"){{ - requirements(Category.distribution, ItemStack.with(Items.titanium, 250, Items.silicon, 150, Items.lead, 250, Items.thorium, 100)); + requirements(Category.distribution, ItemStack.with(Items.titanium, 125, Items.silicon, 75, Items.lead, 125, Items.thorium, 50)); size = 3; itemCapacity = 120; reloadTime = 200f; @@ -956,12 +956,12 @@ public class Blocks implements ContentList{ //region liquid mechanicalPump = new Pump("mechanical-pump"){{ - requirements(Category.liquid, ItemStack.with(Items.copper, 30, Items.lead, 20)); + requirements(Category.liquid, ItemStack.with(Items.copper, 15, Items.lead, 10)); pumpAmount = 0.1f; }}; rotaryPump = new Pump("rotary-pump"){{ - requirements(Category.liquid, ItemStack.with(Items.copper, 140, Items.lead, 100, Items.silicon, 40, Items.titanium, 70)); + requirements(Category.liquid, ItemStack.with(Items.copper, 70, Items.lead, 50, Items.silicon, 20, Items.titanium, 35)); pumpAmount = 0.8f; consumes.power(0.15f); liquidCapacity = 30f; @@ -970,7 +970,7 @@ public class Blocks implements ContentList{ }}; thermalPump = new Pump("thermal-pump"){{ - requirements(Category.liquid, ItemStack.with(Items.copper, 160, Items.lead, 130, Items.silicon, 60, Items.titanium, 80, Items.thorium, 70)); + requirements(Category.liquid, ItemStack.with(Items.copper, 80, Items.lead, 65, Items.silicon, 30, Items.titanium, 40, Items.thorium, 35)); pumpAmount = 1.5f; consumes.power(0.30f); liquidCapacity = 40f; @@ -984,36 +984,36 @@ public class Blocks implements ContentList{ }}; pulseConduit = new Conduit("pulse-conduit"){{ - requirements(Category.liquid, ItemStack.with(Items.titanium, 1, Items.metaglass, 2)); + requirements(Category.liquid, ItemStack.with(Items.titanium, 1, Items.metaglass, 1)); liquidCapacity = 16f; liquidFlowFactor = 4.9f; health = 90; }}; liquidRouter = new LiquidRouter("liquid-router"){{ - requirements(Category.liquid, ItemStack.with(Items.titanium, 4, Items.metaglass, 4)); + requirements(Category.liquid, ItemStack.with(Items.titanium, 2, Items.metaglass, 2)); liquidCapacity = 20f; }}; liquidTank = new LiquidTank("liquid-tank"){{ - requirements(Category.liquid, ItemStack.with(Items.titanium, 50, Items.metaglass, 50)); + requirements(Category.liquid, ItemStack.with(Items.titanium, 25, Items.metaglass, 25)); size = 3; liquidCapacity = 1500f; health = 500; }}; liquidJunction = new LiquidJunction("liquid-junction"){{ - requirements(Category.liquid, ItemStack.with(Items.titanium, 4, Items.metaglass, 4)); + requirements(Category.liquid, ItemStack.with(Items.titanium, 2, Items.metaglass, 2)); }}; bridgeConduit = new LiquidExtendingBridge("bridge-conduit"){{ - requirements(Category.liquid, ItemStack.with(Items.titanium, 8, Items.metaglass, 8)); + requirements(Category.liquid, ItemStack.with(Items.titanium, 4, Items.metaglass, 4)); range = 4; hasPower = false; }}; phaseConduit = new LiquidBridge("phase-conduit"){{ - requirements(Category.liquid, ItemStack.with(Items.phasefabric, 10, Items.silicon, 15, Items.metaglass, 40, Items.titanium, 20)); + requirements(Category.liquid, ItemStack.with(Items.phasefabric, 5, Items.silicon, 7, Items.metaglass, 20, Items.titanium, 10)); range = 12; hasPower = true; consumes.power(0.30f); @@ -1023,62 +1023,62 @@ public class Blocks implements ContentList{ //region power powerNode = new PowerNode("power-node"){{ - requirements(Category.power, ItemStack.with(Items.copper, 2, Items.lead, 6)); - maxNodes = 4; + requirements(Category.power, ItemStack.with(Items.copper, 1, Items.lead, 3)); + maxNodes = 20; laserRange = 6; }}; powerNodeLarge = new PowerNode("power-node-large"){{ - requirements(Category.power, ItemStack.with(Items.titanium, 10, Items.lead, 20, Items.silicon, 6)); + requirements(Category.power, ItemStack.with(Items.titanium, 5, Items.lead, 10, Items.silicon, 3)); size = 2; - maxNodes = 6; + maxNodes = 30; laserRange = 9.5f; }}; surgeTower = new PowerNode("surge-tower"){{ - requirements(Category.power, ItemStack.with(Items.titanium, 15, Items.lead, 20, Items.silicon, 30, Items.surgealloy, 30)); + requirements(Category.power, ItemStack.with(Items.titanium, 7, Items.lead, 10, Items.silicon, 15, Items.surgealloy, 15)); size = 2; maxNodes = 2; laserRange = 30f; }}; battery = new Battery("battery"){{ - requirements(Category.power, ItemStack.with(Items.copper, 8, Items.lead, 40)); + requirements(Category.power, ItemStack.with(Items.copper, 4, Items.lead, 20)); consumes.powerBuffered(4000f); }}; batteryLarge = new Battery("battery-large"){{ - requirements(Category.power, ItemStack.with(Items.titanium, 40, Items.lead, 80, Items.silicon, 40)); + requirements(Category.power, ItemStack.with(Items.titanium, 20, Items.lead, 40, Items.silicon, 20)); size = 3; consumes.powerBuffered(50000f); }}; combustionGenerator = new BurnerGenerator("combustion-generator"){{ - requirements(Category.power, ItemStack.with(Items.copper, 50, Items.lead, 30)); + requirements(Category.power, ItemStack.with(Items.copper, 25, Items.lead, 15)); powerProduction = 1f; - itemDuration = 60f; + itemDuration = 120f; }}; thermalGenerator = new ThermalGenerator("thermal-generator"){{ - requirements(Category.power, ItemStack.with(Items.copper, 80, Items.graphite, 70, Items.lead, 100, Items.silicon, 70, Items.metaglass, 80)); + requirements(Category.power, ItemStack.with(Items.copper, 40, Items.graphite, 35, Items.lead, 50, Items.silicon, 35, Items.metaglass, 40)); powerProduction = 1.8f; generateEffect = Fx.redgeneratespark; size = 2; }}; turbineGenerator = new BurnerGenerator("turbine-generator"){{ - requirements(Category.power, ItemStack.with(Items.copper, 70, Items.graphite, 50, Items.lead, 80, Items.silicon, 60)); + requirements(Category.power, ItemStack.with(Items.copper, 35, Items.graphite, 25, Items.lead, 40, Items.silicon, 30)); powerProduction = 6f; - itemDuration = 40f; + itemDuration = 90f; consumes.liquid(Liquids.water, 0.05f); hasLiquids = true; size = 2; }}; differentialGenerator = new SingleTypeGenerator(true, false, "differential-generator"){{ - requirements(Category.power, ItemStack.with(Items.copper, 140, Items.titanium, 100, Items.lead, 200, Items.silicon, 130, Items.metaglass, 100)); + requirements(Category.power, ItemStack.with(Items.copper, 70, Items.titanium, 50, Items.lead, 100, Items.silicon, 65, Items.metaglass, 50)); powerProduction = 16f; - itemDuration = 60f; + itemDuration = 120f; hasLiquids = true; size = 3; @@ -1087,27 +1087,28 @@ public class Blocks implements ContentList{ }}; rtgGenerator = new DecayGenerator("rtg-generator"){{ - requirements(Category.power, ItemStack.with(Items.lead, 200, Items.silicon, 150, Items.phasefabric, 50, Items.plastanium, 150, Items.thorium, 100)); + requirements(Category.power, ItemStack.with(Items.lead, 100, Items.silicon, 75, Items.phasefabric, 25, Items.plastanium, 75, Items.thorium, 50)); size = 2; powerProduction = 3f; - itemDuration = 220f; + itemDuration = 440f; }}; solarPanel = new SolarGenerator("solar-panel"){{ - requirements(Category.power, ItemStack.with(Items.lead, 20, Items.silicon, 30)); + requirements(Category.power, ItemStack.with(Items.lead, 10, Items.silicon, 15)); powerProduction = 0.06f; }}; largeSolarPanel = new SolarGenerator("solar-panel-large"){{ - requirements(Category.power, ItemStack.with(Items.lead, 200, Items.silicon, 290, Items.phasefabric, 30)); + requirements(Category.power, ItemStack.with(Items.lead, 100, Items.silicon, 145, Items.phasefabric, 15)); size = 3; powerProduction = 0.9f; }}; thoriumReactor = new NuclearReactor("thorium-reactor"){{ - requirements(Category.power, ItemStack.with(Items.lead, 600, Items.silicon, 400, Items.graphite, 300, Items.thorium, 300, Items.metaglass, 100)); + requirements(Category.power, ItemStack.with(Items.lead, 300, Items.silicon, 200, Items.graphite, 150, Items.thorium, 150, Items.metaglass, 50)); size = 3; health = 700; + itemDuration = 360f; powerProduction = 14f; consumes.item(Items.thorium); heating = 0.02f; @@ -1115,11 +1116,11 @@ public class Blocks implements ContentList{ }}; impactReactor = new ImpactReactor("impact-reactor"){{ - requirements(Category.power, ItemStack.with(Items.lead, 1000, Items.silicon, 600, Items.graphite, 800, Items.thorium, 200, Items.surgealloy, 500, Items.metaglass, 500)); + requirements(Category.power, ItemStack.with(Items.lead, 500, Items.silicon, 300, Items.graphite, 400, Items.thorium, 100, Items.surgealloy, 250, Items.metaglass, 250)); size = 4; health = 900; powerProduction = 130f; - itemDuration = 90f; + itemDuration = 140f; consumes.power(25f); consumes.item(Items.blastCompound); consumes.liquid(Liquids.cryofluid, 0.25f); @@ -1129,7 +1130,7 @@ public class Blocks implements ContentList{ //region production mechanicalDrill = new Drill("mechanical-drill"){{ - requirements(Category.production, ItemStack.with(Items.copper, 25), true); + requirements(Category.production, ItemStack.with(Items.copper, 12), true); tier = 2; drillTime = 600; size = 2; @@ -1138,16 +1139,16 @@ public class Blocks implements ContentList{ }}; pneumaticDrill = new Drill("pneumatic-drill"){{ - requirements(Category.production, ItemStack.with(Items.copper, 35, Items.graphite, 15)); + requirements(Category.production, ItemStack.with(Items.copper, 18, Items.graphite, 10)); tier = 3; - drillTime = 480; + drillTime = 400; size = 2; drawMineItem = true; consumes.liquid(Liquids.water, 0.06f).boost(); }}; laserDrill = new Drill("laser-drill"){{ - requirements(Category.production, ItemStack.with(Items.copper, 70, Items.graphite, 60, Items.silicon, 60, Items.titanium, 40)); + requirements(Category.production, ItemStack.with(Items.copper, 35, Items.graphite, 30, Items.silicon, 30, Items.titanium, 20)); drillTime = 280; size = 3; hasPower = true; @@ -1160,8 +1161,8 @@ public class Blocks implements ContentList{ }}; blastDrill = new Drill("blast-drill"){{ - requirements(Category.production, ItemStack.with(Items.copper, 130, Items.silicon, 120, Items.titanium, 100, Items.thorium, 150)); - drillTime = 270; + requirements(Category.production, ItemStack.with(Items.copper, 65, Items.silicon, 60, Items.titanium, 50, Items.thorium, 75)); + drillTime = 280; size = 4; drawRim = true; hasPower = true; @@ -1177,7 +1178,7 @@ public class Blocks implements ContentList{ }}; waterExtractor = new SolidPump("water-extractor"){{ - requirements(Category.production, ItemStack.with(Items.copper, 50, Items.graphite, 50, Items.lead, 40)); + requirements(Category.production, ItemStack.with(Items.copper, 25, Items.graphite, 25, Items.lead, 20)); result = Liquids.water; pumpAmount = 0.13f; size = 2; @@ -1189,7 +1190,7 @@ public class Blocks implements ContentList{ }}; cultivator = new Cultivator("cultivator"){{ - requirements(Category.production, ItemStack.with(Items.copper, 20, Items.lead, 50, Items.silicon, 20)); + requirements(Category.production, ItemStack.with(Items.copper, 10, Items.lead, 25, Items.silicon, 10)); outputItem = new ItemStack(Items.sporePod, 1); craftTime = 140; size = 2; @@ -1202,7 +1203,7 @@ public class Blocks implements ContentList{ }}; oilExtractor = new Fracker("oil-extractor"){{ - requirements(Category.production, ItemStack.with(Items.copper, 300, Items.graphite, 350, Items.lead, 230, Items.thorium, 230, Items.silicon, 150)); + requirements(Category.production, ItemStack.with(Items.copper, 150, Items.graphite, 175, Items.lead, 115, Items.thorium, 115, Items.silicon, 75)); result = Liquids.oil; updateEffect = Fx.pulverize; liquidCapacity = 50f; @@ -1221,7 +1222,7 @@ public class Blocks implements ContentList{ //region storage coreShard = new CoreBlock("core-shard"){{ - requirements(Category.effect, () -> false, ItemStack.with(Items.titanium, 2000)); + requirements(Category.effect, () -> false, ItemStack.with(Items.titanium, 1000)); alwaysUnlocked = true; health = 1100; @@ -1230,7 +1231,7 @@ public class Blocks implements ContentList{ }}; coreFoundation = new CoreBlock("core-foundation"){{ - requirements(Category.effect, () -> false, ItemStack.with(Items.titanium, 3000, Items.silicon, 2000)); + requirements(Category.effect, () -> false, ItemStack.with(Items.titanium, 1500, Items.silicon, 1000)); health = 2000; itemCapacity = 9000; @@ -1238,7 +1239,7 @@ public class Blocks implements ContentList{ }}; coreNucleus = new CoreBlock("core-nucleus"){{ - requirements(Category.effect, () -> false, ItemStack.with(Items.titanium, 8000, Items.silicon, 4000, Items.surgealloy, 2000)); + requirements(Category.effect, () -> false, ItemStack.with(Items.titanium, 4000, Items.silicon, 2000, Items.surgealloy, 1000)); health = 4000; itemCapacity = 13000; @@ -1246,24 +1247,24 @@ public class Blocks implements ContentList{ }}; vault = new Vault("vault"){{ - requirements(Category.effect, ItemStack.with(Items.titanium, 500, Items.thorium, 250)); + requirements(Category.effect, ItemStack.with(Items.titanium, 250, Items.thorium, 125)); size = 3; itemCapacity = 1000; }}; container = new Vault("container"){{ - requirements(Category.effect, ItemStack.with(Items.titanium, 200)); + requirements(Category.effect, ItemStack.with(Items.titanium, 100)); size = 2; itemCapacity = 300; }}; unloader = new Unloader("unloader"){{ - requirements(Category.effect, ItemStack.with(Items.titanium, 50, Items.silicon, 60)); + requirements(Category.effect, ItemStack.with(Items.titanium, 25, Items.silicon, 30)); speed = 7f; }}; launchPad = new LaunchPad("launch-pad"){{ - requirements(Category.effect, () -> world.isZone(), ItemStack.with(Items.copper, 500, Items.silicon, 150, Items.lead, 200)); + requirements(Category.effect, () -> world.isZone(), ItemStack.with(Items.copper, 250, Items.silicon, 75, Items.lead, 100)); size = 3; itemCapacity = 100; launchTime = 60f * 16; @@ -1272,7 +1273,7 @@ public class Blocks implements ContentList{ }}; launchPadLarge = new LaunchPad("launch-pad-large"){{ - requirements(Category.effect, () -> world.isZone(), ItemStack.with(Items.titanium, 400, Items.silicon, 300, Items.lead, 500, Items.plastanium, 150)); + requirements(Category.effect, () -> world.isZone(), ItemStack.with(Items.titanium, 200, Items.silicon, 150, Items.lead, 250, Items.plastanium, 75)); size = 4; itemCapacity = 250; launchTime = 60f * 14; @@ -1285,16 +1286,16 @@ public class Blocks implements ContentList{ //region turrets duo = new DoubleTurret("duo"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 70), true); + requirements(Category.turret, ItemStack.with(Items.copper, 35), true); ammo( - Items.copper, Bullets.standardCopper, - Items.graphite, Bullets.standardDense, - Items.pyratite, Bullets.standardIncendiary, - Items.silicon, Bullets.standardHoming + Items.copper, Bullets.standardCopper, + Items.graphite, Bullets.standardDense, + Items.pyratite, Bullets.standardIncendiary, + Items.silicon, Bullets.standardHoming ); reload = 20f; restitution = 0.03f; - range = 95f; + range = 100; shootCone = 15f; ammoUseEffect = Fx.shellEjectSmall; health = 250; @@ -1303,10 +1304,10 @@ public class Blocks implements ContentList{ }}; scatter = new BurstTurret("scatter"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 170, Items.lead, 90)); + requirements(Category.turret, ItemStack.with(Items.copper, 85, Items.lead, 45)); ammo( - Items.scrap, Bullets.flakScrap, - Items.lead, Bullets.flakLead + Items.scrap, Bullets.flakScrap, + Items.lead, Bullets.flakLead ); reload = 18f; range = 170f; @@ -1324,10 +1325,10 @@ public class Blocks implements ContentList{ }}; scorch = new ItemTurret("scorch"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 50, Items.graphite, 45)); + requirements(Category.turret, ItemStack.with(Items.copper, 25, Items.graphite, 22)); ammo( - Items.coal, Bullets.basicFlame, - Items.pyratite, Bullets.pyraFlame + Items.coal, Bullets.basicFlame, + Items.pyratite, Bullets.pyraFlame ); recoil = 0f; reload = 4f; @@ -1339,11 +1340,11 @@ public class Blocks implements ContentList{ }}; hail = new ArtilleryTurret("hail"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 80, Items.graphite, 35)); + requirements(Category.turret, ItemStack.with(Items.copper, 40, Items.graphite, 17)); ammo( - Items.graphite, Bullets.artilleryDense, - Items.silicon, Bullets.artilleryHoming, - Items.pyratite, Bullets.artlleryIncendiary + Items.graphite, Bullets.artilleryDense, + Items.silicon, Bullets.artilleryHoming, + Items.pyratite, Bullets.artlleryIncendiary ); reload = 60f; recoil = 2f; @@ -1354,12 +1355,12 @@ public class Blocks implements ContentList{ }}; wave = new LiquidTurret("wave"){{ - requirements(Category.turret, ItemStack.with(Items.metaglass, 90, Items.lead, 150)); + requirements(Category.turret, ItemStack.with(Items.metaglass, 45, Items.lead, 75)); ammo( - Liquids.water, Bullets.waterShot, - Liquids.slag, Bullets.slagShot, - Liquids.cryofluid, Bullets.cryoShot, - Liquids.oil, Bullets.oilShot + Liquids.water, Bullets.waterShot, + Liquids.slag, Bullets.slagShot, + Liquids.cryofluid, Bullets.cryoShot, + Liquids.oil, Bullets.oilShot ); size = 2; recoil = 0f; @@ -1381,7 +1382,7 @@ public class Blocks implements ContentList{ }}; lancer = new ChargeTurret("lancer"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 50, Items.lead, 100, Items.silicon, 90)); + requirements(Category.turret, ItemStack.with(Items.copper, 25, Items.lead, 50, Items.silicon, 45)); range = 155f; chargeTime = 50f; chargeMaxDelay = 30f; @@ -1403,7 +1404,7 @@ public class Blocks implements ContentList{ }}; arc = new PowerTurret("arc"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 70, Items.lead, 70)); + requirements(Category.turret, ItemStack.with(Items.copper, 35, Items.lead, 35)); shootType = Bullets.arc; reload = 24f; shootCone = 40f; @@ -1419,11 +1420,11 @@ public class Blocks implements ContentList{ }}; swarmer = new BurstTurret("swarmer"){{ - requirements(Category.turret, ItemStack.with(Items.graphite, 70, Items.titanium, 70, Items.plastanium, 90, Items.silicon, 60)); + requirements(Category.turret, ItemStack.with(Items.graphite, 35, Items.titanium, 35, Items.plastanium, 45, Items.silicon, 30)); ammo( - Items.blastCompound, Bullets.missileExplosive, - Items.pyratite, Bullets.missileIncendiary, - Items.surgealloy, Bullets.missileSurge + Items.blastCompound, Bullets.missileExplosive, + Items.pyratite, Bullets.missileIncendiary, + Items.surgealloy, Bullets.missileSurge ); reload = 40f; shots = 4; @@ -1436,13 +1437,13 @@ public class Blocks implements ContentList{ }}; salvo = new BurstTurret("salvo"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 210, Items.graphite, 190, Items.titanium, 120)); + requirements(Category.turret, ItemStack.with(Items.copper, 105, Items.graphite, 95, Items.titanium, 60)); ammo( - Items.copper, Bullets.standardCopper, - Items.graphite, Bullets.standardDense, - Items.pyratite, Bullets.standardIncendiary, - Items.silicon, Bullets.standardHoming, - Items.thorium, Bullets.standardThorium + Items.copper, Bullets.standardCopper, + Items.graphite, Bullets.standardDense, + Items.pyratite, Bullets.standardIncendiary, + Items.silicon, Bullets.standardHoming, + Items.thorium, Bullets.standardThorium ); size = 2; @@ -1460,7 +1461,7 @@ public class Blocks implements ContentList{ }}; fuse = new ItemTurret("fuse"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 450, Items.graphite, 450, Items.thorium, 200)); + requirements(Category.turret, ItemStack.with(Items.copper, 225, Items.graphite, 225, Items.thorium, 100)); reload = 35f; shootShake = 4f; @@ -1501,24 +1502,24 @@ public class Blocks implements ContentList{ for(int i = 0; i < 7; i++){ Tmp.v1.trns(b.rot(), i * 8f); float sl = Mathf.clamp(b.fout() - 0.5f) * (80f - i * 10); - Shapes.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, 4f, sl, b.rot() + 90); - Shapes.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, 4f, sl, b.rot() - 90); + Drawf.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, 4f, sl, b.rot() + 90); + Drawf.tri(b.x + Tmp.v1.x, b.y + Tmp.v1.y, 4f, sl, b.rot() - 90); } - Shapes.tri(b.x, b.y, 20f * b.fout(), (rayLength + 50), b.rot()); - Shapes.tri(b.x, b.y, 20f * b.fout(), 10f, b.rot() + 180f); + Drawf.tri(b.x, b.y, 20f * b.fout(), (rayLength + 50), b.rot()); + Drawf.tri(b.x, b.y, 20f * b.fout(), 10f, b.rot() + 180f); Draw.reset(); } }); }}; ripple = new ArtilleryTurret("ripple"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 300, Items.graphite, 270, Items.titanium, 120)); + requirements(Category.turret, ItemStack.with(Items.copper, 150, Items.graphite, 135, Items.titanium, 60)); ammo( - Items.graphite, Bullets.artilleryDense, - Items.silicon, Bullets.artilleryHoming, - Items.pyratite, Bullets.artlleryIncendiary, - Items.blastCompound, Bullets.artilleryExplosive, - Items.plastanium, Bullets.arilleryPlastic + Items.graphite, Bullets.artilleryDense, + Items.silicon, Bullets.artilleryHoming, + Items.pyratite, Bullets.artlleryIncendiary, + Items.blastCompound, Bullets.artilleryExplosive, + Items.plastanium, Bullets.arilleryPlastic ); size = 3; shots = 4; @@ -1537,11 +1538,11 @@ public class Blocks implements ContentList{ }}; cyclone = new ItemTurret("cyclone"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 400, Items.titanium, 250, Items.plastanium, 160)); + requirements(Category.turret, ItemStack.with(Items.copper, 200, Items.titanium, 125, Items.plastanium, 80)); ammo( - Items.blastCompound, Bullets.flakExplosive, - Items.plastanium, Bullets.flakPlastic, - Items.surgealloy, Bullets.flakSurge + Items.blastCompound, Bullets.flakExplosive, + Items.plastanium, Bullets.flakPlastic, + Items.surgealloy, Bullets.flakSurge ); xRand = 4f; reload = 6f; @@ -1556,11 +1557,11 @@ public class Blocks implements ContentList{ }}; spectre = new DoubleTurret("spectre"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 700, Items.graphite, 600, Items.surgealloy, 500, Items.plastanium, 350, Items.thorium, 500)); + requirements(Category.turret, ItemStack.with(Items.copper, 350, Items.graphite, 300, Items.surgealloy, 250, Items.plastanium, 175, Items.thorium, 250)); ammo( - Items.graphite, Bullets.standardDenseBig, - Items.pyratite, Bullets.standardIncendiaryBig, - Items.thorium, Bullets.standardThoriumBig + Items.graphite, Bullets.standardDenseBig, + Items.pyratite, Bullets.standardIncendiaryBig, + Items.thorium, Bullets.standardThoriumBig ); reload = 6f; coolantMultiplier = 0.5f; @@ -1577,11 +1578,11 @@ public class Blocks implements ContentList{ shootCone = 24f; health = 155 * size * size; - consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 2f)).update(false).optional(true, false); + consumes.add(new ConsumeLiquidFilter(liquid -> liquid.temperature <= 0.5f && liquid.flammability < 0.1f, 2f)).update(false).optional(true, true); }}; meltdown = new LaserTurret("meltdown"){{ - requirements(Category.turret, ItemStack.with(Items.copper, 500, Items.lead, 700, Items.graphite, 600, Items.surgealloy, 650, Items.silicon, 650)); + requirements(Category.turret, ItemStack.with(Items.copper, 250, Items.lead, 350, Items.graphite, 300, Items.surgealloy, 325, Items.silicon, 325)); shootType = Bullets.meltdownLaser; shootEffect = Fx.shootBigSmoke2; shootCone = 40f; @@ -1602,9 +1603,9 @@ public class Blocks implements ContentList{ //region units draugFactory = new UnitFactory("draug-factory"){{ - requirements(Category.units, ItemStack.with(Items.copper, 60, Items.lead, 140)); + requirements(Category.units, ItemStack.with(Items.copper, 30, Items.lead, 70)); type = UnitTypes.draug; - produceTime = 5000; + produceTime = 2500; size = 2; maxSpawn = 2; consumes.power(1.1f); @@ -1612,92 +1613,92 @@ public class Blocks implements ContentList{ }}; spiritFactory = new UnitFactory("spirit-factory"){{ - requirements(Category.units, ItemStack.with(Items.metaglass, 70, Items.lead, 110, Items.silicon, 90)); + requirements(Category.units, ItemStack.with(Items.metaglass, 35, Items.lead, 55, Items.silicon, 45)); type = UnitTypes.spirit; - produceTime = 5700; + produceTime = 2850; size = 2; maxSpawn = 2; consumes.power(0.80f); - consumes.items(new ItemStack(Items.silicon, 30), new ItemStack(Items.lead, 30)); + consumes.items(new ItemStack(Items.silicon, 10), new ItemStack(Items.lead, 15)); }}; phantomFactory = new UnitFactory("phantom-factory"){{ - requirements(Category.units, ItemStack.with(Items.titanium, 90, Items.thorium, 80, Items.lead, 110, Items.silicon, 210)); + requirements(Category.units, ItemStack.with(Items.titanium, 45, Items.thorium, 40, Items.lead, 55, Items.silicon, 105)); type = UnitTypes.phantom; - produceTime = 7300; + produceTime = 3650; size = 2; maxSpawn = 2; consumes.power(2f); - consumes.items(new ItemStack(Items.silicon, 70), new ItemStack(Items.lead, 80), new ItemStack(Items.titanium, 80)); + consumes.items(new ItemStack(Items.silicon, 30), new ItemStack(Items.lead, 20), new ItemStack(Items.titanium, 10)); }}; wraithFactory = new UnitFactory("wraith-factory"){{ - requirements(Category.units, padVisible, ItemStack.with(Items.titanium, 60, Items.lead, 80, Items.silicon, 90)); + requirements(Category.units, padVisible, ItemStack.with(Items.titanium, 30, Items.lead, 40, Items.silicon, 45)); type = UnitTypes.wraith; - produceTime = 1500; + produceTime = 750; size = 2; consumes.power(0.6f); - consumes.items(new ItemStack(Items.silicon, 20), new ItemStack(Items.titanium, 10)); + consumes.items(new ItemStack(Items.silicon, 10), new ItemStack(Items.titanium, 5)); }}; ghoulFactory = new UnitFactory("ghoul-factory"){{ - requirements(Category.units, padVisible, ItemStack.with(Items.titanium, 150, Items.lead, 130, Items.silicon, 220)); + requirements(Category.units, padVisible, ItemStack.with(Items.titanium, 75, Items.lead, 65, Items.silicon, 110)); type = UnitTypes.ghoul; - produceTime = 2300; + produceTime = 1150; size = 3; consumes.power(1.2f); - consumes.items(new ItemStack(Items.silicon, 30), new ItemStack(Items.titanium, 20)); + consumes.items(new ItemStack(Items.silicon, 15), new ItemStack(Items.titanium, 10)); }}; revenantFactory = new UnitFactory("revenant-factory"){{ - requirements(Category.units, padVisible, ItemStack.with(Items.plastanium, 100, Items.titanium, 300, Items.lead, 300, Items.silicon, 400)); + requirements(Category.units, padVisible, ItemStack.with(Items.plastanium, 50, Items.titanium, 150, Items.lead, 150, Items.silicon, 200)); type = UnitTypes.revenant; - produceTime = 4000; + produceTime = 2000; size = 4; consumes.power(3f); - consumes.items(new ItemStack(Items.silicon, 80), new ItemStack(Items.titanium, 80)); + consumes.items(new ItemStack(Items.silicon, 40), new ItemStack(Items.titanium, 30)); }}; daggerFactory = new UnitFactory("dagger-factory"){{ - requirements(Category.units, padVisible, ItemStack.with(Items.lead, 110, Items.silicon, 70)); + requirements(Category.units, padVisible, ItemStack.with(Items.lead, 55, Items.silicon, 35)); type = UnitTypes.dagger; - produceTime = 1700; + produceTime = 850; size = 2; consumes.power(0.5f); - consumes.items(new ItemStack(Items.silicon, 15)); + consumes.items(new ItemStack(Items.silicon, 6)); }}; crawlerFactory = new UnitFactory("crawler-factory"){{ - requirements(Category.units, padVisible, ItemStack.with(Items.lead, 50, Items.silicon, 80)); + requirements(Category.units, padVisible, ItemStack.with(Items.lead, 25, Items.silicon, 30)); type = UnitTypes.crawler; - produceTime = 500; + produceTime = 250; size = 2; - maxSpawn = 5; - consumes.power(0.5f); - consumes.items(new ItemStack(Items.coal, 5), new ItemStack(Items.silicon, 5)); + maxSpawn = 6; + consumes.power(0.4f); + consumes.items(new ItemStack(Items.coal, 6)); }}; titanFactory = new UnitFactory("titan-factory"){{ - requirements(Category.units, padVisible, ItemStack.with(Items.graphite, 100, Items.lead, 100, Items.silicon, 90)); + requirements(Category.units, padVisible, ItemStack.with(Items.graphite, 50, Items.lead, 50, Items.silicon, 45)); type = UnitTypes.titan; - produceTime = 2100; + produceTime = 1050; size = 3; consumes.power(0.60f); - consumes.items(new ItemStack(Items.silicon, 30)); + consumes.items(new ItemStack(Items.silicon, 12)); }}; fortressFactory = new UnitFactory("fortress-factory"){{ - requirements(Category.units, padVisible, ItemStack.with(Items.thorium, 80, Items.lead, 220, Items.silicon, 150)); + requirements(Category.units, padVisible, ItemStack.with(Items.thorium, 40, Items.lead, 110, Items.silicon, 75)); type = UnitTypes.fortress; - produceTime = 4000; + produceTime = 2000; size = 3; maxSpawn = 3; consumes.power(1.4f); - consumes.items(new ItemStack(Items.silicon, 40), new ItemStack(Items.graphite, 30)); + consumes.items(new ItemStack(Items.silicon, 20), new ItemStack(Items.graphite, 10)); }}; repairPoint = new RepairPoint("repair-point"){{ - requirements(Category.units, ItemStack.with(Items.lead, 30, Items.copper, 30, Items.silicon, 30)); + requirements(Category.units, ItemStack.with(Items.lead, 15, Items.copper, 15, Items.silicon, 15)); repairSpeed = 0.3f; powerUse = 1f; }}; @@ -1706,49 +1707,49 @@ public class Blocks implements ContentList{ //region upgrades dartPad = new MechPad("dart-mech-pad"){{ - requirements(Category.upgrade, ItemStack.with(Items.lead, 200, Items.graphite, 100, Items.copper, 150)); + requirements(Category.upgrade, ItemStack.with(Items.lead, 100, Items.graphite, 50, Items.copper, 75)); mech = Mechs.alpha; size = 2; consumes.power(0.5f); }}; deltaPad = new MechPad("delta-mech-pad"){{ - requirements(Category.upgrade, ItemStack.with(Items.lead, 350, Items.titanium, 350, Items.copper, 400, Items.silicon, 450, Items.thorium, 300)); + requirements(Category.upgrade, ItemStack.with(Items.lead, 175, Items.titanium, 175, Items.copper, 200, Items.silicon, 225, Items.thorium, 150)); mech = Mechs.delta; size = 2; consumes.power(0.7f); }}; tauPad = new MechPad("tau-mech-pad"){{ - requirements(Category.upgrade, ItemStack.with(Items.lead, 250, Items.titanium, 250, Items.copper, 250, Items.silicon, 250)); + requirements(Category.upgrade, ItemStack.with(Items.lead, 125, Items.titanium, 125, Items.copper, 125, Items.silicon, 125)); mech = Mechs.tau; size = 2; consumes.power(1f); }}; omegaPad = new MechPad("omega-mech-pad"){{ - requirements(Category.upgrade, ItemStack.with(Items.lead, 450, Items.graphite, 550, Items.silicon, 650, Items.thorium, 600, Items.surgealloy, 240)); + requirements(Category.upgrade, ItemStack.with(Items.lead, 225, Items.graphite, 275, Items.silicon, 325, Items.thorium, 300, Items.surgealloy, 120)); mech = Mechs.omega; size = 3; consumes.power(1.2f); }}; javelinPad = new MechPad("javelin-ship-pad"){{ - requirements(Category.upgrade, ItemStack.with(Items.lead, 350, Items.silicon, 450, Items.titanium, 500, Items.plastanium, 400, Items.phasefabric, 200)); + requirements(Category.upgrade, ItemStack.with(Items.lead, 175, Items.silicon, 225, Items.titanium, 250, Items.plastanium, 200, Items.phasefabric, 100)); mech = Mechs.javelin; size = 2; consumes.power(0.8f); }}; tridentPad = new MechPad("trident-ship-pad"){{ - requirements(Category.upgrade, ItemStack.with(Items.lead, 250, Items.copper, 250, Items.silicon, 250, Items.titanium, 300, Items.plastanium, 200)); + requirements(Category.upgrade, ItemStack.with(Items.lead, 125, Items.copper, 125, Items.silicon, 125, Items.titanium, 150, Items.plastanium, 100)); mech = Mechs.trident; size = 2; consumes.power(1f); }}; glaivePad = new MechPad("glaive-ship-pad"){{ - requirements(Category.upgrade, ItemStack.with(Items.lead, 450, Items.silicon, 650, Items.titanium, 700, Items.plastanium, 600, Items.surgealloy, 200)); + requirements(Category.upgrade, ItemStack.with(Items.lead, 225, Items.silicon, 325, Items.titanium, 350, Items.plastanium, 300, Items.surgealloy, 100)); mech = Mechs.glaive; size = 3; consumes.power(1.2f); @@ -1756,4 +1757,4 @@ public class Blocks implements ContentList{ //endregion } -} +} \ No newline at end of file diff --git a/core/src/io/anuke/mindustry/content/Bullets.java b/core/src/io/anuke/mindustry/content/Bullets.java index 13d4496693..992bc626c9 100644 --- a/core/src/io/anuke/mindustry/content/Bullets.java +++ b/core/src/io/anuke/mindustry/content/Bullets.java @@ -115,7 +115,7 @@ public class Bullets implements ContentList{ lifetime = 70f; bulletWidth = bulletHeight = 14f; collidesTiles = false; - ammoMultiplier = 2f; + ammoMultiplier = 4f; splashDamageRadius = 45f; splashDamage = 50f; backColor = Pal.missileYellowBack; @@ -137,7 +137,7 @@ public class Bullets implements ContentList{ flakLead = new FlakBulletType(4.2f, 3){{ lifetime = 60f; - ammoMultiplier = 3f; + ammoMultiplier = 4f; shootEffect = Fx.shootSmall; bulletWidth = 6f; bulletHeight = 8f; @@ -148,7 +148,7 @@ public class Bullets implements ContentList{ flakScrap = new FlakBulletType(4f, 3){{ lifetime = 60f; - ammoMultiplier = 3f; + ammoMultiplier = 5f; shootEffect = Fx.shootSmall; reloadMultiplier = 0.5f; bulletWidth = 6f; @@ -171,7 +171,7 @@ public class Bullets implements ContentList{ flakExplosive = new FlakBulletType(4f, 5){{ //default bullet type, no changes shootEffect = Fx.shootBig; - ammoMultiplier = 2f; + ammoMultiplier = 4f; }}; flakSurge = new FlakBulletType(4f, 7){{ @@ -188,7 +188,7 @@ public class Bullets implements ContentList{ drag = -0.01f; splashDamageRadius = 30f; splashDamage = 30f; - ammoMultiplier = 2f; + ammoMultiplier = 4f; lifetime = 150f; hitEffect = Fx.blastExplosion; despawnEffect = Fx.blastExplosion; @@ -286,14 +286,14 @@ public class Bullets implements ContentList{ lifetime = 60f; shootEffect = Fx.shootSmall; smokeEffect = Fx.shootSmallSmoke; - ammoMultiplier = 1; + ammoMultiplier = 2; }}; standardDense = new BasicBulletType(3.5f, 18, "bullet"){{ bulletWidth = 9f; bulletHeight = 12f; reloadMultiplier = 0.6f; - ammoMultiplier = 2; + ammoMultiplier = 4; lifetime = 60f; }}; @@ -302,7 +302,7 @@ public class Bullets implements ContentList{ bulletHeight = 13f; shootEffect = Fx.shootBig; smokeEffect = Fx.shootBigSmoke; - ammoMultiplier = 2; + ammoMultiplier = 4; lifetime = 60f; }}; @@ -311,7 +311,7 @@ public class Bullets implements ContentList{ bulletHeight = 9f; homingPower = 5f; reloadMultiplier = 1.4f; - ammoMultiplier = 3; + ammoMultiplier = 5; lifetime = 60f; }}; diff --git a/core/src/io/anuke/mindustry/content/Fx.java b/core/src/io/anuke/mindustry/content/Fx.java index b8164ee735..ce165451c0 100644 --- a/core/src/io/anuke/mindustry/content/Fx.java +++ b/core/src/io/anuke/mindustry/content/Fx.java @@ -11,7 +11,7 @@ import io.anuke.mindustry.entities.effect.GroundEffectEntity.GroundEffect; import io.anuke.mindustry.entities.type.BaseUnit; import io.anuke.mindustry.game.ContentList; import io.anuke.mindustry.graphics.Pal; -import io.anuke.mindustry.graphics.Shapes; +import io.anuke.mindustry.graphics.Drawf; import io.anuke.mindustry.type.Item; import io.anuke.mindustry.type.Item.Icon; @@ -672,16 +672,16 @@ public class Fx implements ContentList{ shootSmall = new Effect(8, e -> { Draw.color(Pal.lighterOrange, Pal.lightOrange, e.fin()); float w = 1f + 5 * e.fout(); - Shapes.tri(e.x, e.y, w, 15f * e.fout(), e.rotation); - Shapes.tri(e.x, e.y, w, 3f * e.fout(), e.rotation + 180f); + Drawf.tri(e.x, e.y, w, 15f * e.fout(), e.rotation); + Drawf.tri(e.x, e.y, w, 3f * e.fout(), e.rotation + 180f); Draw.reset(); }); shootHeal = new Effect(8, e -> { Draw.color(Pal.heal); float w = 1f + 5 * e.fout(); - Shapes.tri(e.x, e.y, w, 17f * e.fout(), e.rotation); - Shapes.tri(e.x, e.y, w, 4f * e.fout(), e.rotation + 180f); + Drawf.tri(e.x, e.y, w, 17f * e.fout(), e.rotation); + Drawf.tri(e.x, e.y, w, 4f * e.fout(), e.rotation + 180f); Draw.reset(); }); @@ -698,16 +698,16 @@ public class Fx implements ContentList{ shootBig = new Effect(9, e -> { Draw.color(Pal.lighterOrange, Pal.lightOrange, e.fin()); float w = 1.2f + 7 * e.fout(); - Shapes.tri(e.x, e.y, w, 25f * e.fout(), e.rotation); - Shapes.tri(e.x, e.y, w, 4f * e.fout(), e.rotation + 180f); + Drawf.tri(e.x, e.y, w, 25f * e.fout(), e.rotation); + Drawf.tri(e.x, e.y, w, 4f * e.fout(), e.rotation + 180f); Draw.reset(); }); shootBig2 = new Effect(10, e -> { Draw.color(Pal.lightOrange, Color.GRAY, e.fin()); float w = 1.2f + 8 * e.fout(); - Shapes.tri(e.x, e.y, w, 29f * e.fout(), e.rotation); - Shapes.tri(e.x, e.y, w, 5f * e.fout(), e.rotation + 180f); + Drawf.tri(e.x, e.y, w, 29f * e.fout(), e.rotation); + Drawf.tri(e.x, e.y, w, 5f * e.fout(), e.rotation + 180f); Draw.reset(); }); @@ -829,7 +829,7 @@ public class Fx implements ContentList{ Draw.color(Pal.lancerLaser); for(int i : Mathf.signs){ - Shapes.tri(e.x, e.y, 4f * e.fout(), 29f, e.rotation + 90f * i); + Drawf.tri(e.x, e.y, 4f * e.fout(), 29f, e.rotation + 90f * i); } Draw.reset(); @@ -867,7 +867,7 @@ public class Fx implements ContentList{ Draw.color(Pal.lancerLaser); Angles.randLenVectors(e.id, 2, 1f + 20f * e.fout(), e.rotation, 120f, (x, y) -> { - Shapes.tri(e.x + x, e.y + y, e.fslope() * 3f + 1, e.fslope() * 3f + 1, Mathf.angle(x, y)); + Drawf.tri(e.x + x, e.y + y, e.fslope() * 3f + 1, e.fslope() * 3f + 1, Mathf.angle(x, y)); }); Draw.reset(); diff --git a/core/src/io/anuke/mindustry/content/Mechs.java b/core/src/io/anuke/mindustry/content/Mechs.java index 801029bae9..c79f3ee6fa 100644 --- a/core/src/io/anuke/mindustry/content/Mechs.java +++ b/core/src/io/anuke/mindustry/content/Mechs.java @@ -32,6 +32,7 @@ public class Mechs implements ContentList{ mineSpeed = 1.5f; mass = 1.2f; speed = 0.5f; + itemCapacity = 40; boostSpeed = 0.95f; buildPower = 1.2f; engineColor = Color.valueOf("ffd37f"); @@ -151,7 +152,7 @@ public class Mechs implements ContentList{ { drillPower = 2; mineSpeed = 1.5f; - itemCapacity = 50; + itemCapacity = 80; speed = 0.36f; boostSpeed = 0.6f; mass = 4f; diff --git a/core/src/io/anuke/mindustry/content/TechTree.java b/core/src/io/anuke/mindustry/content/TechTree.java index 8228b78eb2..6ca60ed2c1 100644 --- a/core/src/io/anuke/mindustry/content/TechTree.java +++ b/core/src/io/anuke/mindustry/content/TechTree.java @@ -294,7 +294,7 @@ public class TechTree implements ContentList{ private TechNode node(Block block, Runnable children){ ItemStack[] requirements = new ItemStack[block.buildRequirements.length]; for(int i = 0; i < requirements.length; i++){ - requirements[i] = new ItemStack(block.buildRequirements[i].item, block.buildRequirements[i].amount * 5); + requirements[i] = new ItemStack(block.buildRequirements[i].item, 30 + block.buildRequirements[i].amount * 5); } return new TechNode(block, requirements, children); diff --git a/core/src/io/anuke/mindustry/content/Zones.java b/core/src/io/anuke/mindustry/content/Zones.java index 6cc126c37a..bb0a5a692f 100644 --- a/core/src/io/anuke/mindustry/content/Zones.java +++ b/core/src/io/anuke/mindustry/content/Zones.java @@ -12,7 +12,7 @@ import io.anuke.mindustry.world.Block; public class Zones implements ContentList{ public static Zone groundZero, desertWastes, - craters, frozenForest, ruinousShores, stainedMountains, tarFields, + craters, frozenForest, ruinousShores, stainedMountains, tarFields, fungalPass, saltFlats, overgrowth, impact0078, crags, desolateRift, nuclearComplex; @@ -20,8 +20,8 @@ public class Zones implements ContentList{ public void load(){ groundZero = new Zone("groundZero", new MapGenerator("groundZero", 1)){{ - baseLaunchCost = ItemStack.with(Items.copper, -100); - startingItems = ItemStack.list(Items.copper, 100); + baseLaunchCost = ItemStack.with(Items.copper, -60); + startingItems = ItemStack.list(Items.copper, 60); alwaysUnlocked = true; conditionWave = 5; launchPeriod = 5; @@ -29,7 +29,7 @@ public class Zones implements ContentList{ }}; desertWastes = new Zone("desertWastes", new DesertWastesGenerator(260, 260)){{ - startingItems = ItemStack.list(Items.copper, 200); + startingItems = ItemStack.list(Items.copper, 120); conditionWave = 20; launchPeriod = 10; loadout = Loadouts.advancedShard; @@ -78,8 +78,7 @@ public class Zones implements ContentList{ }}; saltFlats = new Zone("saltFlats", new MapGenerator("saltFlats")){{ - baseLaunchCost = ItemStack.with(Items.copper, -100); - startingItems = ItemStack.list(Items.copper, 100); + startingItems = ItemStack.list(Items.copper, 200, Items.silicon, 100, Items.lead, 200); alwaysUnlocked = true; conditionWave = 5; launchPeriod = 5; @@ -93,35 +92,25 @@ public class Zones implements ContentList{ .decor(new Decoration(Blocks.snow, Blocks.sporeCluster, 0.02))){{ loadout = Loadouts.basicFoundation; baseLaunchCost = ItemStack.with(); - startingItems = ItemStack.list(Items.copper, 400); + startingItems = ItemStack.list(Items.copper, 250); conditionWave = 10; blockRequirements = new Block[]{Blocks.junction, Blocks.router}; zoneRequirements = ZoneRequirement.with(groundZero, 10); resources = new Item[]{Items.copper, Items.lead, Items.coal}; }}; - craters = new Zone("craters", new MapGenerator("craters", 1).dist(0).decor(new Decoration(Blocks.snow, Blocks.sporeCluster, 0.004))){{ - startingItems = ItemStack.list(Items.copper, 200); + craters = new Zone("craters", new MapGenerator("craters", 1).decor(new Decoration(Blocks.snow, Blocks.sporeCluster, 0.004))){{ + startingItems = ItemStack.list(Items.copper, 100); conditionWave = 10; zoneRequirements = ZoneRequirement.with(frozenForest, 10); blockRequirements = new Block[]{Blocks.mender, Blocks.combustionGenerator}; resources = new Item[]{Items.copper, Items.lead, Items.coal, Items.sand, Items.scrap}; }}; - overgrowth = new Zone("overgrowth", new MapGenerator("overgrowth")){{ - startingItems = ItemStack.list(Items.copper, 3000, Items.lead, 2000, Items.silicon, 1000, Items.metaglass, 500); - conditionWave = 12; - launchPeriod = 4; - loadout = Loadouts.basicNucleus; - zoneRequirements = ZoneRequirement.with(craters, 40); - blockRequirements = new Block[]{Blocks.cultivator, Blocks.sporePress}; - resources = new Item[]{Items.copper, Items.lead, Items.coal, Items.titanium, Items.sand, Items.thorium, Items.scrap}; - }}; - - ruinousShores = new Zone("ruinousShores", new MapGenerator("ruinousShores", 1).dist(3f, true)){{ + ruinousShores = new Zone("ruinousShores", new MapGenerator("ruinousShores", 1)){{ loadout = Loadouts.basicFoundation; baseLaunchCost = ItemStack.with(); - startingItems = ItemStack.list(Items.copper, 400); + startingItems = ItemStack.list(Items.copper, 140, Items.lead, 50); conditionWave = 20; launchPeriod = 20; zoneRequirements = ZoneRequirement.with(desertWastes, 20, craters, 15); @@ -130,10 +119,9 @@ public class Zones implements ContentList{ }}; stainedMountains = new Zone("stainedMountains", new MapGenerator("stainedMountains", 2) - .dist(0f, false) .decor(new Decoration(Blocks.shale, Blocks.shaleBoulder, 0.02))){{ loadout = Loadouts.basicFoundation; - startingItems = ItemStack.list(Items.copper, 400, Items.lead, 100); + startingItems = ItemStack.list(Items.copper, 200, Items.lead, 50); conditionWave = 10; launchPeriod = 10; zoneRequirements = ZoneRequirement.with(frozenForest, 15); @@ -141,11 +129,27 @@ public class Zones implements ContentList{ resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.coal, Items.titanium, Items.sand}; }}; + fungalPass = new Zone("fungalPass", new MapGenerator("fungalPass")){{ + startingItems = ItemStack.list(Items.copper, 250, Items.lead, 250, Items.metaglass, 100, Items.graphite, 100); + zoneRequirements = ZoneRequirement.with(stainedMountains, 15); + blockRequirements = new Block[]{Blocks.daggerFactory, Blocks.crawlerFactory, Blocks.door}; + resources = new Item[]{Items.copper, Items.lead, Items.coal, Items.titanium, Items.sand}; + }}; + + overgrowth = new Zone("overgrowth", new MapGenerator("overgrowth")){{ + startingItems = ItemStack.list(Items.copper, 1500, Items.lead, 1000, Items.silicon, 500, Items.metaglass, 250); + conditionWave = 12; + launchPeriod = 4; + loadout = Loadouts.basicNucleus; + zoneRequirements = ZoneRequirement.with(craters, 40, fungalPass, 10); + blockRequirements = new Block[]{Blocks.cultivator, Blocks.sporePress, Blocks.titanFactory, Blocks.wraithFactory}; + resources = new Item[]{Items.copper, Items.lead, Items.coal, Items.titanium, Items.sand, Items.thorium, Items.scrap}; + }}; + tarFields = new Zone("tarFields", new MapGenerator("tarFields") - .dist(0f, false) .decor(new Decoration(Blocks.shale, Blocks.shaleBoulder, 0.02))){{ loadout = Loadouts.basicFoundation; - startingItems = ItemStack.list(Items.copper, 500, Items.lead, 200); + startingItems = ItemStack.list(Items.copper, 250, Items.lead, 100); conditionWave = 15; launchPeriod = 10; zoneRequirements = ZoneRequirement.with(ruinousShores, 20); @@ -153,10 +157,10 @@ public class Zones implements ContentList{ resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.coal, Items.titanium, Items.sand}; }}; - desolateRift = new Zone("desolateRift", new MapGenerator("desolateRift").dist(2f)){{ + desolateRift = new Zone("desolateRift", new MapGenerator("desolateRift")){{ loadout = Loadouts.basicNucleus; baseLaunchCost = ItemStack.with(); - startingItems = ItemStack.list(Items.copper, 2000, Items.lead, 2000, Items.graphite, 500, Items.titanium, 500, Items.silicon, 500); + startingItems = ItemStack.list(Items.copper, 1000, Items.lead, 1000, Items.graphite, 250, Items.titanium, 250, Items.silicon, 250); conditionWave = 3; launchPeriod = 2; zoneRequirements = ZoneRequirement.with(tarFields, 20); @@ -180,10 +184,10 @@ public class Zones implements ContentList{ .decor(new Decoration(Blocks.snow, Blocks.sporeCluster, 0.01))){{ loadout = Loadouts.basicNucleus; baseLaunchCost = ItemStack.with(); - startingItems = ItemStack.list(Items.copper, 2500, Items.lead, 3000, Items.silicon, 800, Items.metaglass, 400); + startingItems = ItemStack.list(Items.copper, 1250, Items.lead, 1500, Items.silicon, 400, Items.metaglass, 250); conditionWave = 30; launchPeriod = 15; - zoneRequirements = ZoneRequirement.with(stainedMountains, 20); + zoneRequirements = ZoneRequirement.with(fungalPass, 8); blockRequirements = new Block[]{Blocks.thermalGenerator, Blocks.laserDrill}; resources = new Item[]{Items.copper, Items.scrap, Items.lead, Items.coal, Items.titanium, Items.thorium, Items.sand}; }}; diff --git a/core/src/io/anuke/mindustry/core/UI.java b/core/src/io/anuke/mindustry/core/UI.java index b9fe711961..0db1e578aa 100644 --- a/core/src/io/anuke/mindustry/core/UI.java +++ b/core/src/io/anuke/mindustry/core/UI.java @@ -132,16 +132,27 @@ public class UI implements ApplicationListener{ void generateFonts(Skin skin){ generator = new FreeTypeFontGenerator(Core.files.internal("fonts/font.ttf")); - FreeTypeFontParameter param = new FreeTypeFontParameter(); - param.size = (int)(9 * 2 * Math.max(Unit.dp.scl(1f), 0.5f)); - param.shadowColor = Color.DARK_GRAY; - param.shadowOffsetY = 2; - param.incremental = true; - skin.add("default-font", generator.generateFont(param)); - skin.add("default-font-chat", generator.generateFont(param)); - skin.getFont("default-font").getData().markupEnabled = true; - skin.getFont("default-font").setOwnsTexture(false); + FreeTypeFontParameter param = new FreeTypeFontParameter(){{ + size = (int)(9 * 2 * Math.max(Unit.dp.scl(1f), 0.5f)); + shadowColor = Color.DARK_GRAY; + shadowOffsetY = 2; + incremental = true; + }}; + + FreeTypeFontParameter outlined = new FreeTypeFontParameter(){{ + size = param.size; + borderColor = Color.DARK_GRAY; + borderWidth = 2f; + spaceX -= borderWidth; + incremental = true; + }}; + + skin.add("outline", generator.generateFont(outlined)); + skin.add("default", generator.generateFont(param)); + skin.add("chat", generator.generateFont(param)); + skin.getFont("default").getData().markupEnabled = true; + skin.getFont("default").setOwnsTexture(false); } @Override diff --git a/core/src/io/anuke/mindustry/editor/EditorTile.java b/core/src/io/anuke/mindustry/editor/EditorTile.java index 0e6f0d28f3..6d627399df 100644 --- a/core/src/io/anuke/mindustry/editor/EditorTile.java +++ b/core/src/io/anuke/mindustry/editor/EditorTile.java @@ -115,7 +115,7 @@ public class EditorTile extends Tile{ return; } - super.setTeam(Team.none); + super.setTeam(Team.derelict); } @Override diff --git a/core/src/io/anuke/mindustry/editor/MapEditor.java b/core/src/io/anuke/mindustry/editor/MapEditor.java index 466f513318..bf557eb640 100644 --- a/core/src/io/anuke/mindustry/editor/MapEditor.java +++ b/core/src/io/anuke/mindustry/editor/MapEditor.java @@ -32,7 +32,7 @@ public class MapEditor{ public int brushSize = 1; public int rotation; public Block drawBlock = Blocks.stone; - public Team drawTeam = Team.blue; + public Team drawTeam = Team.sharded; public StringMap getTags(){ return tags; @@ -175,7 +175,6 @@ public class MapEditor{ world.setBlock(tile(x, y), drawBlock, drawTeam); }else{ - boolean isFloor = drawBlock.isFloor() && drawBlock != Blocks.air; Consumer drawer = tile -> { diff --git a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java index 934a2a5abd..16be94540a 100644 --- a/core/src/io/anuke/mindustry/editor/MapEditorDialog.java +++ b/core/src/io/anuke/mindustry/editor/MapEditorDialog.java @@ -335,7 +335,12 @@ public class MapEditorDialog extends Dialog implements Disposable{ @Override public Dialog show(){ - return super.show(Core.scene, Actions.sequence()); + return super.show(Core.scene, Actions.sequence(Actions.alpha(1f))); + } + + @Override + public void hide(){ + super.hide(Actions.sequence(Actions.alpha(0f))); } @Override @@ -360,6 +365,10 @@ public class MapEditorDialog extends Dialog implements Disposable{ return view; } + public MapGenerateDialog getGenerateDialog(){ + return generateDialog; + } + public void resetSaved(){ saved = false; } @@ -533,6 +542,11 @@ public class MapEditorDialog extends Dialog implements Disposable{ mid.table("underline", t -> { Slider slider = new Slider(0, MapEditor.brushSizes.length - 1, 1, false); slider.moved(f -> editor.brushSize = MapEditor.brushSizes[(int)(float)f]); + for(int j = 0; j < MapEditor.brushSizes.length; j++){ + if(MapEditor.brushSizes[j] == editor.brushSize){ + slider.setValue(j); + } + } t.top(); t.add("$editor.brush"); diff --git a/core/src/io/anuke/mindustry/editor/MapGenerateDialog.java b/core/src/io/anuke/mindustry/editor/MapGenerateDialog.java index 545cc4004e..ca6aab9579 100644 --- a/core/src/io/anuke/mindustry/editor/MapGenerateDialog.java +++ b/core/src/io/anuke/mindustry/editor/MapGenerateDialog.java @@ -11,7 +11,6 @@ import io.anuke.arc.scene.ui.*; import io.anuke.arc.scene.ui.layout.*; import io.anuke.arc.util.*; import io.anuke.arc.util.async.*; -import io.anuke.mindustry.content.*; import io.anuke.mindustry.game.*; import io.anuke.mindustry.graphics.*; import io.anuke.mindustry.io.*; @@ -28,8 +27,8 @@ import static io.anuke.mindustry.Vars.*; public class MapGenerateDialog extends FloatingDialog{ private final Supplier[] filterTypes = new Supplier[]{ NoiseFilter::new, ScatterFilter::new, TerrainFilter::new, DistortFilter::new, - RiverNoiseFilter::new, OreFilter::new, MedianFilter::new, BlendFilter::new, - MirrorFilter::new, ClearFilter::new + RiverNoiseFilter::new, OreFilter::new, OreMedianFilter::new, MedianFilter::new, + BlendFilter::new, MirrorFilter::new, ClearFilter::new }; private final MapEditor editor; private final boolean applied; @@ -150,16 +149,6 @@ public class MapGenerateDialog extends FloatingDialog{ editor.clearOp(); } - public void addDefaultOres(Array filters){ - int index = 0; - for(Block block : new Block[]{Blocks.oreCopper, Blocks.oreLead, Blocks.oreCoal, Blocks.oreTitanium, Blocks.oreThorium}){ - OreFilter filter = new OreFilter(); - filter.threshold += index ++ * 0.019f; - filter.ore = block; - filters.add(filter); - } - } - void setup(){ if(pixmap != null){ pixmap.dispose(); @@ -315,7 +304,7 @@ public class MapGenerateDialog extends FloatingDialog{ } selection.cont.addButton("$filter.defaultores", () -> { - addDefaultOres(filters); + world.maps.addDefaultOres(filters); rebuildFilters(); update(); selection.hide(); @@ -394,10 +383,10 @@ public class MapGenerateDialog extends FloatingDialog{ //get result from buffer1 if there's filters left, otherwise get from editor directly if(filters.isEmpty()){ Tile tile = editor.tile(px * scaling, py * scaling); - color = MapIO.colorFor(tile.floor(), tile.block(), tile.overlay(), Team.none); + color = MapIO.colorFor(tile.floor(), tile.block(), tile.overlay(), Team.derelict); }else{ GenTile tile = buffer1[px][py]; - color = MapIO.colorFor(content.block(tile.floor), content.block(tile.block), content.block(tile.ore), Team.none); + color = MapIO.colorFor(content.block(tile.floor), content.block(tile.block), content.block(tile.ore), Team.derelict); } pixmap.drawPixel(px, pixmap.getHeight() - 1 - py, color); } diff --git a/core/src/io/anuke/mindustry/editor/MapView.java b/core/src/io/anuke/mindustry/editor/MapView.java index 59958e548e..98eed1bb57 100644 --- a/core/src/io/anuke/mindustry/editor/MapView.java +++ b/core/src/io/anuke/mindustry/editor/MapView.java @@ -240,10 +240,6 @@ public class MapView extends Element implements GestureListener{ editor.renderer().draw(centerx - sclwidth / 2, centery - sclheight / 2, sclwidth, sclheight); Draw.reset(); - if(!ScissorStack.pushScissors(rect.set(x, y, width, height))){ - return; - } - if(grid){ Draw.color(Color.GRAY); image.setBounds(centerx - sclwidth / 2, centery - sclheight / 2, sclwidth, sclheight); @@ -303,7 +299,6 @@ public class MapView extends Element implements GestureListener{ Draw.reset(); ScissorStack.popScissors(); - ScissorStack.popScissors(); } private boolean active(){ diff --git a/core/src/io/anuke/mindustry/entities/Damage.java b/core/src/io/anuke/mindustry/entities/Damage.java index 474a9747e4..9b75085b0f 100644 --- a/core/src/io/anuke/mindustry/entities/Damage.java +++ b/core/src/io/anuke/mindustry/entities/Damage.java @@ -35,7 +35,7 @@ public class Damage{ public static void dynamicExplosion(float x, float y, float flammability, float explosiveness, float power, float radius, Color color){ for(int i = 0; i < Mathf.clamp(power / 20, 0, 6); i++){ int branches = 5 + Mathf.clamp((int)(power / 30), 1, 20); - Time.run(i * 2f + Mathf.random(4f), () -> Lightning.create(Team.none, Pal.power, 3, + Time.run(i * 2f + Mathf.random(4f), () -> Lightning.create(Team.derelict, Pal.power, 3, x, y, Mathf.random(360f), branches + Mathf.range(2))); } diff --git a/core/src/io/anuke/mindustry/entities/Units.java b/core/src/io/anuke/mindustry/entities/Units.java index b4b6ea115b..75bc44dede 100644 --- a/core/src/io/anuke/mindustry/entities/Units.java +++ b/core/src/io/anuke/mindustry/entities/Units.java @@ -79,7 +79,7 @@ public class Units{ /** Returns the neareset enemy tile in a range. */ public static TileEntity findEnemyTile(Team team, float x, float y, float range, Predicate pred){ - if(team == Team.none) return null; + if(team == Team.derelict) return null; for(Team enemy : state.teams.enemiesOf(team)){ TileEntity entity = world.indexer.findTile(enemy, x, y, range, pred); @@ -102,7 +102,7 @@ public class Units{ /** Returns the closest target enemy. First, units are checked, then tile entities. */ public static TargetTrait closestTarget(Team team, float x, float y, float range, Predicate unitPred, Predicate tilePred){ - if(team == Team.none) return null; + if(team == Team.derelict) return null; Unit unit = closestEnemy(team, x, y, range, unitPred); if(unit != null){ @@ -114,7 +114,7 @@ public class Units{ /** Returns the closest enemy of this team. Filter by predicate. */ public static Unit closestEnemy(Team team, float x, float y, float range, Predicate predicate){ - if(team == Team.none) return null; + if(team == Team.derelict) return null; result = null; cdist = 0f; diff --git a/core/src/io/anuke/mindustry/entities/bullet/Bullet.java b/core/src/io/anuke/mindustry/entities/bullet/Bullet.java index 4060376c14..afe97b5399 100644 --- a/core/src/io/anuke/mindustry/entities/bullet/Bullet.java +++ b/core/src/io/anuke/mindustry/entities/bullet/Bullet.java @@ -83,7 +83,7 @@ public class Bullet extends SolidEntity implements DamageTrait, ScaleTrait, Pool /** Internal use only. */ @Remote(called = Loc.server, unreliable = true) public static void createBullet(BulletType type, float x, float y, float angle){ - create(type, null, Team.none, x, y, angle); + create(type, null, Team.derelict, x, y, angle); } /** ok */ diff --git a/core/src/io/anuke/mindustry/entities/bullet/BulletType.java b/core/src/io/anuke/mindustry/entities/bullet/BulletType.java index b554c2ac68..43417d565e 100644 --- a/core/src/io/anuke/mindustry/entities/bullet/BulletType.java +++ b/core/src/io/anuke/mindustry/entities/bullet/BulletType.java @@ -31,7 +31,7 @@ public abstract class BulletType extends Content{ /** Extra inaccuracy when firing. */ public float inaccuracy = 0f; /** How many bullets get created per ammo item/liquid. */ - public float ammoMultiplier = 1f; + public float ammoMultiplier = 2f; /** Multiplied by turret reload speed to get final shoot speed. */ public float reloadMultiplier = 1f; /** Recoil from shooter entities. */ diff --git a/core/src/io/anuke/mindustry/entities/traits/MinerTrait.java b/core/src/io/anuke/mindustry/entities/traits/MinerTrait.java index da2f0fcfc9..76a66396e1 100644 --- a/core/src/io/anuke/mindustry/entities/traits/MinerTrait.java +++ b/core/src/io/anuke/mindustry/entities/traits/MinerTrait.java @@ -90,7 +90,7 @@ public interface MinerTrait extends Entity{ Draw.color(Color.LIGHT_GRAY, Color.WHITE, 1f - flashScl + Mathf.absin(Time.time(), 0.5f, flashScl)); - Shapes.laser(Core.atlas.find("minelaser"), Core.atlas.find("minelaser-end"), px, py, ex, ey, 0.75f); + Drawf.laser(Core.atlas.find("minelaser"), Core.atlas.find("minelaser-end"), px, py, ex, ey, 0.75f); if(unit instanceof Player && ((Player)unit).isLocal){ Lines.stroke(1f, Pal.accent); diff --git a/core/src/io/anuke/mindustry/entities/type/BaseUnit.java b/core/src/io/anuke/mindustry/entities/type/BaseUnit.java index a0ce31d3b7..e6c182d029 100644 --- a/core/src/io/anuke/mindustry/entities/type/BaseUnit.java +++ b/core/src/io/anuke/mindustry/entities/type/BaseUnit.java @@ -1,30 +1,23 @@ package io.anuke.mindustry.entities.type; import io.anuke.annotations.Annotations.*; -import io.anuke.arc.Core; -import io.anuke.arc.graphics.g2d.Draw; -import io.anuke.arc.graphics.g2d.TextureRegion; -import io.anuke.arc.math.Angles; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.math.geom.Geometry; -import io.anuke.arc.math.geom.Rectangle; -import io.anuke.arc.util.Interval; -import io.anuke.arc.util.Time; -import io.anuke.mindustry.Vars; -import io.anuke.mindustry.content.StatusEffects; -import io.anuke.mindustry.entities.EntityGroup; -import io.anuke.mindustry.entities.Units; -import io.anuke.mindustry.entities.traits.ShooterTrait; -import io.anuke.mindustry.entities.traits.TargetTrait; +import io.anuke.arc.*; +import io.anuke.arc.graphics.g2d.*; +import io.anuke.arc.math.*; +import io.anuke.arc.math.geom.*; +import io.anuke.arc.util.*; +import io.anuke.mindustry.*; +import io.anuke.mindustry.content.*; +import io.anuke.mindustry.entities.*; +import io.anuke.mindustry.entities.traits.*; import io.anuke.mindustry.entities.units.*; -import io.anuke.mindustry.game.Team; -import io.anuke.mindustry.game.TypeID; -import io.anuke.mindustry.gen.Call; +import io.anuke.mindustry.game.*; +import io.anuke.mindustry.gen.*; import io.anuke.mindustry.net.Net; import io.anuke.mindustry.type.*; -import io.anuke.mindustry.world.Tile; -import io.anuke.mindustry.world.blocks.units.UnitFactory.UnitFactoryEntity; -import io.anuke.mindustry.world.meta.BlockFlag; +import io.anuke.mindustry.world.*; +import io.anuke.mindustry.world.blocks.units.UnitFactory.*; +import io.anuke.mindustry.world.meta.*; import java.io.*; @@ -168,22 +161,6 @@ public abstract class BaseUnit extends Unit implements ShooterTrait{ return null; } - protected void drawItems(){ - float backTrns = 4f; - if(item.amount > 0){ - int stored = Mathf.clamp(item.amount / 6, 1, 8); - - for(int i = 0; i < stored; i++){ - float angT = i == 0 ? 0 : Mathf.randomSeedRange(i + 2, 60f); - float lenT = i == 0 ? 0 : Mathf.randomSeedRange(i + 3, 1f) - 1f; - Draw.rect(item.item.icon(Item.Icon.large), - x + Angles.trnsx(rotation + 180f + angT, backTrns + lenT), - y + Angles.trnsy(rotation + 180f + angT, backTrns + lenT), - itemSize, itemSize, rotation); - } - } - } - public boolean isBoss(){ return hasEffect(StatusEffects.boss); } diff --git a/core/src/io/anuke/mindustry/entities/type/FlyingUnit.java b/core/src/io/anuke/mindustry/entities/type/FlyingUnit.java index 6620f20c60..83f9434810 100644 --- a/core/src/io/anuke/mindustry/entities/type/FlyingUnit.java +++ b/core/src/io/anuke/mindustry/entities/type/FlyingUnit.java @@ -115,7 +115,6 @@ public abstract class FlyingUnit extends BaseUnit{ Draw.rect(type.region, x, y, rotation - 90); drawWeapons(); - drawItems(); Draw.mixcol(); } diff --git a/core/src/io/anuke/mindustry/entities/type/GroundUnit.java b/core/src/io/anuke/mindustry/entities/type/GroundUnit.java index e319063e9d..47d0e11280 100644 --- a/core/src/io/anuke/mindustry/entities/type/GroundUnit.java +++ b/core/src/io/anuke/mindustry/entities/type/GroundUnit.java @@ -145,8 +145,6 @@ public abstract class GroundUnit extends BaseUnit{ y + Angles.trnsy(tra, getWeapon().width * i, trY), w, type.weapon.region.getHeight() * Draw.scl, rotation - 90); } - drawItems(); - Draw.mixcol(); } diff --git a/core/src/io/anuke/mindustry/entities/type/Player.java b/core/src/io/anuke/mindustry/entities/type/Player.java index 91db0f1122..a17da18801 100644 --- a/core/src/io/anuke/mindustry/entities/type/Player.java +++ b/core/src/io/anuke/mindustry/entities/type/Player.java @@ -65,7 +65,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ public String lastText; public float textFadeTime; - private float walktime; + private float walktime, itemtime; private Queue placeQueue = new Queue<>(); private Tile mining; private Vector2 movement = new Vector2(); @@ -338,21 +338,6 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ rotation - 90); } - float backTrns = 4f; - if(item.amount > 0){ - ItemStack stack = item; - int stored = Mathf.clamp(stack.amount / 6, 1, 8); - - for(int i = 0; i < stored; i++){ - float angT = i == 0 ? 0 : Mathf.randomSeedRange(i + 1, 60f); - float lenT = i == 0 ? 0 : Mathf.randomSeedRange(i + 2, 1f) - 1f; - Draw.rect(stack.item.icon(Item.Icon.large), - x + Angles.trnsx(rotation + 180f + angT, backTrns + lenT), - y + Angles.trnsy(rotation + 180f + angT, backTrns + lenT), - itemSize, itemSize, rotation); - } - } - Draw.reset(); } @@ -360,7 +345,8 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ public void drawStats(){ Draw.color(Color.BLACK, team.color, healthf() + Mathf.absin(Time.time(), healthf() * 5f, 1f - healthf())); Draw.rect(getPowerCellRegion(), x + Angles.trnsx(rotation, mech.cellTrnsY, 0f), y + Angles.trnsy(rotation, mech.cellTrnsY, 0f), rotation - 90); - Draw.color(); + Draw.reset(); + drawBackItems(itemtime, isLocal); } @Override @@ -386,7 +372,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ } public void drawName(){ - BitmapFont font = Core.scene.skin.getFont("default-font"); + BitmapFont font = Core.scene.skin.getFont("default"); GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new); final float nameHeight = 11; final float textHeight = 15; @@ -478,8 +464,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ for(int i = 0; i < 4; i++){ Point2 p = Geometry.d8edge[i]; float offset = -Math.max(request.block.size - 1, 0) / 2f * tilesize; - if(i % 2 == 0) - Draw.rect("block-select", request.x * tilesize + request.block.offset() + offset * p.x, request.y * tilesize + request.block.offset() + offset * p.y, i * 90); + Draw.rect("block-select", request.x * tilesize + request.block.offset() + offset * p.x, request.y * tilesize + request.block.offset() + offset * p.y, i * 90); } Draw.color(); @@ -498,6 +483,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ public void update(){ hitTime -= Time.delta(); textFadeTime -= Time.delta() / (60 * 5); + itemtime = Mathf.lerpDelta(itemtime, Mathf.num(item.amount > 0), 0.1f); if(Float.isNaN(x) || Float.isNaN(y)){ velocity.set(0f, 0f); @@ -729,10 +715,10 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ if(target == null){ isShooting = false; if(Core.settings.getBool("autotarget")){ - target = Units.closestTarget(team, x, y, getWeapon().bullet.range(), u -> u.getTeam() != Team.none, u -> u.getTeam() != Team.none); + target = Units.closestTarget(team, x, y, getWeapon().bullet.range(), u -> u.getTeam() != Team.derelict, u -> u.getTeam() != Team.derelict); if(mech.canHeal && target == null){ - target = Geometry.findClosest(x, y, world.indexer.getDamaged(Team.blue)); + target = Geometry.findClosest(x, y, world.indexer.getDamaged(Team.sharded)); if(target != null && dst(target) > getWeapon().bullet.range()){ target = null; }else if(target != null){ @@ -785,7 +771,7 @@ public class Player extends Unit implements BuilderMinerTrait, ShooterTrait{ public void resetNoAdd(){ status.clear(); - team = Team.blue; + team = Team.sharded; item.amount = 0; placeQueue.clear(); dead = true; diff --git a/core/src/io/anuke/mindustry/entities/type/Unit.java b/core/src/io/anuke/mindustry/entities/type/Unit.java index 833d908782..22fff0524f 100644 --- a/core/src/io/anuke/mindustry/entities/type/Unit.java +++ b/core/src/io/anuke/mindustry/entities/type/Unit.java @@ -1,33 +1,28 @@ package io.anuke.mindustry.entities.type; -import io.anuke.annotations.Annotations.Nullable; -import io.anuke.arc.Core; -import io.anuke.arc.Events; -import io.anuke.arc.graphics.Color; -import io.anuke.arc.graphics.g2d.Draw; -import io.anuke.arc.graphics.g2d.TextureRegion; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.math.geom.Geometry; -import io.anuke.arc.math.geom.Vector2; +import io.anuke.annotations.Annotations.*; +import io.anuke.arc.*; +import io.anuke.arc.graphics.*; +import io.anuke.arc.graphics.g2d.*; +import io.anuke.arc.math.*; +import io.anuke.arc.math.geom.*; import io.anuke.arc.util.*; -import io.anuke.mindustry.content.Blocks; -import io.anuke.mindustry.content.Fx; +import io.anuke.mindustry.content.*; import io.anuke.mindustry.entities.*; -import io.anuke.mindustry.entities.effect.ScorchDecal; -import io.anuke.mindustry.entities.impl.DestructibleEntity; +import io.anuke.mindustry.entities.effect.*; +import io.anuke.mindustry.entities.impl.*; import io.anuke.mindustry.entities.traits.*; -import io.anuke.mindustry.entities.units.Statuses; -import io.anuke.mindustry.game.EventType.UnitDestroyEvent; -import io.anuke.mindustry.game.Team; -import io.anuke.mindustry.game.Teams.TeamData; +import io.anuke.mindustry.entities.units.*; +import io.anuke.mindustry.game.EventType.*; +import io.anuke.mindustry.game.*; +import io.anuke.mindustry.game.Teams.*; import io.anuke.mindustry.gen.*; -import io.anuke.mindustry.graphics.Pal; -import io.anuke.mindustry.net.Interpolator; +import io.anuke.mindustry.graphics.*; import io.anuke.mindustry.net.Net; +import io.anuke.mindustry.net.*; import io.anuke.mindustry.type.*; -import io.anuke.mindustry.world.Pos; -import io.anuke.mindustry.world.Tile; -import io.anuke.mindustry.world.blocks.Floor; +import io.anuke.mindustry.world.*; +import io.anuke.mindustry.world.blocks.*; import java.io.*; @@ -50,7 +45,7 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ protected final Statuses status = new Statuses(); protected final ItemStack item = new ItemStack(content.item(0), 0); - protected Team team = Team.blue; + protected Team team = Team.sharded; protected float drownTime, hitTime; @Override @@ -379,6 +374,40 @@ public abstract class Unit extends DestructibleEntity implements SaveTrait, Targ Draw.color(Color.BLACK, team.color, healthf() + Mathf.absin(Time.time(), Math.max(healthf() * 5f, 1f), 1f - healthf())); Draw.rect(getPowerCellRegion(), x, y, rotation - 90); Draw.color(); + + drawBackItems(item.amount > 0 ? 1f : 0f, false); + } + + public void drawBackItems(float itemtime, boolean number){ + //draw back items + if(itemtime > 0.01f && item.item != null){ + float backTrns = 5f; + float size = (itemSize + Mathf.absin(Time.time(), 5f, 1f)) * itemtime; + + Draw.mixcol(Pal.accent, Mathf.absin(Time.time(), 5f, 0.5f)); + Draw.rect(item.item.icon(Item.Icon.large), + x + Angles.trnsx(rotation + 180f, backTrns), + y + Angles.trnsy(rotation + 180f, backTrns), + size, size, rotation); + + Draw.mixcol(); + + Lines.stroke(1f, Pal.accent); + Lines.circle( + x + Angles.trnsx(rotation + 180f, backTrns), + y + Angles.trnsy(rotation + 180f, backTrns), + (3f + Mathf.absin(Time.time(), 5f, 1f)) * itemtime); + + if(number){ + Core.scene.skin.getFont("outline").draw(item.amount + "", + x + Angles.trnsx(rotation + 180f, backTrns), + y + Angles.trnsy(rotation + 180f, backTrns) - 3, + Pal.accent, 0.25f * itemtime, false, Align.center + ); + } + } + + Draw.reset(); } public TextureRegion getPowerCellRegion(){ diff --git a/core/src/io/anuke/mindustry/game/Gamemode.java b/core/src/io/anuke/mindustry/game/Gamemode.java index ed492b6afb..b2e803dced 100644 --- a/core/src/io/anuke/mindustry/game/Gamemode.java +++ b/core/src/io/anuke/mindustry/game/Gamemode.java @@ -24,6 +24,7 @@ public enum Gamemode{ rules.unitDrops = true; rules.waves = false; rules.attackMode = true; + rules.waves = true; }, map -> map.teams.contains(waveTeam.ordinal())), pvp(rules -> { rules.pvp = true; diff --git a/core/src/io/anuke/mindustry/game/MusicControl.java b/core/src/io/anuke/mindustry/game/MusicControl.java index ca1b902475..53c4ba4351 100644 --- a/core/src/io/anuke/mindustry/game/MusicControl.java +++ b/core/src/io/anuke/mindustry/game/MusicControl.java @@ -1,6 +1,7 @@ package io.anuke.mindustry.game; import io.anuke.annotations.Annotations.*; +import io.anuke.arc.*; import io.anuke.arc.audio.*; import io.anuke.arc.math.*; import io.anuke.arc.util.*; @@ -9,24 +10,29 @@ import io.anuke.arc.util.*; public class MusicControl{ private static final float finTime = 80f, foutTime = 80f; private @Nullable Music current; + private float fade; public void play(@Nullable Music music){ + if(current != null){ + current.setVolume(fade * Core.settings.getInt("musicvol") / 100f); + } + if(current == null && music != null){ current = music; current.setLooping(true); - current.setVolume(0f); + current.setVolume(fade = 0f); current.play(); }else if(current == music && music != null){ - current.setVolume(Mathf.clamp(current.getVolume() + Time.delta()/finTime)); + fade = Mathf.clamp(fade + Time.delta()/finTime); }else if(current != null){ - current.setVolume(Mathf.clamp(current.getVolume() - Time.delta()/foutTime)); + fade = Mathf.clamp(fade - Time.delta()/foutTime); - if(current.getVolume() <= 0.01f){ + if(fade <= 0.01f){ current.stop(); current = null; if(music != null){ current = music; - current.setVolume(0f); + current.setVolume(fade = 0f); current.setLooping(true); current.play(); } diff --git a/core/src/io/anuke/mindustry/game/Rules.java b/core/src/io/anuke/mindustry/game/Rules.java index b7b4a2197e..014a918904 100644 --- a/core/src/io/anuke/mindustry/game/Rules.java +++ b/core/src/io/anuke/mindustry/game/Rules.java @@ -68,7 +68,7 @@ public class Rules{ /** 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, 200)); + public Array loadout = Array.with(ItemStack.with(Items.copper, 100)); /** Copies this ruleset exactly. Not very efficient at all, do not use often. */ public Rules copy(){ diff --git a/core/src/io/anuke/mindustry/game/Team.java b/core/src/io/anuke/mindustry/game/Team.java index a5193e48b2..b4cb74c02c 100644 --- a/core/src/io/anuke/mindustry/game/Team.java +++ b/core/src/io/anuke/mindustry/game/Team.java @@ -2,14 +2,15 @@ package io.anuke.mindustry.game; import io.anuke.arc.Core; import io.anuke.arc.graphics.Color; +import io.anuke.mindustry.graphics.*; public enum Team{ - none(Color.valueOf("4d4e58")), - blue(Color.valueOf("4169e1")), - red(Color.valueOf("e84737")), - green(Color.valueOf("1dc645")), - purple(Color.valueOf("ba5bd9")), - orange(Color.valueOf("e8c66a")); + derelict(Color.valueOf("4d4e58")), + sharded(Pal.accent), + crux(Color.valueOf("e82d2d")), + green(Color.valueOf("4dd98b")), + purple(Color.valueOf("9a4bdf")), + blue(Color.ROYAL.cpy()); public final static Team[] all = values(); public final Color color; diff --git a/core/src/io/anuke/mindustry/graphics/Shapes.java b/core/src/io/anuke/mindustry/graphics/Drawf.java similarity index 51% rename from core/src/io/anuke/mindustry/graphics/Shapes.java rename to core/src/io/anuke/mindustry/graphics/Drawf.java index 3ab13f8c74..7327dc5efe 100644 --- a/core/src/io/anuke/mindustry/graphics/Shapes.java +++ b/core/src/io/anuke/mindustry/graphics/Drawf.java @@ -1,11 +1,46 @@ package io.anuke.mindustry.graphics; -import io.anuke.arc.Core; +import io.anuke.arc.*; +import io.anuke.arc.graphics.*; import io.anuke.arc.graphics.g2d.*; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.util.Tmp; +import io.anuke.arc.math.*; +import io.anuke.arc.util.*; -public class Shapes{ +public class Drawf{ + + public static void dashCircle(float x, float y, float rad, Color color){ + Lines.stroke(3f, Pal.gray); + Lines.dashCircle(x, y, rad); + Lines.stroke(1f, color); + Lines.dashCircle(x, y, rad); + Draw.reset(); + } + + public static void circles(float x, float y, float rad){ + circles(x, y, rad, Pal.accent); + } + + public static void circles(float x, float y, float rad, Color color){ + int vertices = (int)(rad * 2); + Lines.stroke(3f, Pal.gray); + Lines.poly(x, y, vertices, rad); + Lines.stroke(1f, color); + Lines.poly(x, y, vertices, rad); + Draw.reset(); + } + + public static void arrow(float x, float y, float x2, float y2, float length, float radius){ + float angle = Angles.angle(x, y, x2, y2); + float space = 2f; + Tmp.v1.set(x2, y2).sub(x, y).limit(length); + float vx = Tmp.v1.x + x, vy = Tmp.v1.y + y; + + Draw.color(Pal.gray); + Fill.poly(vx, vy, 3, radius + space, angle); + Draw.color(Pal.accent); + Fill.poly(vx, vy, 3, radius, angle); + Draw.color(); + } public static void laser(TextureRegion line, TextureRegion edge, float x, float y, float x2, float y2, float scale){ laser(line, edge, x, y, x2, y2, Mathf.angle(x2 - x, y2 - y), scale); diff --git a/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java b/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java index bccb17ebb7..4c313567cc 100644 --- a/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java +++ b/core/src/io/anuke/mindustry/graphics/OverlayRenderer.java @@ -105,7 +105,7 @@ public class OverlayRenderer{ Draw.reset(); - //draw selected block bars and info + //draw selected block if(input.block == null && !Core.scene.hasMouse()){ Vector2 vec = Core.input.mouseWorld(input.getMouseX(), input.getMouseY()); Tile tile = world.ltileWorld(vec.x, vec.y); @@ -115,6 +115,7 @@ public class OverlayRenderer{ } } + //draw selection overlay when dropping item if(input.isDroppingItem()){ Vector2 v = Core.input.mouseWorld(input.getMouseX(), input.getMouseY()); float size = 8; @@ -125,9 +126,12 @@ public class OverlayRenderer{ Tile tile = world.ltileWorld(v.x, v.y); if(tile != null && tile.interactable(player.getTeam()) && tile.block().acceptStack(player.item().item, player.item().amount, tile, player) > 0){ - Draw.color(Pal.place); - Lines.square(tile.drawx(), tile.drawy(), tile.block().size * tilesize / 2f + 1 + Mathf.absin(Time.time(), 5f, 1f)); - Draw.color(); + Lines.stroke(3f, Pal.gray); + Lines.square(tile.drawx(), tile.drawy(), tile.block().size * tilesize / 2f + 3 + Mathf.absin(Time.time(), 5f, 1f)); + Lines.stroke(1f, Pal.place); + Lines.square(tile.drawx(), tile.drawy(), tile.block().size * tilesize / 2f + 2 + Mathf.absin(Time.time(), 5f, 1f)); + Draw.reset(); + } } } diff --git a/core/src/io/anuke/mindustry/input/DesktopInput.java b/core/src/io/anuke/mindustry/input/DesktopInput.java index 87b8a26a32..898928503a 100644 --- a/core/src/io/anuke/mindustry/input/DesktopInput.java +++ b/core/src/io/anuke/mindustry/input/DesktopInput.java @@ -1,22 +1,19 @@ package io.anuke.mindustry.input; -import io.anuke.arc.Core; -import io.anuke.arc.Graphics.Cursor; -import io.anuke.arc.Graphics.Cursor.SystemCursor; -import io.anuke.arc.graphics.g2d.Draw; -import io.anuke.arc.graphics.g2d.Lines; -import io.anuke.arc.math.Mathf; -import io.anuke.arc.math.geom.Geometry; -import io.anuke.arc.math.geom.Point2; -import io.anuke.arc.scene.ui.TextField; -import io.anuke.mindustry.content.Blocks; -import io.anuke.mindustry.core.GameState.State; -import io.anuke.mindustry.graphics.Pal; -import io.anuke.mindustry.input.PlaceUtils.NormalizeDrawResult; -import io.anuke.mindustry.input.PlaceUtils.NormalizeResult; +import io.anuke.arc.*; +import io.anuke.arc.Graphics.*; +import io.anuke.arc.Graphics.Cursor.*; +import io.anuke.arc.graphics.g2d.*; +import io.anuke.arc.math.*; +import io.anuke.arc.math.geom.*; +import io.anuke.arc.scene.ui.*; +import io.anuke.arc.util.*; +import io.anuke.mindustry.content.*; +import io.anuke.mindustry.core.GameState.*; +import io.anuke.mindustry.graphics.*; +import io.anuke.mindustry.input.PlaceUtils.*; import io.anuke.mindustry.net.Net; -import io.anuke.mindustry.world.Block; -import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.world.*; import static io.anuke.arc.Core.scene; import static io.anuke.mindustry.Vars.*; @@ -41,6 +38,7 @@ public class DesktopInput extends InputHandler{ block.getPlaceDraw(placeDraw, rotation, prevX, prevY, prevRotation); Draw.color(); + Draw.mixcol(Pal.accent, 0.12f + Mathf.absin(Time.time(), 8f, 0.35f)); Draw.rect(placeDraw.region, x * tilesize + block.offset(), y * tilesize + block.offset(), placeDraw.region.getWidth() * selectScale * Draw.scl * placeDraw.scalex, placeDraw.region.getHeight() * selectScale * Draw.scl * placeDraw.scaley, @@ -54,6 +52,7 @@ public class DesktopInput extends InputHandler{ Draw.rect("block-select", x * tilesize + block.offset() + offset * p.x, y * tilesize + block.offset() + offset * p.y, i * 90); } Draw.color(); + Draw.mixcol(); }else{ Draw.color(Pal.removeBack); Lines.square(x * tilesize + block.offset(), y * tilesize + block.offset() - 1, block.size * tilesize / 2f - 1); diff --git a/core/src/io/anuke/mindustry/input/MobileInput.java b/core/src/io/anuke/mindustry/input/MobileInput.java index 0bdbbbc7b3..7084d2178c 100644 --- a/core/src/io/anuke/mindustry/input/MobileInput.java +++ b/core/src/io/anuke/mindustry/input/MobileInput.java @@ -215,13 +215,13 @@ public class MobileInput extends InputHandler implements GestureListener{ float offset = request.block.offset(); TextureRegion region = placeDraw.region; - Draw.mixcol(Pal.accent, Mathf.clamp((1f - request.scale) / 0.5f)); + Draw.mixcol(Pal.accent, Mathf.clamp((1f - request.scale) / 0.5f + 0.12f + Mathf.absin(Time.time(), 8f, 0.35f))); Draw.tint(Color.WHITE, Pal.breakInvalid, request.redness); Draw.rect(region, tile.worldx() + offset, tile.worldy() + offset, - region.getWidth() * request.scale * Draw.scl * placeDraw.scalex, - region.getHeight() * request.scale * Draw.scl * placeDraw.scaley, - request.block.rotate ? placeDraw.rotation * 90 : 0); + region.getWidth() * request.scale * Draw.scl * placeDraw.scalex, + region.getHeight() * request.scale * Draw.scl * placeDraw.scaley, + request.block.rotate ? placeDraw.rotation * 90 : 0); Draw.mixcol(Pal.accent, 1f); for(int i = 0; i < 4; i++){ diff --git a/core/src/io/anuke/mindustry/io/LegacyMapIO.java b/core/src/io/anuke/mindustry/io/LegacyMapIO.java index 2c65b1f2e7..d948fbee19 100644 --- a/core/src/io/anuke/mindustry/io/LegacyMapIO.java +++ b/core/src/io/anuke/mindustry/io/LegacyMapIO.java @@ -217,14 +217,14 @@ public class LegacyMapIO{ if(Structs.inBounds(worldx, worldy, pixmap.getWidth(), pixmap.getHeight())){ Tile write = tiles[worldx][worldy]; write.setBlock(BlockPart.get(dx - 1, dy - 1)); - write.setTeam(Team.blue); + write.setTeam(Team.sharded); } } } //actual core parts tile.setBlock(Blocks.coreShard); - tile.setTeam(Team.blue); + tile.setTeam(Team.sharded); } } } diff --git a/core/src/io/anuke/mindustry/io/MapIO.java b/core/src/io/anuke/mindustry/io/MapIO.java index 066d87d488..722dcaae8b 100644 --- a/core/src/io/anuke/mindustry/io/MapIO.java +++ b/core/src/io/anuke/mindustry/io/MapIO.java @@ -112,9 +112,9 @@ public class MapIO{ @Override public Tile create(int x, int y, int floorID, int overlayID, int wallID){ if(overlayID != 0){ - floors.drawPixel(x, floors.getHeight() - 1 - y, colorFor(Blocks.air, Blocks.air, content.block(overlayID), Team.none)); + floors.drawPixel(x, floors.getHeight() - 1 - y, colorFor(Blocks.air, Blocks.air, content.block(overlayID), Team.derelict)); }else{ - floors.drawPixel(x, floors.getHeight() - 1 - y, colorFor(content.block(floorID), Blocks.air, Blocks.air, Team.none)); + floors.drawPixel(x, floors.getHeight() - 1 - y, colorFor(content.block(floorID), Blocks.air, Blocks.air, Team.derelict)); } if(content.block(overlayID) == Blocks.spawn){ map.spawns ++; diff --git a/core/src/io/anuke/mindustry/maps/Maps.java b/core/src/io/anuke/mindustry/maps/Maps.java index 80cce4c0b5..e2360e16e5 100644 --- a/core/src/io/anuke/mindustry/maps/Maps.java +++ b/core/src/io/anuke/mindustry/maps/Maps.java @@ -210,13 +210,7 @@ public class Maps implements Disposable{ }} ); - int index = 0; - for(Block block : new Block[]{Blocks.oreCopper, Blocks.oreLead, Blocks.oreCoal, Blocks.oreTitanium, Blocks.oreThorium}){ - OreFilter filter = new OreFilter(); - filter.threshold += index ++ * 0.019f; - filter.ore = block; - filters.add(filter); - } + addDefaultOres(filters); return filters; }else{ @@ -224,6 +218,17 @@ public class Maps implements Disposable{ } } + public void addDefaultOres(Array filters){ + int index = 0; + for(Block block : new Block[]{Blocks.oreCopper, Blocks.oreLead, Blocks.oreCoal, Blocks.oreTitanium, Blocks.oreThorium}){ + OreFilter filter = new OreFilter(); + filter.threshold += index ++ * 0.019f; + filter.scl += index/2f; + filter.ore = block; + filters.add(filter); + } + } + public String writeWaves(Array groups){ if(groups == null){ return "[]"; diff --git a/core/src/io/anuke/mindustry/maps/filters/OreFilter.java b/core/src/io/anuke/mindustry/maps/filters/OreFilter.java index 8de308989a..e04f9935a4 100644 --- a/core/src/io/anuke/mindustry/maps/filters/OreFilter.java +++ b/core/src/io/anuke/mindustry/maps/filters/OreFilter.java @@ -8,7 +8,7 @@ import static io.anuke.mindustry.maps.filters.FilterOption.BlockOption; import static io.anuke.mindustry.maps.filters.FilterOption.oresOnly; public class OreFilter extends GenerateFilter{ - public float scl = 40, threshold = 0.75f, octaves = 2f, falloff = 0.4f; + public float scl = 23, threshold = 0.811f, octaves = 2f, falloff = 0.3f; public Block ore = Blocks.oreCopper; { diff --git a/core/src/io/anuke/mindustry/maps/filters/OreMedianFilter.java b/core/src/io/anuke/mindustry/maps/filters/OreMedianFilter.java new file mode 100644 index 0000000000..8080b49699 --- /dev/null +++ b/core/src/io/anuke/mindustry/maps/filters/OreMedianFilter.java @@ -0,0 +1,57 @@ +package io.anuke.mindustry.maps.filters; + +import io.anuke.arc.collection.*; +import io.anuke.arc.math.*; +import io.anuke.mindustry.*; +import io.anuke.mindustry.content.*; +import io.anuke.mindustry.maps.filters.FilterOption.*; +import io.anuke.mindustry.world.*; + +public class OreMedianFilter extends GenerateFilter{ + public float radius = 2; + public float percentile = 0.5f; + + private IntArray blocks = new IntArray(); + + { + buffered = true; + options( + new SliderOption("radius", () -> radius, f -> radius = f, 1f, 12f), + new SliderOption("percentile", () -> percentile, f -> percentile = f, 0f, 1f) + ); + } + + @Override + public void apply(){ + if(in.ore == Blocks.spawn) return; + + int cx = (in.x / 2) * 2; + int cy = (in.y / 2) * 2; + if(in.ore != Blocks.air){ + if(!(in.tile(cx + 1, cy).overlay() == in.ore && in.tile(cx, cy).overlay() == in.ore && in.tile(cx + 1, cy + 1).overlay() == in.ore && in.tile(cx, cy + 1).overlay() == in.ore && + !in.tile(cx + 1, cy).block().isStatic() && !in.tile(cx, cy).block().isStatic() && !in.tile(cx + 1, cy + 1).block().isStatic() && !in.tile(cx, cy + 1).block().isStatic())){ + in.ore = Blocks.air; + } + } + + int rad = (int)radius; + + blocks.clear(); + for(int x = -rad; x <= rad; x++){ + for(int y = -rad; y <= rad; y++){ + if(Mathf.dst2(x, y) > rad*rad) continue; + + Tile tile = in.tile(in.x + x, in.y + y); + if(tile.overlay() != Blocks.spawn) + blocks.add(tile.overlay().id); + } + } + + blocks.sort(); + + int index = Math.min((int)(blocks.size * percentile), blocks.size - 1); + int overlay = blocks.get(index); + + in.ore = Vars.content.block(overlay); + } +} diff --git a/core/src/io/anuke/mindustry/maps/generators/MapGenerator.java b/core/src/io/anuke/mindustry/maps/generators/MapGenerator.java index f8e0c1097e..52ad2b35c9 100644 --- a/core/src/io/anuke/mindustry/maps/generators/MapGenerator.java +++ b/core/src/io/anuke/mindustry/maps/generators/MapGenerator.java @@ -4,7 +4,6 @@ import io.anuke.arc.collection.*; import io.anuke.arc.math.*; import io.anuke.arc.math.geom.*; import io.anuke.arc.util.*; -import io.anuke.arc.util.noise.*; import io.anuke.mindustry.content.*; import io.anuke.mindustry.io.*; import io.anuke.mindustry.maps.*; @@ -19,8 +18,6 @@ public class MapGenerator extends Generator{ private Map map; private String mapName; private Array decorations = Array.with(new Decoration(Blocks.stone, Blocks.rock, 0.003f)); - /** How much the landscape is randomly distorted. */ - public float distortion = 3; /** * The amount of final enemy spawns used. -1 to use everything in the map. * This amount of enemy spawns is selected randomly from the map. @@ -43,17 +40,6 @@ public class MapGenerator extends Generator{ return this; } - public MapGenerator dist(float distortion){ - this.distortion = distortion; - return this; - } - - public MapGenerator dist(float distortion, boolean floor){ - this.distortion = distortion; - this.distortFloor = floor; - return this; - } - { decor(new Decoration(Blocks.snow, Blocks.snowrock, 0.01), new Decoration(Blocks.ignarock, Blocks.pebbles, 0.03f)); } @@ -100,28 +86,9 @@ public class MapGenerator extends Generator{ } } - Simplex simplex = new Simplex(Mathf.random(99999)); - for(int x = 0; x < width; x++){ for(int y = 0; y < height; y++){ - final double scl = 10; Tile tile = tiles[x][y]; - int newX = Mathf.clamp((int)(simplex.octaveNoise2D(1, 1, 1.0 / scl, x, y) * distortion + x), 0, width - 1); - int newY = Mathf.clamp((int)(simplex.octaveNoise2D(1, 1, 1.0 / scl, x + 9999, y + 9999) * distortion + y), 0, height - 1); - - if(((tile.block() instanceof StaticWall - && tiles[newX][newY].block() instanceof StaticWall) - || (tile.block() == Blocks.air && !tiles[newX][newY].block().synthetic()) - || (tiles[newX][newY].block() == Blocks.air && tile.block() instanceof StaticWall))){ - tile.setBlock(tiles[newX][newY].block()); - } - - if(distortFloor){ - tile.setFloor(tiles[newX][newY].floor()); - if(tiles[newX][newY].overlay() != Blocks.spawn && tile.overlay() != Blocks.spawn){ - tile.setOverlay(tiles[newX][newY].overlay()); - } - } for(Decoration decor : decorations){ if(x > 0 && y > 0 && (tiles[x - 1][y].block() == decor.wall || tiles[x][y - 1].block() == decor.wall)){ diff --git a/core/src/io/anuke/mindustry/type/ItemStack.java b/core/src/io/anuke/mindustry/type/ItemStack.java index 8067c56cd9..027a30ae36 100644 --- a/core/src/io/anuke/mindustry/type/ItemStack.java +++ b/core/src/io/anuke/mindustry/type/ItemStack.java @@ -23,6 +23,14 @@ public class ItemStack implements Comparable{ return other != null && other.item == item && other.amount == amount; } + public static ItemStack[] mult(ItemStack[] stacks, int amount){ + ItemStack[] copy = new ItemStack[stacks.length]; + for(int i = 0; i < copy.length; i++){ + copy[i] = new ItemStack(stacks[i].item, stacks[i].amount * amount); + } + return copy; + } + public static ItemStack[] with(Object... items){ ItemStack[] stacks = new ItemStack[items.length / 2]; for(int i = 0; i < items.length; i += 2){ diff --git a/core/src/io/anuke/mindustry/type/Zone.java b/core/src/io/anuke/mindustry/type/Zone.java index 069f8eb9c0..fe5f5210ac 100644 --- a/core/src/io/anuke/mindustry/type/Zone.java +++ b/core/src/io/anuke/mindustry/type/Zone.java @@ -3,6 +3,7 @@ package io.anuke.mindustry.type; import io.anuke.arc.*; import io.anuke.arc.collection.*; import io.anuke.arc.function.*; +import io.anuke.arc.graphics.*; import io.anuke.arc.graphics.g2d.*; import io.anuke.arc.scene.ui.layout.*; import io.anuke.arc.util.*; @@ -27,6 +28,7 @@ public class Zone extends UnlockableContent{ public int configureWave = 15; public int launchPeriod = 10; public Loadout loadout = Loadouts.basicShard; + public Texture preview; protected ItemStack[] baseLaunchCost = {}; protected Array startingItems = new Array<>(); @@ -152,6 +154,13 @@ public class Zone extends UnlockableContent{ } } + @Override + public void load(){ + if(Core.files.internal("zones/" + name + ".png").exists()){ + preview = new Texture(Core.files.internal("zones/" + name + ".png")); + } + } + @Override public boolean alwaysUnlocked(){ return alwaysUnlocked; diff --git a/core/src/io/anuke/mindustry/ui/Bar.java b/core/src/io/anuke/mindustry/ui/Bar.java index 4e9a87659d..1fbe5b02f4 100644 --- a/core/src/io/anuke/mindustry/ui/Bar.java +++ b/core/src/io/anuke/mindustry/ui/Bar.java @@ -71,7 +71,7 @@ public class Bar extends Element{ Draw.color(); - BitmapFont font = Core.scene.skin.getFont("default-font"); + BitmapFont font = Core.scene.skin.getFont("default"); GlyphLayout lay = Pools.obtain(GlyphLayout.class, GlyphLayout::new); lay.setText(font, name); diff --git a/core/src/io/anuke/mindustry/ui/ItemImage.java b/core/src/io/anuke/mindustry/ui/ItemImage.java index e7bed333b1..b2f790570b 100644 --- a/core/src/io/anuke/mindustry/ui/ItemImage.java +++ b/core/src/io/anuke/mindustry/ui/ItemImage.java @@ -17,6 +17,13 @@ public class ItemImage extends Stack{ add(t); } + public ItemImage(TextureRegion region){ + Table t = new Table().left().bottom(); + + add(new Image(region)); + add(t); + } + public ItemImage(ItemStack stack){ add(new Image(stack.item.icon(Icon.large))); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java index f391912fb0..e306ecdea3 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/CustomRulesDialog.java @@ -70,7 +70,7 @@ public class CustomRulesDialog extends FloatingDialog{ () -> rules.loadout, () -> { rules.loadout.clear(); - rules.loadout.add(new ItemStack(Items.copper, 200)); + rules.loadout.add(new ItemStack(Items.copper, 100)); }, () -> {}, () -> {}, item -> item.type == ItemType.material diff --git a/core/src/io/anuke/mindustry/ui/dialogs/DeployDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/DeployDialog.java index c313e12c7e..db28b6b2da 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/DeployDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/DeployDialog.java @@ -10,6 +10,7 @@ import io.anuke.arc.math.geom.*; import io.anuke.arc.scene.*; import io.anuke.arc.scene.ui.*; import io.anuke.arc.scene.ui.layout.*; +import io.anuke.arc.scene.utils.*; import io.anuke.arc.util.*; import io.anuke.mindustry.content.*; import io.anuke.mindustry.core.GameState.*; @@ -24,7 +25,7 @@ import io.anuke.mindustry.ui.TreeLayout.*; import static io.anuke.mindustry.Vars.*; public class DeployDialog extends FloatingDialog{ - private final float nodeSize = Unit.dp.scl(210f); + private final float nodeSize = Unit.dp.scl(230f); private ObjectSet nodes = new ObjectSet<>(); private ZoneInfoDialog info = new ZoneInfoDialog(); private Rectangle bounds = new Rectangle(); @@ -35,7 +36,8 @@ public class DeployDialog extends FloatingDialog{ ZoneNode root = new ZoneNode(Zones.groundZero, null); TreeLayout layout = new TreeLayout(); - layout.gapBetweenLevels = layout.gapBetweenNodes = Unit.dp.scl(50f); + layout.gapBetweenLevels = layout.gapBetweenNodes = Unit.dp.scl(60f); + layout.gapBetweenNodes = Unit.dp.scl(120f); layout.layout(root); bounds.set(layout.getBounds()); bounds.y += nodeSize*0.4f; @@ -78,10 +80,18 @@ public class DeployDialog extends FloatingDialog{ }}.setScaling(Scaling.fit)); if(control.saves.getZoneSlot() != null){ + float size = 230f; + stack.add(new Table(t -> { SaveSlot slot = control.saves.getZoneSlot(); - TextButton button = t.addButton(Core.bundle.format("resume", slot.getZone().localizedName()), () -> { + Stack sub = new Stack(); + + if(control.saves.getZoneSlot().getZone() != null){ + sub.add(new Table(f -> f.margin(4f).add(new Image(control.saves.getZoneSlot().getZone().preview).setScaling(Scaling.fit)).color(Color.DARK_GRAY).grow())); + } + + TextButton button = Elements.newButton(Core.bundle.format("resume", slot.getZone().localizedName()), "square", () -> { hide(); ui.loadAnd(() -> { @@ -95,7 +105,11 @@ public class DeployDialog extends FloatingDialog{ show(); } }); - }).size(230f).get(); + }); + + sub.add(button); + + t.add(sub).size(size); String color = "[lightgray]"; @@ -149,13 +163,12 @@ public class DeployDialog extends FloatingDialog{ drawDefaultBackground(x, y); } - void buildButton(Zone zone, TextButton button){ + void buildButton(Zone zone, Button button){ button.setDisabled(() -> hidden(zone)); button.clicked(() -> info.show(zone)); if(zone.unlocked()){ - button.addImage("icon-terrain").size(iconsize).padRight(3); - button.labelWrap(zone.localizedName()).width(140).growX(); + button.labelWrap(zone.localizedName()).style("outline").width(140).growX().get().setAlignment(Align.center); }else{ button.addImage("icon-locked"); button.row(); @@ -170,14 +183,26 @@ public class DeployDialog extends FloatingDialog{ { for(ZoneNode node : nodes){ - TextButton button = new TextButton("", "node"); - button.setSize(node.width, node.height); - button.update(() -> { - button.setPosition(node.x + panX + width / 2f, node.y + panY + height / 2f, Align.center); - }); - button.clearChildren(); + Stack stack = new Stack(); + Tmp.v1.set(node.width, node.height); + if(node.zone.preview != null){ + Tmp.v1.set(Scaling.fit.apply(node.zone.preview.getWidth(), node.zone.preview.getHeight(), node.width, node.height)); + } + + stack.setSize(Tmp.v1.x, Tmp.v1.y); + if(node.zone.unlocked() && node.zone.preview != null){ + stack.add(new Table(t -> t.margin(4f).add(new Image(node.zone.preview) + .setScaling(Scaling.stretch)).color(Color.DARK_GRAY).grow())); + }else{ + stack.add(new Table(t -> t.margin(4f).add(new Image("whiteui", Color.BLACK).setScaling(Scaling.stretch)).grow())); + } + + stack.update(() -> stack.setPosition(node.x + panX + width / 2f, node.y + panY + height / 2f, Align.center)); + + Button button = new Button("square"); buildButton(node.zone, button); - addChild(button); + stack.add(button); + addChild(stack); } dragged((x, y) -> { @@ -206,7 +231,7 @@ public class DeployDialog extends FloatingDialog{ for(ZoneNode node : nodes){ for(ZoneNode child : node.allChildren){ - Lines.stroke(Unit.dp.scl(3f), node.zone.locked() || child.zone.locked() ? Pal.gray : Pal.accent); + Lines.stroke(Unit.dp.scl(4f), node.zone.locked() || child.zone.locked() ? Pal.gray : Pal.gray); Lines.line(node.x + offsetX, node.y + offsetY, child.x + offsetX, child.y + offsetY); } } @@ -225,7 +250,7 @@ public class DeployDialog extends FloatingDialog{ this.zone = zone; this.parent = parent; this.width = this.height = nodeSize; - this.height /= 2f; + //this.height /= 2f; nodes.add(this); arr.selectFrom(content.zones(), other -> other.zoneRequirements.length > 0 && other.zoneRequirements[0].zone == zone); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java b/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java index d76a25a981..f67a9b2fec 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/FileChooser.java @@ -190,7 +190,7 @@ public class FileChooser extends FloatingDialog{ GlyphLayout layout = Pools.obtain(GlyphLayout.class, GlyphLayout::new); - layout.setText(Core.scene.skin.getFont("default-font"), navigation.getText()); + layout.setText(Core.scene.skin.getFont("default"), navigation.getText()); if(layout.width < navigation.getWidth()){ navigation.setCursorPosition(0); diff --git a/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java index a59850a88d..5d29910c32 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/MapsDialog.java @@ -75,7 +75,15 @@ public class MapsDialog extends FloatingDialog{ map = world.maps.makeLegacyMap(file); } - String name = map.tags.get("name"); + //when you attempt to import a save, it will have no name, so generate one + String name = map.tags.getOr("name", () -> { + String result = "unknown"; + int number = 0; + while(world.maps.byName(result + number++) != null); + return result + number; + }); + + //this will never actually get called, but it remains just in case if(name == null){ ui.showError("$editor.errorname"); return; diff --git a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java index 4d0c13284c..75e9fb8805 100644 --- a/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java +++ b/core/src/io/anuke/mindustry/ui/dialogs/SettingsMenuDialog.java @@ -1,22 +1,22 @@ package io.anuke.mindustry.ui.dialogs; -import io.anuke.arc.Core; -import io.anuke.arc.collection.ObjectMap; -import io.anuke.arc.files.FileHandle; -import io.anuke.arc.function.Consumer; -import io.anuke.arc.input.KeyCode; -import io.anuke.arc.scene.Element; -import io.anuke.arc.scene.event.InputEvent; -import io.anuke.arc.scene.event.InputListener; +import io.anuke.arc.*; +import io.anuke.arc.collection.*; +import io.anuke.arc.files.*; +import io.anuke.arc.function.*; +import io.anuke.arc.input.*; +import io.anuke.arc.scene.*; +import io.anuke.arc.scene.event.*; import io.anuke.arc.scene.ui.*; -import io.anuke.arc.scene.ui.SettingsDialog.SettingsTable.Setting; -import io.anuke.arc.scene.ui.layout.Table; +import io.anuke.arc.scene.ui.SettingsDialog.SettingsTable.*; +import io.anuke.arc.scene.ui.layout.*; import io.anuke.arc.util.*; -import io.anuke.mindustry.core.GameState.State; -import io.anuke.mindustry.core.Platform; -import io.anuke.mindustry.graphics.Pal; +import io.anuke.mindustry.core.GameState.*; +import io.anuke.mindustry.core.*; +import io.anuke.mindustry.graphics.*; import io.anuke.mindustry.net.Net; +import static io.anuke.arc.Core.bundle; import static io.anuke.mindustry.Vars.*; public class SettingsMenuDialog extends SettingsDialog{ @@ -127,9 +127,8 @@ public class SettingsMenuDialog extends SettingsDialog{ } void addSettings(){ - //TODO add when sound works again - //sound.volumePrefs(); - sound.add("[LIGHT_GRAY]there is no sound implemented in v4 yet"); + sound.sliderPref("musicvol", bundle.get("setting.musicvol.name", "Music Volume"), 100, 0, 100, 1, i -> i + "%"); + sound.sliderPref("sfxvol", bundle.get("setting.sfxvol.name", "SFX Volume"), 100, 0, 100, 1, i -> i + "%"); game.screenshakePref(); if(mobile){ diff --git a/core/src/io/anuke/mindustry/ui/fragments/ChatFragment.java b/core/src/io/anuke/mindustry/ui/fragments/ChatFragment.java index 28b1eff9ba..2f37bb994f 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/ChatFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/ChatFragment.java @@ -50,7 +50,7 @@ public class ChatFragment extends Table{ super(); setFillParent(true); - font = scene.skin.getFont("default-font"); + font = scene.skin.getFont("default"); visible(() -> { if(!Net.active() && messages.size > 0){ @@ -106,7 +106,7 @@ public class ChatFragment extends Table{ chatfield = new TextField("", new TextField.TextFieldStyle(scene.skin.get(TextField.TextFieldStyle.class))); chatfield.setFilter((field, c) -> field.getText().length() < Vars.maxTextLength); chatfield.getStyle().background = null; - chatfield.getStyle().font = scene.skin.getFont("default-font-chat"); + chatfield.getStyle().font = scene.skin.getFont("chat"); chatfield.getStyle().fontColor = Color.WHITE; chatfield.setStyle(chatfield.getStyle()); diff --git a/core/src/io/anuke/mindustry/ui/fragments/LoadingFragment.java b/core/src/io/anuke/mindustry/ui/fragments/LoadingFragment.java index c994102e68..688a542ccc 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/LoadingFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/LoadingFragment.java @@ -1,6 +1,7 @@ package io.anuke.mindustry.ui.fragments; import io.anuke.arc.scene.Group; +import io.anuke.arc.scene.actions.*; import io.anuke.arc.scene.event.Touchable; import io.anuke.arc.scene.ui.Label; import io.anuke.arc.scene.ui.TextButton; @@ -42,13 +43,16 @@ public class LoadingFragment extends Fragment{ } public void show(String text){ + table.touchable(Touchable.enabled); table.