diff --git a/artwork/buildings/buildings_2x1.psd b/artwork/buildings/buildings_2x1.psd index e0ef0a8b..117507a9 100644 --- a/artwork/buildings/buildings_2x1.psd +++ b/artwork/buildings/buildings_2x1.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6463b33b2cae50d1ecb11f0a845f06633aff331a5c2c0998d9eb93e40ad576b1 -size 636254 +oid sha256:7d05e340acb18f7b6b6f05fa7536f14179cda54a9ead0923fbb8e39c68da148c +size 703229 diff --git a/artwork/steam/announcement.png b/artwork/steam/announcement.png index 0f81fc7f..c9a04462 100644 Binary files a/artwork/steam/announcement.png and b/artwork/steam/announcement.png differ diff --git a/artwork/steam/announcement.psd b/artwork/steam/announcement.psd index 0cbc67a8..ecd7fd30 100644 --- a/artwork/steam/announcement.psd +++ b/artwork/steam/announcement.psd @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:92f3784f7a51e846da6f6fad53bc07d9525188a5133bab1a793eb6040a4c4341 -size 185127 +oid sha256:aac3ac709c7d6c9dc44c548a437cf9d499a0a699068307b51810d49edd9fd28e +size 220467 diff --git a/artwork/twitch/box-image.jpg b/artwork/twitch/box-image.jpg new file mode 100644 index 00000000..90526447 Binary files /dev/null and b/artwork/twitch/box-image.jpg differ diff --git a/artwork/twitch/box-image.psd b/artwork/twitch/box-image.psd new file mode 100644 index 00000000..ea3443fe --- /dev/null +++ b/artwork/twitch/box-image.psd @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0cd2d82917e470202d38d32277f7519ccfd1821cb21791266539ddf07486d1b +size 7314327 diff --git a/res_built/atlas/atlas0_10.json b/res_built/atlas/atlas0_10.json index 52fb27cc..b996ff34 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":95,"y":372,"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":112,"y":372,"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":26,"y":356,"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":43,"y":356,"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":26,"y":373,"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":3,"y":375,"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":43,"y":373,"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":60,"y":375,"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":77,"y":375,"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":313,"y":112,"w":13,"h":13}, + "frame": {"x":94,"y":389,"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":289,"y":26,"w":13,"h":13}, + "frame": {"x":111,"y":389,"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":306,"y":26,"w":13,"h":13}, + "frame": {"x":20,"y":390,"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":330,"y":112,"w":13,"h":13}, + "frame": {"x":3,"y":392,"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":347,"y":112,"w":13,"h":13}, + "frame": {"x":37,"y":390,"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":323,"y":26,"w":13,"h":13}, + "frame": {"x":54,"y":392,"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":364,"y":111,"w":13,"h":13}, + "frame": {"x":71,"y":392,"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":381,"y":111,"w":13,"h":13}, + "frame": {"x":20,"y":407,"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":340,"y":25,"w":13,"h":13}, + "frame": {"x":3,"y":409,"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":357,"y":23,"w":13,"h":13}, + "frame": {"x":37,"y":407,"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":374,"y":23,"w":13,"h":13}, + "frame": {"x":88,"y":406,"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":391,"y":23,"w":13,"h":13}, + "frame": {"x":105,"y":406,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -170,7 +170,7 @@ }, "sprites/blueprints/cutter-quad.png": { - "frame": {"x":82,"y":3,"w":76,"h":19}, + "frame": {"x":3,"y":49,"w":76,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":76,"h":19}, @@ -178,7 +178,7 @@ }, "sprites/blueprints/cutter.png": { - "frame": {"x":207,"y":43,"w":36,"h":19}, + "frame": {"x":3,"y":221,"w":36,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, @@ -186,7 +186,7 @@ }, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":285,"y":3,"w":19,"h":19}, + "frame": {"x":44,"y":175,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -194,7 +194,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":245,"y":89,"w":19,"h":19}, + "frame": {"x":44,"y":198,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -202,7 +202,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":166,"y":45,"w":37,"h":19}, + "frame": {"x":3,"y":175,"w":37,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, @@ -210,15 +210,23 @@ }, "sprites/blueprints/painter-double.png": { - "frame": {"x":84,"y":82,"w":38,"h":38}, + "frame": {"x":84,"y":3,"w":38,"h":38}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":38}, "sourceSize": {"w":38,"h":38} }, +"sprites/blueprints/painter-mirrored.png": +{ + "frame": {"x":83,"y":87,"w":38,"h":19}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":38,"h":19}, + "sourceSize": {"w":38,"h":19} +}, "sprites/blueprints/painter-quad.png": { - "frame": {"x":3,"y":83,"w":77,"h":19}, + "frame": {"x":3,"y":3,"w":77,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":77,"h":19}, @@ -226,7 +234,7 @@ }, "sprites/blueprints/painter.png": { - "frame": {"x":82,"y":49,"w":38,"h":19}, + "frame": {"x":82,"y":110,"w":38,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":19}, @@ -234,7 +242,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":268,"y":89,"w":19,"h":19}, + "frame": {"x":43,"y":221,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -242,7 +250,7 @@ }, "sprites/blueprints/rotater.png": { - "frame": {"x":285,"y":66,"w":19,"h":19}, + "frame": {"x":106,"y":225,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -250,7 +258,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":291,"y":89,"w":19,"h":19}, + "frame": {"x":43,"y":244,"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.png": { - "frame": {"x":287,"y":43,"w":19,"h":19}, + "frame": {"x":106,"y":248,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -266,7 +274,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":245,"y":3,"w":36,"h":19}, + "frame": {"x":66,"y":225,"w":36,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, @@ -274,7 +282,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":204,"y":3,"w":37,"h":19}, + "frame": {"x":81,"y":179,"w":37,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, @@ -282,7 +290,7 @@ }, "sprites/blueprints/trash-storage.png": { - "frame": {"x":126,"y":79,"w":35,"h":38}, + "frame": {"x":3,"y":267,"w":35,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":35,"h":38}, @@ -290,7 +298,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":308,"y":66,"w":19,"h":19}, + "frame": {"x":42,"y":267,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -298,7 +306,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":360,"y":89,"w":19,"h":18}, + "frame": {"x":72,"y":313,"w":19,"h":18}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":19,"h":18}, @@ -306,7 +314,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":354,"y":3,"w":19,"h":16}, + "frame": {"x":72,"y":335,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":3,"w":19,"h":16}, @@ -314,7 +322,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":356,"y":42,"w":19,"h":16}, + "frame": {"x":95,"y":339,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, @@ -322,7 +330,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":377,"y":62,"w":19,"h":16}, + "frame": {"x":26,"y":336,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, @@ -330,7 +338,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":262,"y":112,"w":13,"h":13}, + "frame": {"x":43,"y":373,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -338,7 +346,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":330,"y":112,"w":13,"h":13}, + "frame": {"x":3,"y":392,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -346,7 +354,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":204,"y":26,"w":13,"h":13}, + "frame": {"x":95,"y":372,"w":13,"h":13}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":13,"h":13}, @@ -354,7 +362,7 @@ }, "sprites/buildings/cutter-quad.png": { - "frame": {"x":82,"y":26,"w":76,"h":19}, + "frame": {"x":3,"y":72,"w":76,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":76,"h":19}, @@ -362,7 +370,7 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":245,"y":66,"w":36,"h":19}, + "frame": {"x":3,"y":244,"w":36,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, @@ -370,7 +378,7 @@ }, "sprites/buildings/hub.png": { - "frame": {"x":3,"y":3,"w":75,"h":76}, + "frame": {"x":3,"y":95,"w":75,"h":76}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":75,"h":76}, @@ -378,7 +386,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":314,"y":89,"w":19,"h":19}, + "frame": {"x":42,"y":290,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -386,7 +394,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":310,"y":43,"w":19,"h":19}, + "frame": {"x":104,"y":271,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -394,7 +402,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":204,"y":68,"w":37,"h":19}, + "frame": {"x":81,"y":202,"w":37,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, @@ -402,15 +410,23 @@ }, "sprites/buildings/painter-double.png": { - "frame": {"x":162,"y":3,"w":38,"h":38}, + "frame": {"x":84,"y":45,"w":38,"h":38}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":38}, "sourceSize": {"w":38,"h":38} }, +"sprites/buildings/painter-mirrored.png": +{ + "frame": {"x":82,"y":133,"w":38,"h":19}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":38,"h":19}, + "sourceSize": {"w":38,"h":19} +}, "sprites/buildings/painter-quad.png": { - "frame": {"x":3,"y":106,"w":77,"h":19}, + "frame": {"x":3,"y":26,"w":77,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":77,"h":19}, @@ -418,7 +434,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":124,"y":49,"w":38,"h":19}, + "frame": {"x":82,"y":156,"w":38,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":38,"h":19}, @@ -426,7 +442,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":331,"y":66,"w":19,"h":19}, + "frame": {"x":104,"y":294,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -434,7 +450,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":337,"y":89,"w":19,"h":19}, + "frame": {"x":3,"y":309,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -442,7 +458,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":308,"y":3,"w":19,"h":19}, + "frame": {"x":26,"y":313,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -450,7 +466,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":333,"y":43,"w":19,"h":19}, + "frame": {"x":3,"y":332,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -458,7 +474,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":247,"y":43,"w":36,"h":19}, + "frame": {"x":66,"y":248,"w":36,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":36,"h":19}, @@ -466,7 +482,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":204,"y":91,"w":37,"h":19}, + "frame": {"x":3,"y":198,"w":37,"h":19}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":37,"h":19}, @@ -474,7 +490,7 @@ }, "sprites/buildings/trash-storage.png": { - "frame": {"x":165,"y":72,"w":35,"h":38}, + "frame": {"x":65,"y":271,"w":35,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":35,"h":38}, @@ -482,7 +498,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":354,"y":66,"w":19,"h":19}, + "frame": {"x":49,"y":313,"w":19,"h":19}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":19}, @@ -490,7 +506,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":331,"y":3,"w":19,"h":18}, + "frame": {"x":95,"y":317,"w":19,"h":18}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":19,"h":18}, @@ -498,7 +514,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":383,"y":82,"w":19,"h":16}, + "frame": {"x":3,"y":355,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":3,"w":19,"h":16}, @@ -506,7 +522,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":377,"y":3,"w":19,"h":16}, + "frame": {"x":49,"y":336,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, @@ -514,7 +530,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":379,"y":40,"w":19,"h":16}, + "frame": {"x":72,"y":355,"w":19,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":19,"h":16}, @@ -522,7 +538,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":82,"y":72,"w":6,"h":6}, + "frame": {"x":67,"y":203,"w":6,"h":6}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, @@ -530,7 +546,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":92,"y":72,"w":6,"h":6}, + "frame": {"x":67,"y":213,"w":6,"h":6}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":6,"h":6}, @@ -538,7 +554,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":102,"y":72,"w":3,"h":3}, + "frame": {"x":122,"y":179,"w":3,"h":3}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, @@ -546,7 +562,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":109,"y":72,"w":3,"h":3}, + "frame": {"x":122,"y":186,"w":3,"h":3}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, @@ -554,7 +570,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":116,"y":72,"w":3,"h":3}, + "frame": {"x":122,"y":193,"w":3,"h":3}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, @@ -562,15 +578,23 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":187,"y":114,"w":10,"h":10}, + "frame": {"x":67,"y":175,"w":10,"h":10}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":10,"h":10}, "sourceSize": {"w":10,"h":10} }, +"sprites/misc/hub_direction_indicator.png": +{ + "frame": {"x":122,"y":200,"w":3,"h":3}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, + "sourceSize": {"w":3,"h":3} +}, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":187,"y":114,"w":10,"h":10}, + "frame": {"x":67,"y":175,"w":10,"h":10}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":10,"h":10}, @@ -578,7 +602,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":201,"y":114,"w":10,"h":10}, + "frame": {"x":67,"y":189,"w":10,"h":10}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":10,"h":10}, @@ -586,7 +610,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":165,"y":114,"w":18,"h":9}, + "frame": {"x":95,"y":359,"w":18,"h":9}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":18,"h":9}, @@ -594,7 +618,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":123,"y":72,"w":3,"h":3}, + "frame": {"x":122,"y":207,"w":3,"h":3}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":3,"h":3}, @@ -605,8 +629,8 @@ "version": "1.0", "image": "atlas0_10.png", "format": "RGBA8888", - "size": {"w":407,"h":128}, + "size": {"w":128,"h":425}, "scale": "0.1", - "smartupdate": "$TexturePacker:SmartUpdate:3dd7a89f30024dd4787ad4af6b14588a:9ba11f8b02134c4376ab4e0a44f8b850:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:d89b36ef407ab57010cdc305dbead00b:d53090b6a8e7ddd3fb089e71bf9d20ca:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_10.png b/res_built/atlas/atlas0_10.png index 35d9ea6e..3d14205f 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 ed6e5338..15109c86 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":1871,"y":1504,"w":100,"h":126}, + "frame": {"x":1876,"y":1166,"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":1871,"y":240,"w":100,"h":126}, + "frame": {"x":1876,"y":1296,"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":1844,"y":394,"w":100,"h":126}, + "frame": {"x":1869,"y":1543,"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":1871,"y":1634,"w":100,"h":126}, + "frame": {"x":1857,"y":395,"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":1433,"y":785,"w":100,"h":126}, + "frame": {"x":1865,"y":1690,"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":917,"y":1564,"w":100,"h":126}, + "frame": {"x":920,"y":1370,"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":1021,"y":1563,"w":113,"h":113}, + "frame": {"x":1870,"y":1426,"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":1138,"y":1563,"w":113,"h":113}, + "frame": {"x":920,"y":1500,"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":1255,"y":1563,"w":113,"h":113}, + "frame": {"x":935,"y":1617,"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":1372,"y":1562,"w":113,"h":113}, + "frame": {"x":935,"y":1734,"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":1489,"y":1562,"w":113,"h":113}, + "frame": {"x":1052,"y":1721,"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":1021,"y":1680,"w":113,"h":113}, + "frame": {"x":1169,"y":1721,"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":1138,"y":1680,"w":113,"h":113}, + "frame": {"x":1286,"y":1721,"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":1255,"y":1680,"w":113,"h":113}, + "frame": {"x":1403,"y":1721,"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":1372,"y":1679,"w":113,"h":113}, + "frame": {"x":1520,"y":1721,"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":1489,"y":1679,"w":113,"h":113}, + "frame": {"x":1052,"y":1552,"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":1606,"y":1676,"w":113,"h":113}, + "frame": {"x":1169,"y":1552,"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":1723,"y":1676,"w":113,"h":113}, + "frame": {"x":1286,"y":1554,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -162,7 +162,7 @@ }, "sprites/blueprints/belt_top.png": { - "frame": {"x":1871,"y":1374,"w":102,"h":126}, + "frame": {"x":1871,"y":240,"w":102,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":12,"y":0,"w":102,"h":126}, @@ -178,7 +178,7 @@ }, "sprites/blueprints/cutter.png": { - "frame": {"x":726,"y":979,"w":341,"h":191}, + "frame": {"x":1433,"y":785,"w":341,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":0,"w":341,"h":191}, @@ -186,7 +186,7 @@ }, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":1500,"y":1368,"w":182,"h":190}, + "frame": {"x":749,"y":1655,"w":182,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":182,"h":190}, @@ -194,7 +194,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":1437,"y":590,"w":182,"h":190}, + "frame": {"x":1690,"y":1174,"w":182,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":182,"h":190}, @@ -202,7 +202,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":735,"y":590,"w":347,"h":191}, + "frame": {"x":1123,"y":590,"w":347,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":18,"y":0,"w":347,"h":191}, @@ -216,6 +216,14 @@ "spriteSourceSize": {"x":0,"y":0,"w":384,"h":382}, "sourceSize": {"w":384,"h":384} }, +"sprites/blueprints/painter-mirrored.png": +{ + "frame": {"x":1485,"y":3,"w":384,"h":192}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":384,"h":192}, + "sourceSize": {"w":384,"h":192} +}, "sprites/blueprints/painter-quad.png": { "frame": {"x":735,"y":3,"w":746,"h":192}, @@ -226,7 +234,7 @@ }, "sprites/blueprints/painter.png": { - "frame": {"x":1485,"y":3,"w":384,"h":192}, + "frame": {"x":1483,"y":199,"w":384,"h":192}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":192}, @@ -234,7 +242,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":1116,"y":1368,"w":189,"h":191}, + "frame": {"x":922,"y":1174,"w":189,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":189,"h":191}, @@ -242,7 +250,7 @@ }, "sprites/blueprints/rotater.png": { - "frame": {"x":724,"y":1564,"w":189,"h":191}, + "frame": {"x":1115,"y":1173,"w":189,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":189,"h":191}, @@ -250,7 +258,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":1652,"y":394,"w":188,"h":182}, + "frame": {"x":1756,"y":980,"w":188,"h":182}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":4,"w":188,"h":182}, @@ -258,7 +266,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":1623,"y":587,"w":185,"h":182}, + "frame": {"x":1306,"y":1368,"w":185,"h":182}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":4,"w":185,"h":182}, @@ -266,7 +274,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":1071,"y":979,"w":340,"h":191}, + "frame": {"x":726,"y":979,"w":340,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":23,"y":0,"w":340,"h":191}, @@ -274,7 +282,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":1086,"y":590,"w":347,"h":191}, + "frame": {"x":1474,"y":590,"w":347,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":18,"y":0,"w":347,"h":191}, @@ -290,7 +298,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":724,"y":1368,"w":192,"h":192}, + "frame": {"x":726,"y":1174,"w":192,"h":192}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":192}, @@ -298,7 +306,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":1791,"y":1035,"w":183,"h":166}, + "frame": {"x":1683,"y":1368,"w":183,"h":166}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":26,"w":183,"h":166}, @@ -306,7 +314,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":1812,"y":580,"w":182,"h":148}, + "frame": {"x":192,"y":1702,"w":182,"h":148}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":44,"w":182,"h":148}, @@ -314,7 +322,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":1623,"y":773,"w":185,"h":148}, + "frame": {"x":3,"y":1702,"w":185,"h":148}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":185,"h":148}, @@ -322,7 +330,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":1812,"y":732,"w":182,"h":148}, + "frame": {"x":1683,"y":1538,"w":182,"h":148}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":182,"h":148}, @@ -330,7 +338,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":1021,"y":1563,"w":113,"h":113}, + "frame": {"x":1870,"y":1426,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":13,"w":113,"h":113}, @@ -338,7 +346,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":1138,"y":1680,"w":113,"h":113}, + "frame": {"x":1286,"y":1721,"w":113,"h":113}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":13,"w":113,"h":113}, @@ -346,7 +354,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":1871,"y":1504,"w":100,"h":126}, + "frame": {"x":1876,"y":1166,"w":100,"h":126}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":100,"h":126}, @@ -362,7 +370,7 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":726,"y":1174,"w":339,"h":190}, + "frame": {"x":1070,"y":979,"w":339,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":24,"y":0,"w":339,"h":190}, @@ -378,7 +386,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":1469,"y":395,"w":179,"h":188}, + "frame": {"x":1825,"y":590,"w":179,"h":188}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":1,"w":179,"h":188}, @@ -386,7 +394,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":1415,"y":979,"w":179,"h":189}, + "frame": {"x":1778,"y":785,"w":179,"h":189}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":179,"h":189}, @@ -408,6 +416,14 @@ "spriteSourceSize": {"x":0,"y":0,"w":384,"h":381}, "sourceSize": {"w":384,"h":384} }, +"sprites/buildings/painter-mirrored.png": +{ + "frame": {"x":735,"y":590,"w":384,"h":191}, + "rotated": false, + "trimmed": true, + "spriteSourceSize": {"x":0,"y":0,"w":384,"h":191}, + "sourceSize": {"w":384,"h":192} +}, "sprites/buildings/painter-quad.png": { "frame": {"x":735,"y":199,"w":744,"h":192}, @@ -418,7 +434,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":1483,"y":199,"w":384,"h":191}, + "frame": {"x":1469,"y":395,"w":384,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":384,"h":191}, @@ -426,7 +442,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":1309,"y":1368,"w":187,"h":190}, + "frame": {"x":1308,"y":1174,"w":187,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":187,"h":190}, @@ -434,7 +450,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":1412,"y":1174,"w":187,"h":190}, + "frame": {"x":1499,"y":1174,"w":187,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":187,"h":190}, @@ -442,7 +458,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":1598,"y":925,"w":187,"h":180}, + "frame": {"x":1115,"y":1368,"w":187,"h":180}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":5,"w":187,"h":180}, @@ -450,7 +466,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":1603,"y":1109,"w":184,"h":180}, + "frame": {"x":1495,"y":1368,"w":184,"h":180}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":5,"w":184,"h":180}, @@ -458,7 +474,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":1069,"y":1174,"w":339,"h":190}, + "frame": {"x":1413,"y":980,"w":339,"h":190}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":24,"y":0,"w":339,"h":190}, @@ -482,7 +498,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":920,"y":1368,"w":192,"h":191}, + "frame": {"x":724,"y":1370,"w":192,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":192,"h":191}, @@ -490,7 +506,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":1791,"y":1205,"w":181,"h":165}, + "frame": {"x":1495,"y":1552,"w":181,"h":165}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":27,"w":181,"h":165}, @@ -498,7 +514,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":1686,"y":1374,"w":181,"h":147}, + "frame": {"x":564,"y":1707,"w":181,"h":147}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":45,"w":181,"h":147}, @@ -506,7 +522,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":1812,"y":884,"w":182,"h":147}, + "frame": {"x":378,"y":1707,"w":182,"h":147}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":182,"h":147}, @@ -514,7 +530,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":1686,"y":1525,"w":181,"h":147}, + "frame": {"x":1680,"y":1690,"w":181,"h":147}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":181,"h":147}, @@ -522,7 +538,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":1603,"y":1293,"w":50,"h":64}, + "frame": {"x":1961,"y":782,"w":50,"h":64}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":50,"h":64}, @@ -530,7 +546,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":1606,"y":1562,"w":50,"h":64}, + "frame": {"x":1961,"y":850,"w":50,"h":64}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":0,"w":50,"h":64}, @@ -538,7 +554,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":353,"y":1702,"w":24,"h":32}, + "frame": {"x":1857,"y":525,"w":24,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":24,"h":32}, @@ -546,7 +562,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":1433,"y":915,"w":28,"h":28}, + "frame": {"x":1052,"y":1669,"w":28,"h":28}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":4,"w":28,"h":28}, @@ -554,7 +570,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":1433,"y":947,"w":28,"h":28}, + "frame": {"x":1885,"y":525,"w":28,"h":28}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":4,"w":28,"h":28}, @@ -562,15 +578,23 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":267,"y":1702,"w":82,"h":82}, + "frame": {"x":1403,"y":1554,"w":82,"h":82}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":7,"w":82,"h":82}, "sourceSize": {"w":96,"h":96} }, +"sprites/misc/hub_direction_indicator.png": +{ + "frame": {"x":1961,"y":918,"w":32,"h":32}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32}, + "sourceSize": {"w":32,"h":32} +}, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":267,"y":1702,"w":82,"h":82}, + "frame": {"x":1403,"y":1554,"w":82,"h":82}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":7,"y":7,"w":82,"h":82}, @@ -578,7 +602,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":183,"y":1702,"w":80,"h":96}, + "frame": {"x":1024,"y":1369,"w":80,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":80,"h":96}, @@ -586,7 +610,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":3,"y":1702,"w":176,"h":86}, + "frame": {"x":724,"y":1565,"w":176,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":4,"w":176,"h":86}, @@ -594,7 +618,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":1844,"y":524,"w":24,"h":32}, + "frame": {"x":1637,"y":1721,"w":24,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":24,"h":32}, @@ -605,8 +629,8 @@ "version": "1.0", "image": "atlas0_100.png", "format": "RGBA8888", - "size": {"w":1997,"h":1801}, + "size": {"w":2014,"h":1857}, "scale": "1", - "smartupdate": "$TexturePacker:SmartUpdate:3dd7a89f30024dd4787ad4af6b14588a:9ba11f8b02134c4376ab4e0a44f8b850:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:d89b36ef407ab57010cdc305dbead00b:d53090b6a8e7ddd3fb089e71bf9d20ca:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_100.png b/res_built/atlas/atlas0_100.png index 570464fe..5b047a2b 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 2969f3de..5d59479a 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":479,"y":103,"w":28,"h":32}, + "frame": {"x":825,"y":210,"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":479,"y":139,"w":28,"h":32}, + "frame": {"x":857,"y":210,"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":479,"y":175,"w":28,"h":32}, + "frame": {"x":889,"y":210,"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":262,"y":331,"w":28,"h":32}, + "frame": {"x":921,"y":210,"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":285,"y":383,"w":28,"h":32}, + "frame": {"x":546,"y":207,"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":317,"y":383,"w":28,"h":32}, + "frame": {"x":578,"y":206,"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":343,"y":159,"w":30,"h":30}, + "frame": {"x":240,"y":207,"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":343,"y":193,"w":30,"h":30}, + "frame": {"x":274,"y":207,"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":477,"y":211,"w":30,"h":30}, + "frame": {"x":308,"y":207,"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":477,"y":245,"w":30,"h":30}, + "frame": {"x":342,"y":207,"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":469,"y":279,"w":30,"h":30}, + "frame": {"x":376,"y":207,"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":3,"y":331,"w":30,"h":30}, + "frame": {"x":410,"y":207,"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":37,"y":331,"w":30,"h":30}, + "frame": {"x":444,"y":207,"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":71,"y":331,"w":30,"h":30}, + "frame": {"x":478,"y":207,"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":3,"y":296,"w":30,"h":30}, + "frame": {"x":512,"y":207,"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":37,"y":296,"w":30,"h":30}, + "frame": {"x":610,"y":211,"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":71,"y":296,"w":30,"h":30}, + "frame": {"x":644,"y":211,"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":105,"y":331,"w":30,"h":30}, + "frame": {"x":678,"y":211,"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":139,"y":331,"w":30,"h":30}, + "frame": {"x":712,"y":211,"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":173,"y":331,"w":30,"h":30}, + "frame": {"x":746,"y":211,"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":467,"y":416,"w":28,"h":32}, + "frame": {"x":1051,"y":101,"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":191,"y":55,"w":184,"h":48}, + "frame": {"x":3,"y":192,"w":184,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":184,"h":48}, @@ -178,7 +178,7 @@ }, "sprites/blueprints/cutter.png": { - "frame": {"x":95,"y":244,"w":87,"h":48}, + "frame": {"x":662,"y":107,"w":87,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":87,"h":48}, @@ -186,7 +186,7 @@ }, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":262,"y":419,"w":47,"h":48}, + "frame": {"x":621,"y":159,"w":47,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, @@ -194,7 +194,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":313,"y":419,"w":47,"h":48}, + "frame": {"x":672,"y":159,"w":47,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, @@ -202,7 +202,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":191,"y":211,"w":89,"h":48}, + "frame": {"x":583,"y":55,"w":89,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":89,"h":48}, @@ -210,15 +210,23 @@ }, "sprites/blueprints/painter-double.png": { - "frame": {"x":387,"y":3,"w":96,"h":96}, + "frame": {"x":191,"y":107,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, "sourceSize": {"w":96,"h":96} }, +"sprites/blueprints/painter-mirrored.png": +{ + "frame": {"x":383,"y":55,"w":96,"h":48}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":96,"h":48}, + "sourceSize": {"w":96,"h":48} +}, "sprites/blueprints/painter-quad.png": { - "frame": {"x":3,"y":3,"w":188,"h":48}, + "frame": {"x":191,"y":3,"w":188,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":188,"h":48}, @@ -226,7 +234,7 @@ }, "sprites/blueprints/painter.png": { - "frame": {"x":191,"y":159,"w":96,"h":48}, + "frame": {"x":571,"y":3,"w":96,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":48}, @@ -234,7 +242,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":291,"y":159,"w":48,"h":48}, + "frame": {"x":954,"y":3,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -242,7 +250,7 @@ }, "sprites/blueprints/rotater.png": { - "frame": {"x":459,"y":313,"w":48,"h":48}, + "frame": {"x":859,"y":55,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -250,7 +258,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":210,"y":315,"w":48,"h":48}, + "frame": {"x":844,"y":107,"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.png": { - "frame": {"x":415,"y":416,"w":47,"h":47}, + "frame": {"x":825,"y":159,"w":47,"h":47}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":47}, @@ -266,7 +274,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":186,"y":263,"w":87,"h":48}, + "frame": {"x":863,"y":3,"w":87,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":87,"h":48}, @@ -274,7 +282,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":284,"y":227,"w":89,"h":48}, + "frame": {"x":569,"y":107,"w":89,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":89,"h":48}, @@ -282,7 +290,7 @@ }, "sprites/blueprints/trash-storage.png": { - "frame": {"x":3,"y":365,"w":85,"h":96}, + "frame": {"x":391,"y":107,"w":85,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":85,"h":96}, @@ -290,7 +298,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":181,"y":391,"w":48,"h":48}, + "frame": {"x":1006,"y":3,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -298,7 +306,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":3,"y":465,"w":48,"h":43}, + "frame": {"x":569,"y":159,"w":48,"h":43}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":5,"w":48,"h":43}, @@ -306,7 +314,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":106,"y":465,"w":48,"h":38}, + "frame": {"x":927,"y":159,"w":48,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":10,"w":48,"h":38}, @@ -314,7 +322,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":158,"y":465,"w":48,"h":38}, + "frame": {"x":979,"y":158,"w":48,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":38}, @@ -322,7 +330,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":262,"y":471,"w":48,"h":38}, + "frame": {"x":953,"y":201,"w":48,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":38}, @@ -330,7 +338,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":343,"y":159,"w":30,"h":30}, + "frame": {"x":240,"y":207,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":30,"h":30}, @@ -338,7 +346,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":37,"y":331,"w":30,"h":30}, + "frame": {"x":444,"y":207,"w":30,"h":30}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":30,"h":30}, @@ -346,7 +354,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":479,"y":103,"w":28,"h":32}, + "frame": {"x":825,"y":210,"w":28,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":28,"h":32}, @@ -354,7 +362,7 @@ }, "sprites/buildings/cutter-quad.png": { - "frame": {"x":191,"y":107,"w":184,"h":48}, + "frame": {"x":383,"y":3,"w":184,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":184,"h":48}, @@ -362,7 +370,7 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":277,"y":279,"w":87,"h":48}, + "frame": {"x":768,"y":55,"w":87,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":87,"h":48}, @@ -370,7 +378,7 @@ }, "sprites/buildings/hub.png": { - "frame": {"x":3,"y":55,"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}, @@ -378,7 +386,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":349,"y":365,"w":47,"h":48}, + "frame": {"x":723,"y":159,"w":47,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, @@ -386,7 +394,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":364,"y":417,"w":47,"h":48}, + "frame": {"x":774,"y":159,"w":47,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":48}, @@ -394,7 +402,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":377,"y":255,"w":88,"h":48}, + "frame": {"x":771,"y":3,"w":88,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":88,"h":48}, @@ -402,15 +410,23 @@ }, "sprites/buildings/painter-double.png": { - "frame": {"x":379,"y":103,"w":96,"h":96}, + "frame": {"x":291,"y":107,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, "sourceSize": {"w":96,"h":96} }, +"sprites/buildings/painter-mirrored.png": +{ + "frame": {"x":483,"y":55,"w":96,"h":48}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":96,"h":48}, + "sourceSize": {"w":96,"h":48} +}, "sprites/buildings/painter-quad.png": { - "frame": {"x":195,"y":3,"w":188,"h":48}, + "frame": {"x":191,"y":55,"w":188,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":188,"h":48}, @@ -418,7 +434,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":377,"y":203,"w":96,"h":48}, + "frame": {"x":671,"y":3,"w":96,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":48}, @@ -426,7 +442,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":210,"y":443,"w":48,"h":48}, + "frame": {"x":911,"y":55,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -434,7 +450,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":233,"y":367,"w":48,"h":48}, + "frame": {"x":896,"y":107,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -442,7 +458,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":400,"y":365,"w":48,"h":47}, + "frame": {"x":948,"y":107,"w":48,"h":47}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":47}, @@ -450,7 +466,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":452,"y":365,"w":47,"h":47}, + "frame": {"x":876,"y":159,"w":47,"h":47}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":47}, @@ -458,7 +474,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":368,"y":307,"w":87,"h":48}, + "frame": {"x":753,"y":107,"w":87,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":87,"h":48}, @@ -466,7 +482,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":3,"y":244,"w":88,"h":48}, + "frame": {"x":676,"y":55,"w":88,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":88,"h":48}, @@ -474,7 +490,7 @@ }, "sprites/buildings/trash-storage.png": { - "frame": {"x":92,"y":365,"w":85,"h":96}, + "frame": {"x":480,"y":107,"w":85,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":85,"h":96}, @@ -482,7 +498,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":294,"y":331,"w":48,"h":48}, + "frame": {"x":963,"y":55,"w":48,"h":48}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":48,"h":48}, @@ -490,7 +506,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":55,"y":465,"w":47,"h":42}, + "frame": {"x":1015,"y":55,"w":47,"h":42}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":6,"w":47,"h":42}, @@ -498,7 +514,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":314,"y":471,"w":47,"h":38}, + "frame": {"x":1005,"y":200,"w":47,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":10,"w":47,"h":38}, @@ -506,7 +522,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":365,"y":469,"w":47,"h":38}, + "frame": {"x":1000,"y":107,"w":47,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":38}, @@ -514,7 +530,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":416,"y":467,"w":47,"h":38}, + "frame": {"x":1031,"y":149,"w":47,"h":38}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":47,"h":38}, @@ -522,7 +538,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":487,"y":3,"w":14,"h":16}, + "frame": {"x":1058,"y":31,"w":14,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, @@ -530,7 +546,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":487,"y":23,"w":14,"h":16}, + "frame": {"x":806,"y":211,"w":14,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, @@ -538,7 +554,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":487,"y":43,"w":8,"h":8}, + "frame": {"x":1051,"y":137,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -546,7 +562,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":499,"y":43,"w":8,"h":8}, + "frame": {"x":1063,"y":137,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -554,7 +570,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":487,"y":55,"w":8,"h":8}, + "frame": {"x":191,"y":234,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -562,15 +578,23 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":181,"y":365,"w":22,"h":22}, + "frame": {"x":780,"y":211,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":22,"h":22}, "sourceSize": {"w":24,"h":24} }, +"sprites/misc/hub_direction_indicator.png": +{ + "frame": {"x":203,"y":234,"w":8,"h":8}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, + "sourceSize": {"w":8,"h":8} +}, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":181,"y":365,"w":22,"h":22}, + "frame": {"x":780,"y":211,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":22,"h":22}, @@ -578,7 +602,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":105,"y":296,"w":22,"h":24}, + "frame": {"x":1058,"y":3,"w":22,"h":24}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":22,"h":24}, @@ -586,7 +610,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":131,"y":296,"w":45,"h":23}, + "frame": {"x":191,"y":207,"w":45,"h":23}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":45,"h":23}, @@ -594,7 +618,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":499,"y":55,"w":8,"h":8}, + "frame": {"x":215,"y":234,"w":8,"h":8}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":8,"h":8}, @@ -605,8 +629,8 @@ "version": "1.0", "image": "atlas0_25.png", "format": "RGBA8888", - "size": {"w":510,"h":512}, + "size": {"w":1083,"h":245}, "scale": "0.25", - "smartupdate": "$TexturePacker:SmartUpdate:3dd7a89f30024dd4787ad4af6b14588a:9ba11f8b02134c4376ab4e0a44f8b850:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:d89b36ef407ab57010cdc305dbead00b:d53090b6a8e7ddd3fb089e71bf9d20ca:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_25.png b/res_built/atlas/atlas0_25.png index c7c7041e..e142b7de 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 8fd9b5ba..63da20cc 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":49,"y":1765,"w":51,"h":63}, + "frame": {"x":1966,"y":3,"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":3,"y":1902,"w":51,"h":63}, + "frame": {"x":1835,"y":203,"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":58,"y":1902,"w":51,"h":63}, + "frame": {"x":1879,"y":304,"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":113,"y":1887,"w":51,"h":63}, + "frame": {"x":1934,"y":304,"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":168,"y":1830,"w":51,"h":63}, + "frame": {"x":1844,"y":381,"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":168,"y":1897,"w":51,"h":63}, + "frame": {"x":1899,"y":371,"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":104,"y":1765,"w":57,"h":57}, + "frame": {"x":1890,"y":243,"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":165,"y":1769,"w":57,"h":57}, + "frame": {"x":1951,"y":243,"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":104,"y":1826,"w":57,"h":57}, + "frame": {"x":1783,"y":381,"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":226,"y":1782,"w":57,"h":57}, + "frame": {"x":1954,"y":371,"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":287,"y":1782,"w":57,"h":57}, + "frame": {"x":1954,"y":432,"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":348,"y":1835,"w":57,"h":57}, + "frame": {"x":1363,"y":403,"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":409,"y":1835,"w":57,"h":57}, + "frame": {"x":1424,"y":403,"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":223,"y":1896,"w":57,"h":57}, + "frame": {"x":1485,"y":403,"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":284,"y":1843,"w":57,"h":57}, + "frame": {"x":1546,"y":403,"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":284,"y":1904,"w":57,"h":57}, + "frame": {"x":1607,"y":402,"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":345,"y":1896,"w":57,"h":57}, + "frame": {"x":1668,"y":402,"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":406,"y":1896,"w":57,"h":57}, + "frame": {"x":1952,"y":181,"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":178,"y":1707,"w":58,"h":58}, + "frame": {"x":1301,"y":400,"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":370,"y":1773,"w":58,"h":58}, + "frame": {"x":1890,"y":181,"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":3,"y":1835,"w":53,"h":63}, + "frame": {"x":1151,"y":403,"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":574,"w":366,"h":96}, + "frame": {"x":3,"y":374,"w":366,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":366,"h":96}, @@ -178,7 +178,7 @@ }, "sprites/blueprints/cutter.png": { - "frame": {"x":3,"y":1465,"w":172,"h":96}, + "frame": {"x":1285,"y":203,"w":172,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":172,"h":96}, @@ -186,7 +186,7 @@ }, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":179,"y":1507,"w":92,"h":96}, + "frame": {"x":1401,"y":303,"w":92,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":96}, @@ -194,7 +194,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":178,"y":1607,"w":92,"h":96}, + "frame": {"x":1497,"y":303,"w":92,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":96}, @@ -202,7 +202,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":296,"y":1217,"w":175,"h":96}, + "frame": {"x":1143,"y":103,"w":175,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":175,"h":96}, @@ -210,15 +210,23 @@ }, "sprites/blueprints/painter-double.png": { - "frame": {"x":3,"y":774,"w":192,"h":192}, + "frame": {"x":373,"y":203,"w":192,"h":192}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":192}, "sourceSize": {"w":192,"h":192} }, +"sprites/blueprints/painter-mirrored.png": +{ + "frame": {"x":751,"y":103,"w":192,"h":96}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, + "sourceSize": {"w":192,"h":96} +}, "sprites/blueprints/painter-quad.png": { - "frame": {"x":3,"y":3,"w":374,"h":96}, + "frame": {"x":373,"y":3,"w":374,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":374,"h":96}, @@ -226,7 +234,7 @@ }, "sprites/blueprints/painter.png": { - "frame": {"x":3,"y":1165,"w":192,"h":96}, + "frame": {"x":1121,"y":3,"w":192,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, @@ -234,7 +242,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":373,"y":249,"w":96,"h":96}, + "frame": {"x":1866,"y":3,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -242,7 +250,7 @@ }, "sprites/blueprints/rotater.png": { - "frame": {"x":373,"y":349,"w":96,"h":96}, + "frame": {"x":1675,"y":103,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -250,7 +258,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":370,"y":849,"w":95,"h":93}, + "frame": {"x":1205,"y":303,"w":95,"h":93}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":95,"h":93}, @@ -258,7 +266,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":369,"y":1120,"w":93,"h":93}, + "frame": {"x":1304,"y":303,"w":93,"h":93}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":1,"w":93,"h":93}, @@ -266,7 +274,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":3,"y":1565,"w":171,"h":96}, + "frame": {"x":1691,"y":3,"w":171,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":171,"h":96}, @@ -274,7 +282,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":296,"y":1317,"w":175,"h":96}, + "frame": {"x":1106,"y":203,"w":175,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":175,"h":96}, @@ -282,7 +290,7 @@ }, "sprites/blueprints/trash-storage.png": { - "frame": {"x":199,"y":774,"w":167,"h":192}, + "frame": {"x":765,"y":203,"w":167,"h":192}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":0,"w":167,"h":192}, @@ -290,7 +298,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":373,"y":449,"w":96,"h":96}, + "frame": {"x":1636,"y":203,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -298,7 +306,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":199,"y":1261,"w":93,"h":84}, + "frame": {"x":764,"y":399,"w":93,"h":84}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":12,"w":93,"h":84}, @@ -306,7 +314,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":199,"y":1349,"w":93,"h":75}, + "frame": {"x":373,"y":399,"w":93,"h":75}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":21,"w":93,"h":75}, @@ -314,7 +322,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":369,"y":1041,"w":94,"h":75}, + "frame": {"x":957,"y":399,"w":94,"h":75}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":94,"h":75}, @@ -322,7 +330,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":181,"y":1428,"w":93,"h":75}, + "frame": {"x":470,"y":399,"w":93,"h":75}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":93,"h":75}, @@ -330,7 +338,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":104,"y":1765,"w":57,"h":57}, + "frame": {"x":1890,"y":243,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":6,"w":57,"h":57}, @@ -338,7 +346,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":409,"y":1835,"w":57,"h":57}, + "frame": {"x":1424,"y":403,"w":57,"h":57}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":6,"w":57,"h":57}, @@ -346,7 +354,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":49,"y":1765,"w":51,"h":63}, + "frame": {"x":1966,"y":3,"w":51,"h":63}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":6,"y":0,"w":51,"h":63}, @@ -354,7 +362,7 @@ }, "sprites/buildings/cutter-quad.png": { - "frame": {"x":3,"y":674,"w":366,"h":96}, + "frame": {"x":751,"y":3,"w":366,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":366,"h":96}, @@ -362,7 +370,7 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":275,"y":1517,"w":171,"h":96}, + "frame": {"x":1500,"y":103,"w":171,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":171,"h":96}, @@ -370,7 +378,7 @@ }, "sprites/buildings/hub.png": { - "frame": {"x":3,"y":203,"w":366,"h":367}, + "frame": {"x":3,"y":3,"w":366,"h":367}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":10,"w":366,"h":367}, @@ -378,7 +386,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":381,"y":3,"w":91,"h":95}, + "frame": {"x":1593,"y":303,"w":91,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":91,"h":95}, @@ -386,7 +394,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":381,"y":102,"w":91,"h":95}, + "frame": {"x":1688,"y":303,"w":91,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":91,"h":95}, @@ -394,7 +402,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":296,"y":1417,"w":174,"h":96}, + "frame": {"x":1513,"y":3,"w":174,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":174,"h":96}, @@ -402,15 +410,23 @@ }, "sprites/buildings/painter-double.png": { - "frame": {"x":3,"y":970,"w":192,"h":191}, + "frame": {"x":569,"y":203,"w":192,"h":191}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":191}, "sourceSize": {"w":192,"h":192} }, +"sprites/buildings/painter-mirrored.png": +{ + "frame": {"x":947,"y":103,"w":192,"h":96}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, + "sourceSize": {"w":192,"h":96} +}, "sprites/buildings/painter-quad.png": { - "frame": {"x":3,"y":103,"w":374,"h":96}, + "frame": {"x":373,"y":103,"w":374,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":374,"h":96}, @@ -418,7 +434,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":3,"y":1265,"w":192,"h":96}, + "frame": {"x":1317,"y":3,"w":192,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":192,"h":96}, @@ -426,7 +442,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":373,"y":649,"w":95,"h":96}, + "frame": {"x":1736,"y":203,"w":95,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":95,"h":96}, @@ -434,7 +450,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":373,"y":749,"w":95,"h":96}, + "frame": {"x":1106,"y":303,"w":95,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":95,"h":96}, @@ -442,7 +458,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":370,"y":946,"w":94,"h":91}, + "frame": {"x":569,"y":398,"w":94,"h":91}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":94,"h":91}, @@ -450,7 +466,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":199,"y":1166,"w":93,"h":91}, + "frame": {"x":667,"y":398,"w":93,"h":91}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":2,"w":93,"h":91}, @@ -458,7 +474,7 @@ }, "sprites/buildings/splitter.png": { - "frame": {"x":3,"y":1665,"w":171,"h":96}, + "frame": {"x":1461,"y":203,"w":171,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":11,"y":0,"w":171,"h":96}, @@ -466,7 +482,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":3,"y":1365,"w":174,"h":96}, + "frame": {"x":1322,"y":103,"w":174,"h":96}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":174,"h":96}, @@ -474,7 +490,7 @@ }, "sprites/buildings/trash-storage.png": { - "frame": {"x":199,"y":970,"w":166,"h":192}, + "frame": {"x":936,"y":203,"w":166,"h":192}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":0,"w":166,"h":192}, @@ -482,7 +498,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":373,"y":549,"w":96,"h":96}, + "frame": {"x":1775,"y":103,"w":96,"h":96}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":96,"h":96}, @@ -490,7 +506,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":274,"y":1617,"w":92,"h":83}, + "frame": {"x":861,"y":399,"w":92,"h":83}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":13,"w":92,"h":83}, @@ -498,7 +514,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":370,"y":1617,"w":92,"h":74}, + "frame": {"x":1875,"y":103,"w":92,"h":74}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":22,"w":92,"h":74}, @@ -506,7 +522,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":370,"y":1695,"w":92,"h":74}, + "frame": {"x":1783,"y":303,"w":92,"h":74}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":74}, @@ -514,7 +530,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":274,"y":1704,"w":92,"h":74}, + "frame": {"x":1055,"y":403,"w":92,"h":74}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":92,"h":74}, @@ -522,7 +538,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":240,"y":1707,"w":26,"h":32}, + "frame": {"x":1989,"y":304,"w":26,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":26,"h":32}, @@ -530,7 +546,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":240,"y":1743,"w":26,"h":32}, + "frame": {"x":1971,"y":116,"w":26,"h":32}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":26,"h":32}, @@ -538,7 +554,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":181,"y":1365,"w":14,"h":16}, + "frame": {"x":1208,"y":448,"w":14,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, @@ -546,7 +562,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":342,"y":1166,"w":15,"h":15}, + "frame": {"x":3,"y":474,"w":15,"h":15}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":1,"w":15,"h":15}, @@ -554,7 +570,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":342,"y":1185,"w":15,"h":15}, + "frame": {"x":22,"y":474,"w":15,"h":15}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":15,"h":15}, @@ -562,15 +578,23 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":296,"y":1166,"w":42,"h":42}, + "frame": {"x":1971,"y":70,"w":42,"h":42}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":3,"w":42,"h":42}, "sourceSize": {"w":48,"h":48} }, +"sprites/misc/hub_direction_indicator.png": +{ + "frame": {"x":2001,"y":116,"w":16,"h":16}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":16,"h":16}, + "sourceSize": {"w":16,"h":16} +}, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":296,"y":1166,"w":42,"h":42}, + "frame": {"x":1971,"y":70,"w":42,"h":42}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":3,"w":42,"h":42}, @@ -578,7 +602,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":3,"y":1782,"w":42,"h":48}, + "frame": {"x":1729,"y":402,"w":42,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":3,"y":0,"w":42,"h":48}, @@ -586,7 +610,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":381,"y":201,"w":89,"h":44}, + "frame": {"x":1208,"y":400,"w":89,"h":44}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":1,"w":89,"h":44}, @@ -594,7 +618,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":181,"y":1385,"w":14,"h":16}, + "frame": {"x":1835,"y":270,"w":14,"h":16}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":14,"h":16}, @@ -605,8 +629,8 @@ "version": "1.0", "image": "atlas0_50.png", "format": "RGBA8888", - "size": {"w":475,"h":1968}, + "size": {"w":2020,"h":492}, "scale": "0.5", - "smartupdate": "$TexturePacker:SmartUpdate:3dd7a89f30024dd4787ad4af6b14588a:9ba11f8b02134c4376ab4e0a44f8b850:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:d89b36ef407ab57010cdc305dbead00b:d53090b6a8e7ddd3fb089e71bf9d20ca:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_50.png b/res_built/atlas/atlas0_50.png index ea864923..54e523a0 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 23042b66..036e42b5 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":1936,"y":151,"w":77,"h":95}, + "frame": {"x":1963,"y":102,"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":1936,"y":250,"w":77,"h":95}, + "frame": {"x":1963,"y":201,"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":1600,"y":708,"w":77,"h":95}, + "frame": {"x":1967,"y":300,"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":1544,"y":808,"w":77,"h":95}, + "frame": {"x":1967,"y":399,"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":1625,"y":807,"w":77,"h":95}, + "frame": {"x":1967,"y":498,"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":1544,"y":907,"w":77,"h":95}, + "frame": {"x":1679,"y":952,"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":1680,"y":593,"w":86,"h":86}, + "frame": {"x":1217,"y":969,"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":1770,"y":592,"w":86,"h":86}, + "frame": {"x":1307,"y":969,"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":1860,"y":592,"w":86,"h":86}, + "frame": {"x":1916,"y":597,"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":1681,"y":683,"w":86,"h":86}, + "frame": {"x":1916,"y":687,"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":1771,"y":682,"w":86,"h":86}, + "frame": {"x":1916,"y":777,"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":1861,"y":682,"w":86,"h":86}, + "frame": {"x":1914,"y":867,"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":1706,"y":773,"w":86,"h":86}, + "frame": {"x":1499,"y":852,"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":1796,"y":772,"w":86,"h":86}, + "frame": {"x":1397,"y":967,"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":1886,"y":772,"w":86,"h":86}, + "frame": {"x":1589,"y":862,"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":1716,"y":863,"w":86,"h":86}, + "frame": {"x":1679,"y":862,"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":1806,"y":862,"w":86,"h":86}, + "frame": {"x":1499,"y":942,"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":1896,"y":862,"w":86,"h":86}, + "frame": {"x":1589,"y":952,"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":1924,"y":349,"w":87,"h":87}, + "frame": {"x":1397,"y":593,"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":1625,"y":906,"w":87,"h":87}, + "frame": {"x":1397,"y":684,"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":1517,"y":709,"w":79,"h":95}, + "frame": {"x":1963,"y":3,"w":79,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":8,"y":0,"w":79,"h":95}, @@ -186,7 +186,7 @@ }, "sprites/blueprints/miner-chainable.png": { - "frame": {"x":1784,"y":299,"w":136,"h":143}, + "frame": {"x":1827,"y":447,"w":136,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":143}, @@ -194,7 +194,7 @@ }, "sprites/blueprints/miner.png": { - "frame": {"x":1544,"y":446,"w":136,"h":143}, + "frame": {"x":1076,"y":739,"w":136,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":143}, @@ -202,7 +202,7 @@ }, "sprites/blueprints/mixer.png": { - "frame": {"x":1671,"y":151,"w":261,"h":144}, + "frame": {"x":547,"y":738,"w":261,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":13,"y":0,"w":261,"h":144}, @@ -216,6 +216,14 @@ "spriteSourceSize": {"x":0,"y":0,"w":288,"h":287}, "sourceSize": {"w":288,"h":288} }, +"sprites/blueprints/painter-mirrored.png": +{ + "frame": {"x":1119,"y":150,"w":288,"h":144}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":288,"h":144}, + "sourceSize": {"w":288,"h":144} +}, "sprites/blueprints/painter-quad.png": { "frame": {"x":555,"y":3,"w":560,"h":144}, @@ -226,7 +234,7 @@ }, "sprites/blueprints/painter.png": { - "frame": {"x":1119,"y":150,"w":288,"h":144}, + "frame": {"x":1671,"y":3,"w":288,"h":144}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":288,"h":144}, @@ -234,7 +242,7 @@ }, "sprites/blueprints/rotater-ccw.png": { - "frame": {"x":1397,"y":445,"w":143,"h":144}, + "frame": {"x":1639,"y":299,"w":143,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":143,"h":144}, @@ -242,7 +250,7 @@ }, "sprites/blueprints/rotater.png": { - "frame": {"x":1084,"y":594,"w":143,"h":144}, + "frame": {"x":1786,"y":299,"w":143,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":1,"y":0,"w":143,"h":144}, @@ -250,7 +258,7 @@ }, "sprites/blueprints/splitter-compact-inverse.png": { - "frame": {"x":1071,"y":742,"w":142,"h":138}, + "frame": {"x":1071,"y":886,"w":142,"h":138}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":142,"h":138}, @@ -258,7 +266,7 @@ }, "sprites/blueprints/splitter-compact.png": { - "frame": {"x":1217,"y":742,"w":139,"h":138}, + "frame": {"x":1488,"y":594,"w":139,"h":138}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":2,"w":139,"h":138}, @@ -266,7 +274,7 @@ }, "sprites/blueprints/splitter.png": { - "frame": {"x":1119,"y":298,"w":256,"h":144}, + "frame": {"x":811,"y":886,"w":256,"h":144}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":17,"y":0,"w":256,"h":144}, @@ -274,7 +282,7 @@ }, "sprites/blueprints/stacker.png": { - "frame": {"x":555,"y":590,"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}, @@ -290,7 +298,7 @@ }, "sprites/blueprints/trash.png": { - "frame": {"x":1101,"y":446,"w":144,"h":144}, + "frame": {"x":1241,"y":445,"w":144,"h":144}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":144,"h":144}, @@ -298,7 +306,7 @@ }, "sprites/blueprints/underground_belt_entry-tier2.png": { - "frame": {"x":835,"y":885,"w":138,"h":125}, + "frame": {"x":1774,"y":594,"w":138,"h":125}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":19,"w":138,"h":125}, @@ -306,7 +314,7 @@ }, "sprites/blueprints/underground_belt_entry.png": { - "frame": {"x":1261,"y":884,"w":138,"h":112}, + "frame": {"x":1774,"y":723,"w":138,"h":112}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":32,"w":138,"h":112}, @@ -314,7 +322,7 @@ }, "sprites/blueprints/underground_belt_exit-tier2.png": { - "frame": {"x":1118,"y":884,"w":139,"h":112}, + "frame": {"x":1488,"y":736,"w":139,"h":112}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":139,"h":112}, @@ -322,7 +330,7 @@ }, "sprites/blueprints/underground_belt_exit.png": { - "frame": {"x":1397,"y":593,"w":138,"h":112}, + "frame": {"x":1772,"y":839,"w":138,"h":112}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":4,"y":0,"w":138,"h":112}, @@ -330,7 +338,7 @@ }, "sprites/buildings/belt_left.png": { - "frame": {"x":1680,"y":593,"w":86,"h":86}, + "frame": {"x":1217,"y":969,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":9,"w":86,"h":86}, @@ -338,7 +346,7 @@ }, "sprites/buildings/belt_right.png": { - "frame": {"x":1706,"y":773,"w":86,"h":86}, + "frame": {"x":1499,"y":852,"w":86,"h":86}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":9,"w":86,"h":86}, @@ -346,7 +354,7 @@ }, "sprites/buildings/belt_top.png": { - "frame": {"x":1936,"y":151,"w":77,"h":95}, + "frame": {"x":1963,"y":102,"w":77,"h":95}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":9,"y":0,"w":77,"h":95}, @@ -362,7 +370,7 @@ }, "sprites/buildings/cutter.png": { - "frame": {"x":811,"y":738,"w":256,"h":143}, + "frame": {"x":1119,"y":298,"w":256,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":17,"y":0,"w":256,"h":143}, @@ -378,7 +386,7 @@ }, "sprites/buildings/miner-chainable.png": { - "frame": {"x":1684,"y":446,"w":136,"h":142}, + "frame": {"x":1101,"y":445,"w":136,"h":142}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":142}, @@ -386,7 +394,7 @@ }, "sprites/buildings/miner.png": { - "frame": {"x":1824,"y":446,"w":136,"h":142}, + "frame": {"x":1112,"y":593,"w":136,"h":142}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":136,"h":142}, @@ -394,7 +402,7 @@ }, "sprites/buildings/mixer.png": { - "frame": {"x":547,"y":738,"w":260,"h":143}, + "frame": {"x":812,"y":739,"w":260,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":0,"w":260,"h":143}, @@ -408,6 +416,14 @@ "spriteSourceSize": {"x":0,"y":0,"w":288,"h":286}, "sourceSize": {"w":288,"h":288} }, +"sprites/buildings/painter-mirrored.png": +{ + "frame": {"x":1671,"y":151,"w":288,"h":144}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":288,"h":144}, + "sourceSize": {"w":288,"h":144} +}, "sprites/buildings/painter-quad.png": { "frame": {"x":555,"y":151,"w":560,"h":144}, @@ -418,7 +434,7 @@ }, "sprites/buildings/painter.png": { - "frame": {"x":1671,"y":3,"w":288,"h":144}, + "frame": {"x":555,"y":590,"w":288,"h":144}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":288,"h":144}, @@ -426,7 +442,7 @@ }, "sprites/buildings/rotater-ccw.png": { - "frame": {"x":1231,"y":594,"w":141,"h":143}, + "frame": {"x":1537,"y":447,"w":141,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":141,"h":143}, @@ -434,7 +450,7 @@ }, "sprites/buildings/rotater.png": { - "frame": {"x":1639,"y":299,"w":141,"h":143}, + "frame": {"x":1682,"y":447,"w":141,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":141,"h":143}, @@ -442,7 +458,7 @@ }, "sprites/buildings/splitter-compact-inverse.png": { - "frame": {"x":547,"y":885,"w":141,"h":136}, + "frame": {"x":1252,"y":593,"w":141,"h":136}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":3,"w":141,"h":136}, @@ -450,7 +466,7 @@ }, "sprites/buildings/splitter-compact.png": { - "frame": {"x":692,"y":885,"w":139,"h":136}, + "frame": {"x":1631,"y":594,"w":139,"h":136}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":3,"w":139,"h":136}, @@ -466,7 +482,7 @@ }, "sprites/buildings/stacker.png": { - "frame": {"x":820,"y":591,"w":260,"h":143}, + "frame": {"x":547,"y":886,"w":260,"h":143}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":14,"y":0,"w":260,"h":143}, @@ -482,7 +498,7 @@ }, "sprites/buildings/trash.png": { - "frame": {"x":1249,"y":446,"w":144,"h":144}, + "frame": {"x":1389,"y":445,"w":144,"h":144}, "rotated": false, "trimmed": false, "spriteSourceSize": {"x":0,"y":0,"w":144,"h":144}, @@ -490,7 +506,7 @@ }, "sprites/buildings/underground_belt_entry-tier2.png": { - "frame": {"x":977,"y":885,"w":137,"h":124}, + "frame": {"x":1631,"y":734,"w":137,"h":124}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":20,"w":137,"h":124}, @@ -498,7 +514,7 @@ }, "sprites/buildings/underground_belt_entry.png": { - "frame": {"x":1539,"y":593,"w":137,"h":111}, + "frame": {"x":1216,"y":739,"w":137,"h":111}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":33,"w":137,"h":111}, @@ -506,7 +522,7 @@ }, "sprites/buildings/underground_belt_exit-tier2.png": { - "frame": {"x":1376,"y":709,"w":137,"h":111}, + "frame": {"x":1217,"y":854,"w":137,"h":111}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":137,"h":111}, @@ -514,7 +530,7 @@ }, "sprites/buildings/underground_belt_exit.png": { - "frame": {"x":1403,"y":824,"w":137,"h":111}, + "frame": {"x":1358,"y":852,"w":137,"h":111}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":137,"h":111}, @@ -522,7 +538,7 @@ }, "sprites/debug/acceptor_slot.png": { - "frame": {"x":1963,"y":3,"w":38,"h":48}, + "frame": {"x":2006,"y":597,"w":38,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":38,"h":48}, @@ -530,7 +546,7 @@ }, "sprites/debug/ejector_slot.png": { - "frame": {"x":1963,"y":55,"w":38,"h":48}, + "frame": {"x":2006,"y":649,"w":38,"h":48}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":38,"h":48}, @@ -538,7 +554,7 @@ }, "sprites/map_overview/belt_forward.png": { - "frame": {"x":1625,"y":997,"w":20,"h":24}, + "frame": {"x":1826,"y":955,"w":20,"h":24}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":20,"h":24}, @@ -546,7 +562,7 @@ }, "sprites/map_overview/belt_left.png": { - "frame": {"x":3,"y":994,"w":22,"h":22}, + "frame": {"x":206,"y":994,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":0,"y":2,"w":22,"h":22}, @@ -554,7 +570,7 @@ }, "sprites/map_overview/belt_right.png": { - "frame": {"x":1963,"y":107,"w":22,"h":22}, + "frame": {"x":2006,"y":701,"w":22,"h":22}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":22,"h":22}, @@ -562,15 +578,23 @@ }, "sprites/misc/deletion_marker.png": { - "frame": {"x":1716,"y":953,"w":62,"h":62}, + "frame": {"x":140,"y":994,"w":62,"h":62}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":5,"w":62,"h":62}, "sourceSize": {"w":72,"h":72} }, +"sprites/misc/hub_direction_indicator.png": +{ + "frame": {"x":1933,"y":299,"w":24,"h":24}, + "rotated": false, + "trimmed": false, + "spriteSourceSize": {"x":0,"y":0,"w":24,"h":24}, + "sourceSize": {"w":24,"h":24} +}, "sprites/misc/slot_bad_arrow.png": { - "frame": {"x":1716,"y":953,"w":62,"h":62}, + "frame": {"x":140,"y":994,"w":62,"h":62}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":5,"w":62,"h":62}, @@ -578,7 +602,7 @@ }, "sprites/misc/slot_good_arrow.png": { - "frame": {"x":1950,"y":592,"w":62,"h":72}, + "frame": {"x":1760,"y":955,"w":62,"h":72}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":5,"y":0,"w":62,"h":72}, @@ -586,7 +610,7 @@ }, "sprites/misc/storage_overlay.png": { - "frame": {"x":1403,"y":939,"w":133,"h":66}, + "frame": {"x":3,"y":994,"w":133,"h":66}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":2,"w":133,"h":66}, @@ -594,7 +618,7 @@ }, "sprites/misc/waypoint.png": { - "frame": {"x":1649,"y":997,"w":20,"h":24}, + "frame": {"x":1933,"y":327,"w":20,"h":24}, "rotated": false, "trimmed": true, "spriteSourceSize": {"x":2,"y":0,"w":20,"h":24}, @@ -605,8 +629,8 @@ "version": "1.0", "image": "atlas0_75.png", "format": "RGBA8888", - "size": {"w":2016,"h":1024}, + "size": {"w":2047,"h":1063}, "scale": "0.75", - "smartupdate": "$TexturePacker:SmartUpdate:3dd7a89f30024dd4787ad4af6b14588a:9ba11f8b02134c4376ab4e0a44f8b850:f159918d23e5952766c6d23ab52278c6$" + "smartupdate": "$TexturePacker:SmartUpdate:d89b36ef407ab57010cdc305dbead00b:d53090b6a8e7ddd3fb089e71bf9d20ca:f159918d23e5952766c6d23ab52278c6$" } } diff --git a/res_built/atlas/atlas0_75.png b/res_built/atlas/atlas0_75.png index d6185e44..7efc0151 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/painter-mirrored.png b/res_raw/sprites/blueprints/painter-mirrored.png new file mode 100644 index 00000000..f72f80e2 Binary files /dev/null and b/res_raw/sprites/blueprints/painter-mirrored.png differ diff --git a/res_raw/sprites/buildings/painter-mirrored.png b/res_raw/sprites/buildings/painter-mirrored.png new file mode 100644 index 00000000..da0e199d Binary files /dev/null and b/res_raw/sprites/buildings/painter-mirrored.png differ diff --git a/res_raw/sprites/misc/hub_direction_indicator.png b/res_raw/sprites/misc/hub_direction_indicator.png new file mode 100644 index 00000000..006ba8fa Binary files /dev/null and b/res_raw/sprites/misc/hub_direction_indicator.png differ diff --git a/src/css/icons.scss b/src/css/icons.scss index fd20e788..c66b87ae 100644 --- a/src/css/icons.scss +++ b/src/css/icons.scss @@ -15,6 +15,11 @@ $buildingsAndVariants: belt, splitter, splitter-compact, splitter-compact-invers } } +// Special case +[data-icon="building_tutorials/painter-mirrored.png"] { + background-image: uiResource("res/ui/building_tutorials/painter.png") !important; +} + $icons: notification_saved, notification_success, notification_upgrade; @each $icon in $icons { [data-icon="icons/#{$icon}.png"] { diff --git a/src/css/ingame_hud/dialogs.scss b/src/css/ingame_hud/dialogs.scss index 2e1c417d..366ab8ce 100644 --- a/src/css/ingame_hud/dialogs.scss +++ b/src/css/ingame_hud/dialogs.scss @@ -122,6 +122,10 @@ color: #aaa; } + a { + color: $colorBlueBright; + } + strong { font-weight: bold; } diff --git a/src/css/ingame_hud/waypoints.scss b/src/css/ingame_hud/waypoints.scss index fee1ec37..ab8fed39 100644 --- a/src/css/ingame_hud/waypoints.scss +++ b/src/css/ingame_hud/waypoints.scss @@ -47,6 +47,7 @@ opacity: 0.7; @include S(margin-bottom, 1px); font-weight: bold; + &:hover { opacity: 1; } @@ -63,5 +64,29 @@ transform: scale(1.5); } } + + &.hub { + // Transform because there is a canvas before + @include S(margin-left, -2px); + + grid-template-columns: auto 1fr; + background: none !important; + @include S(padding-left, 0); + canvas { + @include S(width, 12px); + @include S(height, 12px); + @include S(margin-right, 1px); + } + } + + &.shapeIcon { + canvas { + @include S(width, 15px); + @include S(height, 15px); + pointer-events: none; + // Double invert, to make sure it has the right color + @include DarkThemeInvert(); + } + } } } diff --git a/src/js/changelog.js b/src/js/changelog.js index 87a7d9db..0d2e2724 100644 --- a/src/js/changelog.js +++ b/src/js/changelog.js @@ -1,4 +1,15 @@ export const CHANGELOG = [ + { + version: "1.1.14", + date: "16.06.2020", + entries: [ + "There is now an indicator (compass) to the HUB for the HUB Marker!", + "You can now include shape short keys in markers to render shape icons instead of text!", + "Added mirrored variant of the painter", + "When placing tunnels, unnecessary belts inbetween are now removed!", + "You can now drag tunnels and they will automatically expand! (Just try it out, its intuitive)", + ], + }, { version: "1.1.13", date: "15.06.2020", diff --git a/src/js/game/buildings/painter.js b/src/js/game/buildings/painter.js index 7fa8bb38..835dde1e 100644 --- a/src/js/game/buildings/painter.js +++ b/src/js/game/buildings/painter.js @@ -11,7 +11,7 @@ import { T } from "../../translations"; import { formatItemsPerSecond } from "../../core/utils"; /** @enum {string} */ -export const enumPainterVariants = { double: "double", quad: "quad" }; +export const enumPainterVariants = { mirrored: "mirrored", double: "double", quad: "quad" }; export class MetaPainterBuilding extends MetaBuilding { constructor() { @@ -21,6 +21,7 @@ export class MetaPainterBuilding extends MetaBuilding { getDimensions(variant) { switch (variant) { case defaultBuildingVariant: + case enumPainterVariants.mirrored: return new Vector(2, 1); case enumPainterVariants.double: return new Vector(2, 2); @@ -42,7 +43,8 @@ export class MetaPainterBuilding extends MetaBuilding { */ getAdditionalStatistics(root, variant) { switch (variant) { - case defaultBuildingVariant: { + case defaultBuildingVariant: + case enumPainterVariants.mirrored: { const speed = root.hubGoals.getProcessorBaseSpeed(enumItemProcessorTypes.painter); return [[T.ingame.buildingPlacement.infoTexts.speed, formatItemsPerSecond(speed)]]; } @@ -61,7 +63,7 @@ export class MetaPainterBuilding extends MetaBuilding { * @param {GameRoot} root */ getAvailableVariants(root) { - let variants = [defaultBuildingVariant]; + let variants = [defaultBuildingVariant, enumPainterVariants.mirrored]; if (root.hubGoals.isRewardUnlocked(enumHubGoalRewards.reward_painter_double)) { variants.push(enumPainterVariants.double); } @@ -116,7 +118,8 @@ export class MetaPainterBuilding extends MetaBuilding { */ updateVariants(entity, rotationVariant, variant) { switch (variant) { - case defaultBuildingVariant: { + case defaultBuildingVariant: + case enumPainterVariants.mirrored: { entity.components.ItemAcceptor.setSlots([ { pos: new Vector(0, 0), @@ -125,7 +128,9 @@ export class MetaPainterBuilding extends MetaBuilding { }, { pos: new Vector(1, 0), - directions: [enumDirection.top], + directions: [ + variant === defaultBuildingVariant ? enumDirection.top : enumDirection.bottom, + ], filter: enumItemAcceptorItemFilter.color, }, ]); diff --git a/src/js/game/hud/parts/building_placer.js b/src/js/game/hud/parts/building_placer.js index 6da065b2..7e20eef7 100644 --- a/src/js/game/hud/parts/building_placer.js +++ b/src/js/game/hud/parts/building_placer.js @@ -483,6 +483,10 @@ export class HUDBuildingPlacer extends BaseHUDPart { ) { // Succesfully placed + const entity = this.root.map.getTileContent(tile); + assert(entity, "Entity was not actually placed"); + this.root.signals.entityManuallyPlaced.dispatch(entity); + if ( metaBuilding.getFlipOrientationAfterPlacement() && !this.root.keyMapper diff --git a/src/js/game/hud/parts/waypoints.js b/src/js/game/hud/parts/waypoints.js index 82187e55..ebd8ec6a 100644 --- a/src/js/game/hud/parts/waypoints.js +++ b/src/js/game/hud/parts/waypoints.js @@ -1,5 +1,5 @@ import { makeOffscreenBuffer } from "../../../core/buffer_utils"; -import { Math_max } from "../../../core/builtins"; +import { Math_max, Math_PI, Math_radians } from "../../../core/builtins"; import { globalConfig, IS_DEMO } from "../../../core/config"; import { DrawParameters } from "../../../core/draw_parameters"; import { Loader } from "../../../core/loader"; @@ -7,7 +7,7 @@ import { DialogWithForm } from "../../../core/modal_dialog_elements"; import { FormElementInput } from "../../../core/modal_dialog_forms"; import { Rectangle } from "../../../core/rectangle"; import { STOP_PROPAGATION } from "../../../core/signal"; -import { arrayDeleteValue, lerp, makeDiv, removeAllChildren } from "../../../core/utils"; +import { arrayDeleteValue, lerp, makeDiv, removeAllChildren, clamp } from "../../../core/utils"; import { Vector } from "../../../core/vector"; import { T } from "../../../translations"; import { enumMouseButton } from "../../camera"; @@ -15,16 +15,26 @@ import { KEYMAPPINGS } from "../../key_action_mapper"; import { BaseHUDPart } from "../base_hud_part"; import { DynamicDomAttach } from "../dynamic_dom_attach"; import { enumNotificationType } from "./notifications"; +import { ShapeDefinition } from "../../shape_definition"; /** @typedef {{ - * label: string, + * label: string | null, * center: { x: number, y: number }, - * zoomLevel: number, - * deletable: boolean + * zoomLevel: number * }} Waypoint */ +/** + * Used when a shape icon is rendered instead + */ +const SHAPE_LABEL_PLACEHOLDER = " "; + export class HUDWaypoints extends BaseHUDPart { + /** + * Creates the overview of waypoints + * @param {HTMLElement} parent + */ createElements(parent) { + // Create the helper box on the lower right when zooming out if (this.root.app.settings.getAllSettings().offerHints) { this.hintElement = makeDiv( parent, @@ -42,17 +52,23 @@ export class HUDWaypoints extends BaseHUDPart { ); } - this.waypointSprite = Loader.getSprite("sprites/misc/waypoint.png"); - + // Create the waypoint list on the upper right this.waypointsListElement = makeDiv(parent, "ingame_HUD_Waypoints", [], "Waypoints"); } + /** + * Serializes the waypoints + */ serialize() { return { waypoints: this.waypoints, }; } + /** + * Deserializes the waypoints + * @param {{waypoints: Array}} data + */ deserialize(data) { if (!data || !data.waypoints || !Array.isArray(data.waypoints)) { return "Invalid waypoints data"; @@ -61,21 +77,97 @@ export class HUDWaypoints extends BaseHUDPart { this.rerenderWaypointList(); } + /** + * Initializes everything + */ + initialize() { + // Cache the sprite for the waypoints + this.waypointSprite = Loader.getSprite("sprites/misc/waypoint.png"); + this.directionIndicatorSprite = Loader.getSprite("sprites/misc/hub_direction_indicator.png"); + + /** @type {Array} + */ + this.waypoints = [ + { + label: null, + center: { x: 0, y: 0 }, + zoomLevel: 3, + }, + ]; + + // Create a buffer we can use to measure text + this.dummyBuffer = makeOffscreenBuffer(1, 1, { + reusable: false, + label: "waypoints-measure-canvas", + })[1]; + + // Dynamically attach/detach the lower right hint in the map overview + if (this.hintElement) { + this.domAttach = new DynamicDomAttach(this.root, this.hintElement); + } + + // Catch mouse and key events + this.root.camera.downPreHandler.add(this.onMouseDown, this); + this.root.keyMapper + .getBinding(KEYMAPPINGS.navigation.createMarker) + .add(this.requestCreateMarker, this); + + /** + * Stores at how much opacity the markers should be rendered on the map. + * This is interpolated over multiple frames so we have some sort of fade effect + */ + this.currentMarkerOpacity = 1; + this.currentCompassOpacity = 0; + + // Create buffer which is used to indicate the hub direction + const [canvas, context] = makeOffscreenBuffer(48, 48, { + smooth: true, + reusable: false, + label: "waypoints-compass", + }); + this.compassBuffer = { canvas, context }; + + /** + * Stores a cache from a shape short key to its canvas representation + */ + this.cachedKeyToCanvas = {}; + + // Initial render + this.rerenderWaypointList(); + } + + /** + * Re-renders the waypoint list to account for changes + */ rerenderWaypointList() { removeAllChildren(this.waypointsListElement); this.cleanupClickDetectors(); for (let i = 0; i < this.waypoints.length; ++i) { const waypoint = this.waypoints[i]; + const label = this.getWaypointLabel(waypoint); const element = makeDiv(this.waypointsListElement, null, ["waypoint"]); - element.innerText = waypoint.label; - if (waypoint.deletable) { + if (ShapeDefinition.isValidShortKey(label)) { + const canvas = this.getWaypointCanvas(waypoint); + element.appendChild(canvas); + element.classList.add("shapeIcon"); + } else { + element.innerText = label; + } + + if (this.isWaypointDeletable(waypoint)) { const deleteButton = makeDiv(element, null, ["deleteButton"]); this.trackClicks(deleteButton, () => this.deleteWaypoint(waypoint)); } + if (!waypoint.label) { + // This must be the hub label + element.classList.add("hub"); + element.insertBefore(this.compassBuffer.canvas, element.childNodes[0]); + } + this.trackClicks(element, () => this.moveToWaypoint(waypoint), { targetOnly: true, }); @@ -83,6 +175,7 @@ export class HUDWaypoints extends BaseHUDPart { } /** + * Moves the camera to a given waypoint * @param {Waypoint} waypoint */ moveToWaypoint(waypoint) { @@ -91,6 +184,7 @@ export class HUDWaypoints extends BaseHUDPart { } /** + * Deletes a waypoint from the list * @param {Waypoint} waypoint */ deleteWaypoint(waypoint) { @@ -98,86 +192,131 @@ export class HUDWaypoints extends BaseHUDPart { this.rerenderWaypointList(); } - initialize() { - /** @type {Array} - */ - this.waypoints = [ - { - label: T.ingame.waypoints.hub, - center: { x: 0, y: 0 }, - zoomLevel: 3, - deletable: false, - }, - ]; - - this.dummyBuffer = makeOffscreenBuffer(1, 1, { - reusable: false, - label: "waypoints-measure-canvas", - })[1]; - - this.root.camera.downPreHandler.add(this.onMouseDown, this); - - if (this.hintElement) { - this.domAttach = new DynamicDomAttach(this.root, this.hintElement); + /** + * Gets the canvas for a given waypoint + * @param {Waypoint} waypoint + * @returns {HTMLCanvasElement} + */ + getWaypointCanvas(waypoint) { + const key = waypoint.label; + if (this.cachedKeyToCanvas[key]) { + return this.cachedKeyToCanvas[key]; } - this.root.keyMapper - .getBinding(KEYMAPPINGS.navigation.createMarker) - .add(this.requestCreateMarker, this); - - this.currentMarkerOpacity = 1; - this.rerenderWaypointList(); + assert(ShapeDefinition.isValidShortKey(key), "Invalid short key: " + key); + const definition = ShapeDefinition.fromShortKey(key); + const preRendered = definition.generateAsCanvas(48); + return (this.cachedKeyToCanvas[key] = preRendered); } /** + * Requests to create a marker at the current camera position. If worldPos is set, + * uses that position instead. * @param {Vector=} worldPos Override the world pos, otherwise it is the camera position */ requestCreateMarker(worldPos = null) { + // Construct dialog with input field const markerNameInput = new FormElementInput({ id: "markerName", label: null, placeholder: "", - validator: val => val.length > 0 && val.length < 15, + validator: val => val.length > 0 && (val.length < 15 || ShapeDefinition.isValidShortKey(val)), }); - const dialog = new DialogWithForm({ app: this.root.app, title: T.dialogs.createMarker.title, desc: T.dialogs.createMarker.desc, formElements: [markerNameInput], }); - this.root.hud.parts.dialogs.internalShowDialog(dialog); + // Compute where to create the marker const center = worldPos || this.root.camera.center; dialog.buttonSignals.ok.add(() => { + // Show info that you can have only N markers in the demo, + // actually show this *after* entering the name so you want the + // standalone even more (I'm evil :P) if (IS_DEMO && this.waypoints.length > 2) { this.root.hud.parts.dialogs.showFeatureRestrictionInfo("", T.dialogs.markerDemoLimit.desc); return; } - this.waypoints.push({ - label: markerNameInput.getValue(), - center: { x: center.x, y: center.y }, - zoomLevel: Math_max(this.root.camera.zoomLevel, globalConfig.mapChunkOverviewMinZoom + 0.05), - deletable: true, - }); - this.waypoints.sort((a, b) => a.label.padStart(20, "0").localeCompare(b.label.padStart(20, "0"))); - this.root.hud.signals.notification.dispatch( - T.ingame.waypoints.creationSuccessNotification, - enumNotificationType.success - ); - this.rerenderWaypointList(); + // Actually create the waypoint + this.addWaypoint(markerNameInput.getValue(), center); }); } + /** + * Adds a new waypoint at the given location with the given label + * @param {string} label + * @param {Vector} position + */ + addWaypoint(label, position) { + this.waypoints.push({ + label, + center: { x: position.x, y: position.y }, + // Make sure the zoom is *just* a bit above the zoom level where the map overview + // starts, so you always see all buildings + zoomLevel: Math_max(this.root.camera.zoomLevel, globalConfig.mapChunkOverviewMinZoom + 0.05), + }); + + // Sort waypoints by name + this.waypoints.sort((a, b) => { + if (!a.label) { + return -1; + } + if (!b.label) { + return 1; + } + return this.getWaypointLabel(a) + .padEnd(20, "0") + .localeCompare(this.getWaypointLabel(b).padEnd(20, "0")); + }); + + // Show notification about creation + this.root.hud.signals.notification.dispatch( + T.ingame.waypoints.creationSuccessNotification, + enumNotificationType.success + ); + + // Re-render the list and thus add it + this.rerenderWaypointList(); + } + + /** + * Called every frame to update stuff + */ update() { if (this.domAttach) { this.domAttach.update(this.root.camera.getIsMapOverlayActive()); } } + /** + * Returns the label for a given waypoint + * @param {Waypoint} waypoint + * @returns {string} + */ + getWaypointLabel(waypoint) { + return waypoint.label || T.ingame.waypoints.hub; + } + + /** + * Returns if a waypoint is deletable + * @param {Waypoint} waypoint + * @returns {boolean} + */ + isWaypointDeletable(waypoint) { + return waypoint.label !== null; + } + + /** + * Finds the currently intersected waypoint on the map overview under + * the cursor. + * + * @returns {Waypoint | null} + */ findCurrentIntersectedWaypoint() { const mousePos = this.root.app.mousePosition; if (!mousePos) { @@ -197,10 +336,18 @@ export class HUDWaypoints extends BaseHUDPart { const screenPos = this.root.camera.worldToScreen( new Vector(waypoint.center.x, waypoint.center.y) ); + + let label = this.getWaypointLabel(waypoint); + + // Special case for icons + if (ShapeDefinition.isValidShortKey(label)) { + label = SHAPE_LABEL_PLACEHOLDER; + } + const intersectionRect = new Rectangle( screenPos.x - 7 * scale, screenPos.y - 12 * scale, - 15 * scale + this.dummyBuffer.measureText(waypoint.label).width, + 15 * scale + this.dummyBuffer.measureText(label).width, 15 * scale ); if (intersectionRect.containsPoint(mousePos.x, mousePos.y)) { @@ -210,7 +357,7 @@ export class HUDWaypoints extends BaseHUDPart { } /** - * + * Mouse-Down handler * @param {Vector} pos * @param {enumMouseButton} button */ @@ -221,7 +368,7 @@ export class HUDWaypoints extends BaseHUDPart { this.root.soundProxy.playUiClick(); this.moveToWaypoint(waypoint); } else if (button === enumMouseButton.right) { - if (waypoint.deletable) { + if (this.isWaypointDeletable(waypoint)) { this.root.soundProxy.playUiClick(); this.deleteWaypoint(waypoint); } else { @@ -243,50 +390,111 @@ export class HUDWaypoints extends BaseHUDPart { } /** - * + * Rerenders the compass + */ + rerenderWaypointsCompass() { + const context = this.compassBuffer.context; + const dims = 48; + context.clearRect(0, 0, dims, dims); + const indicatorSize = 30; + + const cameraPos = this.root.camera.center; + + const distanceToHub = cameraPos.length(); + const compassVisible = distanceToHub > (10 * globalConfig.tileSize) / this.root.camera.zoomLevel; + const targetCompassAlpha = compassVisible ? 1 : 0; + this.currentCompassOpacity = lerp(this.currentCompassOpacity, targetCompassAlpha, 0.08); + + if (this.currentCompassOpacity > 0.01) { + context.globalAlpha = this.currentCompassOpacity; + const angle = cameraPos.angle() + Math_radians(45) + Math_PI / 2; + context.translate(dims / 2, dims / 2); + context.rotate(angle); + this.directionIndicatorSprite.drawCentered(context, 0, 0, indicatorSize); + context.rotate(-angle); + context.translate(-dims / 2, -dims / 2); + context.globalAlpha = 1; + } + + const iconOpacity = 1 - this.currentCompassOpacity; + if (iconOpacity > 0.01) { + // Draw icon + context.globalAlpha = iconOpacity; + this.waypointSprite.drawCentered(context, dims / 2, dims / 2, dims * 0.7); + context.globalAlpha = 1; + } + } + + /** + * Draws the waypoints on the map * @param {DrawParameters} parameters */ draw(parameters) { const desiredOpacity = this.root.camera.getIsMapOverlayActive() ? 1 : 0; this.currentMarkerOpacity = lerp(this.currentMarkerOpacity, desiredOpacity, 0.08); + this.rerenderWaypointsCompass(); + + // Don't render with low opacity if (this.currentMarkerOpacity < 0.01) { return; } + // Find waypoint below cursor const selected = this.findCurrentIntersectedWaypoint(); + // Determine rendering scale const scale = (1 / this.root.camera.zoomLevel) * this.root.app.getEffectiveUiScale(); + // Render all of 'em for (let i = 0; i < this.waypoints.length; ++i) { const waypoint = this.waypoints[i]; const pos = waypoint.center; - parameters.context.globalAlpha = this.currentMarkerOpacity * (selected === waypoint ? 1 : 0.7); const yOffset = -5 * scale; + const originalLabel = this.getWaypointLabel(waypoint); + let renderLabel = originalLabel; + let isShapeIcon = false; + if (ShapeDefinition.isValidShortKey(originalLabel)) { + renderLabel = SHAPE_LABEL_PLACEHOLDER; + isShapeIcon = true; + } + + // Render the background rectangle parameters.context.font = "bold " + 12 * scale + "px GameFont"; - parameters.context.fillStyle = "rgba(255, 255, 255, 0.7)"; parameters.context.fillRect( pos.x - 7 * scale, pos.y - 12 * scale, - 15 * scale + this.dummyBuffer.measureText(waypoint.label).width / this.root.camera.zoomLevel, + 15 * scale + this.dummyBuffer.measureText(renderLabel).width / this.root.camera.zoomLevel, 15 * scale ); - parameters.context.fillStyle = "#000"; - parameters.context.textAlign = "left"; - parameters.context.textBaseline = "middle"; - parameters.context.fillText(waypoint.label, pos.x + 6 * scale, pos.y + 0.5 * scale + yOffset); - - parameters.context.textBaseline = "alphabetic"; - parameters.context.textAlign = "left"; + // Render the text + if (isShapeIcon) { + const canvas = this.getWaypointCanvas(waypoint); + parameters.context.drawImage( + canvas, + pos.x + 6 * scale, + pos.y - 11.5 * scale, + 14 * scale, + 14 * scale + ); + } else { + // Render the text + parameters.context.fillStyle = "#000"; + parameters.context.textBaseline = "middle"; + parameters.context.fillText(renderLabel, pos.x + 6 * scale, pos.y + 0.5 * scale + yOffset); + parameters.context.textBaseline = "alphabetic"; + } + // Render the small icon on the left this.waypointSprite.drawCentered(parameters.context, pos.x, pos.y + yOffset, 10 * scale); } + parameters.context.globalAlpha = 1; } } diff --git a/src/js/game/root.js b/src/js/game/root.js index 91efd137..cc6007de 100644 --- a/src/js/game/root.js +++ b/src/js/game/root.js @@ -130,6 +130,7 @@ export class GameRoot { this.signals = { // Entities + entityManuallyPlaced: /** @type {TypedSignal<[Entity]>} */ (new Signal()), entityAdded: /** @type {TypedSignal<[Entity]>} */ (new Signal()), entityGotNewComponent: /** @type {TypedSignal<[Entity]>} */ (new Signal()), entityComponentRemoved: /** @type {TypedSignal<[Entity]>} */ (new Signal()), diff --git a/src/js/game/shape_definition.js b/src/js/game/shape_definition.js index 64cc3eab..d785f6ab 100644 --- a/src/js/game/shape_definition.js +++ b/src/js/game/shape_definition.js @@ -70,6 +70,12 @@ export function createSimpleShape(layers) { return layers; } +/** + * Cache which shapes are valid short keys and which not + * @type {Map} + */ +const SHORT_KEY_CACHE = new Map(); + export class ShapeDefinition extends BasicSerializableObject { static getId() { return "ShapeDefinition"; @@ -114,6 +120,8 @@ export class ShapeDefinition extends BasicSerializableObject { /** * Generates the definition from the given short key + * @param {string} key + * @returns {ShapeDefinition} */ static fromShortKey(key) { const sourceLayers = key.split(":"); @@ -147,6 +155,81 @@ export class ShapeDefinition extends BasicSerializableObject { return definition; } + /** + * Checks if a given string is a valid short key + * @param {string} key + * @returns {boolean} + */ + static isValidShortKey(key) { + if (SHORT_KEY_CACHE.has(key)) { + return SHORT_KEY_CACHE.get(key); + } + + const result = ShapeDefinition.isValidShortKeyInternal(key); + SHORT_KEY_CACHE.set(key, result); + return result; + } + + /** + * INTERNAL + * Checks if a given string is a valid short key + * @param {string} key + * @returns {boolean} + */ + static isValidShortKeyInternal(key) { + const sourceLayers = key.split(":"); + let layers = []; + for (let i = 0; i < sourceLayers.length; ++i) { + const text = sourceLayers[i]; + if (text.length !== 8) { + return false; + } + + /** @type {ShapeLayer} */ + const quads = [null, null, null, null]; + let anyFilled = false; + for (let quad = 0; quad < 4; ++quad) { + const shapeText = text[quad * 2 + 0]; + const colorText = text[quad * 2 + 1]; + const subShape = enumShortcodeToSubShape[shapeText]; + const color = enumShortcodeToColor[colorText]; + + // Valid shape + if (subShape) { + if (!color) { + // Invalid color + return false; + } + quads[quad] = { + subShape, + color, + }; + anyFilled = true; + } else if (shapeText === "-") { + // Make sure color is empty then, too + if (colorText !== "-") { + return false; + } + } else { + // Invalid shape key + return false; + } + } + + if (!anyFilled) { + // Empty layer + return false; + } + layers.push(quads); + } + + if (layers.length === 0 || layers.length > 4) { + return false; + } + + return true; + } + /** * Internal method to clone the shape definition * @returns {Array} diff --git a/src/js/game/systems/underground_belt.js b/src/js/game/systems/underground_belt.js index 34decc11..393df04a 100644 --- a/src/js/game/systems/underground_belt.js +++ b/src/js/game/systems/underground_belt.js @@ -1,12 +1,17 @@ -import { GameSystemWithFilter } from "../game_system_with_filter"; -import { UndergroundBeltComponent, enumUndergroundBeltMode } from "../components/underground_belt"; -import { Entity } from "../entity"; -import { Loader } from "../../core/loader"; import { Math_max } from "../../core/builtins"; import { globalConfig } from "../../core/config"; -import { enumDirection, enumDirectionToVector, enumDirectionToAngle } from "../../core/vector"; -import { MapChunkView } from "../map_chunk_view"; -import { DrawParameters } from "../../core/draw_parameters"; +import { Loader } from "../../core/loader"; +import { + enumDirection, + enumDirectionToAngle, + enumDirectionToVector, + Vector, + enumAngleToDirection, + enumInvertedDirections, +} from "../../core/vector"; +import { enumUndergroundBeltMode, UndergroundBeltComponent } from "../components/underground_belt"; +import { Entity } from "../entity"; +import { GameSystemWithFilter } from "../game_system_with_filter"; export class UndergroundBeltSystem extends GameSystemWithFilter { constructor(root) { @@ -20,6 +25,8 @@ export class UndergroundBeltSystem extends GameSystemWithFilter { "sprites/buildings/underground_belt_exit.png" ), }; + + this.root.signals.entityManuallyPlaced.add(this.onEntityPlaced, this); } update() { @@ -46,6 +53,135 @@ export class UndergroundBeltSystem extends GameSystemWithFilter { } } + /** + * Callback when an entity got placed, used to remove belts between underground belts + * @param {Entity} entity + */ + onEntityPlaced(entity) { + const undergroundComp = entity.components.UndergroundBelt; + if (undergroundComp && undergroundComp.mode === enumUndergroundBeltMode.receiver) { + const staticComp = entity.components.StaticMapEntity; + const tile = staticComp.origin; + + const direction = enumAngleToDirection[staticComp.rotation]; + const inverseDirection = enumInvertedDirections[direction]; + const offset = enumDirectionToVector[inverseDirection]; + + let currentPos = tile.copy(); + + const tier = undergroundComp.tier; + const range = globalConfig.undergroundBeltMaxTilesByTier[tier]; + + // Search for the entrance which is furthes apart (this is why we can't reuse logic here) + let matchingEntrance = null; + for (let i = 0; i < range; ++i) { + currentPos.addInplace(offset); + const contents = this.root.map.getTileContent(currentPos); + if (!contents) { + continue; + } + + const contentsUndergroundComp = contents.components.UndergroundBelt; + if ( + contentsUndergroundComp && + contentsUndergroundComp.tier === undergroundComp.tier && + contentsUndergroundComp.mode === enumUndergroundBeltMode.sender + ) { + matchingEntrance = { + entity: contents, + range: i, + }; + } + } + + if (!matchingEntrance) { + // Nothing found + return; + } + + // Remove any belts between entrance and exit which have the same direction + currentPos = tile.copy(); + for (let i = 0; i < matchingEntrance.range; ++i) { + currentPos.addInplace(offset); + + const contents = this.root.map.getTileContent(currentPos); + if (!contents) { + continue; + } + + const contentsStaticComp = contents.components.StaticMapEntity; + const contentsBeltComp = contents.components.Belt; + + if (contentsBeltComp) { + // It's a belt + if ( + contentsBeltComp.direction === enumDirection.top && + enumAngleToDirection[contentsStaticComp.rotation] === direction + ) { + // It's same rotation, drop it + this.root.logic.tryDeleteBuilding(contents); + } + } + } + + // Remove any double tunnels, by checking the tile plus the tile above + currentPos = tile.copy().add(offset); + for (let i = 0; i < matchingEntrance.range - 1; ++i) { + const posBefore = currentPos.copy(); + currentPos.addInplace(offset); + + const entityBefore = this.root.map.getTileContent(posBefore); + const entityAfter = this.root.map.getTileContent(currentPos); + + if (!entityBefore || !entityAfter) { + continue; + } + + const undergroundBefore = entityBefore.components.UndergroundBelt; + const undergroundAfter = entityAfter.components.UndergroundBelt; + + if (!undergroundBefore || !undergroundAfter) { + // Not an underground belt + continue; + } + + if ( + // Both same tier + undergroundBefore.tier !== undergroundAfter.tier || + // And same tier as our original entity + undergroundBefore.tier !== undergroundComp.tier + ) { + // Mismatching tier + continue; + } + + if ( + undergroundBefore.mode !== enumUndergroundBeltMode.sender || + undergroundAfter.mode !== enumUndergroundBeltMode.receiver + ) { + // Not the right mode + continue; + } + + // Check rotations + const staticBefore = entityBefore.components.StaticMapEntity; + const staticAfter = entityAfter.components.StaticMapEntity; + + if ( + enumAngleToDirection[staticBefore.rotation] !== direction || + enumAngleToDirection[staticAfter.rotation] !== direction + ) { + // Wrong rotation + continue; + } + + // All good, can remove + this.root.logic.tryDeleteBuilding(entityBefore); + this.root.logic.tryDeleteBuilding(entityAfter); + } + } + } + /** * * @param {Entity} entity diff --git a/src/js/savegame/savegame.js b/src/js/savegame/savegame.js index b67a8d0d..359a48b5 100644 --- a/src/js/savegame/savegame.js +++ b/src/js/savegame/savegame.js @@ -13,6 +13,7 @@ import { getSavegameInterface, savegameInterfaces } from "./savegame_interface_r import { SavegameInterface_V1001 } from "./schemas/1001"; import { SavegameInterface_V1002 } from "./schemas/1002"; import { SavegameInterface_V1003 } from "./schemas/1003"; +import { SavegameInterface_V1004 } from "./schemas/1004"; const logger = createLogger("savegame"); @@ -44,7 +45,7 @@ export class Savegame extends ReadWriteProxy { * @returns {number} */ static getCurrentVersion() { - return 1003; + return 1004; } /** @@ -98,6 +99,11 @@ export class Savegame extends ReadWriteProxy { data.version = 1003; } + if (data.version === 1003) { + SavegameInterface_V1004.migrate1003to1004(data); + data.version = 1004; + } + return ExplainedResult.good(); } diff --git a/src/js/savegame/savegame_interface_registry.js b/src/js/savegame/savegame_interface_registry.js index 8c28fcc9..6144ca62 100644 --- a/src/js/savegame/savegame_interface_registry.js +++ b/src/js/savegame/savegame_interface_registry.js @@ -4,6 +4,7 @@ import { createLogger } from "../core/logging"; import { SavegameInterface_V1001 } from "./schemas/1001"; import { SavegameInterface_V1002 } from "./schemas/1002"; import { SavegameInterface_V1003 } from "./schemas/1003"; +import { SavegameInterface_V1004 } from "./schemas/1004"; /** @type {Object.} */ export const savegameInterfaces = { @@ -11,6 +12,7 @@ export const savegameInterfaces = { 1001: SavegameInterface_V1001, 1002: SavegameInterface_V1002, 1003: SavegameInterface_V1003, + 1004: SavegameInterface_V1004, }; const logger = createLogger("savegame_interface_registry"); diff --git a/src/js/savegame/schemas/1004.js b/src/js/savegame/schemas/1004.js new file mode 100644 index 00000000..c9feda1a --- /dev/null +++ b/src/js/savegame/schemas/1004.js @@ -0,0 +1,36 @@ +import { createLogger } from "../../core/logging.js"; +import { SavegameInterface_V1003 } from "./1003.js"; + +const schema = require("./1004.json"); +const logger = createLogger("savegame_interface/1004"); + +export class SavegameInterface_V1004 extends SavegameInterface_V1003 { + getVersion() { + return 1004; + } + + getSchemaUncached() { + return schema; + } + + /** + * @param {import("../savegame_typedefs.js").SavegameData} data + */ + static migrate1003to1004(data) { + logger.log("Migrating 1003 to 1004"); + const dump = data.dump; + if (!dump) { + return true; + } + + // The hub simply has an empty label + const waypointData = dump.waypoints.waypoints; + for (let i = 0; i < waypointData.length; ++i) { + const waypoint = waypointData[i]; + if (!waypoint.deletable) { + waypoint.label = null; + } + delete waypoint.deletable; + } + } +} diff --git a/src/js/savegame/schemas/1004.json b/src/js/savegame/schemas/1004.json new file mode 100644 index 00000000..6682f615 --- /dev/null +++ b/src/js/savegame/schemas/1004.json @@ -0,0 +1,5 @@ +{ + "type": "object", + "required": [], + "additionalProperties": true +} diff --git a/translations/base-ar.yaml b/translations/base-ar.yaml index 11864c3c..25099768 100644 --- a/translations/base-ar.yaml +++ b/translations/base-ar.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: New Marker - desc: Give it a meaningful name + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! @@ -480,13 +480,16 @@ buildings: painter: default: name: &painter Painter - description: Colors the whole shape on the left input with the color from the top input. + description: &painter_desc Colors the whole shape on the left input with the color from the top input. double: name: Painter (Double) description: Colors the shapes on the left inputs with the color from the top input. quad: name: Painter (Quad) description: Allows to color each quadrant of the shape with a different color. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -731,6 +734,7 @@ keybindings: pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: About this Game diff --git a/translations/base-cz.yaml b/translations/base-cz.yaml index c780106c..6189ad06 100644 --- a/translations/base-cz.yaml +++ b/translations/base-cz.yaml @@ -231,7 +231,7 @@ dialogs: createMarker: title: Nová značka - desc: Dejte jí smysluplné jméno + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: V ukázce můžete vytvořit pouze dvě značky. Získejte plnou verzi pro neomezený počet značek! @@ -461,13 +461,16 @@ buildings: painter: default: name: &painter Barvič - description: Obarví celý tvar v levém vstupu barvou z pravého vstupu. + description: &painter_desc Obarví celý tvar v levém vstupu barvou z pravého vstupu. double: name: Barvič (dvojnásobný) description: Obarví tvary z levých vstupů barvou z horního vstupu. quad: name: Barvič (čtyřnásobný) description: Umožňuje obarvit každý dílek tvaru samostatně. + mirrored: + name: *painter + description: *painter_desc trash: default: diff --git a/translations/base-de.yaml b/translations/base-de.yaml index f66ec5bc..2ab40c34 100644 --- a/translations/base-de.yaml +++ b/translations/base-de.yaml @@ -249,7 +249,7 @@ dialogs: createMarker: title: Neuer Marker - desc: Gib ihm einen sinnvollen Namen + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: Du kannst nur 2 benutzerdefinierte Marker in der Demo benutzen. Hol dir die Standalone um unendlich viele Marker zu benutzen! @@ -475,7 +475,7 @@ buildings: painter: default: name: &painter Färber - description: Färbt die ganze Form aus dem linken Eingang mit der Farbe aus dem oberen Eingang. + description: &painter_desc Färbt die ganze Form aus dem linken Eingang mit der Farbe aus dem oberen Eingang. double: name: Färber (2-Fach) @@ -484,6 +484,9 @@ buildings: quad: name: Färber (4-Fach) description: Erlaubt jedes einzelne Viertel einer Form beliebig einzufärben. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -574,12 +577,12 @@ storyRewards: # Special reward, which is shown when there is no reward actually no_reward: - title: Next level + title: Nächstes Level 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! no_reward_freeplay: - title: Next level + title: Nächstes Level desc: >- Congratulations! By the way, more content is planned for the standalone! @@ -735,6 +738,7 @@ keybindings: pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: Über dieses Spiel diff --git a/translations/base-el.yaml b/translations/base-el.yaml index 3eb04db4..9e55e458 100644 --- a/translations/base-el.yaml +++ b/translations/base-el.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: New Marker - desc: Give it a meaningful name + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! @@ -475,13 +475,16 @@ buildings: painter: default: name: &painter Painter - description: Colors the whole shape on the left input with the color from the right input. + description: &painter_desc Colors the whole shape on the left input with the color from the right input. double: name: Painter (Double) description: Colors the shapes on the left inputs with the color from the top input. quad: name: Painter (Quad) description: Allows to color each quadrant of the shape with a different color. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -733,6 +736,7 @@ keybindings: pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: About this Game diff --git a/translations/base-en.yaml b/translations/base-en.yaml index 1b0314ed..5263895e 100644 --- a/translations/base-en.yaml +++ b/translations/base-en.yaml @@ -255,7 +255,7 @@ dialogs: createMarker: title: New Marker - desc: Give it a meaningful name + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! @@ -478,7 +478,12 @@ buildings: painter: default: name: &painter Painter - description: Colors the whole shape on the left input with the color from the top input. + description: &painter_desc Colors the whole shape on the left input with the color from the top input. + + mirrored: + name: *painter + description: *painter_desc + double: name: Painter (Double) description: Colors the shapes on the left inputs with the color from the top input. diff --git a/translations/base-es.yaml b/translations/base-es.yaml index 78ba8b53..2a41a917 100644 --- a/translations/base-es.yaml +++ b/translations/base-es.yaml @@ -246,7 +246,7 @@ dialogs: createMarker: title: Nueva marca - desc: Dale un nombre representativo + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: solo puedes crear dos marcas en la versión de prueba. Obtén el juego completo para marcas ilimitadas! @@ -469,13 +469,16 @@ buildings: painter: default: name: &painter Pintor - description: Colorea la figura entera con el color que entra por la izquierda. + description: &painter_desc Colorea la figura entera con el color que entra por la izquierda. double: name: Pintor (Doble) description: Colorea las figuras que entran por la izquierda con el color que entrapor arriba. quad: name: Pintor (Cuádruple) description: Permite colorear cada cuadrante de una figura con un color distinto. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -721,6 +724,7 @@ keybindings: pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: Sobre el Juego diff --git a/translations/base-fr.yaml b/translations/base-fr.yaml index 9e1c947e..4c31d041 100644 --- a/translations/base-fr.yaml +++ b/translations/base-fr.yaml @@ -257,7 +257,7 @@ dialogs: createMarker: title: Nouvelle balise - desc: Donnez-lui un nom approprié + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: Vous ne pouvez créer que deux balises dans la démo. Achetez la version complète pour en faire tant que vous voulez ! @@ -478,13 +478,16 @@ buildings: painter: default: name: &painter Peintre - description: Colorie entièrement la forme de gauche avec la couleur de droite. + description: &painter_desc Colorie entièrement la forme de gauche avec la couleur de droite. double: name: Peintre (Double) description: Colorie les deux formes de gauche avec la couleur de droite. quad: name: Peintre (Quadruple) description: Permet de colorier chaque quadrant d'une forme avec une couleur différente. + mirrored: + name: *painter + description: *painter_desc trash: default: diff --git a/translations/base-hu.yaml b/translations/base-hu.yaml index 5395506c..8af3f34d 100644 --- a/translations/base-hu.yaml +++ b/translations/base-hu.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: New Marker - desc: Adj neki egy értelmes nevet + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! @@ -475,13 +475,16 @@ buildings: painter: default: name: &painter Painter - description: Colors the whole shape on the left input with the color from the right input. + description: &painter_desc Colors the whole shape on the left input with the color from the right input. double: name: Painter (Double) description: Colors the shapes on the left inputs with the color from the top input. quad: name: Painter (Quad) description: Allows to color each quadrant of the shape with a different color. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -732,6 +735,7 @@ keybindings: pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: A játékról diff --git a/translations/base-it.yaml b/translations/base-it.yaml index 3eb04db4..9e55e458 100644 --- a/translations/base-it.yaml +++ b/translations/base-it.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: New Marker - desc: Give it a meaningful name + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! @@ -475,13 +475,16 @@ buildings: painter: default: name: &painter Painter - description: Colors the whole shape on the left input with the color from the right input. + description: &painter_desc Colors the whole shape on the left input with the color from the right input. double: name: Painter (Double) description: Colors the shapes on the left inputs with the color from the top input. quad: name: Painter (Quad) description: Allows to color each quadrant of the shape with a different color. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -733,6 +736,7 @@ keybindings: pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: About this Game diff --git a/translations/base-ja.yaml b/translations/base-ja.yaml index 2679bebe..b837ab74 100644 --- a/translations/base-ja.yaml +++ b/translations/base-ja.yaml @@ -249,7 +249,7 @@ dialogs: createMarker: title: マーカーを設置 - desc: わかりやすい名前をつけてください。 + desc: わかりやすい名前をつけてください。形を表す短いキーを含めることもできます。(ここから生成できます) markerDemoLimit: desc: デモ版ではマーカー設置は2つまでに制限されています。スタンドアローン版は無制限です! @@ -479,13 +479,16 @@ buildings: painter: default: name: &painter 着色機 - description: 左から入力された形の全体を、右から入力された色で着色します。 + description: &painter_desc 左から入力された形の全体を、右から入力された色で着色します。 double: name: 着色機 (ダブル) description: 左から入力された形を、上から入力された色で着色します。 quad: name: 着色機 (四分割) description: 入力された形を四分割づつ別の色で塗り分けられます。 + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -537,7 +540,7 @@ storyRewards: reward_underground_belt_tier_2: title: トンネル レベルII - desc: トンネルのバリエーションが利用可能になりました。 - 距離拡張版が追加され、以前のものと組み合わせて目的に応じて利用することができます! + desc: トンネルのバリエーションが利用可能になりました。 - 距離拡張版が追加され、以前のものと組み合わせて目的に応じて利用することができます! reward_splitter_compact: title: 合流機 (コンパクト) @@ -546,7 +549,7 @@ storyRewards: reward_cutter_quad: title: 四分割 - desc: 切断機のバリエーションが利用可能になりました。 - 上下の二分割ではなく、四分割に切断できます! + desc: 切断機のバリエーションが利用可能になりました。 - 上下の二分割ではなく、四分割に切断できます! reward_painter_double: title: 着色機 (ダブル) @@ -566,7 +569,7 @@ storyRewards: reward_blueprints: title: ブループリント - desc: 工場の建造物のコピー&ペーストが利用可能になりました! 範囲選択(CTRLキーを押したままマウスドラッグ)した状態で、'C'キーを押すことでコピーができます。

ペーストはタダではありません。ブループリントの形を生産することで可能になります!(たった今納品したものです) + desc: 工場の建造物のコピー&ペーストが利用可能になりました! 範囲選択(CTRLキーを押したままマウスドラッグ)した状態で、'C'キーを押すことでコピーができます。

ペーストはタダではありません。ブループリントの形を生産することで可能になります!(たった今納品したものです) # Special reward, which is shown when there is no reward actually no_reward: @@ -732,6 +735,7 @@ keybindings: pasteLastBlueprint: 直前のブループリントをペーストする massSelectCut: 範囲カット exportScreenshot: 工場の全体像を画像出力 + mapMoveFaster: より速く移動 about: title: このゲームについて diff --git a/translations/base-kor.yaml b/translations/base-kor.yaml index f9ca90a9..d24e7c47 100644 --- a/translations/base-kor.yaml +++ b/translations/base-kor.yaml @@ -255,7 +255,7 @@ dialogs: createMarker: title: 새로운 마커 - desc: 의미 있는 이름을 지어주세요 + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: 데모 버전에서는 마커를 2개 까지만 놓을 수 있습니다. 유료 버전을 구입하면 마커를 무제한으로 놓을 수 있습니다! @@ -480,13 +480,16 @@ buildings: painter: default: name: &painter 도형 색칠기 - description: 도형을 색소로 색칠한다. + description: &painter_desc 도형을 색소로 색칠한다. double: name: 2단 도형 색칠기 description: 왼쪽에 입력되는 도형을 위에서 입력되는 색소로 색칠한다. quad: name: 4단 도형 색칠기 description: 도형의 4가지 분단을 각각 다른 색으로 색칠할 수 있다. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -733,6 +736,7 @@ keybindings: placeMultiple: 배치 모드에 있기 placeInverse: 자동 벨트 회전 뒤집기 exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: 이 게임의 정보 diff --git a/translations/base-lt.yaml b/translations/base-lt.yaml index 7164fe34..4fce0ecb 100644 --- a/translations/base-lt.yaml +++ b/translations/base-lt.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: New Marker - desc: Give it a meaningful name + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! @@ -480,13 +480,16 @@ buildings: painter: default: name: &painter Painter - description: Colors the whole shape on the left input with the color from the top input. + description: &painter_desc Colors the whole shape on the left input with the color from the top input. double: name: Painter (Double) description: Colors the shapes on the left inputs with the color from the top input. quad: name: Painter (Quad) description: Allows to color each quadrant of the shape with a different color. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -732,6 +735,7 @@ keybindings: pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: About this Game diff --git a/translations/base-nl.yaml b/translations/base-nl.yaml index 979110d8..4cd4645b 100644 --- a/translations/base-nl.yaml +++ b/translations/base-nl.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: Nieuwe markering - desc: Geef het een betekenisvolle naam + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: Je kunt maar twee markeringen plaatsen in de demo. Koop de standalone voor een ongelimiteerde hoeveelheid markeringen! @@ -340,13 +340,13 @@ ingame: dataSources: stored: title: In opslag - description: Geeft weer hoe veel vormen er zijn opgeslagen in je centrale gebouw. + description: Geeft weer hoe veel vormen er zijn opgeslagen in de HUB. produced: title: Geproduceerd description: Geeft alle vormen weer die op dit moment geproduceerd worden, inclusief tussenproducten. delivered: title: Geleverd - description: Geeft alle vormen weer die in het centrale gebouw worden bezorgd. + description: Geeft alle vormen weer die in de HUB worden bezorgd. noShapesProduced: Er zijn nog geen vormen geproduceerd. # Displays the shapes per minute, e.g. '523 / m' @@ -372,7 +372,7 @@ ingame: # When placing a blueprint blueprintPlacer: - cost: Kost + cost: Prijs # Map markers waypoints: @@ -385,7 +385,7 @@ ingame: interactiveTutorial: title: Tutorial hints: - 1_1_extractor: Plaats een extractor op een cirkelvorm om deze te onttrekken! + 1_1_extractor: Plaats een ontginner op een cirkelvorm om deze te ontginnen! 1_2_conveyor: >- Verbind de extractor met een lopende band aan je hub!

Tip: Klik en sleep de lopende band met je muis! @@ -395,10 +395,10 @@ ingame: # All shop upgrades shopUpgrades: belt: - name: Lopende banden, Verdeler & Tunnels + name: Banden, Verdeler & Tunnels description: Snelheid x → x miner: - name: Extractor + name: Ontginner description: Snelheid x → x processors: name: Knippen, draaien & stapelen @@ -417,11 +417,11 @@ buildings: miner: # Internal name for the Extractor default: name: &miner Extractor - description: Plaats op een vorm of kleur om deze te onttrekken. + description: Plaats op een vorm of kleur om deze te ontginnen. chainable: name: Extractor (Ketting) - description: Plaats op een vorm of kleur om deze te onttrekken. Kan in serie worden geplaatst. + description: Plaats op een vorm of kleur om deze te ontginnen. Kan achter elkaar worden geplaatst. underground_belt: # Internal name for the Tunnel default: @@ -474,13 +474,16 @@ buildings: painter: default: name: &painter Verver - description: Verft de volledige vorm in de linker input met de kleur van de rechter input. + description: &painter_desc Verft de volledige vorm in de linker input met de kleur van de rechter input. double: name: Verver (Dubbel) description: Verft de vormen in de linker inputs met de kleur van de rechter input. quad: name: Verver (Quad) description: Verft elke kwart van de vorm een andere kleur. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -732,6 +735,7 @@ keybindings: pasteLastBlueprint: Plak laatst gekopiëerde blauwdruk massSelectCut: Knip geselecteerd gebied exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: Over dit spel diff --git a/translations/base-no.yaml b/translations/base-no.yaml index 96f468c7..73f99fcf 100644 --- a/translations/base-no.yaml +++ b/translations/base-no.yaml @@ -55,7 +55,7 @@ steamPage: Spillet er åpen kildekode - Alle kan bidra! Utenom det, så lytter jeg [b]veldig[/b] til samfunnet! Jeg prøver å lese alle forslag og ta imot så mye tilbakemeldinger som mulig. [list] - [*] Kampanje + [*] Kampanje [*] Flere nivåer & bygninger (Frittstående eksklusivt) [*] Forskjellige brett, og kanskje hinder på brettet [*] Konfigurerbart brett-generasjon (Endre antall og størrelse på ressursfelt, seed, med mer) @@ -255,7 +255,7 @@ dialogs: createMarker: title: Ny Markør - desc: Gi markøren et meningsfylt navn + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: Du kan kun ha to markører i demo verjsonen. Skaff deg frittstående versjon for ubegrensede markører! @@ -478,13 +478,16 @@ buildings: painter: default: name: &painter Maler - description: Maler hele objektet på venstre inngang med fargen fra øverste inngang. + description: &painter_desc Maler hele objektet på venstre inngang med fargen fra øverste inngang. double: name: Maler (Dobbel) description: Maler hele objektet på venstre inngang med fargen fra øverste inngang. quad: name: Maler (Fireganger) description: Farger enhver kvadrant av objektet med forskjellige farger. + mirrored: + name: *painter + description: *painter_desc trash: default: diff --git a/translations/base-pl.yaml b/translations/base-pl.yaml index b6bc4781..713884e8 100644 --- a/translations/base-pl.yaml +++ b/translations/base-pl.yaml @@ -254,7 +254,7 @@ dialogs: createMarker: title: Nowy Znacznik - desc: Nadaj nazwę + desc: Podaj nazwę znacznika. Możesz w niej zawrzeć kod kształtu, który możesz wygenerować tutaj. markerDemoLimit: desc: Możesz stworzyć tylko dwa własne znaczniki w wersji demo. Zakup pełną wersję gry dla nielimitowanych znaczników! @@ -489,13 +489,16 @@ buildings: # 2nd translator's note: All those buildings had different descriptions in english. Don't change them all to the same description. default: name: &painter Malarz - description: Koloruje kształt za pomocą koloru dostarczonego od boku. + description: &painter_desc Koloruje kształt za pomocą koloru dostarczonego od boku. double: name: Malarz (Podwójny) description: Koloruje kształt za pomocą koloru dostarczonych od boku. Koloruje 2 kształty używając 1 barwnika. quad: name: Malarz (Poczwórny) description: Koloruje każdą ćwiarkę kształtu na inny kolor, używając dostarczonych kolorów. + mirrored: + name: *painter + description: *painter_desc trash: default: diff --git a/translations/base-pt-BR.yaml b/translations/base-pt-BR.yaml index efb240ca..185b7379 100644 --- a/translations/base-pt-BR.yaml +++ b/translations/base-pt-BR.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: Nova Marcação - desc: Dê um nome relevante + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: >- Você só pode criar dois marcadores na versão demo. Adquira a versão completa para marcadores ilimitados! @@ -477,13 +477,16 @@ buildings: painter: default: name: &painter Pintor - description: Colore a forma inteira na entrada esquerda com a cor da entrada direita. + description: &painter_desc Colore a forma inteira na entrada esquerda com a cor da entrada direita. double: name: Pintor (Duplo) description: Colore as duas formas na entrada esquerda com a cor da entrada direita. quad: name: Pintor (Quádruplo) description: Permite colorir cada quadrante da forma com uma cor diferente. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -733,6 +736,7 @@ keybindings: pasteLastBlueprint: Colar último projeto massSelectCut: Cortar área exportScreenshot: Exportar base inteira como imagem + mapMoveFaster: Move Faster about: title: Sobre o jogo diff --git a/translations/base-pt-PT.yaml b/translations/base-pt-PT.yaml index 9dbfd61b..6bb689af 100644 --- a/translations/base-pt-PT.yaml +++ b/translations/base-pt-PT.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: Novo marco - desc: Dá-lhe um nome com significado + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: Apenas podes criar dois marcos na versão Demo. Adquire o jogo completo para colocar marcos infinitos! @@ -474,13 +474,16 @@ buildings: painter: default: name: &painter Pintor - description: Pinta a forma geométrica da entrada esquerda com a cor da entrada superior. + description: &painter_desc Pinta a forma geométrica da entrada esquerda com a cor da entrada superior. double: name: Pintor (Duplo) description: Pinta as formas geométricas das entradas esquerdas com a cor da entrada superior. quad: name: Pintor (Quádruplo) description: Pinta cada quadrante da forma geométrica com uma cor diferente. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -731,6 +734,7 @@ keybindings: pasteLastBlueprint: Colar o último blueprint massSelectCut: Cortar área exportScreenshot: Exportar a base como uma imagem + mapMoveFaster: Move Faster about: title: Sobre o jogo body: >- diff --git a/translations/base-ro.yaml b/translations/base-ro.yaml index 1eeadd47..71154262 100644 --- a/translations/base-ro.yaml +++ b/translations/base-ro.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: New Marker - desc: Give it a meaningful name + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! @@ -475,13 +475,16 @@ buildings: painter: default: name: &painter Painter - description: Colors the whole shape on the left input with the color from the right input. + description: &painter_desc Colors the whole shape on the left input with the color from the right input. double: name: Painter (Double) description: Colors the shapes on the left inputs with the color from the top input. quad: name: Painter (Quad) description: Allows to color each quadrant of the shape with a different color. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -732,6 +735,7 @@ keybindings: pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: About this Game diff --git a/translations/base-ru.yaml b/translations/base-ru.yaml index 23628e79..f3bac5ff 100644 --- a/translations/base-ru.yaml +++ b/translations/base-ru.yaml @@ -227,7 +227,7 @@ dialogs: title: Улучшения открыты! desc: >- Все формы, которые вы производите, могут быть использованы для разблокировки - улучшений - Не разрушайте свои старые фабрики! + улучшений - Не разрушайте свои старые фабрики! Вкладка обновлений находится в правом верхнем углу экрана. massDeleteConfirm: title: Подтвердить удаление @@ -250,21 +250,21 @@ dialogs: createMarker: title: Новый маркер - desc: Напишите содержательное имя. + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: Вы можете создать только 2 своих маркера в демо версии. Приобретите полную версию для безлимитных маркеров. massCutConfirm: title: Подтвердите вырезку desc: >- - Вы вырезаете много зданий (точнее: )! Вы уверены, + Вы вырезаете много зданий (точнее: )! Вы уверены, что хотите это сделать? exportScreenshotWarning: title: Экспорт скриншота desc: >- Вы запросили экспортировать вашу базу в виде скриншота. Обратите внимание, - что это может быть довольно медленным процессом для большой базы + что это может быть довольно медленным процессом для большой базы и даже привести к аварийному завершению игры! ingame: @@ -397,7 +397,7 @@ ingame: # All shop upgrades shopUpgrades: belt: - name: Конвейеры, Расделители & Туннели + name: Конвейеры, Разделители & Туннели description: Скорость x → x miner: name: Добыча @@ -476,13 +476,16 @@ buildings: painter: default: name: &painter Покрасчик - description: Красит всю фигуру из левого входа красителем из верхнего. + description: &painter_desc Красит всю фигуру из левого входа красителем из верхнего. double: name: Покрасчик (Двойной) description: Красит фигуру из левых входов красителем из верхнего. quad: name: Покрасчик (Четырехпоточный) description: Позволяет раскрасить каждую четверть фигуры разными цветами. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -652,7 +655,7 @@ settings: alwaysMultiplace: title: Многократное размещение description: >- - Если включено, все здания останутся выбранными после размещения, пока вы не отмените выбор. Это эквивалентно постоянному удержанию SHIFT. + Если включено, все здания останутся выбранными после размещения, пока вы не отмените выбор. Это эквивалентно постоянному удержанию SHIFT. offerHints: title: Подсказки & Обучение @@ -733,6 +736,7 @@ keybindings: pasteLastBlueprint: Вставить последний чертеж massSelectCut: Вырезать область exportScreenshot: Экспорт всей Базы в виде Изображения + mapMoveFaster: Move Faster about: title: О игре @@ -751,7 +755,7 @@ about: target="_blank">Peppsen - Он потрясающий.

Наконец, огромное спасибо моему лучшему другу Niklas - Без наших + href="https://github.com/niklas-dahl" target="_blank">Niklas - Без наших игровых сессий в factorio эта игра никогда не существовала бы. changelog: diff --git a/translations/base-sv.yaml b/translations/base-sv.yaml index 1eeadd47..71154262 100644 --- a/translations/base-sv.yaml +++ b/translations/base-sv.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: New Marker - desc: Give it a meaningful name + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! @@ -475,13 +475,16 @@ buildings: painter: default: name: &painter Painter - description: Colors the whole shape on the left input with the color from the right input. + description: &painter_desc Colors the whole shape on the left input with the color from the right input. double: name: Painter (Double) description: Colors the shapes on the left inputs with the color from the top input. quad: name: Painter (Quad) description: Allows to color each quadrant of the shape with a different color. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -732,6 +735,7 @@ keybindings: pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: About this Game diff --git a/translations/base-tr.yaml b/translations/base-tr.yaml index dfd97ed3..a5891111 100644 --- a/translations/base-tr.yaml +++ b/translations/base-tr.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: New Marker - desc: Give it a meaningful name + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! @@ -480,13 +480,16 @@ buildings: painter: default: name: &painter Painter - description: Colors the whole shape on the left input with the color from the right input. + description: &painter_desc Colors the whole shape on the left input with the color from the right input. double: name: Painter (Double) description: Colors the shapes on the left inputs with the color from the top input. quad: name: Painter (Quad) description: Allows to color each quadrant of the shape with a different color. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -733,6 +736,7 @@ keybindings: pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: About this Game diff --git a/translations/base-zh-CN.yaml b/translations/base-zh-CN.yaml index 1eeadd47..71154262 100644 --- a/translations/base-zh-CN.yaml +++ b/translations/base-zh-CN.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: New Marker - desc: Give it a meaningful name + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! @@ -475,13 +475,16 @@ buildings: painter: default: name: &painter Painter - description: Colors the whole shape on the left input with the color from the right input. + description: &painter_desc Colors the whole shape on the left input with the color from the right input. double: name: Painter (Double) description: Colors the shapes on the left inputs with the color from the top input. quad: name: Painter (Quad) description: Allows to color each quadrant of the shape with a different color. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -732,6 +735,7 @@ keybindings: pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: About this Game diff --git a/translations/base-zh-TW.yaml b/translations/base-zh-TW.yaml index 1eeadd47..71154262 100644 --- a/translations/base-zh-TW.yaml +++ b/translations/base-zh-TW.yaml @@ -250,7 +250,7 @@ dialogs: createMarker: title: New Marker - desc: Give it a meaningful name + desc: Give it a meaningful name, you can also include a short key of a shape (Which you can generate here) markerDemoLimit: desc: You can only create two custom markers in the demo. Get the standalone for unlimited markers! @@ -475,13 +475,16 @@ buildings: painter: default: name: &painter Painter - description: Colors the whole shape on the left input with the color from the right input. + description: &painter_desc Colors the whole shape on the left input with the color from the right input. double: name: Painter (Double) description: Colors the shapes on the left inputs with the color from the top input. quad: name: Painter (Quad) description: Allows to color each quadrant of the shape with a different color. + mirrored: + name: *painter + description: *painter_desc trash: default: @@ -732,6 +735,7 @@ keybindings: pasteLastBlueprint: Paste last blueprint massSelectCut: Cut area exportScreenshot: Export whole Base as Image + mapMoveFaster: Move Faster about: title: About this Game diff --git a/version b/version index 0437331a..f662c7e9 100644 --- a/version +++ b/version @@ -1 +1 @@ -1.1.13 \ No newline at end of file +1.1.14 \ No newline at end of file