diff --git a/artwork/buildings/buildings_2x2.psd b/artwork/buildings/buildings_2x2.psd index 7017b4d9..00f31093 100644 --- a/artwork/buildings/buildings_2x2.psd +++ b/artwork/buildings/buildings_2x2.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a7931a4ba2104bbf7de3a1332617d5a056e34c55bab751821a168a83e0b91793 -size 683910 +oid sha256:9d8a4254944d83882513a062e77406419d94c3058a7ad657a5a318d45cc5443f +size 902131 diff --git a/artwork/ui/toolbar-icons.psd b/artwork/ui/toolbar-icons.psd index e8efcfa3..9b453e15 100644 --- a/artwork/ui/toolbar-icons.psd +++ b/artwork/ui/toolbar-icons.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:037d27409bf78b828470e553ee0f29304eda24c46598151bb4b9c69c66a6c6c1 -size 146363 +oid sha256:27c8d1eaa48beb7187e37244bd6ef7f43429be84ac88fffa96a4d72eb0e6565b +size 158809 diff --git a/res/ui/building_icons/energy_generator.png b/res/ui/building_icons/energy_generator.png new file mode 100644 index 00000000..ab724a7b Binary files /dev/null and b/res/ui/building_icons/energy_generator.png differ diff --git a/res_built/atlas/atlas0_10.json b/res_built/atlas/atlas0_10.json index 8aeef6ae..0168f6c4 100644 --- a/res_built/atlas/atlas0_10.json +++ b/res_built/atlas/atlas0_10.json @@ -2,7 +2,7 @@ "sprites/belt/forward_0.png": { - "frame": {"x":204,"y":26,"w":13,"h":13}, + "frame": {"x":205,"y":110,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -10,7 +10,7 @@ }, "sprites/belt/forward_1.png": { - "frame": {"x":221,"y":26,"w":13,"h":13}, + "frame": {"x":222,"y":110,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -18,7 +18,7 @@ }, "sprites/belt/forward_2.png": { - "frame": {"x":238,"y":26,"w":13,"h":13}, + "frame": {"x":239,"y":110,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -26,7 +26,7 @@ }, "sprites/belt/forward_3.png": { - "frame": {"x":255,"y":26,"w":13,"h":13}, + "frame": {"x":206,"y":68,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -34,7 +34,7 @@ }, "sprites/belt/forward_4.png": { - "frame": {"x":272,"y":26,"w":13,"h":13}, + "frame": {"x":223,"y":68,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -42,7 +42,7 @@ }, "sprites/belt/forward_5.png": { - "frame": {"x":245,"y":112,"w":13,"h":13}, + "frame": {"x":240,"y":68,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -50,7 +50,7 @@ }, "sprites/belt/left_0.png": { - "frame": {"x":262,"y":112,"w":13,"h":13}, + "frame": {"x":243,"y":26,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -58,7 +58,7 @@ }, "sprites/belt/left_1.png": { - "frame": {"x":279,"y":112,"w":13,"h":13}, + "frame": {"x":260,"y":26,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -66,7 +66,7 @@ }, "sprites/belt/left_2.png": { - "frame": {"x":296,"y":112,"w":13,"h":13}, + "frame": {"x":277,"y":26,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -74,7 +74,7 @@ }, "sprites/belt/left_3.png": { - "frame": {"x":289,"y":49,"w":13,"h":13}, + "frame": {"x":257,"y":66,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -82,7 +82,7 @@ }, "sprites/belt/left_4.png": { - "frame": {"x":306,"y":49,"w":13,"h":13}, + "frame": {"x":274,"y":66,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -90,7 +90,7 @@ }, "sprites/belt/left_5.png": { - "frame": {"x":323,"y":49,"w":13,"h":13}, + "frame": {"x":294,"y":26,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -98,7 +98,7 @@ }, "sprites/belt/right_0.png": { - "frame": {"x":313,"y":112,"w":13,"h":13}, + "frame": {"x":311,"y":26,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -106,7 +106,7 @@ }, "sprites/belt/right_1.png": { - "frame": {"x":330,"y":112,"w":13,"h":13}, + "frame": {"x":328,"y":26,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -114,7 +114,7 @@ }, "sprites/belt/right_2.png": { - "frame": {"x":340,"y":49,"w":13,"h":13}, + "frame": {"x":291,"y":66,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -122,7 +122,7 @@ }, "sprites/belt/right_3.png": { - "frame": {"x":347,"y":112,"w":13,"h":13}, + "frame": {"x":308,"y":66,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -130,7 +130,7 @@ }, "sprites/belt/right_4.png": { - "frame": {"x":357,"y":49,"w":13,"h":13}, + "frame": {"x":325,"y":66,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -138,7 +138,7 @@ }, "sprites/belt/right_5.png": { - "frame": {"x":374,"y":49,"w":13,"h":13}, + "frame": {"x":345,"y":26,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -146,7 +146,7 @@ }, "sprites/blueprints/belt_left.png": { - "frame": {"x":391,"y":48,"w":13,"h":13}, + "frame": {"x":362,"y":26,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -154,7 +154,7 @@ }, "sprites/blueprints/belt_right.png": { - "frame": {"x":404,"y":25,"w":13,"h":13}, + "frame": {"x":342,"y":66,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -162,7 +162,7 @@ }, "sprites/blueprints/belt_top.png": { - "frame": {"x":400,"y":85,"w":13,"h":13}, + "frame": {"x":359,"y":66,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -178,15 +178,23 @@ }, "sprites/blueprints/cutter.png": { - "frame": {"x":245,"y":66,"w":36,"h":19}, + "frame": {"x":289,"y":43,"w":36,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, "sourceSize": {"w":38,"h":19} }, +"sprites/blueprints/energy_generator.png": +{ + "frame": {"x":126,"y":79,"w":36,"h":38}, + "rotated": false, + "trimmed": true, + "spriteSourceSize": {"x":1,"y":0,"w":36,"h":38}, + "sourceSize": {"w":38,"h":38} +}, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":285,"y":66,"w":19,"h":19}, + "frame": {"x":365,"y":3,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -194,7 +202,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":285,"y":89,"w":19,"h":19}, + "frame": {"x":302,"y":106,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -202,7 +210,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":204,"y":68,"w":37,"h":19}, + "frame": {"x":247,"y":85,"w":37,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, @@ -242,7 +250,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":289,"y":26,"w":19,"h":19}, + "frame": {"x":325,"y":106,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -250,7 +258,7 @@ }, "sprites/blueprints/rotater.png": { - "frame": {"x":312,"y":26,"w":19,"h":19}, + "frame": {"x":328,"y":83,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -258,7 +266,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":327,"y":3,"w":19,"h":19}, + "frame": {"x":348,"y":106,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -266,7 +274,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":308,"y":66,"w":19,"h":19}, + "frame": {"x":351,"y":83,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -274,7 +282,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":249,"y":43,"w":36,"h":19}, + "frame": {"x":325,"y":3,"w":36,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, @@ -282,7 +290,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":204,"y":91,"w":37,"h":19}, + "frame": {"x":243,"y":3,"w":37,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, @@ -290,7 +298,7 @@ }, "sprites/blueprints/trash-storage.png": { - "frame": {"x":126,"y":79,"w":35,"h":38}, + "frame": {"x":204,"y":3,"w":35,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":35,"h":38}, @@ -298,7 +306,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":335,"y":26,"w":19,"h":19}, + "frame": {"x":371,"y":106,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -306,7 +314,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":381,"y":26,"w":19,"h":18}, + "frame": {"x":411,"y":3,"w":19,"h":18}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":19,"h":18}, @@ -314,7 +322,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":354,"y":89,"w":19,"h":16}, + "frame": {"x":256,"y":108,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":3,"w":19,"h":16}, @@ -322,7 +330,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":364,"y":109,"w":19,"h":16}, + "frame": {"x":279,"y":108,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, @@ -330,7 +338,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":377,"y":66,"w":19,"h":16}, + "frame": {"x":434,"y":3,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, @@ -338,7 +346,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":262,"y":112,"w":13,"h":13}, + "frame": {"x":243,"y":26,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -346,7 +354,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":313,"y":112,"w":13,"h":13}, + "frame": {"x":311,"y":26,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -354,7 +362,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":204,"y":26,"w":13,"h":13}, + "frame": {"x":205,"y":110,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -370,12 +378,20 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":287,"y":3,"w":36,"h":19}, + "frame": {"x":288,"y":83,"w":36,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, "sourceSize": {"w":38,"h":19} }, +"sprites/buildings/energy_generator.png": +{ + "frame": {"x":166,"y":45,"w":36,"h":38}, + "rotated": false, + "trimmed": true, + "spriteSourceSize": {"x":1,"y":0,"w":36,"h":38}, + "sourceSize": {"w":38,"h":38} +}, "sprites/buildings/hub.png": { "frame": {"x":3,"y":3,"w":75,"h":76}, @@ -386,7 +402,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":350,"y":3,"w":19,"h":19}, + "frame": {"x":374,"y":83,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -394,7 +410,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":308,"y":89,"w":19,"h":19}, + "frame": {"x":394,"y":106,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -402,7 +418,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":208,"y":43,"w":37,"h":19}, + "frame": {"x":248,"y":43,"w":37,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, @@ -418,7 +434,7 @@ }, "sprites/buildings/painter-mirrored.png": { - "frame": {"x":166,"y":45,"w":38,"h":19}, + "frame": {"x":205,"y":87,"w":38,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":19}, @@ -434,7 +450,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":204,"y":3,"w":38,"h":19}, + "frame": {"x":206,"y":45,"w":38,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":19}, @@ -442,7 +458,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":331,"y":66,"w":19,"h":19}, + "frame": {"x":369,"y":43,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -450,7 +466,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":331,"y":89,"w":19,"h":19}, + "frame": {"x":388,"y":3,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -458,7 +474,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":354,"y":66,"w":19,"h":19}, + "frame": {"x":397,"y":80,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -466,7 +482,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":358,"y":26,"w":19,"h":19}, + "frame": {"x":417,"y":103,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -474,7 +490,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":245,"y":89,"w":36,"h":19}, + "frame": {"x":329,"y":43,"w":36,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, @@ -482,7 +498,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":246,"y":3,"w":37,"h":19}, + "frame": {"x":284,"y":3,"w":37,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, @@ -490,7 +506,7 @@ }, "sprites/buildings/trash-storage.png": { - "frame": {"x":165,"y":72,"w":35,"h":38}, + "frame": {"x":166,"y":87,"w":35,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":35,"h":38}, @@ -498,7 +514,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":373,"y":3,"w":19,"h":19}, + "frame": {"x":392,"y":39,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -506,7 +522,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":396,"y":3,"w":19,"h":18}, + "frame": {"x":415,"y":25,"w":19,"h":18}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":19,"h":18}, @@ -514,7 +530,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":377,"y":86,"w":19,"h":16}, + "frame": {"x":415,"y":47,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":3,"w":19,"h":16}, @@ -522,7 +538,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":387,"y":106,"w":19,"h":16}, + "frame": {"x":420,"y":67,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, @@ -530,7 +546,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":400,"y":65,"w":19,"h":16}, + "frame": {"x":438,"y":23,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, @@ -578,7 +594,7 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":187,"y":114,"w":10,"h":10}, + "frame": {"x":376,"y":66,"w":10,"h":10}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":10,"h":10}, @@ -602,7 +618,7 @@ }, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":187,"y":114,"w":10,"h":10}, + "frame": {"x":376,"y":66,"w":10,"h":10}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":10,"h":10}, @@ -610,7 +626,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":201,"y":114,"w":10,"h":10}, + "frame": {"x":390,"y":66,"w":10,"h":10}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":10,"h":10}, @@ -618,7 +634,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":165,"y":114,"w":18,"h":9}, + "frame": {"x":379,"y":26,"w":18,"h":9}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":18,"h":9}, @@ -637,8 +653,8 @@ "version": "1.0", "image": "atlas0_10.png", "format": "RGBA8888", - "size": {"w":422,"h":128}, + "size": {"w":460,"h":128}, "scale": "0.1", - "smartupdate": "$TexturePacker:SmartUpdate:8985524bba1a3f16cecab3c03b6aaa06:d614d20bfce033d8a8ab0990af085d16:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:edd9ed958611fe83da11c1bd0e07a460:9470e3f106da3baf56901b0e2f906cb8:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_10.png b/res_built/atlas/atlas0_10.png index adab820d..0b315ff8 100644 Binary files a/res_built/atlas/atlas0_10.png and b/res_built/atlas/atlas0_10.png differ diff --git a/res_built/atlas/atlas0_100.json b/res_built/atlas/atlas0_100.json index ba671365..02d8e571 100644 --- a/res_built/atlas/atlas0_100.json +++ b/res_built/atlas/atlas0_100.json @@ -2,7 +2,7 @@ "sprites/belt/forward_0.png": { - "frame": {"x":1876,"y":1166,"w":100,"h":126}, + "frame": {"x":1457,"y":1455,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -10,7 +10,7 @@ }, "sprites/belt/forward_1.png": { - "frame": {"x":1876,"y":1296,"w":100,"h":126}, + "frame": {"x":1457,"y":1585,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -18,7 +18,7 @@ }, "sprites/belt/forward_2.png": { - "frame": {"x":1869,"y":1543,"w":100,"h":126}, + "frame": {"x":1467,"y":1715,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -26,7 +26,7 @@ }, "sprites/belt/forward_3.png": { - "frame": {"x":1857,"y":395,"w":100,"h":126}, + "frame": {"x":1467,"y":1845,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -34,7 +34,7 @@ }, "sprites/belt/forward_4.png": { - "frame": {"x":1865,"y":1690,"w":100,"h":126}, + "frame": {"x":1561,"y":1465,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -42,7 +42,7 @@ }, "sprites/belt/forward_5.png": { - "frame": {"x":920,"y":1370,"w":100,"h":126}, + "frame": {"x":1665,"y":1465,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -50,7 +50,7 @@ }, "sprites/belt/left_0.png": { - "frame": {"x":1870,"y":1426,"w":113,"h":113}, + "frame": {"x":1561,"y":1595,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -58,7 +58,7 @@ }, "sprites/belt/left_1.png": { - "frame": {"x":920,"y":1500,"w":113,"h":113}, + "frame": {"x":1571,"y":1712,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -66,7 +66,7 @@ }, "sprites/belt/left_2.png": { - "frame": {"x":935,"y":1617,"w":113,"h":113}, + "frame": {"x":1571,"y":1829,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -74,7 +74,7 @@ }, "sprites/belt/left_3.png": { - "frame": {"x":935,"y":1734,"w":113,"h":113}, + "frame": {"x":1678,"y":1595,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -82,7 +82,7 @@ }, "sprites/belt/left_4.png": { - "frame": {"x":1052,"y":1721,"w":113,"h":113}, + "frame": {"x":1688,"y":1712,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -90,7 +90,7 @@ }, "sprites/belt/left_5.png": { - "frame": {"x":1169,"y":1721,"w":113,"h":113}, + "frame": {"x":1688,"y":1829,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -98,7 +98,7 @@ }, "sprites/belt/right_0.png": { - "frame": {"x":1286,"y":1721,"w":113,"h":113}, + "frame": {"x":1769,"y":1466,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -106,7 +106,7 @@ }, "sprites/belt/right_1.png": { - "frame": {"x":1403,"y":1721,"w":113,"h":113}, + "frame": {"x":1886,"y":1466,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -114,7 +114,7 @@ }, "sprites/belt/right_2.png": { - "frame": {"x":1520,"y":1721,"w":113,"h":113}, + "frame": {"x":1795,"y":1583,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -122,7 +122,7 @@ }, "sprites/belt/right_3.png": { - "frame": {"x":1052,"y":1552,"w":113,"h":113}, + "frame": {"x":1805,"y":1700,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -130,7 +130,7 @@ }, "sprites/belt/right_4.png": { - "frame": {"x":1169,"y":1552,"w":113,"h":113}, + "frame": {"x":1805,"y":1817,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -138,7 +138,7 @@ }, "sprites/belt/right_5.png": { - "frame": {"x":1286,"y":1554,"w":113,"h":113}, + "frame": {"x":1912,"y":1583,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -178,15 +178,23 @@ }, "sprites/blueprints/cutter.png": { - "frame": {"x":1433,"y":785,"w":341,"h":191}, + "frame": {"x":1114,"y":966,"w":341,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":0,"w":341,"h":191}, "sourceSize": {"w":384,"h":192} }, +"sprites/blueprints/energy_generator.png": +{ + "frame": {"x":735,"y":590,"w":339,"h":373}, + "rotated": false, + "trimmed": true, + "spriteSourceSize": {"x":25,"y":11,"w":339,"h":373}, + "sourceSize": {"w":384,"h":384} +}, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":749,"y":1655,"w":182,"h":190}, + "frame": {"x":1843,"y":783,"w":182,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":182,"h":190}, @@ -194,7 +202,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":1690,"y":1174,"w":182,"h":190}, + "frame": {"x":1073,"y":1357,"w":182,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":182,"h":190}, @@ -202,7 +210,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":1123,"y":590,"w":347,"h":191}, + "frame": {"x":391,"y":1707,"w":347,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":18,"y":0,"w":347,"h":191}, @@ -218,7 +226,7 @@ }, "sprites/blueprints/painter-mirrored.png": { - "frame": {"x":1485,"y":3,"w":384,"h":192}, + "frame": {"x":3,"y":1702,"w":384,"h":192}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":192}, @@ -234,7 +242,7 @@ }, "sprites/blueprints/painter.png": { - "frame": {"x":1483,"y":199,"w":384,"h":192}, + "frame": {"x":1485,"y":3,"w":384,"h":192}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":192}, @@ -242,7 +250,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":922,"y":1174,"w":189,"h":191}, + "frame": {"x":1459,"y":956,"w":189,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":189,"h":191}, @@ -250,7 +258,7 @@ }, "sprites/blueprints/rotater.png": { - "frame": {"x":1115,"y":1173,"w":189,"h":191}, + "frame": {"x":1811,"y":588,"w":189,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":189,"h":191}, @@ -258,7 +266,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":1756,"y":980,"w":188,"h":182}, + "frame": {"x":1652,"y":977,"w":188,"h":182}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":4,"w":188,"h":182}, @@ -266,7 +274,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":1306,"y":1368,"w":185,"h":182}, + "frame": {"x":1844,"y":977,"w":185,"h":182}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":4,"w":185,"h":182}, @@ -274,7 +282,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":726,"y":979,"w":340,"h":191}, + "frame": {"x":742,"y":1551,"w":340,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":0,"w":340,"h":191}, @@ -282,7 +290,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":1474,"y":590,"w":347,"h":191}, + "frame": {"x":726,"y":1162,"w":347,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":18,"y":0,"w":347,"h":191}, @@ -298,7 +306,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":726,"y":1174,"w":192,"h":192}, + "frame": {"x":1419,"y":590,"w":192,"h":192}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":192}, @@ -306,7 +314,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":1683,"y":1368,"w":183,"h":166}, + "frame": {"x":1419,"y":786,"w":183,"h":166}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":26,"w":183,"h":166}, @@ -314,7 +322,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":192,"y":1702,"w":182,"h":148}, + "frame": {"x":1834,"y":1163,"w":182,"h":148}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":44,"w":182,"h":148}, @@ -322,7 +330,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":3,"y":1702,"w":185,"h":148}, + "frame": {"x":1459,"y":1151,"w":185,"h":148}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":185,"h":148}, @@ -330,7 +338,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":1683,"y":1538,"w":182,"h":148}, + "frame": {"x":1457,"y":1303,"w":182,"h":148}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":182,"h":148}, @@ -338,7 +346,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":1870,"y":1426,"w":113,"h":113}, + "frame": {"x":1561,"y":1595,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -346,7 +354,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":1286,"y":1721,"w":113,"h":113}, + "frame": {"x":1769,"y":1466,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -354,7 +362,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":1876,"y":1166,"w":100,"h":126}, + "frame": {"x":1457,"y":1455,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -370,12 +378,20 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":1070,"y":979,"w":339,"h":190}, + "frame": {"x":1483,"y":394,"w":339,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":24,"y":0,"w":339,"h":190}, "sourceSize": {"w":384,"h":192} }, +"sprites/buildings/energy_generator.png": +{ + "frame": {"x":1078,"y":590,"w":337,"h":372}, + "rotated": false, + "trimmed": true, + "spriteSourceSize": {"x":26,"y":12,"w":337,"h":372}, + "sourceSize": {"w":384,"h":384} +}, "sprites/buildings/hub.png": { "frame": {"x":3,"y":3,"w":728,"h":730}, @@ -386,7 +402,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":1825,"y":590,"w":179,"h":188}, + "frame": {"x":1086,"y":1551,"w":179,"h":188}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":1,"w":179,"h":188}, @@ -394,7 +410,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":1778,"y":785,"w":179,"h":189}, + "frame": {"x":1259,"y":1355,"w":179,"h":189}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":179,"h":189}, @@ -402,7 +418,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":735,"y":785,"w":345,"h":190}, + "frame": {"x":724,"y":1357,"w":345,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":19,"y":0,"w":345,"h":190}, @@ -418,7 +434,7 @@ }, "sprites/buildings/painter-mirrored.png": { - "frame": {"x":735,"y":590,"w":384,"h":191}, + "frame": {"x":1483,"y":199,"w":384,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":191}, @@ -434,7 +450,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":1469,"y":395,"w":384,"h":191}, + "frame": {"x":726,"y":967,"w":384,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":191}, @@ -442,7 +458,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":1308,"y":1174,"w":187,"h":190}, + "frame": {"x":1826,"y":394,"w":187,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":187,"h":190}, @@ -450,7 +466,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":1499,"y":1174,"w":187,"h":190}, + "frame": {"x":1652,"y":783,"w":187,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":187,"h":190}, @@ -458,7 +474,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":1115,"y":1368,"w":187,"h":180}, + "frame": {"x":1091,"y":1743,"w":187,"h":180}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":5,"w":187,"h":180}, @@ -466,7 +482,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":1495,"y":1368,"w":184,"h":180}, + "frame": {"x":1269,"y":1548,"w":184,"h":180}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":5,"w":184,"h":180}, @@ -474,7 +490,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":1413,"y":980,"w":339,"h":190}, + "frame": {"x":1114,"y":1161,"w":339,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":24,"y":0,"w":339,"h":190}, @@ -482,7 +498,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":1084,"y":785,"w":345,"h":190}, + "frame": {"x":742,"y":1746,"w":345,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":19,"y":0,"w":345,"h":190}, @@ -498,7 +514,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":724,"y":1370,"w":192,"h":191}, + "frame": {"x":1615,"y":588,"w":192,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":192,"h":191}, @@ -506,7 +522,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":1495,"y":1552,"w":181,"h":165}, + "frame": {"x":1282,"y":1732,"w":181,"h":165}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":27,"w":181,"h":165}, @@ -514,7 +530,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":564,"y":1707,"w":181,"h":147}, + "frame": {"x":1643,"y":1314,"w":181,"h":147}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":45,"w":181,"h":147}, @@ -522,7 +538,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":378,"y":1707,"w":182,"h":147}, + "frame": {"x":1648,"y":1163,"w":182,"h":147}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":182,"h":147}, @@ -530,7 +546,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":1680,"y":1690,"w":181,"h":147}, + "frame": {"x":1828,"y":1315,"w":181,"h":147}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":181,"h":147}, @@ -538,7 +554,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":1961,"y":782,"w":50,"h":64}, + "frame": {"x":269,"y":1898,"w":50,"h":64}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":50,"h":64}, @@ -546,7 +562,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":1961,"y":850,"w":50,"h":64}, + "frame": {"x":1922,"y":1800,"w":50,"h":64}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":50,"h":64}, @@ -554,7 +570,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":1637,"y":1721,"w":24,"h":32}, + "frame": {"x":1077,"y":1162,"w":24,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":24,"h":32}, @@ -562,7 +578,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":1893,"y":525,"w":28,"h":28}, + "frame": {"x":323,"y":1932,"w":28,"h":28}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":4,"w":28,"h":28}, @@ -570,7 +586,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":1080,"y":1669,"w":28,"h":28}, + "frame": {"x":1991,"y":39,"w":28,"h":28}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":4,"w":28,"h":28}, @@ -578,7 +594,7 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":1403,"y":1554,"w":82,"h":82}, + "frame": {"x":183,"y":1898,"w":82,"h":82}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":7,"w":82,"h":82}, @@ -586,7 +602,7 @@ }, "sprites/misc/hub_direction_indicator.png": { - "frame": {"x":1857,"y":525,"w":32,"h":32}, + "frame": {"x":1991,"y":3,"w":32,"h":32}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, @@ -594,7 +610,7 @@ }, "sprites/misc/lock_direction_indicator.png": { - "frame": {"x":1961,"y":918,"w":48,"h":30}, + "frame": {"x":323,"y":1898,"w":48,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":48,"h":30}, @@ -602,7 +618,7 @@ }, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":1403,"y":1554,"w":82,"h":82}, + "frame": {"x":183,"y":1898,"w":82,"h":82}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":7,"w":82,"h":82}, @@ -610,7 +626,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":1024,"y":1369,"w":80,"h":96}, + "frame": {"x":1922,"y":1700,"w":80,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":80,"h":96}, @@ -618,7 +634,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":724,"y":1565,"w":176,"h":86}, + "frame": {"x":3,"y":1898,"w":176,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":4,"w":176,"h":86}, @@ -626,7 +642,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":1052,"y":1669,"w":24,"h":32}, + "frame": {"x":1922,"y":1868,"w":24,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":24,"h":32}, @@ -637,8 +653,8 @@ "version": "1.0", "image": "atlas0_100.png", "format": "RGBA8888", - "size": {"w":2014,"h":1857}, + "size": {"w":2032,"h":1987}, "scale": "1", - "smartupdate": "$TexturePacker:SmartUpdate:8985524bba1a3f16cecab3c03b6aaa06:d614d20bfce033d8a8ab0990af085d16:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:edd9ed958611fe83da11c1bd0e07a460:9470e3f106da3baf56901b0e2f906cb8:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_100.png b/res_built/atlas/atlas0_100.png index 181adc30..dbe7317c 100644 Binary files a/res_built/atlas/atlas0_100.png and b/res_built/atlas/atlas0_100.png differ diff --git a/res_built/atlas/atlas0_25.json b/res_built/atlas/atlas0_25.json index a4aac8ed..9533def4 100644 --- a/res_built/atlas/atlas0_25.json +++ b/res_built/atlas/atlas0_25.json @@ -2,7 +2,7 @@ "sprites/belt/forward_0.png": { - "frame": {"x":3,"y":1010,"w":28,"h":32}, + "frame": {"x":737,"y":206,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -10,7 +10,7 @@ }, "sprites/belt/forward_1.png": { - "frame": {"x":3,"y":967,"w":28,"h":32}, + "frame": {"x":621,"y":55,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -18,7 +18,7 @@ }, "sprites/belt/forward_2.png": { - "frame": {"x":3,"y":1046,"w":28,"h":32}, + "frame": {"x":653,"y":55,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -26,7 +26,7 @@ }, "sprites/belt/forward_3.png": { - "frame": {"x":35,"y":1044,"w":28,"h":32}, + "frame": {"x":685,"y":55,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -34,7 +34,7 @@ }, "sprites/belt/forward_4.png": { - "frame": {"x":67,"y":1044,"w":28,"h":32}, + "frame": {"x":717,"y":55,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -42,7 +42,7 @@ }, "sprites/belt/forward_5.png": { - "frame": {"x":133,"y":1053,"w":28,"h":32}, + "frame": {"x":749,"y":55,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -50,7 +50,7 @@ }, "sprites/belt/left_0.png": { - "frame": {"x":143,"y":883,"w":30,"h":30}, + "frame": {"x":813,"y":55,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -58,7 +58,7 @@ }, "sprites/belt/left_1.png": { - "frame": {"x":143,"y":917,"w":30,"h":30}, + "frame": {"x":847,"y":55,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -66,7 +66,7 @@ }, "sprites/belt/left_2.png": { - "frame": {"x":143,"y":951,"w":30,"h":30}, + "frame": {"x":881,"y":55,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -74,7 +74,7 @@ }, "sprites/belt/left_3.png": { - "frame": {"x":35,"y":960,"w":30,"h":30}, + "frame": {"x":915,"y":55,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -82,7 +82,7 @@ }, "sprites/belt/left_4.png": { - "frame": {"x":69,"y":967,"w":30,"h":30}, + "frame": {"x":949,"y":55,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -90,7 +90,7 @@ }, "sprites/belt/left_5.png": { - "frame": {"x":35,"y":994,"w":30,"h":30}, + "frame": {"x":983,"y":55,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -98,7 +98,7 @@ }, "sprites/belt/right_0.png": { - "frame": {"x":103,"y":967,"w":30,"h":30}, + "frame": {"x":1017,"y":55,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -106,7 +106,7 @@ }, "sprites/belt/right_1.png": { - "frame": {"x":137,"y":985,"w":30,"h":30}, + "frame": {"x":1100,"y":3,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -114,7 +114,7 @@ }, "sprites/belt/right_2.png": { - "frame": {"x":171,"y":997,"w":30,"h":30}, + "frame": {"x":1100,"y":37,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -122,7 +122,7 @@ }, "sprites/belt/right_3.png": { - "frame": {"x":205,"y":1010,"w":30,"h":30}, + "frame": {"x":1100,"y":71,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -130,7 +130,7 @@ }, "sprites/belt/right_4.png": { - "frame": {"x":99,"y":1001,"w":30,"h":30}, + "frame": {"x":1050,"y":105,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -138,7 +138,7 @@ }, "sprites/belt/right_5.png": { - "frame": {"x":133,"y":1019,"w":30,"h":30}, + "frame": {"x":1089,"y":159,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -146,7 +146,7 @@ }, "sprites/blueprints/belt_left.png": { - "frame": {"x":99,"y":1035,"w":30,"h":30}, + "frame": {"x":1066,"y":193,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -154,7 +154,7 @@ }, "sprites/blueprints/belt_right.png": { - "frame": {"x":167,"y":1031,"w":30,"h":30}, + "frame": {"x":1100,"y":195,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -162,7 +162,7 @@ }, "sprites/blueprints/belt_top.png": { - "frame": {"x":201,"y":1044,"w":28,"h":32}, + "frame": {"x":781,"y":55,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -170,7 +170,7 @@ }, "sprites/blueprints/cutter-quad.png": { - "frame": {"x":3,"y":296,"w":184,"h":48}, + "frame": {"x":377,"y":155,"w":184,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":184,"h":48}, @@ -178,15 +178,23 @@ }, "sprites/blueprints/cutter.png": { - "frame": {"x":155,"y":419,"w":87,"h":48}, + "frame": {"x":854,"y":3,"w":87,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":87,"h":48}, "sourceSize": {"w":96,"h":48} }, +"sprites/blueprints/energy_generator.png": +{ + "frame": {"x":195,"y":155,"w":87,"h":94}, + "rotated": false, + "trimmed": true, + "spriteSourceSize": {"x":5,"y":2,"w":87,"h":94}, + "sourceSize": {"w":96,"h":96} +}, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":195,"y":3,"w":47,"h":48}, + "frame": {"x":960,"y":141,"w":47,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, @@ -194,7 +202,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":195,"y":55,"w":47,"h":48}, + "frame": {"x":999,"y":89,"w":47,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, @@ -202,7 +210,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":3,"y":808,"w":89,"h":48}, + "frame": {"x":669,"y":3,"w":89,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":89,"h":48}, @@ -210,7 +218,7 @@ }, "sprites/blueprints/painter-double.png": { - "frame": {"x":3,"y":400,"w":96,"h":96}, + "frame": {"x":191,"y":3,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -218,7 +226,7 @@ }, "sprites/blueprints/painter-mirrored.png": { - "frame": {"x":3,"y":600,"w":96,"h":48}, + "frame": {"x":565,"y":155,"w":96,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":48}, @@ -226,7 +234,7 @@ }, "sprites/blueprints/painter-quad.png": { - "frame": {"x":3,"y":3,"w":188,"h":48}, + "frame": {"x":3,"y":192,"w":188,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":188,"h":48}, @@ -234,7 +242,7 @@ }, "sprites/blueprints/painter.png": { - "frame": {"x":3,"y":652,"w":96,"h":48}, + "frame": {"x":569,"y":3,"w":96,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":48}, @@ -242,7 +250,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":191,"y":107,"w":48,"h":48}, + "frame": {"x":945,"y":3,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -250,7 +258,7 @@ }, "sprites/blueprints/rotater.png": { - "frame": {"x":191,"y":159,"w":48,"h":48}, + "frame": {"x":856,"y":141,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -258,7 +266,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":191,"y":211,"w":48,"h":48}, + "frame": {"x":860,"y":193,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -266,7 +274,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":103,"y":780,"w":47,"h":47}, + "frame": {"x":1084,"y":108,"w":47,"h":47}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":47}, @@ -274,7 +282,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":155,"y":471,"w":87,"h":48}, + "frame": {"x":765,"y":143,"w":87,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":87,"h":48}, @@ -282,7 +290,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":96,"y":831,"w":89,"h":48}, + "frame": {"x":671,"y":91,"w":89,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":89,"h":48}, @@ -290,7 +298,7 @@ }, "sprites/blueprints/trash-storage.png": { - "frame": {"x":155,"y":627,"w":85,"h":96}, + "frame": {"x":391,"y":3,"w":85,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":85,"h":96}, @@ -298,7 +306,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":191,"y":263,"w":48,"h":48}, + "frame": {"x":908,"y":141,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -306,7 +314,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":103,"y":503,"w":48,"h":43}, + "frame": {"x":569,"y":55,"w":48,"h":43}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":5,"w":48,"h":43}, @@ -314,7 +322,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":103,"y":550,"w":48,"h":38}, + "frame": {"x":428,"y":207,"w":48,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":10,"w":48,"h":38}, @@ -322,7 +330,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":103,"y":592,"w":48,"h":38}, + "frame": {"x":480,"y":207,"w":48,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":38}, @@ -330,7 +338,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":103,"y":634,"w":48,"h":38}, + "frame": {"x":532,"y":207,"w":48,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":38}, @@ -338,7 +346,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":143,"y":883,"w":30,"h":30}, + "frame": {"x":813,"y":55,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -346,7 +354,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":103,"y":967,"w":30,"h":30}, + "frame": {"x":1017,"y":55,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -354,7 +362,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":3,"y":1010,"w":28,"h":32}, + "frame": {"x":737,"y":206,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -362,7 +370,7 @@ }, "sprites/buildings/cutter-quad.png": { - "frame": {"x":3,"y":348,"w":184,"h":48}, + "frame": {"x":383,"y":103,"w":184,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":184,"h":48}, @@ -370,15 +378,23 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":155,"y":523,"w":87,"h":48}, + "frame": {"x":769,"y":195,"w":87,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":87,"h":48}, "sourceSize": {"w":96,"h":48} }, +"sprites/buildings/energy_generator.png": +{ + "frame": {"x":286,"y":155,"w":87,"h":94}, + "rotated": false, + "trimmed": true, + "spriteSourceSize": {"x":5,"y":2,"w":87,"h":94}, + "sourceSize": {"w":96,"h":96} +}, "sprites/buildings/hub.png": { - "frame": {"x":3,"y":107,"w":184,"h":185}, + "frame": {"x":3,"y":3,"w":184,"h":185}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":4,"w":184,"h":185}, @@ -386,7 +402,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":103,"y":676,"w":47,"h":48}, + "frame": {"x":1049,"y":3,"w":47,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, @@ -394,7 +410,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":103,"y":728,"w":47,"h":48}, + "frame": {"x":964,"y":193,"w":47,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, @@ -402,7 +418,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":154,"y":727,"w":88,"h":48}, + "frame": {"x":762,"y":3,"w":88,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":88,"h":48}, @@ -410,7 +426,7 @@ }, "sprites/buildings/painter-double.png": { - "frame": {"x":3,"y":500,"w":96,"h":96}, + "frame": {"x":291,"y":3,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -418,7 +434,7 @@ }, "sprites/buildings/painter-mirrored.png": { - "frame": {"x":3,"y":704,"w":96,"h":48}, + "frame": {"x":571,"y":102,"w":96,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":48}, @@ -426,7 +442,7 @@ }, "sprites/buildings/painter-quad.png": { - "frame": {"x":3,"y":55,"w":188,"h":48}, + "frame": {"x":191,"y":103,"w":188,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":188,"h":48}, @@ -434,7 +450,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":3,"y":756,"w":96,"h":48}, + "frame": {"x":665,"y":154,"w":96,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":48}, @@ -442,7 +458,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":191,"y":315,"w":48,"h":48}, + "frame": {"x":947,"y":89,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -450,7 +466,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":191,"y":367,"w":48,"h":48}, + "frame": {"x":997,"y":3,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -458,7 +474,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":103,"y":452,"w":48,"h":47}, + "frame": {"x":1011,"y":141,"w":48,"h":47}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":47}, @@ -466,7 +482,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":189,"y":831,"w":47,"h":47}, + "frame": {"x":1015,"y":192,"w":47,"h":47}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":47}, @@ -474,7 +490,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":155,"y":575,"w":87,"h":48}, + "frame": {"x":856,"y":89,"w":87,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":87,"h":48}, @@ -482,7 +498,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":154,"y":779,"w":88,"h":48}, + "frame": {"x":764,"y":91,"w":88,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":88,"h":48}, @@ -490,7 +506,7 @@ }, "sprites/buildings/trash-storage.png": { - "frame": {"x":3,"y":860,"w":85,"h":96}, + "frame": {"x":480,"y":3,"w":85,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":85,"h":96}, @@ -498,7 +514,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":103,"y":400,"w":48,"h":48}, + "frame": {"x":912,"y":193,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -506,7 +522,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":189,"y":882,"w":47,"h":42}, + "frame": {"x":377,"y":207,"w":47,"h":42}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":6,"w":47,"h":42}, @@ -514,7 +530,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":92,"y":883,"w":47,"h":38}, + "frame": {"x":584,"y":207,"w":47,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":10,"w":47,"h":38}, @@ -522,7 +538,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":92,"y":925,"w":47,"h":38}, + "frame": {"x":635,"y":207,"w":47,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":38}, @@ -530,7 +546,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":189,"y":928,"w":47,"h":38}, + "frame": {"x":686,"y":206,"w":47,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":38}, @@ -538,7 +554,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":226,"y":970,"w":14,"h":16}, + "frame": {"x":1051,"y":82,"w":14,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, @@ -546,7 +562,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":226,"y":990,"w":14,"h":16}, + "frame": {"x":1063,"y":139,"w":14,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, @@ -554,7 +570,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":171,"y":400,"w":8,"h":8}, + "frame": {"x":1069,"y":82,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -562,7 +578,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":177,"y":883,"w":8,"h":8}, + "frame": {"x":1084,"y":96,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -570,7 +586,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":177,"y":895,"w":8,"h":8}, + "frame": {"x":1123,"y":159,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -578,7 +594,7 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":165,"y":1065,"w":22,"h":22}, + "frame": {"x":1066,"y":227,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":22,"h":22}, @@ -586,7 +602,7 @@ }, "sprites/misc/hub_direction_indicator.png": { - "frame": {"x":177,"y":907,"w":8,"h":8}, + "frame": {"x":1123,"y":171,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -594,7 +610,7 @@ }, "sprites/misc/lock_direction_indicator.png": { - "frame": {"x":155,"y":400,"w":12,"h":10}, + "frame": {"x":1084,"y":82,"w":12,"h":10}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":12,"h":10}, @@ -602,7 +618,7 @@ }, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":165,"y":1065,"w":22,"h":22}, + "frame": {"x":1066,"y":227,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":22,"h":22}, @@ -610,7 +626,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":69,"y":1001,"w":22,"h":24}, + "frame": {"x":1063,"y":159,"w":22,"h":24}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":22,"h":24}, @@ -618,7 +634,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":177,"y":970,"w":45,"h":23}, + "frame": {"x":1051,"y":55,"w":45,"h":23}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":45,"h":23}, @@ -626,7 +642,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":177,"y":919,"w":8,"h":8}, + "frame": {"x":1123,"y":183,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -637,8 +653,8 @@ "version": "1.0", "image": "atlas0_25.png", "format": "RGBA8888", - "size": {"w":245,"h":1090}, + "size": {"w":1134,"h":252}, "scale": "0.25", - "smartupdate": "$TexturePacker:SmartUpdate:8985524bba1a3f16cecab3c03b6aaa06:d614d20bfce033d8a8ab0990af085d16:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:edd9ed958611fe83da11c1bd0e07a460:9470e3f106da3baf56901b0e2f906cb8:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_25.png b/res_built/atlas/atlas0_25.png index 4581d71d..3a1b36ea 100644 Binary files a/res_built/atlas/atlas0_25.png and b/res_built/atlas/atlas0_25.png differ diff --git a/res_built/atlas/atlas0_50.json b/res_built/atlas/atlas0_50.json index f31bbb3d..8e95da58 100644 --- a/res_built/atlas/atlas0_50.json +++ b/res_built/atlas/atlas0_50.json @@ -2,7 +2,7 @@ "sprites/belt/forward_0.png": { - "frame": {"x":1966,"y":3,"w":51,"h":63}, + "frame": {"x":672,"y":952,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -10,7 +10,7 @@ }, "sprites/belt/forward_1.png": { - "frame": {"x":1835,"y":203,"w":51,"h":63}, + "frame": {"x":727,"y":952,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -18,7 +18,7 @@ }, "sprites/belt/forward_2.png": { - "frame": {"x":1879,"y":304,"w":51,"h":63}, + "frame": {"x":782,"y":950,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -26,7 +26,7 @@ }, "sprites/belt/forward_3.png": { - "frame": {"x":1934,"y":304,"w":51,"h":63}, + "frame": {"x":837,"y":950,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -34,7 +34,7 @@ }, "sprites/belt/forward_4.png": { - "frame": {"x":1844,"y":381,"w":51,"h":63}, + "frame": {"x":922,"y":481,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -42,7 +42,7 @@ }, "sprites/belt/forward_5.png": { - "frame": {"x":1899,"y":371,"w":51,"h":63}, + "frame": {"x":922,"y":548,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -50,7 +50,7 @@ }, "sprites/belt/left_0.png": { - "frame": {"x":1890,"y":243,"w":57,"h":57}, + "frame": {"x":127,"y":962,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -58,7 +58,7 @@ }, "sprites/belt/left_1.png": { - "frame": {"x":1951,"y":243,"w":57,"h":57}, + "frame": {"x":188,"y":961,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -66,7 +66,7 @@ }, "sprites/belt/left_2.png": { - "frame": {"x":1783,"y":381,"w":57,"h":57}, + "frame": {"x":249,"y":961,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -74,7 +74,7 @@ }, "sprites/belt/left_3.png": { - "frame": {"x":1954,"y":371,"w":57,"h":57}, + "frame": {"x":310,"y":961,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -82,7 +82,7 @@ }, "sprites/belt/left_4.png": { - "frame": {"x":1954,"y":432,"w":57,"h":57}, + "frame": {"x":371,"y":960,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -90,7 +90,7 @@ }, "sprites/belt/left_5.png": { - "frame": {"x":1363,"y":403,"w":57,"h":57}, + "frame": {"x":432,"y":960,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -98,7 +98,7 @@ }, "sprites/belt/right_0.png": { - "frame": {"x":1424,"y":403,"w":57,"h":57}, + "frame": {"x":493,"y":960,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -106,7 +106,7 @@ }, "sprites/belt/right_1.png": { - "frame": {"x":1485,"y":403,"w":57,"h":57}, + "frame": {"x":554,"y":960,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -114,7 +114,7 @@ }, "sprites/belt/right_2.png": { - "frame": {"x":1546,"y":403,"w":57,"h":57}, + "frame": {"x":373,"y":503,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -122,7 +122,7 @@ }, "sprites/belt/right_3.png": { - "frame": {"x":1607,"y":402,"w":57,"h":57}, + "frame": {"x":434,"y":503,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -130,7 +130,7 @@ }, "sprites/belt/right_4.png": { - "frame": {"x":1668,"y":402,"w":57,"h":57}, + "frame": {"x":495,"y":503,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -138,7 +138,7 @@ }, "sprites/belt/right_5.png": { - "frame": {"x":1952,"y":181,"w":57,"h":57}, + "frame": {"x":556,"y":503,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -146,7 +146,7 @@ }, "sprites/blueprints/belt_left.png": { - "frame": {"x":1301,"y":400,"w":58,"h":58}, + "frame": {"x":3,"y":962,"w":58,"h":58}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":5,"w":58,"h":58}, @@ -154,7 +154,7 @@ }, "sprites/blueprints/belt_right.png": { - "frame": {"x":1890,"y":181,"w":58,"h":58}, + "frame": {"x":65,"y":962,"w":58,"h":58}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":5,"w":58,"h":58}, @@ -162,7 +162,7 @@ }, "sprites/blueprints/belt_top.png": { - "frame": {"x":1151,"y":403,"w":53,"h":63}, + "frame": {"x":615,"y":953,"w":53,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":53,"h":63}, @@ -170,7 +170,7 @@ }, "sprites/blueprints/cutter-quad.png": { - "frame": {"x":3,"y":374,"w":366,"h":96}, + "frame": {"x":369,"y":765,"w":366,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":366,"h":96}, @@ -178,15 +178,23 @@ }, "sprites/blueprints/cutter.png": { - "frame": {"x":1285,"y":203,"w":172,"h":96}, + "frame": {"x":569,"y":403,"w":172,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":172,"h":96}, "sourceSize": {"w":192,"h":96} }, +"sprites/blueprints/energy_generator.png": +{ + "frame": {"x":174,"y":570,"w":170,"h":187}, + "rotated": false, + "trimmed": true, + "spriteSourceSize": {"x":12,"y":5,"w":170,"h":187}, + "sourceSize": {"w":192,"h":192} +}, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":1401,"y":303,"w":92,"h":96}, + "frame": {"x":726,"y":651,"w":92,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":96}, @@ -194,7 +202,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":1497,"y":303,"w":92,"h":96}, + "frame": {"x":739,"y":751,"w":92,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":96}, @@ -202,7 +210,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":1143,"y":103,"w":175,"h":96}, + "frame": {"x":569,"y":103,"w":175,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":175,"h":96}, @@ -210,7 +218,7 @@ }, "sprites/blueprints/painter-double.png": { - "frame": {"x":373,"y":203,"w":192,"h":192}, + "frame": {"x":3,"y":374,"w":192,"h":192}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":192}, @@ -218,7 +226,7 @@ }, "sprites/blueprints/painter-mirrored.png": { - "frame": {"x":751,"y":103,"w":192,"h":96}, + "frame": {"x":373,"y":103,"w":192,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, @@ -226,7 +234,7 @@ }, "sprites/blueprints/painter-quad.png": { - "frame": {"x":373,"y":3,"w":374,"h":96}, + "frame": {"x":348,"y":565,"w":374,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":374,"h":96}, @@ -234,7 +242,7 @@ }, "sprites/blueprints/painter.png": { - "frame": {"x":1121,"y":3,"w":192,"h":96}, + "frame": {"x":373,"y":203,"w":192,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, @@ -242,7 +250,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":1866,"y":3,"w":96,"h":96}, + "frame": {"x":922,"y":3,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -250,7 +258,7 @@ }, "sprites/blueprints/rotater.png": { - "frame": {"x":1675,"y":103,"w":96,"h":96}, + "frame": {"x":747,"y":303,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -258,7 +266,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":1205,"y":303,"w":95,"h":93}, + "frame": {"x":835,"y":750,"w":95,"h":93}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":95,"h":93}, @@ -266,7 +274,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":1304,"y":303,"w":93,"h":93}, + "frame": {"x":852,"y":847,"w":93,"h":93}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":1,"w":93,"h":93}, @@ -274,7 +282,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":1691,"y":3,"w":171,"h":96}, + "frame": {"x":745,"y":403,"w":171,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":171,"h":96}, @@ -282,7 +290,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":1106,"y":203,"w":175,"h":96}, + "frame": {"x":743,"y":3,"w":175,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":175,"h":96}, @@ -290,7 +298,7 @@ }, "sprites/blueprints/trash-storage.png": { - "frame": {"x":765,"y":203,"w":167,"h":192}, + "frame": {"x":3,"y":570,"w":167,"h":192}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":0,"w":167,"h":192}, @@ -298,7 +306,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":1636,"y":203,"w":96,"h":96}, + "frame": {"x":847,"y":303,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -306,7 +314,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":764,"y":399,"w":93,"h":84}, + "frame": {"x":564,"y":865,"w":93,"h":84}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":12,"w":93,"h":84}, @@ -314,7 +322,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":373,"y":399,"w":93,"h":75}, + "frame": {"x":825,"y":539,"w":93,"h":75}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":21,"w":93,"h":75}, @@ -322,7 +330,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":957,"y":399,"w":94,"h":75}, + "frame": {"x":892,"y":944,"w":94,"h":75}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":94,"h":75}, @@ -330,7 +338,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":470,"y":399,"w":93,"h":75}, + "frame": {"x":917,"y":637,"w":93,"h":75}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":93,"h":75}, @@ -338,7 +346,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":1890,"y":243,"w":57,"h":57}, + "frame": {"x":127,"y":962,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -346,7 +354,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":1424,"y":403,"w":57,"h":57}, + "frame": {"x":493,"y":960,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -354,7 +362,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":1966,"y":3,"w":51,"h":63}, + "frame": {"x":672,"y":952,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -362,7 +370,7 @@ }, "sprites/buildings/cutter-quad.png": { - "frame": {"x":751,"y":3,"w":366,"h":96}, + "frame": {"x":373,"y":3,"w":366,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":366,"h":96}, @@ -370,12 +378,20 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":1500,"y":103,"w":171,"h":96}, + "frame": {"x":747,"y":203,"w":171,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":171,"h":96}, "sourceSize": {"w":192,"h":96} }, +"sprites/buildings/energy_generator.png": +{ + "frame": {"x":199,"y":374,"w":170,"h":187}, + "rotated": false, + "trimmed": true, + "spriteSourceSize": {"x":12,"y":5,"w":170,"h":187}, + "sourceSize": {"w":192,"h":192} +}, "sprites/buildings/hub.png": { "frame": {"x":3,"y":3,"w":366,"h":367}, @@ -386,7 +402,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":1593,"y":303,"w":91,"h":95}, + "frame": {"x":822,"y":651,"w":91,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":91,"h":95}, @@ -394,7 +410,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":1688,"y":303,"w":91,"h":95}, + "frame": {"x":757,"y":851,"w":91,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":91,"h":95}, @@ -402,7 +418,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":1513,"y":3,"w":174,"h":96}, + "frame": {"x":569,"y":203,"w":174,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":174,"h":96}, @@ -410,7 +426,7 @@ }, "sprites/buildings/painter-double.png": { - "frame": {"x":569,"y":203,"w":192,"h":191}, + "frame": {"x":173,"y":766,"w":192,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":191}, @@ -418,7 +434,7 @@ }, "sprites/buildings/painter-mirrored.png": { - "frame": {"x":947,"y":103,"w":192,"h":96}, + "frame": {"x":373,"y":303,"w":192,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, @@ -426,7 +442,7 @@ }, "sprites/buildings/painter-quad.png": { - "frame": {"x":373,"y":103,"w":374,"h":96}, + "frame": {"x":348,"y":665,"w":374,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":374,"h":96}, @@ -434,7 +450,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":1317,"y":3,"w":192,"h":96}, + "frame": {"x":373,"y":403,"w":192,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, @@ -442,7 +458,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":1736,"y":203,"w":95,"h":96}, + "frame": {"x":923,"y":103,"w":95,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":95,"h":96}, @@ -450,7 +466,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":1106,"y":303,"w":95,"h":96}, + "frame": {"x":726,"y":551,"w":95,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":95,"h":96}, @@ -458,7 +474,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":569,"y":398,"w":94,"h":91}, + "frame": {"x":369,"y":865,"w":94,"h":91}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":94,"h":91}, @@ -466,7 +482,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":667,"y":398,"w":93,"h":91}, + "frame": {"x":467,"y":865,"w":93,"h":91}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":2,"w":93,"h":91}, @@ -474,7 +490,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":1461,"y":203,"w":171,"h":96}, + "frame": {"x":748,"y":103,"w":171,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":171,"h":96}, @@ -482,7 +498,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":1322,"y":103,"w":174,"h":96}, + "frame": {"x":569,"y":303,"w":174,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":174,"h":96}, @@ -490,7 +506,7 @@ }, "sprites/buildings/trash-storage.png": { - "frame": {"x":936,"y":203,"w":166,"h":192}, + "frame": {"x":3,"y":766,"w":166,"h":192}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":0,"w":166,"h":192}, @@ -498,7 +514,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":1775,"y":103,"w":96,"h":96}, + "frame": {"x":922,"y":203,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -506,7 +522,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":861,"y":399,"w":92,"h":83}, + "frame": {"x":661,"y":865,"w":92,"h":83}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":13,"w":92,"h":83}, @@ -514,7 +530,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":1875,"y":103,"w":92,"h":74}, + "frame": {"x":934,"y":716,"w":92,"h":74}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":22,"w":92,"h":74}, @@ -522,7 +538,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":1783,"y":303,"w":92,"h":74}, + "frame": {"x":920,"y":403,"w":92,"h":74}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":74}, @@ -530,7 +546,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":1055,"y":403,"w":92,"h":74}, + "frame": {"x":947,"y":303,"w":92,"h":74}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":74}, @@ -538,7 +554,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":1989,"y":304,"w":26,"h":32}, + "frame": {"x":802,"y":503,"w":26,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":26,"h":32}, @@ -546,7 +562,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":1971,"y":116,"w":26,"h":32}, + "frame": {"x":832,"y":503,"w":26,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":26,"h":32}, @@ -554,7 +570,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":1835,"y":270,"w":14,"h":16}, + "frame": {"x":873,"y":618,"w":14,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, @@ -562,7 +578,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":3,"y":474,"w":15,"h":15}, + "frame": {"x":909,"y":618,"w":15,"h":15}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":15,"h":15}, @@ -570,7 +586,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":22,"y":474,"w":15,"h":15}, + "frame": {"x":862,"y":503,"w":15,"h":15}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":15,"h":15}, @@ -578,7 +594,7 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":1971,"y":70,"w":42,"h":42}, + "frame": {"x":756,"y":503,"w":42,"h":42}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":3,"w":42,"h":42}, @@ -586,7 +602,7 @@ }, "sprites/misc/hub_direction_indicator.png": { - "frame": {"x":2001,"y":116,"w":16,"h":16}, + "frame": {"x":853,"y":618,"w":16,"h":16}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":16,"h":16}, @@ -594,7 +610,7 @@ }, "sprites/misc/lock_direction_indicator.png": { - "frame": {"x":1208,"y":448,"w":24,"h":16}, + "frame": {"x":825,"y":618,"w":24,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":4,"w":24,"h":16}, @@ -602,7 +618,7 @@ }, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":1971,"y":70,"w":42,"h":42}, + "frame": {"x":756,"y":503,"w":42,"h":42}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":3,"w":42,"h":42}, @@ -610,7 +626,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":1729,"y":402,"w":42,"h":48}, + "frame": {"x":617,"y":503,"w":42,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":42,"h":48}, @@ -618,7 +634,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":1208,"y":400,"w":89,"h":44}, + "frame": {"x":663,"y":503,"w":89,"h":44}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":89,"h":44}, @@ -626,7 +642,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":1989,"y":340,"w":14,"h":16}, + "frame": {"x":891,"y":618,"w":14,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, @@ -637,8 +653,8 @@ "version": "1.0", "image": "atlas0_50.png", "format": "RGBA8888", - "size": {"w":2020,"h":492}, + "size": {"w":1042,"h":1023}, "scale": "0.5", - "smartupdate": "$TexturePacker:SmartUpdate:8985524bba1a3f16cecab3c03b6aaa06:d614d20bfce033d8a8ab0990af085d16:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:edd9ed958611fe83da11c1bd0e07a460:9470e3f106da3baf56901b0e2f906cb8:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_50.png b/res_built/atlas/atlas0_50.png index 60e1f644..36ba75b2 100644 Binary files a/res_built/atlas/atlas0_50.png and b/res_built/atlas/atlas0_50.png differ diff --git a/res_built/atlas/atlas0_75.json b/res_built/atlas/atlas0_75.json index 392448be..d0ce5d40 100644 --- a/res_built/atlas/atlas0_75.json +++ b/res_built/atlas/atlas0_75.json @@ -2,7 +2,7 @@ "sprites/belt/forward_0.png": { - "frame": {"x":1963,"y":102,"w":77,"h":95}, + "frame": {"x":1927,"y":594,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -10,7 +10,7 @@ }, "sprites/belt/forward_1.png": { - "frame": {"x":1963,"y":201,"w":77,"h":95}, + "frame": {"x":1945,"y":398,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -18,7 +18,7 @@ }, "sprites/belt/forward_2.png": { - "frame": {"x":1967,"y":300,"w":77,"h":95}, + "frame": {"x":1635,"y":1002,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -26,7 +26,7 @@ }, "sprites/belt/forward_3.png": { - "frame": {"x":1967,"y":399,"w":77,"h":95}, + "frame": {"x":1920,"y":783,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -34,7 +34,7 @@ }, "sprites/belt/forward_4.png": { - "frame": {"x":1967,"y":498,"w":77,"h":95}, + "frame": {"x":1959,"y":887,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -42,7 +42,7 @@ }, "sprites/belt/forward_5.png": { - "frame": {"x":1679,"y":952,"w":77,"h":95}, + "frame": {"x":1959,"y":986,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -50,7 +50,7 @@ }, "sprites/belt/left_0.png": { - "frame": {"x":1217,"y":969,"w":86,"h":86}, + "frame": {"x":286,"y":1033,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -58,7 +58,7 @@ }, "sprites/belt/left_1.png": { - "frame": {"x":1307,"y":969,"w":86,"h":86}, + "frame": {"x":745,"y":1033,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -66,7 +66,7 @@ }, "sprites/belt/left_2.png": { - "frame": {"x":1916,"y":597,"w":86,"h":86}, + "frame": {"x":926,"y":1031,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -74,7 +74,7 @@ }, "sprites/belt/left_3.png": { - "frame": {"x":1916,"y":687,"w":86,"h":86}, + "frame": {"x":1016,"y":1033,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -82,7 +82,7 @@ }, "sprites/belt/left_4.png": { - "frame": {"x":1916,"y":777,"w":86,"h":86}, + "frame": {"x":1106,"y":1033,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -90,7 +90,7 @@ }, "sprites/belt/left_5.png": { - "frame": {"x":1914,"y":867,"w":86,"h":86}, + "frame": {"x":1196,"y":1033,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -98,7 +98,7 @@ }, "sprites/belt/right_0.png": { - "frame": {"x":1499,"y":852,"w":86,"h":86}, + "frame": {"x":1286,"y":1030,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -106,7 +106,7 @@ }, "sprites/belt/right_1.png": { - "frame": {"x":1397,"y":967,"w":86,"h":86}, + "frame": {"x":1376,"y":1026,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -114,7 +114,7 @@ }, "sprites/belt/right_2.png": { - "frame": {"x":1589,"y":862,"w":86,"h":86}, + "frame": {"x":1927,"y":693,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -122,7 +122,7 @@ }, "sprites/belt/right_3.png": { - "frame": {"x":1679,"y":862,"w":86,"h":86}, + "frame": {"x":1779,"y":973,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -130,7 +130,7 @@ }, "sprites/belt/right_4.png": { - "frame": {"x":1499,"y":942,"w":86,"h":86}, + "frame": {"x":1869,"y":973,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -138,7 +138,7 @@ }, "sprites/belt/right_5.png": { - "frame": {"x":1589,"y":952,"w":86,"h":86}, + "frame": {"x":1945,"y":497,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -146,7 +146,7 @@ }, "sprites/blueprints/belt_left.png": { - "frame": {"x":1397,"y":593,"w":87,"h":87}, + "frame": {"x":654,"y":1022,"w":87,"h":87}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":8,"w":87,"h":87}, @@ -154,7 +154,7 @@ }, "sprites/blueprints/belt_right.png": { - "frame": {"x":1397,"y":684,"w":87,"h":87}, + "frame": {"x":835,"y":1031,"w":87,"h":87}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":8,"w":87,"h":87}, @@ -162,7 +162,7 @@ }, "sprites/blueprints/belt_top.png": { - "frame": {"x":1963,"y":3,"w":79,"h":95}, + "frame": {"x":1912,"y":299,"w":79,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":79,"h":95}, @@ -184,9 +184,17 @@ "spriteSourceSize": {"x":17,"y":0,"w":256,"h":144}, "sourceSize": {"w":288,"h":144} }, +"sprites/blueprints/energy_generator.png": +{ + "frame": {"x":295,"y":704,"w":255,"h":280}, + "rotated": false, + "trimmed": true, + "spriteSourceSize": {"x":18,"y":8,"w":255,"h":280}, + "sourceSize": {"w":288,"h":288} +}, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":1827,"y":447,"w":136,"h":143}, + "frame": {"x":1209,"y":736,"w":136,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":143}, @@ -194,7 +202,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":1076,"y":739,"w":136,"h":143}, + "frame": {"x":1209,"y":883,"w":136,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":143}, @@ -202,7 +210,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":547,"y":738,"w":261,"h":144}, + "frame": {"x":847,"y":591,"w":261,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":261,"h":144}, @@ -242,7 +250,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":1639,"y":299,"w":143,"h":144}, + "frame": {"x":1798,"y":446,"w":143,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":143,"h":144}, @@ -250,7 +258,7 @@ }, "sprites/blueprints/rotater.png": { - "frame": {"x":1786,"y":299,"w":143,"h":144}, + "frame": {"x":1780,"y":594,"w":143,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":143,"h":144}, @@ -258,7 +266,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":1071,"y":886,"w":142,"h":138}, + "frame": {"x":1101,"y":446,"w":142,"h":138}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":142,"h":138}, @@ -266,7 +274,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":1488,"y":594,"w":139,"h":138}, + "frame": {"x":1247,"y":446,"w":139,"h":138}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":2,"w":139,"h":138}, @@ -274,7 +282,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":811,"y":886,"w":256,"h":144}, + "frame": {"x":1112,"y":588,"w":256,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":17,"y":0,"w":256,"h":144}, @@ -282,7 +290,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":847,"y":591,"w":261,"h":144}, + "frame": {"x":1119,"y":298,"w":261,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":261,"h":144}, @@ -298,7 +306,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":1241,"y":445,"w":144,"h":144}, + "frame": {"x":1390,"y":445,"w":144,"h":144}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":144,"h":144}, @@ -306,7 +314,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":1774,"y":594,"w":138,"h":125}, + "frame": {"x":3,"y":994,"w":138,"h":125}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":19,"w":138,"h":125}, @@ -314,7 +322,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":1774,"y":723,"w":138,"h":112}, + "frame": {"x":1772,"y":742,"w":138,"h":112}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":32,"w":138,"h":112}, @@ -322,7 +330,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":1488,"y":736,"w":139,"h":112}, + "frame": {"x":1494,"y":886,"w":139,"h":112}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":139,"h":112}, @@ -330,7 +338,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":1772,"y":839,"w":138,"h":112}, + "frame": {"x":1637,"y":881,"w":138,"h":112}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":138,"h":112}, @@ -338,7 +346,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":1217,"y":969,"w":86,"h":86}, + "frame": {"x":286,"y":1033,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -346,7 +354,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":1499,"y":852,"w":86,"h":86}, + "frame": {"x":1286,"y":1030,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -354,7 +362,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":1963,"y":102,"w":77,"h":95}, + "frame": {"x":1927,"y":594,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -370,12 +378,20 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":1119,"y":298,"w":256,"h":143}, + "frame": {"x":1538,"y":446,"w":256,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":17,"y":0,"w":256,"h":143}, "sourceSize": {"w":288,"h":144} }, +"sprites/buildings/energy_generator.png": +{ + "frame": {"x":554,"y":738,"w":254,"h":280}, + "rotated": false, + "trimmed": true, + "spriteSourceSize": {"x":19,"y":8,"w":254,"h":280}, + "sourceSize": {"w":288,"h":288} +}, "sprites/buildings/hub.png": { "frame": {"x":3,"y":3,"w":548,"h":549}, @@ -386,7 +402,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":1101,"y":445,"w":136,"h":142}, + "frame": {"x":1349,"y":740,"w":136,"h":142}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":142}, @@ -394,7 +410,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":1112,"y":593,"w":136,"h":142}, + "frame": {"x":1489,"y":740,"w":136,"h":142}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":142}, @@ -402,7 +418,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":812,"y":739,"w":260,"h":143}, + "frame": {"x":1384,"y":298,"w":260,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":0,"w":260,"h":143}, @@ -442,7 +458,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":1537,"y":447,"w":141,"h":143}, + "frame": {"x":1064,"y":739,"w":141,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":141,"h":143}, @@ -450,7 +466,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":1682,"y":447,"w":141,"h":143}, + "frame": {"x":1064,"y":886,"w":141,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":141,"h":143}, @@ -458,7 +474,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":1252,"y":593,"w":141,"h":136}, + "frame": {"x":1349,"y":886,"w":141,"h":136}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":3,"w":141,"h":136}, @@ -466,7 +482,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":1631,"y":594,"w":139,"h":136}, + "frame": {"x":1629,"y":741,"w":139,"h":136}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":3,"w":139,"h":136}, @@ -474,7 +490,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":1379,"y":298,"w":256,"h":143}, + "frame": {"x":1372,"y":593,"w":256,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":17,"y":0,"w":256,"h":143}, @@ -482,7 +498,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":547,"y":886,"w":260,"h":143}, + "frame": {"x":1648,"y":299,"w":260,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":0,"w":260,"h":143}, @@ -490,7 +506,7 @@ }, "sprites/buildings/trash-storage.png": { - "frame": {"x":295,"y":704,"w":248,"h":288}, + "frame": {"x":812,"y":739,"w":248,"h":288}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":22,"y":0,"w":248,"h":288}, @@ -498,7 +514,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":1389,"y":445,"w":144,"h":144}, + "frame": {"x":1632,"y":593,"w":144,"h":144}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":144,"h":144}, @@ -506,7 +522,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":1631,"y":734,"w":137,"h":124}, + "frame": {"x":145,"y":994,"w":137,"h":124}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":20,"w":137,"h":124}, @@ -514,7 +530,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":1216,"y":739,"w":137,"h":111}, + "frame": {"x":1779,"y":858,"w":137,"h":111}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":33,"w":137,"h":111}, @@ -522,7 +538,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":1217,"y":854,"w":137,"h":111}, + "frame": {"x":376,"y":988,"w":137,"h":111}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":137,"h":111}, @@ -530,7 +546,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":1358,"y":852,"w":137,"h":111}, + "frame": {"x":1494,"y":1002,"w":137,"h":111}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":137,"h":111}, @@ -538,7 +554,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":2006,"y":597,"w":38,"h":48}, + "frame": {"x":2001,"y":783,"w":38,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":38,"h":48}, @@ -546,7 +562,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":2006,"y":649,"w":38,"h":48}, + "frame": {"x":2001,"y":835,"w":38,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":38,"h":48}, @@ -554,7 +570,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":1826,"y":955,"w":20,"h":24}, + "frame": {"x":1920,"y":882,"w":20,"h":24}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":20,"h":24}, @@ -562,7 +578,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":206,"y":994,"w":22,"h":22}, + "frame": {"x":517,"y":988,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":22,"h":22}, @@ -570,7 +586,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":2006,"y":701,"w":22,"h":22}, + "frame": {"x":1912,"y":398,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":22,"h":22}, @@ -578,7 +594,7 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":140,"y":994,"w":62,"h":62}, + "frame": {"x":1963,"y":79,"w":62,"h":62}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":5,"w":62,"h":62}, @@ -586,7 +602,7 @@ }, "sprites/misc/hub_direction_indicator.png": { - "frame": {"x":1933,"y":299,"w":24,"h":24}, + "frame": {"x":1466,"y":1026,"w":24,"h":24}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":24,"h":24}, @@ -594,7 +610,7 @@ }, "sprites/misc/lock_direction_indicator.png": { - "frame": {"x":1357,"y":733,"w":36,"h":24}, + "frame": {"x":1963,"y":145,"w":36,"h":24}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":36,"h":24}, @@ -602,7 +618,7 @@ }, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":140,"y":994,"w":62,"h":62}, + "frame": {"x":1963,"y":79,"w":62,"h":62}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":5,"w":62,"h":62}, @@ -610,7 +626,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":1760,"y":955,"w":62,"h":72}, + "frame": {"x":1963,"y":3,"w":62,"h":72}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":62,"h":72}, @@ -618,7 +634,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":3,"y":994,"w":133,"h":66}, + "frame": {"x":517,"y":1022,"w":133,"h":66}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":133,"h":66}, @@ -626,7 +642,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":1357,"y":761,"w":20,"h":24}, + "frame": {"x":1466,"y":1054,"w":20,"h":24}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":20,"h":24}, @@ -637,8 +653,8 @@ "version": "1.0", "image": "atlas0_75.png", "format": "RGBA8888", - "size": {"w":2047,"h":1063}, + "size": {"w":2042,"h":1122}, "scale": "0.75", - "smartupdate": "$TexturePacker:SmartUpdate:8985524bba1a3f16cecab3c03b6aaa06:d614d20bfce033d8a8ab0990af085d16:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:edd9ed958611fe83da11c1bd0e07a460:9470e3f106da3baf56901b0e2f906cb8:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_75.png b/res_built/atlas/atlas0_75.png index f4844add..801b0142 100644 Binary files a/res_built/atlas/atlas0_75.png and b/res_built/atlas/atlas0_75.png differ diff --git a/res_raw/sprites/blueprints/energy_generator.png b/res_raw/sprites/blueprints/energy_generator.png new file mode 100644 index 00000000..e1534b57 Binary files /dev/null and b/res_raw/sprites/blueprints/energy_generator.png differ diff --git a/res_raw/sprites/buildings/energy_generator.png b/res_raw/sprites/buildings/energy_generator.png new file mode 100644 index 00000000..e06b86ea Binary files /dev/null and b/res_raw/sprites/buildings/energy_generator.png differ diff --git a/src/css/icons.scss b/src/css/icons.scss index 2128fde3..bfc67713 100644 --- a/src/css/icons.scss +++ b/src/css/icons.scss @@ -1,4 +1,5 @@ -$buildings: belt, cutter, miner, mixer, painter, rotater, splitter, stacker, trash, underground_belt; +$buildings: belt, cutter, miner, mixer, painter, rotater, splitter, stacker, trash, underground_belt, + energy_generator; @each $building in $buildings { [data-icon="building_icons/#{$building}.png"] { @@ -27,8 +28,8 @@ $icons: notification_saved, notification_success, notification_upgrade; } } -$languages: en, de, cs, da, et, es-419, fr, it, pt-BR, sv, tr, el, ru, uk, zh-TW, zh-CN, nb, mt-MT, ar, nl, vi, th, - hu, pl, ja, kor, no, pt-PT; +$languages: en, de, cs, da, et, es-419, fr, it, pt-BR, sv, tr, el, ru, uk, zh-TW, zh-CN, nb, mt-MT, ar, nl, vi, + th, hu, pl, ja, kor, no, pt-PT; @each $language in $languages { [data-languageicon="#{$language}"] { diff --git a/src/js/game/buildings/energy_generator.js b/src/js/game/buildings/energy_generator.js new file mode 100644 index 00000000..47502ce6 --- /dev/null +++ b/src/js/game/buildings/energy_generator.js @@ -0,0 +1,107 @@ +import { enumDirection, Vector } from "../../core/vector"; +import { ItemAcceptorComponent, enumItemAcceptorItemFilter } from "../components/item_acceptor"; +import { Entity } from "../entity"; +import { MetaBuilding } from "../meta_building"; +import { GameRoot } from "../root"; +import { enumHubGoalRewards } from "../tutorial_goals"; +import { EnergyGeneratorComponent } from "../components/energy_generator"; +import { WiredPinsComponent, enumPinSlotType } from "../components/wired_pins"; + +export class MetaEnergyGenerator extends MetaBuilding { + constructor() { + super("energy_generator"); + } + + isRotateable(variant) { + return false; + } + + getSilhouetteColor() { + return "#c425d7"; + } + + /** + * @param {GameRoot} root + * @param {string} variant + * @returns {Array<[string, string]>} + */ + getAdditionalStatistics(root, variant) { + // TODO + return []; + } + + getDimensions(variant) { + return new Vector(2, 2); + } + + /** + * @param {GameRoot} root + */ + getIsUnlocked(root) { + return root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_cutter_and_trash); + } + + /** + * Creates the entity at the given location + * @param {Entity} entity + */ + setupEntityComponents(entity) { + entity.addComponent( + new ItemAcceptorComponent({ + slots: [ + { + pos: new Vector(0, 0), + directions: [enumDirection.top], + filter: enumItemAcceptorItemFilter.shape, + }, + + { + pos: new Vector(1, 0), + directions: [enumDirection.top], + filter: enumItemAcceptorItemFilter.shape, + }, + { + pos: new Vector(0, 1), + directions: [enumDirection.bottom], + filter: enumItemAcceptorItemFilter.shape, + }, + { + pos: new Vector(1, 1), + directions: [enumDirection.bottom], + filter: enumItemAcceptorItemFilter.shape, + }, + ], + }) + ); + + entity.addComponent( + new EnergyGeneratorComponent({ + // Set by the energy generator system later + requiredKey: null, + }) + ); + + entity.addComponent( + new WiredPinsComponent({ + slots: [ + { + pos: new Vector(0, 0), + type: enumPinSlotType.energyEjector, + }, + { + pos: new Vector(1, 0), + type: enumPinSlotType.energyEjector, + }, + { + pos: new Vector(0, 1), + type: enumPinSlotType.energyEjector, + }, + { + pos: new Vector(1, 1), + type: enumPinSlotType.energyEjector, + }, + ], + }) + ); + } +} diff --git a/src/js/game/component_registry.js b/src/js/game/component_registry.js index 76458d43..c0077a5a 100644 --- a/src/js/game/component_registry.js +++ b/src/js/game/component_registry.js @@ -10,6 +10,8 @@ import { UndergroundBeltComponent } from "./components/underground_belt"; import { UnremovableComponent } from "./components/unremovable"; import { HubComponent } from "./components/hub"; import { StorageComponent } from "./components/storage"; +import { EnergyGeneratorComponent } from "./components/energy_generator"; +import { WiredPinsComponent } from "./components/wired_pins"; export function initComponentRegistry() { gComponentRegistry.register(StaticMapEntityComponent); @@ -23,6 +25,8 @@ export function initComponentRegistry() { gComponentRegistry.register(UnremovableComponent); gComponentRegistry.register(HubComponent); gComponentRegistry.register(StorageComponent); + gComponentRegistry.register(EnergyGeneratorComponent); + gComponentRegistry.register(WiredPinsComponent); // IMPORTANT ^^^^^ UPDATE ENTITY COMPONENT STORAGE AFTERWARDS diff --git a/src/js/game/components/energy_generator.js b/src/js/game/components/energy_generator.js new file mode 100644 index 00000000..37e5dd6a --- /dev/null +++ b/src/js/game/components/energy_generator.js @@ -0,0 +1,59 @@ +import { types } from "../../savegame/serialization"; +import { BaseItem } from "../base_item"; +import { Component } from "../component"; +import { ShapeItem } from "../items/shape_item"; + +const maxQueueSize = 10; + +export class EnergyGeneratorComponent extends Component { + static getId() { + return "EnergyGenerator"; + } + + static getSchema() { + return { + requiredKey: types.string, + }; + } + + /** + * + * @param {object} param0 + * @param {string} param0.requiredKey Which shape this generator needs, can be null if not computed yet + */ + constructor({ requiredKey }) { + super(); + this.requiredKey = requiredKey; + + /** + * Stores how many items are ready to be converted to energy + * @type {number} + */ + this.itemsInQueue = 0; + } + + /** + * + * @param {BaseItem} item + */ + tryTakeItem(item) { + if (!(item instanceof ShapeItem)) { + // Not a shape + return false; + } + + if (item.definition.getHash() !== this.requiredKey) { + // Not our shape + return false; + } + + if (this.itemsInQueue >= maxQueueSize) { + // Queue is full + return false; + } + + // Take item and put it into the queue + ++this.itemsInQueue; + return true; + } +} diff --git a/src/js/game/components/wired_pins.js b/src/js/game/components/wired_pins.js new file mode 100644 index 00000000..8157de5a --- /dev/null +++ b/src/js/game/components/wired_pins.js @@ -0,0 +1,65 @@ +import { Component } from "../component"; +import { Vector } from "../../core/vector"; +import { types } from "../../savegame/serialization"; + +/** @enum {string} */ +export const enumPinSlotType = { + energyEjector: "energyEjector", +}; + +/** @typedef {{ + * pos: Vector, + * type: enumPinSlotType + * }} WirePinSlotDefinition */ + +/** @typedef {{ + * pos: Vector, + * type: enumPinSlotType, + * value: number + * }} WirePinSlot */ + +export class WiredPinsComponent extends Component { + static getId() { + return "WiredPins"; + } + + static getSchema() { + return { + slots: types.array( + types.structured({ + pos: types.vector, + type: types.enum(enumPinSlotType), + value: types.float, + }) + ), + }; + } + + /** + * + * @param {object} param0 + * @param {Array} param0.slots + */ + constructor({ slots }) { + super(); + this.setSlots(slots); + } + + /** + * Sets the slots of this building + * @param {Array} slots + */ + setSlots(slots) { + /** @type {Array} */ + this.slots = []; + + for (let i = 0; i < slots.length; ++i) { + const slotData = slots[i]; + this.slots.push({ + pos: slotData.pos, + type: slotData.type, + value: 0.0, + }); + } + } +} diff --git a/src/js/game/core.js b/src/js/game/core.js index 3fc02397..203e005b 100644 --- a/src/js/game/core.js +++ b/src/js/game/core.js @@ -24,7 +24,7 @@ import { GameHUD } from "./hud/hud"; import { KeyActionMapper } from "./key_action_mapper"; import { GameLogic } from "./logic"; import { MapView } from "./map_view"; -import { GameRoot } from "./root"; +import { GameRoot, enumEditMode } from "./root"; import { ShapeDefinitionManager } from "./shape_definition_manager"; import { SoundProxy } from "./sound_proxy"; import { GameTime } from "./time/game_time"; @@ -403,9 +403,17 @@ export class GameCore { root.map.drawForeground(params); if (!this.root.camera.getIsMapOverlayActive()) { systems.hub.draw(params); + systems.energyGenerator.draw(params); systems.storage.draw(params); } + // WIRES LAYER + root.hud.parts.wiresOverlay.draw(params); + + if (this.root.editMode === enumEditMode.wires) { + systems.wiredPins.drawWiresLayer(params); + } + if (G_IS_DEV) { root.map.drawStaticEntityDebugOverlays(params); } diff --git a/src/js/game/entity_components.js b/src/js/game/entity_components.js index bcc6e9d0..fc29ce80 100644 --- a/src/js/game/entity_components.js +++ b/src/js/game/entity_components.js @@ -10,6 +10,8 @@ import { UndergroundBeltComponent } from "./components/underground_belt"; import { UnremovableComponent } from "./components/unremovable"; import { HubComponent } from "./components/hub"; import { StorageComponent } from "./components/storage"; +import { EnergyGeneratorComponent } from "./components/energy_generator"; +import { WiredPinsComponent } from "./components/wired_pins"; /* typehints:end */ /** @@ -56,6 +58,12 @@ export class EntityComponentStorage { /** @type {StorageComponent} */ this.Storage; + /** @type {EnergyGeneratorComponent} */ + this.EnergyGenerator; + + /** @type {WiredPinsComponent} */ + this.WiredPins; + /* typehints:end */ } } diff --git a/src/js/game/game_system_manager.js b/src/js/game/game_system_manager.js index 20d74dda..144380b2 100644 --- a/src/js/game/game_system_manager.js +++ b/src/js/game/game_system_manager.js @@ -13,6 +13,8 @@ import { HubSystem } from "./systems/hub"; import { StaticMapEntitySystem } from "./systems/static_map_entity"; import { ItemAcceptorSystem } from "./systems/item_acceptor"; import { StorageSystem } from "./systems/storage"; +import { EnergyGeneratorSystem } from "./systems/energy_generator"; +import { WiredPinsSystem } from "./systems/wired_pins"; const logger = createLogger("game_system_manager"); @@ -56,6 +58,12 @@ export class GameSystemManager { /** @type {StorageSystem} */ storage: null, + /** @type {EnergyGeneratorSystem} */ + energyGenerator: null, + + /** @type {WiredPinsSystem} */ + wiredPins: null, + /* typehints:end */ }; this.systemUpdateOrder = []; @@ -90,8 +98,12 @@ export class GameSystemManager { add("hub", HubSystem); + add("energyGenerator", EnergyGeneratorSystem); + add("staticMapEntities", StaticMapEntitySystem); + add("wiredPins", WiredPinsSystem); + // IMPORTANT: Must be after belt system since belt system can change the // orientation of an entity after it is placed -> the item acceptor cache // then would be invalid diff --git a/src/js/game/hud/hud.js b/src/js/game/hud/hud.js index efbde2ab..ec38c305 100644 --- a/src/js/game/hud/hud.js +++ b/src/js/game/hud/hud.js @@ -36,6 +36,7 @@ import { HUDInteractiveTutorial } from "./parts/interactive_tutorial"; import { HUDScreenshotExporter } from "./parts/screenshot_exporter"; import { HUDColorBlindHelper } from "./parts/color_blind_helper"; import { HUDShapeViewer } from "./parts/shape_viewer"; +import { HUDWiresOverlay } from "./parts/wires_overlay"; export class GameHUD { /** @@ -70,6 +71,7 @@ export class GameHUD { dialogs: new HUDModalDialogs(this.root), screenshotExporter: new HUDScreenshotExporter(this.root), shapeViewer: new HUDShapeViewer(this.root), + wiresOverlay: new HUDWiresOverlay(this.root), }; this.signals = { diff --git a/src/js/game/hud/parts/base_toolbar.js b/src/js/game/hud/parts/base_toolbar.js new file mode 100644 index 00000000..c5abf8a3 --- /dev/null +++ b/src/js/game/hud/parts/base_toolbar.js @@ -0,0 +1,172 @@ +import { gMetaBuildingRegistry } from "../../../core/global_registries"; +import { Signal } from "../../../core/signal"; +import { TrackedState } from "../../../core/tracked_state"; +import { makeDiv } from "../../../core/utils"; +import { KEYMAPPINGS } from "../../key_action_mapper"; +import { MetaBuilding } from "../../meta_building"; +import { BaseHUDPart } from "../base_hud_part"; +import { GameRoot } from "../../root"; + +export class HUDBaseToolbar extends BaseHUDPart { + /** + * @param {GameRoot} root + * @param {Array} supportedBuildings + * @param {function} visibilityCondition + */ + constructor(root, supportedBuildings, visibilityCondition) { + super(root); + + this.supportedBuildings = supportedBuildings; + this.visibilityCondition = visibilityCondition; + + /** @type {Object.} */ + this.buildingHandles = {}; + + this.sigBuildingSelected = new Signal(); + this.trackedIsVisisible = new TrackedState(this.onVisibilityChanged, this); + } + + /** + * Called when the visibility of the toolbar changed + * @param {boolean} visible + */ + onVisibilityChanged(visible) { + this.element.classList.toggle("visible", visible); + } + + /** + * Should create all require elements + * @param {HTMLElement} parent + */ + createElements(parent) { + this.element = makeDiv(parent, "ingame_HUD_buildings_toolbar", ["ingame_buildingsToolbar"], ""); + } + + initialize() { + const actionMapper = this.root.keyMapper; + + const items = makeDiv(this.element, null, ["buildings"]); + + for (let i = 0; i < this.supportedBuildings.length; ++i) { + const metaBuilding = gMetaBuildingRegistry.findByClass(this.supportedBuildings[i]); + const binding = actionMapper.getBinding(KEYMAPPINGS.buildings[metaBuilding.getId()]); + + const itemContainer = makeDiv(items, null, ["building"]); + itemContainer.setAttribute("data-icon", "building_icons/" + metaBuilding.getId() + ".png"); + + binding.add(() => this.selectBuildingForPlacement(metaBuilding)); + + this.trackClicks(itemContainer, () => this.selectBuildingForPlacement(metaBuilding), { + clickSound: null, + }); + + this.buildingHandles[metaBuilding.id] = { + metaBuilding, + element: itemContainer, + unlocked: false, + selected: false, + index: i, + }; + } + + this.root.hud.signals.selectedPlacementBuildingChanged.add( + this.onSelectedPlacementBuildingChanged, + this + ); + + this.lastSelectedIndex = 0; + actionMapper.getBinding(KEYMAPPINGS.placement.cycleBuildings).add(this.cycleBuildings, this); + } + + /** + * Updates the toolbar + */ + update() { + this.trackedIsVisisible.set(this.visibilityCondition()); + + if (!this.trackedIsVisisible.get()) { + // Currently not active + } else { + for (const buildingId in this.buildingHandles) { + const handle = this.buildingHandles[buildingId]; + const newStatus = handle.metaBuilding.getIsUnlocked(this.root); + if (handle.unlocked !== newStatus) { + handle.unlocked = newStatus; + handle.element.classList.toggle("unlocked", newStatus); + } + } + } + } + + /** + * Cycles through all buildings + */ + cycleBuildings() { + let newIndex = this.lastSelectedIndex; + for (let i = 0; i < this.supportedBuildings.length; ++i, ++newIndex) { + newIndex %= this.supportedBuildings.length; + const metaBuilding = gMetaBuildingRegistry.findByClass(this.supportedBuildings[newIndex]); + const handle = this.buildingHandles[metaBuilding.id]; + if (!handle.selected && handle.unlocked) { + break; + } + } + const metaBuildingClass = this.supportedBuildings[newIndex]; + const metaBuilding = gMetaBuildingRegistry.findByClass(metaBuildingClass); + this.selectBuildingForPlacement(metaBuilding); + } + + /** + * Called when the selected building got changed + * @param {MetaBuilding} metaBuilding + */ + onSelectedPlacementBuildingChanged(metaBuilding) { + for (const buildingId in this.buildingHandles) { + const handle = this.buildingHandles[buildingId]; + const newStatus = handle.metaBuilding === metaBuilding; + if (handle.selected !== newStatus) { + handle.selected = newStatus; + handle.element.classList.toggle("selected", newStatus); + } + if (handle.selected) { + this.lastSelectedIndex = handle.index; + } + } + + this.element.classList.toggle("buildingSelected", !!metaBuilding); + } + + /** + * @param {MetaBuilding} metaBuilding + */ + selectBuildingForPlacement(metaBuilding) { + if (!this.visibilityCondition()) { + // Not active + return; + } + + if (!metaBuilding.getIsUnlocked(this.root)) { + this.root.soundProxy.playUiError(); + return STOP_PROPAGATION; + } + + // Allow clicking an item again to deselect it + for (const buildingId in this.buildingHandles) { + const handle = this.buildingHandles[buildingId]; + if (handle.selected && handle.metaBuilding === metaBuilding) { + metaBuilding = null; + break; + } + } + + this.root.soundProxy.playUiClick(); + this.sigBuildingSelected.dispatch(metaBuilding); + this.onSelectedPlacementBuildingChanged(metaBuilding); + } +} diff --git a/src/js/game/hud/parts/building_placer_logic.js b/src/js/game/hud/parts/building_placer_logic.js index c8c83acc..7d8e3838 100644 --- a/src/js/game/hud/parts/building_placer_logic.js +++ b/src/js/game/hud/parts/building_placer_logic.js @@ -13,6 +13,7 @@ import { BaseHUDPart } from "../base_hud_part"; import { SOUNDS } from "../../../platform/sound"; import { MetaMinerBuilding, enumMinerVariants } from "../../buildings/miner"; import { enumHubGoalRewards } from "../../tutorial_goals"; +import { enumEditMode } from "../../root"; /** * Contains all logic for the building placer - this doesn't include the rendering @@ -115,6 +116,7 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { this.root.hud.signals.pasteBlueprintRequested.add(this.abortPlacement, this); this.root.signals.storyGoalCompleted.add(() => this.signals.variantChanged.dispatch()); this.root.signals.upgradePurchased.add(() => this.signals.variantChanged.dispatch()); + this.root.signals.editModeChanged.add(this.onEditModeChanged, this); // MOUSE BINDINGS this.root.camera.downPreHandler.add(this.onMouseDown, this); @@ -122,6 +124,20 @@ export class HUDBuildingPlacerLogic extends BaseHUDPart { this.root.camera.upPostHandler.add(this.onMouseUp, this); } + /** + * Called when the edit mode got changed + * @param {enumEditMode} editMode + */ + onEditModeChanged(editMode) { + const metaBuilding = this.currentMetaBuilding.get(); + if (metaBuilding) { + if (metaBuilding.getEditLayer() !== editMode) { + // This layer doesn't fit the edit mode anymore + this.currentMetaBuilding.set(null); + } + } + } + /** * Returns the current base rotation for the current meta-building. * @returns {number} diff --git a/src/js/game/hud/parts/buildings_toolbar.js b/src/js/game/hud/parts/buildings_toolbar.js index 305d3eee..d8b56943 100644 --- a/src/js/game/hud/parts/buildings_toolbar.js +++ b/src/js/game/hud/parts/buildings_toolbar.js @@ -1,9 +1,6 @@ -import { gMetaBuildingRegistry } from "../../../core/global_registries"; -import { Signal } from "../../../core/signal"; -import { TrackedState } from "../../../core/tracked_state"; -import { makeDiv } from "../../../core/utils"; import { MetaBeltBaseBuilding } from "../../buildings/belt_base"; import { MetaCutterBuilding } from "../../buildings/cutter"; +import { MetaEnergyGenerator } from "../../buildings/energy_generator"; import { MetaMinerBuilding } from "../../buildings/miner"; import { MetaMixerBuilding } from "../../buildings/mixer"; import { MetaPainterBuilding } from "../../buildings/painter"; @@ -12,9 +9,8 @@ import { MetaSplitterBuilding } from "../../buildings/splitter"; import { MetaStackerBuilding } from "../../buildings/stacker"; import { MetaTrashBuilding } from "../../buildings/trash"; import { MetaUndergroundBeltBuilding } from "../../buildings/underground_belt"; -import { MetaBuilding } from "../../meta_building"; -import { BaseHUDPart } from "../base_hud_part"; -import { KEYMAPPINGS } from "../../key_action_mapper"; +import { enumEditMode } from "../../root"; +import { HUDBaseToolbar } from "./base_toolbar"; const toolbarBuildings = [ MetaBeltBaseBuilding, @@ -27,146 +23,15 @@ const toolbarBuildings = [ MetaMixerBuilding, MetaPainterBuilding, MetaTrashBuilding, + MetaEnergyGenerator, ]; -export class HUDBuildingsToolbar extends BaseHUDPart { +export class HUDBuildingsToolbar extends HUDBaseToolbar { constructor(root) { - super(root); - - /** @type {Object.} */ - this.buildingHandles = {}; - - this.sigBuildingSelected = new Signal(); - - this.trackedIsVisisible = new TrackedState(this.onVisibilityChanged, this); - } - - onVisibilityChanged(visible) { - this.element.classList.toggle("visible", visible); - } - - /** - * Should create all require elements - * @param {HTMLElement} parent - */ - createElements(parent) { - this.element = makeDiv(parent, "ingame_HUD_buildings_toolbar", [], ""); - } - - initialize() { - const actionMapper = this.root.keyMapper; - - const items = makeDiv(this.element, null, ["buildings"]); - - for (let i = 0; i < toolbarBuildings.length; ++i) { - const metaBuilding = gMetaBuildingRegistry.findByClass(toolbarBuildings[i]); - const binding = actionMapper.getBinding(KEYMAPPINGS.buildings[metaBuilding.getId()]); - - const itemContainer = makeDiv(items, null, ["building"]); - itemContainer.setAttribute("data-icon", "building_icons/" + metaBuilding.getId() + ".png"); - - binding.add(() => this.selectBuildingForPlacement(metaBuilding)); - - this.trackClicks(itemContainer, () => this.selectBuildingForPlacement(metaBuilding), { - clickSound: null, - }); - - this.buildingHandles[metaBuilding.id] = { - metaBuilding, - element: itemContainer, - unlocked: false, - selected: false, - index: i, - }; - } - - this.root.hud.signals.selectedPlacementBuildingChanged.add( - this.onSelectedPlacementBuildingChanged, - this + super( + root, + toolbarBuildings, + () => !this.root.camera.getIsMapOverlayActive() && this.root.editMode === enumEditMode.regular ); - - this.lastSelectedIndex = 0; - actionMapper.getBinding(KEYMAPPINGS.placement.cycleBuildings).add(this.cycleBuildings, this); - } - - update() { - this.trackedIsVisisible.set(!this.root.camera.getIsMapOverlayActive()); - - for (const buildingId in this.buildingHandles) { - const handle = this.buildingHandles[buildingId]; - const newStatus = handle.metaBuilding.getIsUnlocked(this.root); - if (handle.unlocked !== newStatus) { - handle.unlocked = newStatus; - handle.element.classList.toggle("unlocked", newStatus); - } - } - } - - cycleBuildings() { - let newIndex = this.lastSelectedIndex; - for (let i = 0; i < toolbarBuildings.length; ++i, ++newIndex) { - newIndex %= toolbarBuildings.length; - const metaBuilding = gMetaBuildingRegistry.findByClass(toolbarBuildings[newIndex]); - const handle = this.buildingHandles[metaBuilding.id]; - if (!handle.selected && handle.unlocked) { - break; - } - } - const metaBuildingClass = toolbarBuildings[newIndex]; - const metaBuilding = gMetaBuildingRegistry.findByClass(metaBuildingClass); - this.selectBuildingForPlacement(metaBuilding); - } - - /** - * @param {MetaBuilding} metaBuilding - */ - onSelectedPlacementBuildingChanged(metaBuilding) { - for (const buildingId in this.buildingHandles) { - const handle = this.buildingHandles[buildingId]; - const newStatus = handle.metaBuilding === metaBuilding; - if (handle.selected !== newStatus) { - handle.selected = newStatus; - handle.element.classList.toggle("selected", newStatus); - } - if (handle.selected) { - this.lastSelectedIndex = handle.index; - } - } - - this.element.classList.toggle("buildingSelected", !!metaBuilding); - } - - /** - * @param {MetaBuilding} metaBuilding - */ - selectBuildingForPlacement(metaBuilding) { - if (!metaBuilding.getIsUnlocked(this.root)) { - this.root.soundProxy.playUiError(); - return; - } - - if (this.root.camera.getIsMapOverlayActive()) { - this.root.soundProxy.playUiError(); - return; - } - - // Allow clicking an item again to deselect it - for (const buildingId in this.buildingHandles) { - const handle = this.buildingHandles[buildingId]; - if (handle.selected && handle.metaBuilding === metaBuilding) { - metaBuilding = null; - break; - } - } - - this.root.soundProxy.playUiClick(); - this.sigBuildingSelected.dispatch(metaBuilding); - this.onSelectedPlacementBuildingChanged(metaBuilding); } } diff --git a/src/js/game/hud/parts/keybinding_overlay.js b/src/js/game/hud/parts/keybinding_overlay.js index 63208b19..995fc5d9 100644 --- a/src/js/game/hud/parts/keybinding_overlay.js +++ b/src/js/game/hud/parts/keybinding_overlay.js @@ -254,6 +254,13 @@ export class HUDKeybindingOverlay extends BaseHUDPart { keys: [k.massSelect.massSelectCopy], condition: () => this.anythingSelectedOnMap, }, + + { + // Switch layers + label: T.ingame.keybindingsOverlay.switchLayers, + keys: [k.ingame.switchLayers], + condition: () => true, + }, ]; if (!this.root.app.settings.getAllSettings().alwaysMultiplace) { diff --git a/src/js/game/hud/parts/wires_overlay.js b/src/js/game/hud/parts/wires_overlay.js new file mode 100644 index 00000000..0d228509 --- /dev/null +++ b/src/js/game/hud/parts/wires_overlay.js @@ -0,0 +1,83 @@ +import { makeOffscreenBuffer } from "../../../core/buffer_utils"; +import { globalConfig } from "../../../core/config"; +import { DrawParameters } from "../../../core/draw_parameters"; +import { KEYMAPPINGS } from "../../key_action_mapper"; +import { enumEditMode } from "../../root"; +import { THEME } from "../../theme"; +import { BaseHUDPart } from "../base_hud_part"; + +const wiresBackgroundDpi = 3; + +export class HUDWiresOverlay extends BaseHUDPart { + createElements(parent) {} + + initialize() { + // Probably not the best location, but the one which makes most sense + this.root.keyMapper.getBinding(KEYMAPPINGS.ingame.switchLayers).add(this.switchLayers, this); + + this.generateTilePattern(); + } + + /** + * Switches between layers + */ + switchLayers() { + if (this.root.editMode === enumEditMode.regular) { + this.root.editMode = enumEditMode.wires; + } else { + this.root.editMode = enumEditMode.regular; + } + this.root.signals.editModeChanged.dispatch(this.root.editMode); + } + + /** + * Generates the background pattern for the wires overlay + */ + generateTilePattern() { + const dims = globalConfig.tileSize * wiresBackgroundDpi; + const [canvas, context] = makeOffscreenBuffer(dims, dims, { + smooth: false, + reusable: false, + label: "wires-tile-pattern", + }); + + context.scale(wiresBackgroundDpi, wiresBackgroundDpi); + context.fillStyle = THEME.map.wires.overlay; + context.fillRect(0, 0, globalConfig.tileSize, globalConfig.tileSize); + + const lineWidth = 1; + + context.fillRect(0, 0, globalConfig.tileSize, lineWidth); + context.fillRect(0, lineWidth, lineWidth, globalConfig.tileSize); + + this.tilePatternCanvas = canvas; + } + + /** + * + * @param {DrawParameters} parameters + */ + draw(parameters) { + if (this.root.editMode !== enumEditMode.wires) { + return; + } + + if (!this.cachedPatternBackground) { + this.cachedPatternBackground = parameters.context.createPattern(this.tilePatternCanvas, "repeat"); + } + + const bounds = parameters.visibleRect; + + const scaleFactor = 1 / wiresBackgroundDpi; + + parameters.context.scale(scaleFactor, scaleFactor); + parameters.context.fillStyle = this.cachedPatternBackground; + parameters.context.fillRect( + bounds.x / scaleFactor, + bounds.y / scaleFactor, + bounds.w / scaleFactor, + bounds.h / scaleFactor + ); + parameters.context.scale(1 / scaleFactor, 1 / scaleFactor); + } +} diff --git a/src/js/game/key_action_mapper.js b/src/js/game/key_action_mapper.js index c514446d..45949ae3 100644 --- a/src/js/game/key_action_mapper.js +++ b/src/js/game/key_action_mapper.js @@ -26,6 +26,8 @@ export const KEYMAPPINGS = { toggleHud: { keyCode: 113 }, // F2 exportScreenshot: { keyCode: 114 }, // F3PS toggleFPSInfo: { keyCode: 115 }, // F4 + + switchLayers: { keyCode: key("Y") }, }, navigation: { @@ -53,6 +55,7 @@ export const KEYMAPPINGS = { mixer: { keyCode: key("8") }, painter: { keyCode: key("9") }, trash: { keyCode: key("0") }, + energy_generator: { keyCode: key("O") }, }, placement: { diff --git a/src/js/game/meta_building.js b/src/js/game/meta_building.js index 11da28f3..798e4d4c 100644 --- a/src/js/game/meta_building.js +++ b/src/js/game/meta_building.js @@ -1,10 +1,10 @@ -import { Vector, enumDirection, enumAngleToDirection } from "../core/vector"; import { Loader } from "../core/loader"; -import { GameRoot } from "./root"; import { AtlasSprite } from "../core/sprites"; -import { Entity } from "./entity"; -import { StaticMapEntityComponent } from "./components/static_map_entity"; +import { Vector } from "../core/vector"; import { SOUNDS } from "../platform/sound"; +import { StaticMapEntityComponent } from "./components/static_map_entity"; +import { Entity } from "./entity"; +import { enumEditMode, GameRoot } from "./root"; export const defaultBuildingVariant = "default"; @@ -24,6 +24,14 @@ export class MetaBuilding { return this.id; } + /** + * Returns the edit layer of the building + * @returns {enumEditMode} + */ + getEditLayer() { + return enumEditMode.regular; + } + /** * Should return the dimensions of the building */ diff --git a/src/js/game/meta_building_registry.js b/src/js/game/meta_building_registry.js index 450a9743..0f37762d 100644 --- a/src/js/game/meta_building_registry.js +++ b/src/js/game/meta_building_registry.js @@ -10,6 +10,7 @@ import { MetaStackerBuilding } from "./buildings/stacker"; import { MetaTrashBuilding } from "./buildings/trash"; import { MetaUndergroundBeltBuilding } from "./buildings/underground_belt"; import { MetaHubBuilding } from "./buildings/hub"; +import { MetaEnergyGenerator } from "./buildings/energy_generator"; export function initMetaBuildingRegistry() { gMetaBuildingRegistry.register(MetaSplitterBuilding); @@ -23,4 +24,5 @@ export function initMetaBuildingRegistry() { gMetaBuildingRegistry.register(MetaBeltBaseBuilding); gMetaBuildingRegistry.register(MetaUndergroundBeltBuilding); gMetaBuildingRegistry.register(MetaHubBuilding); + gMetaBuildingRegistry.register(MetaEnergyGenerator); } diff --git a/src/js/game/root.js b/src/js/game/root.js index 0456952c..e8808317 100644 --- a/src/js/game/root.js +++ b/src/js/game/root.js @@ -31,6 +31,12 @@ import { KeyActionMapper } from "./key_action_mapper"; const logger = createLogger("game/root"); +/** @enum {string} */ +export const enumEditMode = { + regular: "regular", + wires: "wires", +}; + /** * The game root is basically the whole game state at a given point, * combining all important classes. We don't have globals, but this @@ -124,6 +130,9 @@ export class GameRoot { /** @type {DynamicTickrate} */ this.dynamicTickrate = null; + /** @type {enumEditMode} */ + this.editMode = enumEditMode.regular; + this.signals = { // Entities entityManuallyPlaced: /** @type {TypedSignal<[Entity]>} */ (new Signal()), @@ -155,6 +164,8 @@ export class GameRoot { itemProduced: /** @type {TypedSignal<[BaseItem]>} */ (new Signal()), bulkOperationFinished: /** @type {TypedSignal<[]>} */ (new Signal()), + + editModeChanged: /** @type {TypedSignal<[enumEditMode]>} */ (new Signal()), }; // RNG's diff --git a/src/js/game/systems/energy_generator.js b/src/js/game/systems/energy_generator.js new file mode 100644 index 00000000..733ea90a --- /dev/null +++ b/src/js/game/systems/energy_generator.js @@ -0,0 +1,76 @@ +import { DrawParameters } from "../../core/draw_parameters"; +import { T } from "../../translations"; +import { EnergyGeneratorComponent } from "../components/energy_generator"; +import { Entity } from "../entity"; +import { GameSystemWithFilter } from "../game_system_with_filter"; +import { ShapeDefinition } from "../shape_definition"; + +export class EnergyGeneratorSystem extends GameSystemWithFilter { + constructor(root) { + super(root, [EnergyGeneratorComponent]); + } + + draw(parameters) { + this.forEachMatchingEntityOnScreen(parameters, this.drawEntity.bind(this)); + } + + /** + * Returns which shape is required for a given generator + * @param {Entity} entity + */ + getShapeRequiredForGenerator(entity) { + return "CuCuCuCu"; + } + + update() { + for (let i = 0; i < this.allEntities.length; ++i) { + const entity = this.allEntities[i]; + const energyGenComp = entity.components.EnergyGenerator; + + if (!energyGenComp.requiredKey) { + // Compute required key for this generator + energyGenComp.requiredKey = this.getShapeRequiredForGenerator(entity); + } + } + } + + /** + * @param {DrawParameters} parameters + * @param {Entity} entity + */ + drawEntity(parameters, entity) { + const context = parameters.context; + const staticComp = entity.components.StaticMapEntity; + + if (!staticComp.shouldBeDrawn(parameters)) { + return; + } + + const energyGenComp = entity.components.EnergyGenerator; + if (!energyGenComp.requiredKey) { + // Not initialized yet + return; + } + + const pos = staticComp.getTileSpaceBounds().getCenter().toWorldSpace(); + + // TESTING + const definition = ShapeDefinition.fromShortKey(energyGenComp.requiredKey); + definition.draw(pos.x, pos.y, parameters, 30); + + const energyGenerated = 5; + + // deliver: Deliver + // toGenerateEnergy: For energy + context.font = "bold 7px GameFont"; + context.fillStyle = "#64666e"; + context.textAlign = "left"; + context.fillText(T.buildings.energy_generator.deliver.toUpperCase(), pos.x - 25, pos.y - 18); + + context.fillText( + T.buildings.energy_generator.toGenerateEnergy.replace("", "" + energyGenerated).toUpperCase(), + pos.x - 25, + pos.y + 28 + ); + } +} diff --git a/src/js/game/systems/item_ejector.js b/src/js/game/systems/item_ejector.js index 444cb8c4..f448aef2 100644 --- a/src/js/game/systems/item_ejector.js +++ b/src/js/game/systems/item_ejector.js @@ -261,6 +261,14 @@ export class ItemEjectorSystem extends GameSystemWithFilter { } } + const energyGeneratorComp = receiver.components.EnergyGenerator; + if (energyGeneratorComp) { + if (energyGeneratorComp.tryTakeItem(item)) { + // Passed it over + return true; + } + } + return false; } diff --git a/src/js/game/systems/wired_pins.js b/src/js/game/systems/wired_pins.js new file mode 100644 index 00000000..44e062b0 --- /dev/null +++ b/src/js/game/systems/wired_pins.js @@ -0,0 +1,51 @@ +import { GameSystemWithFilter } from "../game_system_with_filter"; +import { WiredPinsComponent } from "../components/wired_pins"; +import { DrawParameters } from "../../core/draw_parameters"; +import { Entity } from "../entity"; +import { THEME } from "../theme"; + +export class WiredPinsSystem extends GameSystemWithFilter { + constructor(root) { + super(root, [WiredPinsComponent]); + } + + update() { + // TODO + } + + drawWiresLayer(parameters) { + this.forEachMatchingEntityOnScreen(parameters, this.drawEntityPins.bind(this)); + } + + /** + * + * @param {DrawParameters} parameters + * @param {Entity} entity + */ + drawEntityPins(parameters, entity) { + const staticComp = entity.components.StaticMapEntity; + + if (!staticComp.shouldBeDrawn(parameters)) { + return; + } + + const pinsComp = entity.components.WiredPins; + + const slots = pinsComp.slots; + + for (let i = 0; i < slots.length; ++i) { + const slot = slots[i]; + const tile = staticComp.localTileToWorld(slot.pos); + + const worldPos = tile.toWorldSpaceCenterOfTile(); + + parameters.context.fillStyle = THEME.map.wires.pins[slot.type]; + parameters.context.beginCircle(worldPos.x, worldPos.y, 5); + parameters.context.fill(); + + parameters.context.lineWidth = 2; + parameters.context.fillStyle = "rgba(0, 0, 0, 0.1)"; + parameters.context.stroke(); + } + } +} diff --git a/src/js/game/themes/dark.json b/src/js/game/themes/dark.json index a544b399..231e4bcd 100644 --- a/src/js/game/themes/dark.json +++ b/src/js/game/themes/dark.json @@ -23,6 +23,13 @@ "chunkOverview": { "empty": "#444856", "filled": "#646b7d" + }, + + "wires": { + "overlay": "rgba(52, 150, 128, 0.5)", + "pins": { + "energyEjector": "#c425d7" + } } }, diff --git a/src/js/game/themes/light.json b/src/js/game/themes/light.json index 58231fa0..1356a2b6 100644 --- a/src/js/game/themes/light.json +++ b/src/js/game/themes/light.json @@ -24,6 +24,13 @@ "chunkOverview": { "empty": "#a6afbb", "filled": "#c5ccd6" + }, + + "wires": { + "overlay": "rgba(52, 150, 128, 0.8)", + "pins": { + "energyEjector": "#c425d7" + } } }, diff --git a/src/js/game/tutorial_goals.js b/src/js/game/tutorial_goals.js index c7fa581b..67ca17d7 100644 --- a/src/js/game/tutorial_goals.js +++ b/src/js/game/tutorial_goals.js @@ -23,6 +23,8 @@ export const enumHubGoalRewards = { reward_painter_quad: "reward_painter_quad", reward_storage: "reward_storage", + reward_wires: "reward_wires", + reward_blueprints: "reward_blueprints", reward_freeplay: "reward_freeplay", @@ -163,6 +165,13 @@ export const tutorialGoals = [ { shape: finalGameShape, required: 250000, + reward: enumHubGoalRewards.reward_wires, + }, + + // 19 + { + shape: finalGameShape, + required: 1, reward: enumHubGoalRewards.reward_freeplay, }, ]; diff --git a/translations/base-en.yaml b/translations/base-en.yaml index 39eb3cd3..930e5f29 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -290,6 +290,7 @@ ingame: copySelection: Copy clearSelection: Clear Selection pipette: Pipette + switchLayers: Switch Layers # Names of the colors, used for the color blind mode colors: @@ -522,6 +523,14 @@ buildings: name: Storage description: Stores excess items, up to a given capacity. Can be used as an overflow gate. + energy_generator: + deliver: Deliver + toGenerateEnergy: For energy + + default: + name: &energy_generator Energy Generator + description: Generates energy by consuming shapes. Each energy generator requires a different shapes. + storyRewards: # Those are the rewards gained from completing the store reward_cutter_and_trash: @@ -600,6 +609,10 @@ storyRewards: desc: >- This level gave you no reward, but the next one will!

PS: Better don't destroy your existing factory - You need all those shapes later again to unlock upgrades! + reward_wires: + title: Wires + desc: TODO + no_reward_freeplay: title: Next level desc: >- @@ -773,6 +786,7 @@ keybindings: toggleHud: Toggle HUD toggleFPSInfo: Toggle FPS and Debug Info + switchLayers: Switch layers exportScreenshot: Export whole Base as Image belt: *belt splitter: *splitter @@ -782,6 +796,7 @@ keybindings: rotater: *rotater stacker: *stacker mixer: *mixer + energy_generator: *energy_generator painter: *painter trash: *trash