diff --git a/core/assets-raw/sprites/blocks/environment/grass-cliff-edge-1.png b/core/assets-raw/sprites/blocks/environment/grass-cliff-edge-1.png new file mode 100644 index 0000000000..b7db44f2c8 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/grass-cliff-edge-1.png differ diff --git a/core/assets-raw/sprites/blocks/environment/grass-cliff-edge-2.png b/core/assets-raw/sprites/blocks/environment/grass-cliff-edge-2.png new file mode 100644 index 0000000000..95c438eebe Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/grass-cliff-edge-2.png differ diff --git a/core/assets-raw/sprites/blocks/environment/grass-cliff-edge.png b/core/assets-raw/sprites/blocks/environment/grass-cliff-edge.png new file mode 100644 index 0000000000..d13e2f3167 Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/grass-cliff-edge.png differ diff --git a/core/assets-raw/sprites/blocks/environment/grass-cliff-side.png b/core/assets-raw/sprites/blocks/environment/grass-cliff-side.png new file mode 100644 index 0000000000..19ed554d1e Binary files /dev/null and b/core/assets-raw/sprites/blocks/environment/grass-cliff-side.png differ diff --git a/core/assets-raw/sprites/blocks/production/blast-mixer.png b/core/assets-raw/sprites/blocks/production/blast-mixer.png new file mode 100644 index 0000000000..c20530333f Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/blast-mixer.png differ diff --git a/core/assets-raw/sprites/blocks/production/thermite-mixer.png b/core/assets-raw/sprites/blocks/production/thermite-mixer.png new file mode 100644 index 0000000000..5e5008012c Binary files /dev/null and b/core/assets-raw/sprites/blocks/production/thermite-mixer.png differ diff --git a/core/assets/sprites/sprites.atlas b/core/assets/sprites/sprites.atlas index f2e08ee921..4edfa01062 100644 --- a/core/assets/sprites/sprites.atlas +++ b/core/assets/sprites/sprites.atlas @@ -13,28 +13,28 @@ background index: -1 conveyor-arrow rotate: false - xy: 757, 318 + xy: 555, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-arrow rotate: false - xy: 736, 268 + xy: 787, 401 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-bridge rotate: false - xy: 746, 268 + xy: 797, 411 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor-end rotate: false - xy: 756, 268 + xy: 807, 421 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -90,42 +90,42 @@ blast-drill-top index: -1 carbide-drill rotate: false - xy: 707, 309 + xy: 505, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 carbide-drill-rotator rotate: false - xy: 717, 309 + xy: 525, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 carbide-drill-top rotate: false - xy: 727, 329 + xy: 515, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laser-drill rotate: false - xy: 279, 79 + xy: 315, 81 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 laser-drill-rotator rotate: false - xy: 297, 81 + xy: 333, 81 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 laser-drill-top rotate: false - xy: 315, 81 + xy: 351, 81 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -188,49 +188,49 @@ plasma-drill-top index: -1 tungsten-drill rotate: false - xy: 335, 23 + xy: 847, 365 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 tungsten-drill-rotator rotate: false - xy: 345, 33 + xy: 787, 351 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 tungsten-drill-top rotate: false - xy: 335, 13 + xy: 787, 341 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water-extractor rotate: false - xy: 315, 63 + xy: 351, 63 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 water-extractor-liquid rotate: false - xy: 333, 63 + xy: 369, 63 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 water-extractor-rotator rotate: false - xy: 351, 63 + xy: 387, 63 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 water-extractor-top rotate: false - xy: 369, 63 + xy: 405, 63 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -293,441 +293,469 @@ blackstoneedge index: -1 coal2 rotate: false - xy: 737, 328 + xy: 545, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal3 rotate: false - xy: 737, 318 + xy: 535, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt2 rotate: false - xy: 747, 308 + xy: 565, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt3 rotate: false - xy: 757, 308 + xy: 575, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirtedge rotate: false - xy: 991, 433 + xy: 859, 437 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 +grass-cliff-edge + rotate: false + xy: 607, 110 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +grass-cliff-edge-1 + rotate: false + xy: 617, 110 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +grass-cliff-edge-2 + rotate: false + xy: 627, 110 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 +grass-cliff-side + rotate: false + xy: 637, 110 + size: 8, 8 + orig: 8, 8 + offset: 0, 0 + index: -1 grass2 rotate: false - xy: 787, 320 + xy: 699, 229 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grass3 rotate: false - xy: 787, 310 + xy: 496, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grassedge rotate: false - xy: 251, 27 + xy: 915, 439 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 ice2 rotate: false - xy: 706, 299 + xy: 647, 110 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ice3 rotate: false - xy: 706, 289 + xy: 605, 100 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 iceedge rotate: false - xy: 251, 13 + xy: 929, 439 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 icerock2 rotate: false - xy: 716, 299 + xy: 615, 100 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerockshadow1 rotate: false - xy: 706, 279 + xy: 625, 100 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rockshadow1 rotate: false - xy: 706, 279 + xy: 625, 100 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerockshadow2 rotate: false - xy: 716, 289 + xy: 635, 100 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rockshadow2 rotate: false - xy: 716, 289 + xy: 635, 100 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lavaedge rotate: false - xy: 991, 419 + xy: 943, 439 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 lead2 rotate: false - xy: 745, 258 + xy: 787, 391 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lead3 rotate: false - xy: 755, 258 + xy: 797, 401 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor2 rotate: false - xy: 753, 248 + xy: 787, 381 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor3 rotate: false - xy: 713, 239 + xy: 797, 391 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor4 rotate: false - xy: 723, 239 + xy: 807, 401 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor5 rotate: false - xy: 733, 238 + xy: 817, 411 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor6 rotate: false - xy: 743, 238 + xy: 827, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalflooredge rotate: false - xy: 621, 106 + xy: 325, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 oiledge rotate: false - xy: 635, 106 + xy: 339, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 rock2 rotate: false - xy: 723, 209 + xy: 787, 361 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand2 rotate: false - xy: 713, 189 + xy: 807, 381 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand3 rotate: false - xy: 723, 189 + xy: 817, 391 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sandedge rotate: false - xy: 649, 106 + xy: 353, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 shrubshadow rotate: false - xy: 923, 417 + xy: 827, 383 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow2 rotate: false - xy: 943, 417 + xy: 817, 371 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow3 rotate: false - xy: 953, 413 + xy: 827, 373 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snowedge rotate: false - xy: 641, 186 + xy: 381, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 spaceedge rotate: false - xy: 641, 172 + xy: 395, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 stone-cliff-edge rotate: false - xy: 295, 33 + xy: 837, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone-cliff-edge-1 rotate: false - xy: 295, 23 + xy: 837, 413 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone-cliff-edge-2 rotate: false - xy: 305, 33 + xy: 837, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone-cliff-side rotate: false - xy: 295, 13 + xy: 837, 393 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone2 rotate: false - xy: 963, 423 + xy: 817, 361 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone3 rotate: false - xy: 963, 413 + xy: 827, 363 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneedge rotate: false - xy: 641, 158 + xy: 409, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 thorium2 rotate: false - xy: 305, 23 + xy: 837, 383 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium3 rotate: false - xy: 315, 33 + xy: 837, 373 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium2 rotate: false - xy: 305, 13 + xy: 837, 363 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium3 rotate: false - xy: 315, 23 + xy: 847, 425 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 tungsten2 rotate: false - xy: 335, 33 + xy: 847, 385 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 tungsten3 rotate: false - xy: 325, 13 + xy: 847, 375 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water-cliff-edge rotate: false - xy: 345, 13 + xy: 807, 351 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water-cliff-edge-1 rotate: false - xy: 355, 23 + xy: 807, 341 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water-cliff-edge-2 rotate: false - xy: 365, 33 + xy: 817, 351 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water-cliff-side rotate: false - xy: 355, 13 + xy: 827, 353 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 wateredge rotate: false - xy: 449, 108 + xy: 253, 41 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 block-border rotate: false - xy: 981, 440 + xy: 489, 65 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-elevation rotate: false - xy: 981, 430 + xy: 489, 55 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 combustion-generator-top rotate: false - xy: 981, 430 + xy: 489, 55 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-middle rotate: false - xy: 447, 51 + xy: 453, 16 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pump-liquid rotate: false - xy: 447, 51 + xy: 453, 16 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-slope rotate: false - xy: 447, 41 + xy: 463, 26 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 border rotate: false - xy: 697, 329 + xy: 453, 6 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduit-liquid rotate: false - xy: 747, 318 + xy: 545, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 cross-1 rotate: false - xy: 737, 308 + xy: 575, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 cross-2 rotate: false - xy: 345, 99 + xy: 381, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -748,7 +776,7 @@ cross-4 index: -1 enemyspawn rotate: false - xy: 777, 320 + xy: 585, 98 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -762,49 +790,49 @@ nuclearreactor-shadow index: -1 place-arrow rotate: false - xy: 753, 238 + xy: 777, 371 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 playerspawn rotate: false - xy: 707, 229 + xy: 787, 371 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ripples rotate: false - xy: 667, 191 + xy: 477, 60 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 rubble-1-0 rotate: false - xy: 405, 81 + xy: 261, 55 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-1-1 rotate: false - xy: 423, 81 + xy: 279, 61 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-2-0 rotate: false - xy: 261, 55 + xy: 297, 63 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rubble-2-1 rotate: false - xy: 279, 61 + xy: 315, 63 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -825,7 +853,7 @@ rubble-3-1 index: -1 shadow-1 rotate: false - xy: 691, 203 + xy: 451, 36 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -867,7 +895,7 @@ shadow-6 index: -1 shadow-round-1 rotate: false - xy: 667, 167 + xy: 463, 36 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -881,105 +909,105 @@ shadow-round-2 index: -1 bridgeconduit-arrow rotate: false - xy: 697, 319 + xy: 463, 16 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconduit-bridge rotate: false - xy: 707, 329 + xy: 463, 6 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconduit-end rotate: false - xy: 697, 309 + xy: 495, 110 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconveyor-arrow rotate: false - xy: 717, 329 + xy: 495, 100 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconveyor-bridge rotate: false - xy: 707, 319 + xy: 505, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconveyor-end rotate: false - xy: 717, 319 + xy: 515, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduit-bottom rotate: false - xy: 747, 328 + xy: 555, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conduit-top rotate: false - xy: 757, 328 + xy: 565, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit-arrow rotate: false - xy: 705, 259 + xy: 787, 411 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit-bridge rotate: false - xy: 715, 259 + xy: 797, 421 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit-end rotate: false - xy: 725, 259 + xy: 777, 401 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter rotate: false - xy: 713, 249 + xy: 807, 411 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-bottom rotate: false - xy: 723, 249 + xy: 817, 421 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-liquid rotate: false - xy: 733, 248 + xy: 827, 423 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidrouter-top rotate: false - xy: 743, 248 + xy: 777, 381 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1007,14 +1035,14 @@ liquidtank-top index: -1 pulseconduit-bottom rotate: false - xy: 717, 229 + xy: 797, 381 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulseconduit-top rotate: false - xy: 709, 219 + xy: 807, 391 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1119,7 +1147,7 @@ nuclear-reactor-lights index: -1 rtg-generator-top rotate: false - xy: 723, 199 + xy: 797, 371 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1222,121 +1250,135 @@ biomattercompressor-top orig: 16, 16 offset: 0, 0 index: -1 +blast-mixer + rotate: false + xy: 499, 139 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-icon-blast-mixer + rotate: false + xy: 499, 139 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 centrifuge-liquid rotate: false - xy: 309, 99 + xy: 345, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cryofluidmixer-bottom rotate: false - xy: 499, 121 + xy: 535, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cryofluidmixer-liquid rotate: false - xy: 517, 121 + xy: 553, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cryofluidmixer-top rotate: false - xy: 535, 121 + xy: 571, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cultivator rotate: false - xy: 553, 121 + xy: 589, 136 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cultivator-middle rotate: false - xy: 571, 121 + xy: 589, 118 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 cultivator-top rotate: false - xy: 589, 136 + xy: 607, 120 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 extractor rotate: false - xy: 777, 310 + xy: 595, 98 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lavasmelter rotate: false - xy: 735, 258 + xy: 777, 391 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 plasteel-compressor-top rotate: false - xy: 333, 81 + xy: 369, 81 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 poweralloysmelter-top rotate: false - xy: 351, 81 + xy: 387, 81 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 powersmelter-top rotate: false - xy: 369, 81 + xy: 405, 81 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 silicon-smelter-top rotate: false - xy: 369, 81 + xy: 405, 81 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 pulverizer rotate: false - xy: 719, 219 + xy: 817, 401 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 pulverizer-rotator rotate: false - xy: 713, 209 + xy: 827, 403 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 separator-liquid rotate: false - xy: 827, 423 + xy: 827, 393 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 siliconextractor rotate: false - xy: 933, 417 + xy: 807, 361 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1350,21 +1392,21 @@ core-open index: -1 block-1 rotate: false - xy: 955, 433 + xy: 489, 75 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-2 rotate: false - xy: 499, 139 + xy: 517, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-2-top rotate: false - xy: 517, 139 + xy: 535, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1413,35 +1455,35 @@ arc-heat index: -1 crux rotate: false - xy: 363, 99 + xy: 399, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 crux-heat rotate: false - xy: 381, 99 + xy: 417, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 crux-panel-left rotate: false - xy: 399, 99 + xy: 499, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 crux-panel-right rotate: false - xy: 417, 99 + xy: 517, 121 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 duo rotate: false - xy: 767, 310 + xy: 595, 108 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1476,14 +1518,14 @@ scatter index: -1 lancer rotate: false - xy: 697, 215 + xy: 465, 60 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 lancer-heat rotate: false - xy: 667, 203 + xy: 477, 72 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -1497,70 +1539,70 @@ meltdown index: -1 scatter-heat rotate: false - xy: 679, 203 + xy: 453, 48 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 scorch rotate: false - xy: 667, 179 + xy: 465, 48 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 scorch-shoot rotate: false - xy: 679, 191 + xy: 477, 48 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 swarmer rotate: false - xy: 297, 63 + xy: 333, 63 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 wave rotate: false - xy: 387, 63 + xy: 423, 63 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 wave-liquid rotate: false - xy: 405, 63 + xy: 279, 43 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 dronefactory-top rotate: false - xy: 607, 120 + xy: 643, 120 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 walkerfactory-top rotate: false - xy: 607, 120 + xy: 643, 120 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 dronefactory-top-open rotate: false - xy: 625, 120 + xy: 633, 214 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 walkerfactory-top-open rotate: false - xy: 625, 120 + xy: 633, 214 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1581,28 +1623,28 @@ ship-factory index: -1 reconstructor-open rotate: false - xy: 387, 81 + xy: 423, 81 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 repairpoint-turret rotate: false - xy: 713, 199 + xy: 777, 361 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 door-large-open rotate: false - xy: 589, 118 + xy: 625, 120 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 door-open rotate: false - xy: 767, 320 + xy: 585, 108 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1623,7 +1665,7 @@ beam-end index: -1 blank rotate: false - xy: 566, 287 + xy: 486, 45 size: 1, 1 orig: 1, 1 offset: 0, 0 @@ -1651,7 +1693,7 @@ casing index: -1 clear rotate: false - xy: 229, 169 + xy: 566, 287 size: 1, 1 orig: 1, 1 offset: 0, 0 @@ -1665,7 +1707,7 @@ enemyarrow index: -1 error rotate: false - xy: 773, 340 + xy: 887, 439 size: 12, 12 orig: 12, 12 offset: 0, 0 @@ -1693,7 +1735,7 @@ laserfull index: -1 minelaser rotate: false - xy: 123, 25 + xy: 1017, 459 size: 1, 12 orig: 1, 12 offset: 0, 0 @@ -1714,28 +1756,28 @@ shell index: -1 shell-back rotate: false - xy: 679, 180 + xy: 475, 37 size: 9, 9 orig: 9, 9 offset: 0, 0 index: -1 shot rotate: false - xy: 913, 417 + xy: 817, 381 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 transfer rotate: false - xy: 126, 25 + xy: 123, 25 size: 1, 12 orig: 1, 12 offset: 0, 0 index: -1 transfer-arrow rotate: false - xy: 325, 33 + xy: 847, 415 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1749,14 +1791,14 @@ transfer-end index: -1 block-icon-arc rotate: false - xy: 535, 139 + xy: 553, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-biomattercompressor rotate: false - xy: 553, 139 + xy: 571, 139 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -1770,126 +1812,126 @@ block-icon-blast-drill index: -1 block-icon-bridgeconduit rotate: false - xy: 663, 217 + xy: 489, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconduit rotate: false - xy: 663, 217 + xy: 489, 45 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-bridgeconveyor rotate: false - xy: 667, 157 + xy: 486, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 bridgeconveyor rotate: false - xy: 667, 157 + xy: 486, 35 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-carbide-drill rotate: false - xy: 679, 170 + xy: 659, 231 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-carbide-wall rotate: false - xy: 703, 205 + xy: 669, 229 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 carbide-wall rotate: false - xy: 703, 205 + xy: 669, 229 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-carbide-wall-large rotate: false - xy: 571, 139 + xy: 623, 188 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 carbide-wall-large rotate: false - xy: 571, 139 + xy: 623, 188 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-centrifuge rotate: false - xy: 623, 188 + xy: 623, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 centrifuge rotate: false - xy: 623, 188 + xy: 623, 170 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-coal rotate: false - xy: 583, 108 + xy: 679, 229 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 coal1 rotate: false - xy: 583, 108 + xy: 679, 229 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-combustion-generator rotate: false - xy: 593, 108 + xy: 689, 229 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 combustion-generator rotate: false - xy: 593, 108 + xy: 689, 229 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-conduit rotate: false - xy: 679, 160 + xy: 263, 31 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-conveyor rotate: false - xy: 297, 53 + xy: 263, 21 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 conveyor rotate: false - xy: 297, 53 + xy: 263, 21 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -1910,154 +1952,154 @@ core index: -1 block-icon-cryofluidmixer rotate: false - xy: 623, 170 + xy: 623, 152 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-cultivator rotate: false - xy: 623, 152 + xy: 705, 349 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-deepwater rotate: false - xy: 307, 53 + xy: 263, 11 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 deepwater rotate: false - xy: 307, 53 + xy: 263, 11 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-deflector-wall rotate: false - xy: 317, 53 + xy: 263, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 deflector-wall rotate: false - xy: 317, 53 + xy: 263, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 phase-wall rotate: false - xy: 317, 53 + xy: 263, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-phase-wall rotate: false - xy: 317, 53 + xy: 263, 1 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-deflector-wall-large rotate: false - xy: 705, 349 + xy: 723, 367 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 deflector-wall-large rotate: false - xy: 705, 349 + xy: 723, 367 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 phase-wall-large rotate: false - xy: 705, 349 + xy: 723, 367 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-phase-wall-large rotate: false - xy: 705, 349 + xy: 723, 367 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-dirt rotate: false - xy: 327, 53 + xy: 273, 33 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 dirt1 rotate: false - xy: 327, 53 + xy: 273, 33 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-door rotate: false - xy: 337, 53 + xy: 273, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 door rotate: false - xy: 337, 53 + xy: 273, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-door-large rotate: false - xy: 723, 367 + xy: 723, 349 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 door-large rotate: false - xy: 723, 367 + xy: 723, 349 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-dronefactory rotate: false - xy: 723, 349 + xy: 679, 321 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-droppoint rotate: false - xy: 347, 53 + xy: 283, 33 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 droppoint rotate: false - xy: 347, 53 + xy: 283, 33 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-duo rotate: false - xy: 357, 53 + xy: 273, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2078,112 +2120,112 @@ block-icon-fusion-reactor index: -1 block-icon-grass rotate: false - xy: 367, 53 + xy: 283, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 grass1 rotate: false - xy: 367, 53 + xy: 283, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-hail rotate: false - xy: 377, 53 + xy: 273, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-ice rotate: false - xy: 387, 53 + xy: 283, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 ice1 rotate: false - xy: 387, 53 + xy: 283, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-icerock rotate: false - xy: 397, 53 + xy: 283, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icerock1 rotate: false - xy: 397, 53 + xy: 283, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-incinerator rotate: false - xy: 407, 53 + xy: 293, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 incinerator rotate: false - xy: 407, 53 + xy: 293, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-itemsource rotate: false - xy: 295, 43 + xy: 293, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 itemsource rotate: false - xy: 295, 43 + xy: 293, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-itemvoid rotate: false - xy: 305, 43 + xy: 303, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 itemvoid rotate: false - xy: 305, 43 + xy: 303, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-junction rotate: false - xy: 315, 43 + xy: 293, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 junction rotate: false - xy: 315, 43 + xy: 293, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-lancer rotate: false - xy: 679, 321 + xy: 679, 303 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -2204,98 +2246,98 @@ large-solar-panel index: -1 block-icon-laser-drill rotate: false - xy: 679, 303 + xy: 273, 109 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-laserconduit rotate: false - xy: 325, 43 + xy: 303, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconduit rotate: false - xy: 325, 43 + xy: 303, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-laserconveyor rotate: false - xy: 335, 43 + xy: 313, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 laserconveyor rotate: false - xy: 335, 43 + xy: 313, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-lava rotate: false - xy: 345, 43 + xy: 303, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lava rotate: false - xy: 345, 43 + xy: 303, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-lead rotate: false - xy: 355, 43 + xy: 313, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 lead1 rotate: false - xy: 355, 43 + xy: 313, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-liquidjunction rotate: false - xy: 365, 43 + xy: 323, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidjunction rotate: false - xy: 365, 43 + xy: 323, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-liquidrouter rotate: false - xy: 375, 43 + xy: 313, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-liquidsource rotate: false - xy: 385, 43 + xy: 323, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 liquidsource rotate: false - xy: 385, 43 + xy: 323, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2330,14 +2372,14 @@ core-top index: -1 block-icon-mechanical-pump rotate: false - xy: 395, 43 + xy: 333, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 mechanical-pump rotate: false - xy: 395, 43 + xy: 333, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2351,42 +2393,42 @@ block-icon-meltdown index: -1 block-icon-melter rotate: false - xy: 405, 43 + xy: 323, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 melter rotate: false - xy: 405, 43 + xy: 323, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-metalfloor rotate: false - xy: 417, 53 + xy: 333, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 metalfloor1 rotate: false - xy: 417, 53 + xy: 333, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-multiplexer rotate: false - xy: 273, 109 + xy: 291, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 multiplexer rotate: false - xy: 273, 109 + xy: 291, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -2407,14 +2449,14 @@ nuclear-reactor index: -1 block-icon-oil rotate: false - xy: 415, 43 + xy: 343, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 oil rotate: false - xy: 415, 43 + xy: 343, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2428,28 +2470,28 @@ block-icon-oil-extractor index: -1 block-icon-oilrefinery rotate: false - xy: 427, 55 + xy: 333, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 oilrefinery rotate: false - xy: 427, 55 + xy: 333, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-overflowgate rotate: false - xy: 439, 71 + xy: 343, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 overflowgate rotate: false - xy: 439, 71 + xy: 343, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2463,140 +2505,140 @@ block-icon-plasma-drill index: -1 block-icon-plasteel-compressor rotate: false - xy: 291, 117 + xy: 309, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 plasteel-compressor rotate: false - xy: 291, 117 + xy: 309, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-power-node rotate: false - xy: 439, 61 + xy: 353, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 power-node rotate: false - xy: 439, 61 + xy: 353, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-power-node-large rotate: false - xy: 309, 117 + xy: 327, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 power-node-large rotate: false - xy: 309, 117 + xy: 327, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-powerinfinite rotate: false - xy: 437, 51 + xy: 343, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 powerinfinite rotate: false - xy: 437, 51 + xy: 343, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-powervoid rotate: false - xy: 427, 45 + xy: 353, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 powervoid rotate: false - xy: 427, 45 + xy: 353, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-pulseconduit rotate: false - xy: 437, 41 + xy: 363, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-pulverizer rotate: false - xy: 705, 339 + xy: 353, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-reconstructor rotate: false - xy: 327, 117 + xy: 345, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 dronefactory rotate: false - xy: 327, 117 + xy: 345, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 reconstructor rotate: false - xy: 327, 117 + xy: 345, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 walkerfactory rotate: false - xy: 327, 117 + xy: 345, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-repairpoint rotate: false - xy: 715, 339 + xy: 363, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 repairpoint rotate: false - xy: 715, 339 + xy: 363, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-resupplypoint rotate: false - xy: 725, 339 + xy: 373, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 resupplypoint rotate: false - xy: 725, 339 + xy: 373, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -2610,427 +2652,441 @@ block-icon-ripple index: -1 block-icon-rock rotate: false - xy: 843, 425 + xy: 363, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rock1 rotate: false - xy: 843, 425 + xy: 363, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-rotary-pump rotate: false - xy: 345, 117 + xy: 363, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 rotary-pump rotate: false - xy: 345, 117 + xy: 363, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-router rotate: false - xy: 853, 425 + xy: 373, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 router rotate: false - xy: 853, 425 + xy: 373, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-rtg-generator rotate: false - xy: 863, 425 + xy: 383, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 rtg-generator rotate: false - xy: 863, 425 + xy: 383, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-sand rotate: false - xy: 873, 425 + xy: 373, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sand1 rotate: false - xy: 873, 425 + xy: 373, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-scorch rotate: false - xy: 883, 425 + xy: 383, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-separator rotate: false - xy: 893, 427 + xy: 393, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 separator rotate: false - xy: 893, 427 + xy: 393, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-shrub rotate: false - xy: 903, 427 + xy: 383, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shrub rotate: false - xy: 903, 427 + xy: 383, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-silicon-smelter rotate: false - xy: 363, 117 + xy: 381, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 silicon-smelter rotate: false - xy: 363, 117 + xy: 381, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-smelter rotate: false - xy: 913, 427 + xy: 393, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 smelter rotate: false - xy: 913, 427 + xy: 393, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-snow rotate: false - xy: 923, 427 + xy: 403, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 snow1 rotate: false - xy: 923, 427 + xy: 403, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-solar-panel rotate: false - xy: 933, 427 + xy: 393, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 solar-panel rotate: false - xy: 933, 427 + xy: 393, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-sortedunloader rotate: false - xy: 943, 427 + xy: 403, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sortedunloader rotate: false - xy: 943, 427 + xy: 403, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-sorter rotate: false - xy: 953, 423 + xy: 413, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 sorter rotate: false - xy: 953, 423 + xy: 413, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-space rotate: false - xy: 773, 330 + xy: 403, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 space rotate: false - xy: 773, 330 + xy: 403, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-splitter rotate: false - xy: 783, 330 + xy: 413, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 splitter rotate: false - xy: 783, 330 + xy: 413, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-stone rotate: false - xy: 265, 31 + xy: 423, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stone1 rotate: false - xy: 265, 31 + xy: 423, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-stoneformer rotate: false - xy: 265, 21 + xy: 413, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 stoneformer rotate: false - xy: 265, 21 + xy: 413, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-swarmer rotate: false - xy: 381, 117 + xy: 399, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-thermal-generator rotate: false - xy: 399, 117 + xy: 417, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 thermal-generator rotate: false - xy: 399, 117 + xy: 417, 117 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-thermal-pump rotate: false - xy: 417, 117 + xy: 213, 98 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 thermal-pump rotate: false - xy: 417, 117 + xy: 213, 98 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +block-icon-thermite-mixer + rotate: false + xy: 231, 99 + size: 16, 16 + orig: 16, 16 + offset: 0, 0 + index: -1 +thermite-mixer + rotate: false + xy: 231, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-thorium rotate: false - xy: 703, 245 + xy: 423, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium1 rotate: false - xy: 703, 245 + xy: 423, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-thorium-wall rotate: false - xy: 703, 195 + xy: 433, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 thorium-wall rotate: false - xy: 703, 195 + xy: 433, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-thorium-wall-large rotate: false - xy: 213, 98 + xy: 207, 80 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 thorium-wall-large rotate: false - xy: 213, 98 + xy: 207, 80 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-titanium rotate: false - xy: 279, 35 + xy: 423, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium1 rotate: false - xy: 279, 35 + xy: 423, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-titanium-conveyor rotate: false - xy: 275, 25 + xy: 433, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 titanium-conveyor rotate: false - xy: 275, 25 + xy: 433, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-tungsten rotate: false - xy: 275, 15 + xy: 433, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 tungsten1 rotate: false - xy: 275, 15 + xy: 433, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-tungsten-drill rotate: false - xy: 275, 5 + xy: 443, 23 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-tungsten-wall rotate: false - xy: 285, 25 + xy: 443, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 tungsten-wall rotate: false - xy: 285, 25 + xy: 443, 13 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-tungsten-wall-large rotate: false - xy: 231, 99 + xy: 207, 62 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 tungsten-wall-large rotate: false - xy: 231, 99 + xy: 207, 62 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-turbine-generator rotate: false - xy: 207, 80 + xy: 291, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 turbine-generator rotate: false - xy: 207, 80 + xy: 291, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-unloader rotate: false - xy: 285, 15 + xy: 443, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 unloader rotate: false - xy: 285, 15 + xy: 443, 3 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -3065,189 +3121,189 @@ warpgate index: -1 block-icon-water rotate: false - xy: 285, 5 + xy: 453, 26 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 water rotate: false - xy: 285, 5 + xy: 453, 26 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 block-icon-water-extractor rotate: false - xy: 207, 62 + xy: 309, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 block-icon-wave rotate: false - xy: 291, 99 + xy: 327, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 mech-icon-alpha-mech rotate: false - xy: 1005, 419 + xy: 297, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 mech-icon-delta-mech rotate: false - xy: 1005, 419 + xy: 297, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 mech-icon-omega-mech rotate: false - xy: 1005, 419 + xy: 297, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 mech-icon-tau-mech rotate: false - xy: 1005, 419 + xy: 297, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 mech-icon-dart-ship rotate: false - xy: 607, 106 + xy: 311, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 mech-icon-halberd-ship rotate: false - xy: 607, 106 + xy: 311, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 mech-icon-javelin-ship rotate: false - xy: 607, 106 + xy: 311, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 mech-icon-trident-ship rotate: false - xy: 607, 106 + xy: 311, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 item-biomatter rotate: false - xy: 716, 279 + xy: 657, 110 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-blast-compound rotate: false - xy: 726, 289 + xy: 655, 100 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-carbide rotate: false - xy: 726, 279 + xy: 641, 204 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-coal rotate: false - xy: 736, 298 + xy: 641, 194 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-lead rotate: false - xy: 736, 288 + xy: 641, 184 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-phase-matter rotate: false - xy: 746, 298 + xy: 641, 174 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-plasteel rotate: false - xy: 746, 288 + xy: 641, 164 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-sand rotate: false - xy: 756, 298 + xy: 641, 154 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-silicon rotate: false - xy: 756, 288 + xy: 767, 420 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-stone rotate: false - xy: 736, 278 + xy: 767, 410 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-surge-alloy rotate: false - xy: 746, 278 + xy: 767, 400 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thermite rotate: false - xy: 756, 278 + xy: 767, 390 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-thorium rotate: false - xy: 706, 269 + xy: 777, 421 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-titanium rotate: false - xy: 716, 269 + xy: 787, 421 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 item-tungsten rotate: false - xy: 726, 269 + xy: 777, 411 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -3550,7 +3606,7 @@ discord-banner-over index: -1 controller-cursor rotate: false - xy: 327, 99 + xy: 363, 99 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -3585,56 +3641,56 @@ icon-admin-small index: -1 icon-areaDelete rotate: false - xy: 251, 1 + xy: 251, 29 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow rotate: false - xy: 643, 120 + xy: 737, 426 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-arrow-16 rotate: false - xy: 643, 120 + xy: 737, 426 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-arrow-down rotate: false - xy: 263, 1 + xy: 251, 17 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-left rotate: false - xy: 463, 120 + xy: 251, 5 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-right rotate: false - xy: 475, 120 + xy: 451, 124 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-arrow-up rotate: false - xy: 487, 120 + xy: 463, 120 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-back rotate: false - xy: 633, 214 + xy: 755, 430 size: 16, 16 orig: 16, 16 offset: 0, 0 @@ -3648,49 +3704,49 @@ icon-ban index: -1 icon-break rotate: false - xy: 737, 426 + xy: 773, 431 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-cancel rotate: false - xy: 755, 430 + xy: 791, 431 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-chat rotate: false - xy: 463, 108 + xy: 475, 120 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-check rotate: false - xy: 773, 431 + xy: 809, 431 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-crafting rotate: false - xy: 475, 108 + xy: 487, 120 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-cursor rotate: false - xy: 487, 108 + xy: 435, 114 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-defense rotate: false - xy: 499, 109 + xy: 435, 102 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -3711,7 +3767,7 @@ icon-discord index: -1 icon-distribution rotate: false - xy: 511, 109 + xy: 447, 112 size: 10, 10 orig: 10, 10 offset: 0, 0 @@ -3732,490 +3788,490 @@ icon-dots index: -1 icon-editor rotate: false - xy: 423, 65 + xy: 297, 47 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-egg rotate: false - xy: 279, 45 + xy: 313, 47 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-elevation rotate: false - xy: 791, 431 + xy: 731, 408 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-eraser rotate: false - xy: 809, 431 + xy: 731, 390 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-exit rotate: false - xy: 741, 338 + xy: 329, 47 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-file rotate: false - xy: 731, 408 + xy: 225, 80 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-file-image rotate: false - xy: 731, 390 + xy: 225, 62 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-file-text rotate: false - xy: 757, 338 + xy: 345, 47 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-fill rotate: false - xy: 225, 80 + xy: 217, 44 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-floppy rotate: false - xy: 626, 285 + xy: 361, 47 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-floppy-16 rotate: false - xy: 225, 62 + xy: 215, 26 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-folder rotate: false - xy: 624, 269 + xy: 377, 47 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-folder-parent rotate: false - xy: 642, 285 + xy: 393, 47 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-github rotate: false - xy: 640, 269 + xy: 409, 47 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-google-play rotate: false - xy: 658, 289 + xy: 425, 47 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-grid rotate: false - xy: 217, 44 + xy: 215, 8 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-hold rotate: false - xy: 523, 109 + xy: 447, 100 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-holdDelete rotate: false - xy: 535, 109 + xy: 459, 108 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-home rotate: false - xy: 674, 287 + xy: 741, 338 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-host rotate: false - xy: 639, 242 + xy: 757, 338 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-info rotate: false - xy: 547, 109 + xy: 471, 108 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-itch.io rotate: false - xy: 690, 287 + xy: 626, 285 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-items-none rotate: false - xy: 726, 299 + xy: 645, 100 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 icon-line rotate: false - xy: 215, 26 + xy: 235, 44 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-link rotate: false - xy: 658, 273 + xy: 624, 269 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-liquid rotate: false - xy: 559, 109 + xy: 483, 108 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-load rotate: false - xy: 674, 271 + xy: 642, 285 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-load-image rotate: false - xy: 215, 8 + xy: 233, 26 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-load-map rotate: false - xy: 235, 44 + xy: 233, 8 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-loading rotate: false - xy: 233, 26 + xy: 749, 408 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-logic rotate: false - xy: 571, 109 + xy: 459, 96 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-menu rotate: false - xy: 659, 229 + xy: 471, 96 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-menu-large rotate: false - xy: 233, 8 + xy: 749, 390 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-none rotate: false - xy: 671, 227 + xy: 483, 96 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-pause rotate: false - xy: 683, 227 + xy: 441, 88 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-pencil rotate: false - xy: 749, 408 + xy: 741, 372 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-pencil-small rotate: false - xy: 690, 271 + xy: 640, 269 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-pick rotate: false - xy: 749, 390 + xy: 741, 354 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-play rotate: false - xy: 695, 227 + xy: 441, 76 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-play-2 rotate: false - xy: 657, 257 + xy: 658, 289 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-players rotate: false - xy: 651, 217 + xy: 441, 64 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-power rotate: false - xy: 655, 205 + xy: 441, 52 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-production rotate: false - xy: 655, 193 + xy: 453, 84 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-quit rotate: false - xy: 655, 241 + xy: 674, 287 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-redo rotate: false - xy: 741, 372 + xy: 759, 372 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-refresh rotate: false - xy: 673, 255 + xy: 639, 242 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rename rotate: false - xy: 689, 255 + xy: 690, 287 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-resize rotate: false - xy: 741, 354 + xy: 759, 354 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-rotate rotate: false - xy: 671, 239 + xy: 658, 273 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-arrow rotate: false - xy: 687, 239 + xy: 674, 271 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-left rotate: false - xy: 827, 433 + xy: 690, 271 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-rotate-right rotate: false - xy: 843, 435 + xy: 657, 257 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save rotate: false - xy: 859, 435 + xy: 655, 241 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-save-image rotate: false - xy: 759, 372 + xy: 243, 81 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-save-map rotate: false - xy: 759, 354 + xy: 243, 63 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-settings rotate: false - xy: 655, 181 + xy: 453, 72 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-terrain rotate: false - xy: 243, 81 + xy: 261, 91 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-tools rotate: false - xy: 875, 435 + xy: 673, 255 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-touch rotate: false - xy: 655, 169 + xy: 465, 84 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-touchDelete rotate: false - xy: 655, 157 + xy: 453, 60 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-trash rotate: false - xy: 891, 437 + xy: 689, 255 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-trash-16 rotate: false - xy: 243, 63 + xy: 261, 73 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-trello rotate: false - xy: 907, 437 + xy: 671, 239 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-tutorial rotate: false - xy: 923, 437 + xy: 687, 239 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-undo rotate: false - xy: 261, 91 + xy: 279, 79 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-units rotate: false - xy: 673, 215 + xy: 465, 72 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-weapon rotate: false - xy: 685, 215 + xy: 477, 84 size: 10, 10 orig: 10, 10 offset: 0, 0 index: -1 icon-wiki rotate: false - xy: 939, 437 + xy: 827, 433 size: 14, 14 orig: 14, 14 offset: 0, 0 index: -1 icon-zoom rotate: false - xy: 261, 73 + xy: 297, 81 size: 16, 16 orig: 16, 16 offset: 0, 0 index: -1 icon-zoom-small rotate: false - xy: 965, 434 + xy: 843, 435 size: 14, 14 orig: 14, 14 offset: 0, 0 @@ -4286,14 +4342,14 @@ scroll-knob-vertical-black index: -1 selection rotate: false - xy: 587, 209 + xy: 229, 169 size: 1, 1 orig: 1, 1 offset: 0, 0 index: -1 slider rotate: false - xy: 463, 152 + xy: 126, 29 size: 1, 8 orig: 1, 8 offset: 0, 0 @@ -4388,42 +4444,42 @@ window-empty index: -1 drone rotate: false - xy: 1005, 433 + xy: 873, 437 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 scout rotate: false - xy: 641, 200 + xy: 367, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol rotate: false - xy: 435, 121 + xy: 423, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol-booster-1 rotate: false - xy: 449, 122 + xy: 773, 340 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol-booster-2 rotate: false - xy: 435, 107 + xy: 437, 33 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 vtol-flame rotate: false - xy: 691, 192 + xy: 489, 85 size: 9, 9 orig: 9, 9 offset: 0, 0 @@ -4437,7 +4493,7 @@ beam-equip index: -1 blaster rotate: false - xy: 955, 443 + xy: 441, 126 size: 8, 8 orig: 8, 8 offset: 0, 0 @@ -4451,63 +4507,63 @@ blaster-equip index: -1 clustergun rotate: false - xy: 727, 319 + xy: 535, 111 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 clustergun-equip rotate: false - xy: 727, 309 + xy: 525, 101 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 generic-weapon rotate: false - xy: 253, 41 + xy: 901, 439 size: 12, 12 orig: 12, 12 offset: 0, 0 index: -1 shockgun rotate: false - xy: 893, 417 + xy: 797, 361 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 shockgun-equip rotate: false - xy: 903, 417 + xy: 807, 371 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster rotate: false - xy: 315, 13 + xy: 847, 405 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 triblaster-equip rotate: false - xy: 325, 23 + xy: 847, 395 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan rotate: false - xy: 345, 23 + xy: 797, 351 size: 8, 8 orig: 8, 8 offset: 0, 0 index: -1 vulcan-equip rotate: false - xy: 355, 33 + xy: 797, 341 size: 8, 8 orig: 8, 8 offset: 0, 0 diff --git a/core/assets/sprites/sprites.png b/core/assets/sprites/sprites.png index 83150cbe03..d2b74f19cf 100644 Binary files a/core/assets/sprites/sprites.png and b/core/assets/sprites/sprites.png differ diff --git a/core/src/io/anuke/mindustry/Vars.java b/core/src/io/anuke/mindustry/Vars.java index aafb852dd3..dd8b92431c 100644 --- a/core/src/io/anuke/mindustry/Vars.java +++ b/core/src/io/anuke/mindustry/Vars.java @@ -36,7 +36,7 @@ public class Vars{ //respawn time in frames public static final float respawnduration = 60*4; //time between waves in frames (on normal mode) - public static final float wavespace = 60*60; + public static final float wavespace = 60*60*2; //waves can last no longer than 3 minutes, otherwise the next one spawns public static final float maxwavespace = 60*60*4f; diff --git a/core/src/io/anuke/mindustry/ai/WaveSpawner.java b/core/src/io/anuke/mindustry/ai/WaveSpawner.java index 830d401a31..e0f0c73a6d 100644 --- a/core/src/io/anuke/mindustry/ai/WaveSpawner.java +++ b/core/src/io/anuke/mindustry/ai/WaveSpawner.java @@ -61,7 +61,7 @@ public class WaveSpawner { for(int i = 0; i < spawned; i ++){ BaseUnit unit = UnitTypes.scout.create(Team.red); - unit.inventory.addAmmo(AmmoTypes.bulletIron); + unit.inventory.addAmmo(AmmoTypes.bulletLead); unit.setWave(); unit.setSquad(squad); unit.set(spawn.x * quadsize * tilesize + quadsize * tilesize/2f + Mathf.range(quadsize*tilesize/3f), @@ -80,7 +80,7 @@ public class WaveSpawner { for(int i = 0; i < spawned; i ++){ BaseUnit unit = UnitTypes.vtol.create(Team.red); - unit.inventory.addAmmo(AmmoTypes.bulletIron); + unit.inventory.addAmmo(AmmoTypes.bulletLead); unit.setWave(); unit.setSquad(squad); unit.set(baseX + Mathf.range(spread), baseY + Mathf.range(spread)); diff --git a/core/src/io/anuke/mindustry/content/AmmoTypes.java b/core/src/io/anuke/mindustry/content/AmmoTypes.java index 02e122e098..2bdc9c1042 100644 --- a/core/src/io/anuke/mindustry/content/AmmoTypes.java +++ b/core/src/io/anuke/mindustry/content/AmmoTypes.java @@ -8,9 +8,9 @@ import io.anuke.mindustry.type.AmmoType; import io.anuke.mindustry.type.ContentList; public class AmmoTypes implements ContentList { - public static AmmoType bulletIron, bulletLead, bulletSteel, bulletThorium, bulletSilicon, bulletThermite, + public static AmmoType bulletTungsten, bulletLead, bulletCarbide, bulletThorium, bulletSilicon, bulletThermite, flakLead, flakExplosive, flakPlastic, flakSurge, missileExplosive, missileIncindiary, missileSurge, - artilleryLead, artilleryThorium, artilleryPlastic, artilleryHoming, artilleryIncindiary, + artilleryCarbide, artilleryThorium, artilleryPlastic, artilleryHoming, artilleryIncindiary, basicFlame, lancerLaser, lightning, spectreLaser, meltdownLaser, fuseShotgun, oil, water, lava, cryofluid; @Override @@ -18,27 +18,31 @@ public class AmmoTypes implements ContentList { //bullets - bulletIron = new AmmoType(Items.tungsten, StandardBullets.iron, 3) {{ + bulletLead = new AmmoType(Items.lead, StandardBullets.lead, 5) {{ + shootEffect = ShootFx.shootSmall; + smokeEffect = ShootFx.shootSmallSmoke; + reloadMultiplier = 1.6f; + inaccuracy = 5f; + }}; + + bulletTungsten = new AmmoType(Items.tungsten, StandardBullets.tungsten, 2) {{ + shootEffect = ShootFx.shootSmall; + smokeEffect = ShootFx.shootSmallSmoke; + reloadMultiplier = 0.8f; + }}; + + bulletCarbide = new AmmoType(Items.carbide, StandardBullets.carbide, 2) {{ + shootEffect = ShootFx.shootSmall; + smokeEffect = ShootFx.shootSmallSmoke; + reloadMultiplier = 0.6f; + }}; + + bulletThorium = new AmmoType(Items.thorium, StandardBullets.thorium, 2) {{ shootEffect = ShootFx.shootSmall; smokeEffect = ShootFx.shootSmallSmoke; }}; - bulletLead = new AmmoType(Items.lead, StandardBullets.lead, 3) {{ - shootEffect = ShootFx.shootSmall; - smokeEffect = ShootFx.shootSmallSmoke; - }}; - - bulletSteel = new AmmoType(Items.carbide, StandardBullets.steel, 3) {{ - shootEffect = ShootFx.shootSmall; - smokeEffect = ShootFx.shootSmallSmoke; - }}; - - bulletThorium = new AmmoType(Items.thorium, StandardBullets.thorium, 3) {{ - shootEffect = ShootFx.shootSmall; - smokeEffect = ShootFx.shootSmallSmoke; - }}; - - bulletSilicon = new AmmoType(Items.silicon, StandardBullets.homing, 3) {{ + bulletSilicon = new AmmoType(Items.silicon, StandardBullets.homing, 4) {{ shootEffect = ShootFx.shootSmall; smokeEffect = ShootFx.shootSmallSmoke; }}; @@ -46,6 +50,7 @@ public class AmmoTypes implements ContentList { bulletThermite = new AmmoType(Items.thermite, StandardBullets.tracer, 3) {{ shootEffect = ShootFx.shootSmall; smokeEffect = ShootFx.shootSmallSmoke; + inaccuracy = 3f; }}; //flak @@ -89,7 +94,7 @@ public class AmmoTypes implements ContentList { //artillery - artilleryLead = new AmmoType(Items.lead, ArtilleryBullets.lead, 1) {{ + artilleryCarbide = new AmmoType(Items.carbide, ArtilleryBullets.carbide, 1) {{ shootEffect = ShootFx.shootBig2; smokeEffect = ShootFx.shootBigSmoke2; }}; diff --git a/core/src/io/anuke/mindustry/content/Recipes.java b/core/src/io/anuke/mindustry/content/Recipes.java index 67603d583b..4d39947fca 100644 --- a/core/src/io/anuke/mindustry/content/Recipes.java +++ b/core/src/io/anuke/mindustry/content/Recipes.java @@ -17,13 +17,16 @@ public class Recipes implements ContentList{ new Recipe(defense, DefenseBlocks.tungstenWall, new ItemStack(Items.tungsten, 12)); new Recipe(defense, DefenseBlocks.tungstenWallLarge, new ItemStack(Items.tungsten, 12*4)); - //TURRETS - new Recipe(weapon, WeaponBlocks.duo, new ItemStack(Items.tungsten, 20)); - new Recipe(weapon, WeaponBlocks.scorch, new ItemStack(Items.tungsten, 25), new ItemStack(Items.carbide, 20)); - new Recipe(weapon, WeaponBlocks.hail, new ItemStack(Items.tungsten, 25), new ItemStack(Items.carbide, 25)); + new Recipe(defense, DefenseBlocks.carbideWall, new ItemStack(Items.carbide, 12)); + new Recipe(defense, DefenseBlocks.carbideWallLarge, new ItemStack(Items.carbide, 12*4)); - new Recipe(weapon, WeaponBlocks.lancer, new ItemStack(Items.tungsten, 25), new ItemStack(Items.lead, 25), new ItemStack(Items.silicon, 25)); - new Recipe(weapon, WeaponBlocks.arc, new ItemStack(Items.tungsten, 25), new ItemStack(Items.lead, 30), new ItemStack(Items.silicon, 30)); + //TURRETS + new Recipe(weapon, TurretBlocks.duo, new ItemStack(Items.tungsten, 20)); + new Recipe(weapon, TurretBlocks.scorch, new ItemStack(Items.tungsten, 25), new ItemStack(Items.carbide, 20)); + new Recipe(weapon, TurretBlocks.hail, new ItemStack(Items.tungsten, 25), new ItemStack(Items.carbide, 25)); + + new Recipe(weapon, TurretBlocks.lancer, new ItemStack(Items.tungsten, 25), new ItemStack(Items.lead, 25), new ItemStack(Items.silicon, 25)); + new Recipe(weapon, TurretBlocks.arc, new ItemStack(Items.tungsten, 25), new ItemStack(Items.lead, 30), new ItemStack(Items.silicon, 30)); //DISTRIBUTION new Recipe(distribution, DistributionBlocks.conveyor, new ItemStack(Items.lead, 1)); @@ -42,11 +45,20 @@ public class Recipes implements ContentList{ new Recipe(distribution, DistributionBlocks.bridgeconveyor, new ItemStack(Items.carbide, 8), new ItemStack(Items.tungsten, 8)); //CRAFTING - new Recipe(crafting, CraftingBlocks.smelter, new ItemStack(Items.tungsten, 40)); - new Recipe(crafting, CraftingBlocks.siliconsmelter, new ItemStack(Items.tungsten, 60), new ItemStack(Items.lead, 50)); - new Recipe(crafting, CraftingBlocks.arcsmelter, new ItemStack(Items.tungsten, 60), new ItemStack(Items.carbide, 60), new ItemStack(Items.lead, 50)); - new Recipe(crafting, CraftingBlocks.pulverizer, new ItemStack(Items.tungsten, 50), new ItemStack(Items.lead, 50)); + //smelting + new Recipe(crafting, CraftingBlocks.smelter, new ItemStack(Items.tungsten, 40)); + new Recipe(crafting, CraftingBlocks.arcsmelter, new ItemStack(Items.tungsten, 60), new ItemStack(Items.carbide, 60), new ItemStack(Items.lead, 50)); + new Recipe(crafting, CraftingBlocks.siliconsmelter, new ItemStack(Items.tungsten, 60), new ItemStack(Items.lead, 50)); + + //misc + new Recipe(crafting, CraftingBlocks.pulverizer, new ItemStack(Items.tungsten, 60), new ItemStack(Items.lead, 50)); + new Recipe(crafting, CraftingBlocks.thermiteMixer, new ItemStack(Items.tungsten, 100), new ItemStack(Items.lead, 50)); + new Recipe(crafting, CraftingBlocks.blastMixer, new ItemStack(Items.tungsten, 60), new ItemStack(Items.lead, 60), new ItemStack(Items.carbide, 40)); + + //processing + new Recipe(crafting, CraftingBlocks.separator, new ItemStack(Items.tungsten, 60), new ItemStack(Items.carbide, 50)); + new Recipe(crafting, CraftingBlocks.centrifuge, new ItemStack(Items.tungsten, 130), new ItemStack(Items.carbide, 130), new ItemStack(Items.silicon, 30), new ItemStack(Items.titanium, 40)); //POWER new Recipe(power, PowerBlocks.powernode, new ItemStack(Items.tungsten, 2), new ItemStack(Items.lead, 6)); @@ -65,6 +77,7 @@ public class Recipes implements ContentList{ new Recipe(production, ProductionBlocks.carbideDrill, new ItemStack(Items.tungsten, 40), new ItemStack(Items.carbide, 40)); new Recipe(production, ProductionBlocks.waterextractor, new ItemStack(Items.tungsten, 50), new ItemStack(Items.carbide, 50), new ItemStack(Items.lead, 40)); + new Recipe(production, ProductionBlocks.cultivator, new ItemStack(Items.tungsten, 20), new ItemStack(Items.lead, 50), new ItemStack(Items.silicon, 20)); //UNITS new Recipe(units, UnitBlocks.droneFactory, new ItemStack(Items.tungsten, 30), new ItemStack(Items.lead, 50), new ItemStack(Items.silicon, 30)); @@ -81,7 +94,7 @@ public class Recipes implements ContentList{ new Recipe(liquid, LiquidBlocks.bridgeconduit, new ItemStack(Items.carbide, 8), new ItemStack(Items.lead, 8)); //new Recipe(liquid, LiquidBlocks.laserconduit, new ItemStack(Items.titanium, 2), new ItemStack(Items.lead, 2), new ItemStack(Items.phasematter, 10)); - new Recipe(liquid, LiquidBlocks.mechanicalPump, new ItemStack(Items.tungsten, 10), new ItemStack(Items.lead, 10), new ItemStack(Items.silicon, 10)); + new Recipe(liquid, LiquidBlocks.mechanicalPump, new ItemStack(Items.tungsten, 30), new ItemStack(Items.lead, 20)); //new Recipe(liquid, LiquidBlocks.rotaryPump, new ItemStack(Items.carbide, 10), new ItemStack(Items.surgealloy, 5)); //new Recipe(liquid, LiquidBlocks.thermalPump, new ItemStack(Items.carbide, 10), new ItemStack(Items.surgealloy, 5)); @@ -114,16 +127,16 @@ public class Recipes implements ContentList{ new Recipe(defense, DefenseBlocks.phasewall, new ItemStack(Items.titanium, 1)); new Recipe(defense, DefenseBlocks.phasewalllarge, new ItemStack(Items.titanium, 1)); - new Recipe(weapon, WeaponBlocks.wave, new ItemStack(Items.tungsten, 1)); - new Recipe(weapon, WeaponBlocks.lancer, new ItemStack(Items.tungsten, 1)); - new Recipe(weapon, WeaponBlocks.arc, new ItemStack(Items.tungsten, 1)); - new Recipe(weapon, WeaponBlocks.swarmer, new ItemStack(Items.tungsten, 1)); - new Recipe(weapon, WeaponBlocks.ripple, new ItemStack(Items.tungsten, 1)); - new Recipe(weapon, WeaponBlocks.fuse, new ItemStack(Items.tungsten, 1)); - new Recipe(weapon, WeaponBlocks.ripple, new ItemStack(Items.tungsten, 1)); - new Recipe(weapon, WeaponBlocks.cyclone, new ItemStack(Items.tungsten, 1)); - new Recipe(weapon, WeaponBlocks.spectre, new ItemStack(Items.tungsten, 1)); - new Recipe(weapon, WeaponBlocks.meltdown, new ItemStack(Items.tungsten, 1)); + new Recipe(weapon, TurretBlocks.wave, new ItemStack(Items.tungsten, 1)); + new Recipe(weapon, TurretBlocks.lancer, new ItemStack(Items.tungsten, 1)); + new Recipe(weapon, TurretBlocks.arc, new ItemStack(Items.tungsten, 1)); + new Recipe(weapon, TurretBlocks.swarmer, new ItemStack(Items.tungsten, 1)); + new Recipe(weapon, TurretBlocks.ripple, new ItemStack(Items.tungsten, 1)); + new Recipe(weapon, TurretBlocks.fuse, new ItemStack(Items.tungsten, 1)); + new Recipe(weapon, TurretBlocks.ripple, new ItemStack(Items.tungsten, 1)); + new Recipe(weapon, TurretBlocks.cyclone, new ItemStack(Items.tungsten, 1)); + new Recipe(weapon, TurretBlocks.spectre, new ItemStack(Items.tungsten, 1)); + new Recipe(weapon, TurretBlocks.meltdown, new ItemStack(Items.tungsten, 1)); new Recipe(crafting, CraftingBlocks.alloysmelter, new ItemStack(Items.titanium, 50), new ItemStack(Items.carbide, 50)); new Recipe(crafting, CraftingBlocks.alloyfuser, new ItemStack(Items.carbide, 30), new ItemStack(Items.tungsten, 30)); diff --git a/core/src/io/anuke/mindustry/content/UnitTypes.java b/core/src/io/anuke/mindustry/content/UnitTypes.java index ad51a4198e..442b4f3d85 100644 --- a/core/src/io/anuke/mindustry/content/UnitTypes.java +++ b/core/src/io/anuke/mindustry/content/UnitTypes.java @@ -28,7 +28,7 @@ public class UnitTypes implements ContentList { speed = 0.2f; drag = 0.4f; range = 40f; - setAmmo(AmmoTypes.bulletIron); + setAmmo(AmmoTypes.bulletLead); }}; vtol = new UnitType("vtol", team -> new Vtol(vtol, team)){{ @@ -37,7 +37,7 @@ public class UnitTypes implements ContentList { drag = 0.01f; isFlying = true; reload = 7; - setAmmo(AmmoTypes.bulletIron); + setAmmo(AmmoTypes.bulletLead); }}; } diff --git a/core/src/io/anuke/mindustry/content/Weapons.java b/core/src/io/anuke/mindustry/content/Weapons.java index 8e8939e059..a0ec758210 100644 --- a/core/src/io/anuke/mindustry/content/Weapons.java +++ b/core/src/io/anuke/mindustry/content/Weapons.java @@ -18,7 +18,7 @@ public class Weapons implements ContentList { reload = 15f; roundrobin = true; ejectEffect = ShootFx.shellEjectSmall; - setAmmo(AmmoTypes.bulletIron); + setAmmo(AmmoTypes.bulletLead); }}; blaster2 = new Weapon("clustergun") {{ @@ -34,7 +34,7 @@ public class Weapons implements ContentList { reload = 12f; roundrobin = true; ejectEffect = ShootFx.shellEjectSmall; - setAmmo(AmmoTypes.bulletSteel); + setAmmo(AmmoTypes.bulletCarbide); }}; blaster4 = new Weapon("vulcan") {{ diff --git a/core/src/io/anuke/mindustry/content/blocks/Blocks.java b/core/src/io/anuke/mindustry/content/blocks/Blocks.java index 6de4c221ae..bc662bd5a0 100644 --- a/core/src/io/anuke/mindustry/content/blocks/Blocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/Blocks.java @@ -133,7 +133,9 @@ public class Blocks extends BlockList implements ContentList{ snow = new Floor("snow"); - grass = new Floor("grass"); + grass = new Floor("grass"){{ + hasOres = true; + }}; shrub = new Rock("shrub"); diff --git a/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java b/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java index 442e6b7716..3a04a26607 100644 --- a/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/CraftingBlocks.java @@ -11,7 +11,9 @@ import io.anuke.mindustry.world.Block; import io.anuke.mindustry.world.blocks.production.*; public class CraftingBlocks extends BlockList implements ContentList { - public static Block smelter, arcsmelter, siliconsmelter, plasteelcompressor, phaseweaver, alloysmelter, alloyfuser, cryofluidmixer, melter, separator, centrifuge, biomatterCompressor, pulverizer, oilRefinery, stoneFormer, incinerator; + public static Block smelter, arcsmelter, siliconsmelter, plasteelcompressor, phaseweaver, alloysmelter, alloyfuser, + thermiteMixer, blastMixer, + cryofluidmixer, melter, separator, centrifuge, biomatterCompressor, pulverizer, oilRefinery, stoneFormer, incinerator; @Override public void load() { @@ -112,6 +114,30 @@ public class CraftingBlocks extends BlockList implements ContentList { size = 2; }}; + blastMixer = new GenericCrafter("blast-mixer") {{ + itemCapacity = 20; + hasItems = true; + hasPower = true; + inputLiquid = Liquids.oil; + liquidUse = 0.05f; + inputItem = new ItemStack(Items.thermite, 1); + output = Items.blastCompound; + powerUse = 0.04f; + + size = 2; + }}; + + thermiteMixer = new PowerSmelter("thermite-mixer") {{ + itemCapacity = 20; + hasItems = true; + hasPower = true; + inputs = new ItemStack[]{new ItemStack(Items.coal, 1), new ItemStack(Items.lead, 2), new ItemStack(Items.sand, 2)}; + result = Items.thermite; + powerUse = 0.02f; + + size = 2; + }}; + melter = new PowerCrafter("melter") {{ health = 200; outputLiquid = Liquids.lava; diff --git a/core/src/io/anuke/mindustry/content/blocks/WeaponBlocks.java b/core/src/io/anuke/mindustry/content/blocks/TurretBlocks.java similarity index 84% rename from core/src/io/anuke/mindustry/content/blocks/WeaponBlocks.java rename to core/src/io/anuke/mindustry/content/blocks/TurretBlocks.java index 8f067f317b..4b3d9f4766 100644 --- a/core/src/io/anuke/mindustry/content/blocks/WeaponBlocks.java +++ b/core/src/io/anuke/mindustry/content/blocks/TurretBlocks.java @@ -12,15 +12,16 @@ import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; import io.anuke.ucore.util.Strings; -public class WeaponBlocks extends BlockList implements ContentList { +public class TurretBlocks extends BlockList implements ContentList { public static Block duo, /*scatter,*/ scorch, hail, wave, lancer, arc, swarmer, salvo, fuse, ripple, cyclone, spectre, meltdown; @Override public void load() { duo = new DoubleTurret("duo") {{ - ammoTypes = new AmmoType[]{AmmoTypes.bulletIron, AmmoTypes.bulletLead, AmmoTypes.bulletSteel, AmmoTypes.bulletThermite}; + ammoTypes = new AmmoType[]{AmmoTypes.bulletTungsten, AmmoTypes.bulletLead, AmmoTypes.bulletCarbide, AmmoTypes.bulletThermite}; reload = 25f; restitution = 0.03f; + range = 80f; ammoUseEffect = ShootFx.shellEjectSmall; }}; /* @@ -37,8 +38,9 @@ public class WeaponBlocks extends BlockList implements ContentList { }};*/ hail = new ItemTurret("hail") {{ - ammoTypes = new AmmoType[]{AmmoTypes.artilleryLead, AmmoTypes.artilleryHoming, AmmoTypes.artilleryIncindiary}; + ammoTypes = new AmmoType[]{AmmoTypes.artilleryCarbide, AmmoTypes.artilleryHoming, AmmoTypes.artilleryIncindiary}; reload = 40f; + range = 200f; }}; scorch = new LiquidTurret("scorch") {{ @@ -111,7 +113,7 @@ public class WeaponBlocks extends BlockList implements ContentList { salvo = new ItemTurret("salvo") {{ size = 2; range = 100f; - ammoTypes = new AmmoType[]{AmmoTypes.bulletIron, AmmoTypes.bulletLead, AmmoTypes.bulletSteel, AmmoTypes.bulletThermite, AmmoTypes.bulletThorium, AmmoTypes.bulletSilicon}; + ammoTypes = new AmmoType[]{AmmoTypes.bulletTungsten, AmmoTypes.bulletLead, AmmoTypes.bulletCarbide, AmmoTypes.bulletThermite, AmmoTypes.bulletThorium, AmmoTypes.bulletSilicon}; reload = 70f; restitution = 0.03f; ammoEjectBack = 3f; @@ -135,7 +137,7 @@ public class WeaponBlocks extends BlockList implements ContentList { }}; ripple = new ItemTurret("ripple") {{ - ammoTypes = new AmmoType[]{AmmoTypes.artilleryLead, AmmoTypes.artilleryHoming, AmmoTypes.artilleryIncindiary, AmmoTypes.artilleryPlastic, AmmoTypes.artilleryThorium}; + ammoTypes = new AmmoType[]{AmmoTypes.artilleryCarbide, AmmoTypes.artilleryHoming, AmmoTypes.artilleryIncindiary, AmmoTypes.artilleryPlastic, AmmoTypes.artilleryThorium}; size = 3; }}; @@ -151,7 +153,7 @@ public class WeaponBlocks extends BlockList implements ContentList { }}; spectre = new ItemTurret("eraser") {{ - ammoTypes = new AmmoType[]{AmmoTypes.bulletIron, AmmoTypes.bulletLead, AmmoTypes.bulletSteel, AmmoTypes.bulletThermite, AmmoTypes.bulletThorium, AmmoTypes.bulletSilicon}; + ammoTypes = new AmmoType[]{AmmoTypes.bulletTungsten, AmmoTypes.bulletLead, AmmoTypes.bulletCarbide, AmmoTypes.bulletThermite, AmmoTypes.bulletThorium, AmmoTypes.bulletSilicon}; reload = 25f; restitution = 0.03f; ammoUseEffect = ShootFx.shellEjectSmall; diff --git a/core/src/io/anuke/mindustry/content/bullets/ArtilleryBullets.java b/core/src/io/anuke/mindustry/content/bullets/ArtilleryBullets.java index e89ef0048a..3d9ade06f7 100644 --- a/core/src/io/anuke/mindustry/content/bullets/ArtilleryBullets.java +++ b/core/src/io/anuke/mindustry/content/bullets/ArtilleryBullets.java @@ -6,12 +6,12 @@ import io.anuke.mindustry.entities.bullet.BulletType; import io.anuke.mindustry.type.ContentList; public class ArtilleryBullets extends BulletList implements ContentList{ - public static BulletType lead, thorium, plastic, homing, incindiary, surge; + public static BulletType carbide, thorium, plastic, homing, incindiary, surge; @Override public void load() { - lead = new BasicBulletType(3f, 0, "shell") { + carbide = new BasicBulletType(3f, 0, "shell") { { hiteffect = BulletFx.flakExplosion; knockback = 0.8f; diff --git a/core/src/io/anuke/mindustry/content/bullets/StandardBullets.java b/core/src/io/anuke/mindustry/content/bullets/StandardBullets.java index 7495ddf317..21e8768167 100644 --- a/core/src/io/anuke/mindustry/content/bullets/StandardBullets.java +++ b/core/src/io/anuke/mindustry/content/bullets/StandardBullets.java @@ -5,36 +5,38 @@ import io.anuke.mindustry.entities.bullet.BulletType; import io.anuke.mindustry.type.ContentList; public class StandardBullets extends BulletList implements ContentList { - public static BulletType iron, lead, steel, thorium, homing, tracer; + public static BulletType tungsten, lead, carbide, thorium, homing, tracer; @Override public void load() { - iron = new BasicBulletType(3f, 5, "bullet") { + tungsten = new BasicBulletType(3.2f, 10, "bullet") { + { + bulletWidth = 9f; + bulletHeight = 11f; + } + }; + + lead = new BasicBulletType(2.5f, 5, "bullet") { { bulletWidth = 7f; bulletHeight = 9f; } }; - lead = new BasicBulletType(3f, 5, "bullet") { + carbide = new BasicBulletType(3.5f, 18, "bullet") { { - bulletWidth = 7f; - bulletHeight = 9f; + bulletWidth = 9f; + bulletHeight = 12f; + armorPierce = 0.2f; } }; - steel = new BasicBulletType(3f, 5, "bullet") { + thorium = new BasicBulletType(4f, 25, "bullet") { { - bulletWidth = 7f; - bulletHeight = 9f; - } - }; - - thorium = new BasicBulletType(3f, 5, "bullet") { - { - bulletWidth = 7f; - bulletHeight = 9f; + bulletWidth = 10f; + bulletHeight = 13f; + armorPierce = 0.5f; } }; diff --git a/core/src/io/anuke/mindustry/content/fx/UnitFx.java b/core/src/io/anuke/mindustry/content/fx/UnitFx.java index 25008ef533..3035fce5b1 100644 --- a/core/src/io/anuke/mindustry/content/fx/UnitFx.java +++ b/core/src/io/anuke/mindustry/content/fx/UnitFx.java @@ -11,7 +11,7 @@ import io.anuke.ucore.util.Angles; import io.anuke.ucore.util.Mathf; public class UnitFx extends FxList implements ContentList { - public static Effect vtolHover, unitDrop, unitPickup; + public static Effect vtolHover, unitDrop, unitPickup, pickup; @Override public void load() { @@ -38,5 +38,12 @@ public class UnitFx extends FxList implements ContentList { Lines.poly(e.x, e.y, 4, 13f * e.fout()); Draw.reset(); }); + + pickup = new Effect(18, e -> { + Draw.color(Palette.lightishGray); + Lines.stroke(e.fout() * 2f); + Lines.spikes(e.x, e.y, 1f + e.fin() * 6f, e.fout() * 4f, 6); + Draw.reset(); + }); } } diff --git a/core/src/io/anuke/mindustry/core/ContentLoader.java b/core/src/io/anuke/mindustry/core/ContentLoader.java index 1474ca6353..c4feb49fba 100644 --- a/core/src/io/anuke/mindustry/core/ContentLoader.java +++ b/core/src/io/anuke/mindustry/core/ContentLoader.java @@ -75,7 +75,7 @@ public class ContentLoader { new DefenseBlocks(), new DistributionBlocks(), new ProductionBlocks(), - new WeaponBlocks(), + new TurretBlocks(), new DebugBlocks(), new LiquidBlocks(), new StorageBlocks(), diff --git a/core/src/io/anuke/mindustry/entities/effect/ItemDrop.java b/core/src/io/anuke/mindustry/entities/effect/ItemDrop.java index 1f145d2d97..af1f01a6db 100644 --- a/core/src/io/anuke/mindustry/entities/effect/ItemDrop.java +++ b/core/src/io/anuke/mindustry/entities/effect/ItemDrop.java @@ -6,7 +6,9 @@ import com.badlogic.gdx.utils.Pool.Poolable; import com.badlogic.gdx.utils.Pools; import io.anuke.annotations.Annotations.Loc; import io.anuke.annotations.Annotations.Remote; +import io.anuke.mindustry.content.fx.UnitFx; import io.anuke.mindustry.entities.Player; +import io.anuke.mindustry.entities.traits.SaveTrait; import io.anuke.mindustry.entities.traits.SyncTrait; import io.anuke.mindustry.gen.CallEntity; import io.anuke.mindustry.net.In; @@ -31,7 +33,7 @@ import java.io.IOException; import static io.anuke.mindustry.Vars.*; -public class ItemDrop extends SolidEntity implements SyncTrait, DrawTrait, VelocityTrait, TimeTrait, Poolable { +public class ItemDrop extends SolidEntity implements SaveTrait, SyncTrait, DrawTrait, VelocityTrait, TimeTrait, Poolable { public static int typeID = -1; private static final float sinkLifetime = 80f; @@ -62,6 +64,10 @@ public class ItemDrop extends SolidEntity implements SyncTrait, DrawTrait, Veloc @Remote(called = Loc.server, in = In.entities) public static void onPickup(int itemid){ + ItemDrop drop = itemGroup.getByID(itemid); + if(drop != null){ + Effects.effect(UnitFx.pickup, drop); + } itemGroup.removeByID(itemid); } @@ -104,9 +110,14 @@ public class ItemDrop extends SolidEntity implements SyncTrait, DrawTrait, Veloc @Override public void collision(SolidTrait other, float x, float y) { Player player = (Player)other; - if(player.inventory.canAcceptItem(item, amount)){ - player.inventory.addItem(item, amount); - CallEntity.onPickup(getID()); + if(player.inventory.canAcceptItem(item, 1)){ + int used = Math.min(amount, player.inventory.capacity() - player.inventory.getItem().amount); + player.inventory.addItem(item, used); + amount -= used; + + if(amount <= 0) { + CallEntity.onPickup(getID()); + } } } @@ -182,6 +193,22 @@ public class ItemDrop extends SolidEntity implements SyncTrait, DrawTrait, Veloc return itemGroup; } + @Override + public void writeSave(DataOutput data) throws IOException { + data.writeFloat(x); + data.writeFloat(y); + data.writeByte(item.id); + data.writeShort(amount); + } + + @Override + public void readSave(DataInput data) throws IOException { + x = data.readFloat(); + y = data.readFloat(); + item = Item.getByID(data.readByte()); + amount = data.readShort(); + } + @Override public void write(DataOutput data) throws IOException{ data.writeFloat(x); diff --git a/core/src/io/anuke/mindustry/entities/units/UnitDrops.java b/core/src/io/anuke/mindustry/entities/units/UnitDrops.java index 56490e1592..d9f3c7be24 100644 --- a/core/src/io/anuke/mindustry/entities/units/UnitDrops.java +++ b/core/src/io/anuke/mindustry/entities/units/UnitDrops.java @@ -13,11 +13,13 @@ public class UnitDrops { dropTable = new Item[]{Items.tungsten, Items.lead, Items.carbide}; } - for(Item item : dropTable){ - if(Mathf.chance(0.2)){ - int amount = Mathf.random(1, 30); - CallEntity.createItemDrop(item, amount, unit.x + Mathf.range(2f), unit.y + Mathf.range(2f), - unit.getVelocity().x + Mathf.range(0.5f), unit.getVelocity().y + Mathf.range(0.5f)); + for (int i = 0; i < 3; i++) { + for(Item item : dropTable){ + if(Mathf.chance(0.2)){ + int amount = Mathf.random(1, 5); + CallEntity.createItemDrop(item, amount, unit.x + Mathf.range(2f), unit.y + Mathf.range(2f), + unit.getVelocity().x + Mathf.range(3f), unit.getVelocity().y + Mathf.range(3f)); + } } } } diff --git a/core/src/io/anuke/mindustry/entities/units/types/Drone.java b/core/src/io/anuke/mindustry/entities/units/types/Drone.java index 6b2e897df4..73bd9cd5ae 100644 --- a/core/src/io/anuke/mindustry/entities/units/types/Drone.java +++ b/core/src/io/anuke/mindustry/entities/units/types/Drone.java @@ -184,11 +184,19 @@ public class Drone extends FlyingUnit implements BuilderTrait { public final UnitState build = new UnitState(){ + public void entered() { + target = null; + } public void update() { BuildEntity entity = (BuildEntity)target; TileEntity core = getClosestCore(); + if(entity == null){ + setState(repair); + return; + } + if(core == null) return; if(entity.progress() < 1f && entity.tile.block() instanceof BuildBlock){ //building is valid @@ -243,6 +251,9 @@ public class Drone extends FlyingUnit implements BuilderTrait { } }, mine = new UnitState() { + public void entered() { + target = null; + } public void update() { if(targetItem == null) { @@ -253,7 +264,11 @@ public class Drone extends FlyingUnit implements BuilderTrait { if(inventory.isFull()){ setState(drop); }else{ - //only mines tungsten for now + if(targetItem != null && !inventory.canAcceptItem(targetItem)){ + setState(drop); + return; + } + retarget(() -> { if(getMineTile() == null){ findItem(); @@ -279,6 +294,9 @@ public class Drone extends FlyingUnit implements BuilderTrait { } }, drop = new UnitState() { + public void entered() { + target = null; + } public void update() { if(inventory.isEmpty()){ diff --git a/core/src/io/anuke/mindustry/input/InputHandler.java b/core/src/io/anuke/mindustry/input/InputHandler.java index a960a98a14..0a8384af3c 100644 --- a/core/src/io/anuke/mindustry/input/InputHandler.java +++ b/core/src/io/anuke/mindustry/input/InputHandler.java @@ -169,6 +169,9 @@ public abstract class InputHandler extends InputAdapter{ /**Returns the tile at the specified MOUSE coordinates.*/ Tile tileAt(float x, float y){ Vector2 vec = Graphics.world(x, y); + if(isPlacing()){ + vec.sub(recipe.result.offset(), recipe.result.offset()); + } return world.tileWorld(vec.x, vec.y); } diff --git a/core/src/io/anuke/mindustry/type/AmmoType.java b/core/src/io/anuke/mindustry/type/AmmoType.java index d5ba6890da..88ad721a9e 100644 --- a/core/src/io/anuke/mindustry/type/AmmoType.java +++ b/core/src/io/anuke/mindustry/type/AmmoType.java @@ -21,9 +21,11 @@ public class AmmoType implements Content{ * For liquid ammo, this is amount used per shot.*/ public final float quantityMultiplier; /**Reload speed multiplier.*/ - public float speedMultiplier = 1f; + public float reloadMultiplier = 1f; /**Bullet recoil strength.*/ public float recoil = 0f; + /**Additional inaccuracy in degrees.*/ + public float inaccuracy; /**Effect created when shooting.*/ public Effect shootEffect = Fx.none; /**Extra smoke effect created when shooting.*/ @@ -40,7 +42,7 @@ public class AmmoType implements Content{ this.liquid = null; this.bullet = result; this.quantityMultiplier = 1f; - this.speedMultiplier = 1f; + this.reloadMultiplier = 1f; } /**Creates an AmmoType with an item.*/ diff --git a/core/src/io/anuke/mindustry/ui/fragments/DebugFragment.java b/core/src/io/anuke/mindustry/ui/fragments/DebugFragment.java index d3973e5358..9a50e6af9e 100644 --- a/core/src/io/anuke/mindustry/ui/fragments/DebugFragment.java +++ b/core/src/io/anuke/mindustry/ui/fragments/DebugFragment.java @@ -80,7 +80,7 @@ public class DebugFragment implements Fragment { new button("spawng", () ->{ BaseUnit unit = UnitTypes.scout.create(player.getTeam()); unit.set(player.x, player.y); - unit.inventory.addAmmo(AmmoTypes.bulletIron); + unit.inventory.addAmmo(AmmoTypes.bulletLead); unit.setWave(); unit.add(); }); diff --git a/core/src/io/anuke/mindustry/world/BaseBlock.java b/core/src/io/anuke/mindustry/world/BaseBlock.java index 9916cf39af..f405a5159b 100644 --- a/core/src/io/anuke/mindustry/world/BaseBlock.java +++ b/core/src/io/anuke/mindustry/world/BaseBlock.java @@ -36,12 +36,14 @@ public abstract class BaseBlock { /**Remove a stack from this inventory, and return the amount removed.*/ public int removeStack(Tile tile, Item item, int amount){ + tile.entity.wakeUp(); tile.entity.items.removeItem(item, amount); return amount; } /**Handle a stack input.*/ public void handleStack(Item item, int amount, Tile tile, Unit source){ + tile.entity.wakeUp(); tile.entity.items.addItem(item, amount); } diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/CooledTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/CooledTurret.java index e317efda1b..6c73a5b12f 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/CooledTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/CooledTurret.java @@ -4,7 +4,6 @@ import io.anuke.mindustry.content.fx.BlockFx; import io.anuke.mindustry.entities.effect.Fire; import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.Tile; -import io.anuke.mindustry.world.blocks.defense.Turret; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; import io.anuke.ucore.core.Timers; @@ -21,6 +20,7 @@ public class CooledTurret extends Turret { public CooledTurret(String name) { super(name); hasLiquids = true; + liquidCapacity = 20f; } @Override @@ -29,7 +29,7 @@ public class CooledTurret extends Turret { TurretEntity entity = tile.entity(); - float used = Math.min(Math.min(entity.liquids.amount, maxUsed * Timers.delta()), ((reload - entity.reload) / coolantMultiplier) / entity.liquids.liquid.heatCapacity); + float used = Math.min(Math.min(entity.liquids.amount, maxUsed * Timers.delta()), Math.max(0, ((reload - entity.reload) / coolantMultiplier) / entity.liquids.liquid.heatCapacity)); entity.reload += (used * entity.liquids.liquid.heatCapacity) / entity.liquids.liquid.heatCapacity; entity.liquids.amount -= used; diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/DoubleTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/DoubleTurret.java index 1cdabfbaa8..1a46cb7be9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/DoubleTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/DoubleTurret.java @@ -24,7 +24,7 @@ public class DoubleTurret extends ItemTurret { tr.trns(entity.rotation - 90, shotWidth * i, size * tilesize / 2); bullet(tile, ammo.bullet, entity.rotation + Mathf.range(inaccuracy)); - useAmmo(tile); effects(tile); + useAmmo(tile); } } diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ItemTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ItemTurret.java index 82da3d3efa..eeb5b8dfa5 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ItemTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/ItemTurret.java @@ -11,8 +11,6 @@ import io.anuke.mindustry.world.meta.BlockBar; public class ItemTurret extends CooledTurret { protected int maxAmmo = 100; - //TODO implement this! - /**A value of 'null' means this turret does not need ammo.*/ protected AmmoType[] ammoTypes; protected ObjectMap ammoMap = new ObjectMap<>(); diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LiquidTurret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LiquidTurret.java index 1fa1b21eda..27d27d7594 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LiquidTurret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/LiquidTurret.java @@ -7,7 +7,6 @@ import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.BarType; import io.anuke.mindustry.world.meta.BlockBar; import io.anuke.mindustry.world.Tile; -import io.anuke.mindustry.world.blocks.defense.Turret; import io.anuke.ucore.core.Effects; public abstract class LiquidTurret extends Turret { diff --git a/core/src/io/anuke/mindustry/world/blocks/defense/Turret.java b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java similarity index 96% rename from core/src/io/anuke/mindustry/world/blocks/defense/Turret.java rename to core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java index 0751cb3142..667cc61f28 100644 --- a/core/src/io/anuke/mindustry/world/blocks/defense/Turret.java +++ b/core/src/io/anuke/mindustry/world/blocks/defense/turrets/Turret.java @@ -1,4 +1,4 @@ -package io.anuke.mindustry.world.blocks.defense; +package io.anuke.mindustry.world.blocks.defense.turrets; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.TextureRegion; @@ -8,14 +8,15 @@ import io.anuke.mindustry.entities.Predict; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.Unit; import io.anuke.mindustry.entities.Units; +import io.anuke.mindustry.entities.bullet.Bullet; import io.anuke.mindustry.entities.bullet.BulletType; import io.anuke.mindustry.graphics.Layer; import io.anuke.mindustry.graphics.Palette; import io.anuke.mindustry.type.AmmoEntry; import io.anuke.mindustry.type.AmmoType; import io.anuke.mindustry.world.Block; -import io.anuke.mindustry.world.meta.BlockGroup; import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.world.meta.BlockGroup; import io.anuke.mindustry.world.meta.BlockStat; import io.anuke.ucore.core.Effects; import io.anuke.ucore.core.Effects.Effect; @@ -166,6 +167,7 @@ public abstract class Turret extends Block{ if(Float.isNaN(entity.rotation)){ entity.rotation = 0; } + entity.rotation = Angles.moveToward(entity.rotation, targetRot, 5f * Timers.delta()); if(Angles.angleDist(entity.rotation, targetRot) < shootCone){ @@ -208,7 +210,7 @@ public abstract class Turret extends Block{ entity.reload = 0f; }else{ - entity.reload += Timers.delta() * peekAmmo(tile).speedMultiplier; + entity.reload += Timers.delta() * peekAmmo(tile).reloadMultiplier; } } @@ -218,17 +220,18 @@ public abstract class Turret extends Block{ entity.recoil = recoil; entity.heat = 1f; + AmmoType type = peekAmmo(tile); useAmmo(tile); tr.trns(entity.rotation, size * tilesize / 2); - bullet(tile, ammo.bullet, entity.rotation + Mathf.range(inaccuracy)); + bullet(tile, ammo.bullet, entity.rotation + Mathf.range(inaccuracy + type.inaccuracy)); effects(tile); } protected void bullet(Tile tile, BulletType type, float angle){ - io.anuke.mindustry.entities.bullet.Bullet.create(type, tile.entity, tile.getTeam(), tile.drawx() + tr.x, tile.drawy() + tr.y, angle); + Bullet.create(type, tile.entity, tile.getTeam(), tile.drawx() + tr.x, tile.drawy() + tr.y, angle); } protected void effects(Tile tile){ diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java index 2cbd4c91ec..5f075dc5e5 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Conveyor.java @@ -3,7 +3,6 @@ package io.anuke.mindustry.world.blocks.distribution; import com.badlogic.gdx.graphics.g2d.TextureRegion; import com.badlogic.gdx.math.GridPoint2; import com.badlogic.gdx.utils.LongArray; -import io.anuke.mindustry.content.Items; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.entities.Unit; import io.anuke.mindustry.graphics.Layer; @@ -62,11 +61,12 @@ public class Conveyor extends Block{ @Override public void draw(Tile tile){ + ConveyorEntity entity = tile.entity(); byte rotation = tile.getRotation(); GridPoint2 point = Geometry.d4[rotation]; - int offset = acceptItem(Items.stone, tile, null) ? (int)((Timers.time()/4f)%8) : 0; + int offset = entity.clogHeat <= 0.5f ? (int)((Timers.time()/4f)%8) : 0; TextureRegion region = Draw.region(name); region1.setRegion(region, 0, 0, region.getRegionWidth() - offset, region.getRegionHeight()); @@ -192,6 +192,12 @@ public class Conveyor extends Block{ } } + if(entity.minitem <= 0.0001f){ + entity.clogHeat = Mathf.lerpDelta(entity.clogHeat, 1f, 0.05f); + }else{ + entity.clogHeat = Mathf.lerpDelta(entity.clogHeat, 0f, 1f); + } + entity.carrying = 0f; entity.minCarry = 2f; @@ -301,6 +307,8 @@ public class Conveyor extends Block{ float carrying; float minCarry = 2f; + float clogHeat = 0f; + @Override public void write(DataOutputStream stream) throws IOException{ stream.writeInt(convey.size); diff --git a/core/src/io/anuke/mindustry/world/blocks/distribution/Router.java b/core/src/io/anuke/mindustry/world/blocks/distribution/Router.java index 0324fe7447..f34158d190 100644 --- a/core/src/io/anuke/mindustry/world/blocks/distribution/Router.java +++ b/core/src/io/anuke/mindustry/world/blocks/distribution/Router.java @@ -2,8 +2,8 @@ package io.anuke.mindustry.world.blocks.distribution; import io.anuke.mindustry.type.Item; import io.anuke.mindustry.world.Block; -import io.anuke.mindustry.world.meta.BlockGroup; import io.anuke.mindustry.world.Tile; +import io.anuke.mindustry.world.meta.BlockGroup; import io.anuke.ucore.core.Timers; public class Router extends Block{ @@ -21,7 +21,7 @@ public class Router extends Block{ @Override public void update(Tile tile){ int iterations = Math.max(1, (int) (Timers.delta() + 0.4f)); - boolean moved = false; + boolean moved = tile.entity.items.totalItems() > 0; for(int i = 0; i < iterations; i ++) { if (tile.entity.items.totalItems() > 0) { diff --git a/core/src/io/anuke/mindustry/world/blocks/production/Cultivator.java b/core/src/io/anuke/mindustry/world/blocks/production/Cultivator.java index d105930741..3fd489f7d9 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/Cultivator.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/Cultivator.java @@ -2,6 +2,7 @@ package io.anuke.mindustry.world.blocks.production; import com.badlogic.gdx.graphics.Color; import com.badlogic.gdx.graphics.g2d.TextureRegion; +import io.anuke.mindustry.content.blocks.Blocks; import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.content.fx.Fx; import io.anuke.mindustry.type.Item; @@ -80,7 +81,7 @@ public class Cultivator extends Drill { @Override public boolean isValid(Tile tile){ - return tile.block().drops != null && tile.block().drops.item == result; + return tile.floor() == Blocks.grass; } public static class CultivatorEntity extends DrillEntity{ diff --git a/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java b/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java index bc3cbd30b9..8ae2cc68c8 100644 --- a/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java +++ b/core/src/io/anuke/mindustry/world/blocks/production/SolidPump.java @@ -1,10 +1,9 @@ package io.anuke.mindustry.world.blocks.production; import com.badlogic.gdx.graphics.g2d.TextureRegion; -import com.badlogic.gdx.utils.Array; import io.anuke.mindustry.content.Liquids; -import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.content.fx.Fx; +import io.anuke.mindustry.entities.TileEntity; import io.anuke.mindustry.type.Liquid; import io.anuke.mindustry.world.Tile; import io.anuke.ucore.core.Effects; @@ -22,8 +21,6 @@ public class SolidPump extends Pump { protected float updateEffectChance = 0.02f; protected float rotateSpeed = 1f; - protected final Array drawTiles = new Array<>(); - public SolidPump(String name){ super(name); hasPower = true; @@ -84,19 +81,20 @@ public class SolidPump extends Pump { } @Override - public boolean isLayer(Tile tile) { + public boolean canPlaceOn(Tile tile) { if(isMultiblock()){ for(Tile other : tile.getLinkedTiles(drawTiles)){ if(isValid(other)){ - return false; + return true; } } - return true; + return false; }else{ - return !isValid(tile); + return isValid(tile); } } + @Override protected boolean isValid(Tile tile){ return !tile.floor().isLiquid; } diff --git a/core/src/io/anuke/mindustry/world/mapgen/ProcGen.java b/core/src/io/anuke/mindustry/world/mapgen/ProcGen.java index d231b99f1f..543e606770 100644 --- a/core/src/io/anuke/mindustry/world/mapgen/ProcGen.java +++ b/core/src/io/anuke/mindustry/world/mapgen/ProcGen.java @@ -14,10 +14,12 @@ import io.anuke.ucore.util.Mathf; public class ProcGen { private Simplex sim = new Simplex(); private Simplex sim2 = new Simplex(); + private Simplex sim3 = new Simplex(); public MapTileData generate(GenProperties props){ sim.setSeed(Mathf.random(99999)); sim2.setSeed(Mathf.random(99999)); + sim3.setSeed(Mathf.random(99999)); MapTileData data = new MapTileData(300, 300); TileDataMarker marker = data.newDataMarker(); @@ -47,6 +49,10 @@ public class ProcGen { } } + if(sim3.octaveNoise2D(4, 0.5, 1f/120f, x, y) > 0.5){ + marker.floor = (byte)Blocks.grass.id; + } + marker.elevation = (byte)Math.max(elevation, 0); data.write(marker);