aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Pickering <alex@cogarr.net>2020-02-02 08:11:08 -0500
committerAlexander Pickering <alex@cogarr.net>2020-02-02 08:11:08 -0500
commit57701059b1b65fc08366318e92d32d9dd7094d25 (patch)
treea569db68d27982d83fead3cc9c8192056c49509f
downloaddrydock-57701059b1b65fc08366318e92d32d9dd7094d25.tar.gz
drydock-57701059b1b65fc08366318e92d32d9dd7094d25.tar.bz2
drydock-57701059b1b65fc08366318e92d32d9dd7094d25.zip
inital commit
-rw-r--r--.gitignore5
-rw-r--r--Makefile71
-rw-r--r--aap-64-1x.pngbin0 -> 404 bytes
-rw-r--r--data_src/Alien-Ships/Alien-Battlecruiser.psdbin0 -> 339491 bytes
-rw-r--r--data_src/Alien-Ships/Alien-Battleship.psdbin0 -> 435938 bytes
-rw-r--r--data_src/Alien-Ships/Alien-Bomber.psdbin0 -> 244816 bytes
-rw-r--r--data_src/Alien-Ships/Alien-Cruiser.psdbin0 -> 321892 bytes
-rw-r--r--data_src/Alien-Ships/Alien-Destroyer.psdbin0 -> 279479 bytes
-rw-r--r--data_src/Alien-Ships/Alien-Frigate.psdbin0 -> 259057 bytes
-rw-r--r--data_src/Alien-Ships/Alien-HeavyCruiser.psdbin0 -> 351442 bytes
-rw-r--r--data_src/Alien-Ships/Alien-Mothership2.psdbin0 -> 1231452 bytes
-rw-r--r--data_src/Alien-Ships/Alien-Scout.psdbin0 -> 97573 bytes
-rw-r--r--data_src/Alien-Ships/Alien-Spacestation.psdbin0 -> 378697 bytes
-rw-r--r--data_src/Example_ships/1.pngbin0 -> 15069 bytes
-rw-r--r--data_src/Example_ships/10.pngbin0 -> 14008 bytes
-rw-r--r--data_src/Example_ships/10B.pngbin0 -> 15176 bytes
-rw-r--r--data_src/Example_ships/11.pngbin0 -> 50593 bytes
-rw-r--r--data_src/Example_ships/11B.pngbin0 -> 51495 bytes
-rw-r--r--data_src/Example_ships/12.pngbin0 -> 22295 bytes
-rw-r--r--data_src/Example_ships/12B.pngbin0 -> 24022 bytes
-rw-r--r--data_src/Example_ships/13.pngbin0 -> 21685 bytes
-rw-r--r--data_src/Example_ships/13B.pngbin0 -> 21726 bytes
-rw-r--r--data_src/Example_ships/1B.pngbin0 -> 15375 bytes
-rw-r--r--data_src/Example_ships/2.pngbin0 -> 24673 bytes
-rw-r--r--data_src/Example_ships/2B.pngbin0 -> 25614 bytes
-rw-r--r--data_src/Example_ships/3.pngbin0 -> 43412 bytes
-rw-r--r--data_src/Example_ships/3B.pngbin0 -> 45068 bytes
-rw-r--r--data_src/Example_ships/4.pngbin0 -> 22095 bytes
-rw-r--r--data_src/Example_ships/4B.pngbin0 -> 24181 bytes
-rw-r--r--data_src/Example_ships/5.pngbin0 -> 18363 bytes
-rw-r--r--data_src/Example_ships/5B.pngbin0 -> 19024 bytes
-rw-r--r--data_src/Example_ships/6.pngbin0 -> 18372 bytes
-rw-r--r--data_src/Example_ships/6B.pngbin0 -> 18959 bytes
-rw-r--r--data_src/Example_ships/7.pngbin0 -> 40327 bytes
-rw-r--r--data_src/Example_ships/7B.pngbin0 -> 42819 bytes
-rw-r--r--data_src/Example_ships/8.pngbin0 -> 39442 bytes
-rw-r--r--data_src/Example_ships/8B.pngbin0 -> 40069 bytes
-rw-r--r--data_src/Example_ships/9.pngbin0 -> 73113 bytes
-rw-r--r--data_src/Example_ships/9B.pngbin0 -> 77847 bytes
-rw-r--r--data_src/MONK.blendbin0 -> 5642310 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts.orabin0 -> 433785 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts.psdbin0 -> 1253406 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/Thumbnails/thumbnail.pngbin0 -> 59494 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/001-000.pngbin0 -> 1108 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/001-001.pngbin0 -> 1439 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/001-002.pngbin0 -> 1671 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/001-003.pngbin0 -> 1619 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/001-004.pngbin0 -> 1308 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/001-005.pngbin0 -> 3857 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/001-006.pngbin0 -> 547 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/001-007.pngbin0 -> 546 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/001.pngbin0 -> 1198 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/002.pngbin0 -> 5060 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/003.pngbin0 -> 3889 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/004.pngbin0 -> 2006 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/005.pngbin0 -> 6513 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/006.pngbin0 -> 4266 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/007.pngbin0 -> 902 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/008.pngbin0 -> 814 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/009.pngbin0 -> 898 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/010.pngbin0 -> 3029 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/011.pngbin0 -> 1736 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/012.pngbin0 -> 1578 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/013.pngbin0 -> 1035 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/014.pngbin0 -> 2027 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/015.pngbin0 -> 813 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/016.pngbin0 -> 1555 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/017.pngbin0 -> 2874 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/018.pngbin0 -> 568 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/019.pngbin0 -> 584 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/020.pngbin0 -> 724 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/021.pngbin0 -> 490 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/022.pngbin0 -> 545 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/023.pngbin0 -> 1093 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/024.pngbin0 -> 7805 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/025.pngbin0 -> 1028 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/026.pngbin0 -> 1989 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/027.pngbin0 -> 2220 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/028.pngbin0 -> 679 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/029.pngbin0 -> 3171 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/030.pngbin0 -> 12118 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/031.pngbin0 -> 3031 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/032.pngbin0 -> 3041 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/033.pngbin0 -> 5406 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/034.pngbin0 -> 787 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/035.pngbin0 -> 2780 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/036.pngbin0 -> 983 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/037.pngbin0 -> 1321 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/038.pngbin0 -> 500 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/039.pngbin0 -> 345 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/040.pngbin0 -> 383 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/041.pngbin0 -> 357 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/042.pngbin0 -> 1312 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/043.pngbin0 -> 1987 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/044.pngbin0 -> 2864 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/045.pngbin0 -> 3293 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/046.pngbin0 -> 1953 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/047.pngbin0 -> 393 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/048.pngbin0 -> 434 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/049.pngbin0 -> 4128 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/050.pngbin0 -> 2121 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/051.pngbin0 -> 6985 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/052.pngbin0 -> 254 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/053.pngbin0 -> 2082 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/054.pngbin0 -> 306 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/055.pngbin0 -> 2214 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/056.pngbin0 -> 522 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/057.pngbin0 -> 2288 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/058.pngbin0 -> 831 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/059.pngbin0 -> 3048 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/060.pngbin0 -> 2050 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/061.pngbin0 -> 4096 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/062.pngbin0 -> 3185 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/063.pngbin0 -> 1008 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/064.pngbin0 -> 3787 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/065.pngbin0 -> 3708 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/066.pngbin0 -> 1445 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/067.pngbin0 -> 1472 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/068.pngbin0 -> 1427 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/069.pngbin0 -> 1335 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/070.pngbin0 -> 948 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/071.pngbin0 -> 1076 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/072.pngbin0 -> 439 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/073.pngbin0 -> 3259 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/074.pngbin0 -> 1557 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/075.pngbin0 -> 1168 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/076.pngbin0 -> 615 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/077.pngbin0 -> 2004 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/078.pngbin0 -> 448 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/079.pngbin0 -> 1671 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/080.pngbin0 -> 1922 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/081.pngbin0 -> 266 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/082.pngbin0 -> 808 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/083.pngbin0 -> 1906 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/084.pngbin0 -> 1002 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/085.pngbin0 -> 1179 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/086.pngbin0 -> 1176 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/087.pngbin0 -> 5040 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/088.pngbin0 -> 2090 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/089.pngbin0 -> 988 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/090.pngbin0 -> 2165 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/091.pngbin0 -> 1668 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/092.pngbin0 -> 913 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/093.pngbin0 -> 3350 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/094.pngbin0 -> 8794 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/095.pngbin0 -> 6645 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/096.pngbin0 -> 2054 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/097.pngbin0 -> 1032 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/098.pngbin0 -> 1675 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/099.pngbin0 -> 1856 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/100.pngbin0 -> 1681 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/101.pngbin0 -> 2148 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/102.pngbin0 -> 3137 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/103.pngbin0 -> 11027 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/104.pngbin0 -> 3559 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/105.pngbin0 -> 13236 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/106.pngbin0 -> 1707 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/107.pngbin0 -> 3912 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/108.pngbin0 -> 4983 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/109.pngbin0 -> 2414 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/110.pngbin0 -> 880 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/111.pngbin0 -> 1042 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/112.pngbin0 -> 1871 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/113.pngbin0 -> 3064 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/114.pngbin0 -> 803 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/115.pngbin0 -> 690 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/116.pngbin0 -> 1435 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/117.pngbin0 -> 4522 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/118.pngbin0 -> 9447 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/119.pngbin0 -> 800 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/120.pngbin0 -> 3412 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/121.pngbin0 -> 3386 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/122.pngbin0 -> 2690 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/123.pngbin0 -> 4202 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/124.pngbin0 -> 7416 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/125.pngbin0 -> 14258 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/126.pngbin0 -> 655 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/127.pngbin0 -> 3519 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/data/128.pngbin0 -> 6077 bytes
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/mimetype1
-rw-r--r--data_src/Spaceship-Parts/Spaceship-Parts/stack.xml2
-rw-r--r--data_src/Stars-Nebulae/Nebula1.pngbin0 -> 441422 bytes
-rw-r--r--data_src/Stars-Nebulae/Nebula2.pngbin0 -> 354620 bytes
-rw-r--r--data_src/Stars-Nebulae/Nebula3.pngbin0 -> 570970 bytes
-rw-r--r--data_src/Stars-Nebulae/Stars.pngbin0 -> 82047 bytes
-rw-r--r--data_src/afterburn.pngbin0 -> 9152 bytes
-rw-r--r--data_src/car-battery.pngbin0 -> 3582 bytes
-rw-r--r--data_src/electric.pngbin0 -> 4802 bytes
-rw-r--r--data_src/electrical-resistance.pngbin0 -> 6632 bytes
-rw-r--r--data_src/fuel-tank.pngbin0 -> 7576 bytes
-rw-r--r--data_src/joint1000.pngbin0 -> 1436 bytes
-rw-r--r--data_src/joint1010.pngbin0 -> 1395 bytes
-rw-r--r--data_src/joint1100.pngbin0 -> 1469 bytes
-rw-r--r--data_src/joint1110.pngbin0 -> 1442 bytes
-rw-r--r--data_src/joint1111.pngbin0 -> 1485 bytes
-rw-r--r--data_src/lightning-dissipation.pngbin0 -> 14989 bytes
-rw-r--r--data_src/models/complete.blendbin0 -> 478116 bytes
-rw-r--r--data_src/models/complete.blend1bin0 -> 467072 bytes
-rw-r--r--data_src/models/green_outline.blendbin0 -> 479788 bytes
-rw-r--r--data_src/models/green_outline.blend1bin0 -> 479788 bytes
-rw-r--r--data_src/models/grid.blendbin0 -> 450064 bytes
-rw-r--r--data_src/models/grid.blend1bin0 -> 450064 bytes
-rw-r--r--data_src/models/icon_battery.blendbin0 -> 420780 bytes
-rw-r--r--data_src/models/icon_battery.blend1bin0 -> 464636 bytes
-rw-r--r--data_src/models/icon_engine.blendbin0 -> 430124 bytes
-rw-r--r--data_src/models/icon_engine.blend1bin0 -> 430124 bytes
-rw-r--r--data_src/models/icon_fueltank.blendbin0 -> 466724 bytes
-rw-r--r--data_src/models/icon_fueltank.blend1bin0 -> 466724 bytes
-rw-r--r--data_src/models/icon_generator.blendbin0 -> 462212 bytes
-rw-r--r--data_src/models/icon_generator.blend1bin0 -> 462212 bytes
-rw-r--r--data_src/models/icon_high_voltage.blendbin0 -> 464712 bytes
-rw-r--r--data_src/models/icon_high_voltage.blend1bin0 -> 465048 bytes
-rw-r--r--data_src/models/icon_hv_source.blendbin0 -> 428212 bytes
-rw-r--r--data_src/models/icon_hv_source.blend1bin0 -> 471980 bytes
-rw-r--r--data_src/models/icon_ionthrust.blendbin0 -> 466932 bytes
-rw-r--r--data_src/models/icon_ionthrust.blend1bin0 -> 466932 bytes
-rw-r--r--data_src/models/icon_laser_turret.blendbin0 -> 428124 bytes
-rw-r--r--data_src/models/icon_laser_turret.blend1bin0 -> 463916 bytes
-rw-r--r--data_src/models/icon_wire.blendbin0 -> 426856 bytes
-rw-r--r--data_src/models/icon_wire.blend1bin0 -> 428096 bytes
-rw-r--r--data_src/models/layer_electric.blendbin0 -> 470936 bytes
-rw-r--r--data_src/models/layer_electric.blend1bin0 -> 468568 bytes
-rw-r--r--data_src/models/layer_fuel.blendbin0 -> 489780 bytes
-rw-r--r--data_src/models/layer_fuel.blend1bin0 -> 489780 bytes
-rw-r--r--data_src/models/layer_hv.blendbin0 -> 480008 bytes
-rw-r--r--data_src/models/layer_hv.blend1bin0 -> 483452 bytes
-rw-r--r--data_src/models/level_1.blendbin0 -> 468212 bytes
-rw-r--r--data_src/models/level_1.blend1bin0 -> 468212 bytes
-rw-r--r--data_src/models/level_10.blendbin0 -> 439832 bytes
-rw-r--r--data_src/models/level_10.blend1bin0 -> 432712 bytes
-rw-r--r--data_src/models/level_11.blendbin0 -> 631168 bytes
-rw-r--r--data_src/models/level_12.blendbin0 -> 487332 bytes
-rw-r--r--data_src/models/level_12.blend1bin0 -> 487332 bytes
-rw-r--r--data_src/models/level_2.blendbin0 -> 471764 bytes
-rw-r--r--data_src/models/level_2.blend1bin0 -> 471764 bytes
-rw-r--r--data_src/models/level_3.blendbin0 -> 468956 bytes
-rw-r--r--data_src/models/level_3p2.blendbin0 -> 476340 bytes
-rw-r--r--data_src/models/level_3p2.blend1bin0 -> 476340 bytes
-rw-r--r--data_src/models/level_4.blendbin0 -> 460484 bytes
-rw-r--r--data_src/models/level_4.blend1bin0 -> 460484 bytes
-rw-r--r--data_src/models/level_5.blendbin0 -> 463708 bytes
-rw-r--r--data_src/models/level_5.blend1bin0 -> 463708 bytes
-rw-r--r--data_src/models/level_6.blendbin0 -> 468988 bytes
-rw-r--r--data_src/models/level_6.blend1bin0 -> 468988 bytes
-rw-r--r--data_src/models/level_7.blendbin0 -> 471700 bytes
-rw-r--r--data_src/models/level_7.blend1bin0 -> 471700 bytes
-rw-r--r--data_src/models/level_8.blendbin0 -> 523668 bytes
-rw-r--r--data_src/models/level_8.blend1bin0 -> 457488 bytes
-rw-r--r--data_src/models/level_9.blendbin0 -> 428188 bytes
-rw-r--r--data_src/models/level_9.blend1bin0 -> 471956 bytes
-rw-r--r--data_src/models/level_complete.blendbin0 -> 459228 bytes
-rw-r--r--data_src/models/level_complete.blend1bin0 -> 459228 bytes
-rw-r--r--data_src/models/manage_chatbox.blendbin0 -> 482684 bytes
-rw-r--r--data_src/models/manage_chatbox.blend1bin0 -> 496380 bytes
-rw-r--r--data_src/models/manage_portrait.blendbin0 -> 7270428 bytes
-rw-r--r--data_src/models/manage_portrait.blend1bin0 -> 7268444 bytes
-rw-r--r--data_src/models/money_background.blendbin0 -> 478384 bytes
-rw-r--r--data_src/models/money_background.blend1bin0 -> 478384 bytes
-rw-r--r--data_src/models/numbered_grid.blendbin0 -> 478596 bytes
-rw-r--r--data_src/models/numbered_grid.blend1bin0 -> 454588 bytes
-rw-r--r--data_src/models/ph_manager.blendbin0 -> 5568828 bytes
-rw-r--r--data_src/models/ph_manager.blend1bin0 -> 5568828 bytes
-rw-r--r--data_src/models/ph_start_screen.blendbin0 -> 462676 bytes
-rw-r--r--data_src/models/ph_start_screen.blend1bin0 -> 462676 bytes
-rw-r--r--data_src/models/pipe1111.blendbin0 -> 483752 bytes
-rw-r--r--data_src/models/pipe1111.blend1bin0 -> 490936 bytes
-rw-r--r--data_src/models/pipe1111_hint.blendbin0 -> 488276 bytes
-rw-r--r--data_src/models/selected_layer_outline.blendbin0 -> 464020 bytes
-rw-r--r--data_src/models/selected_layer_outline.blend1bin0 -> 464020 bytes
-rw-r--r--data_src/models/star.blend1bin0 -> 468996 bytes
-rw-r--r--data_src/models/star1.blendbin0 -> 465016 bytes
-rw-r--r--data_src/models/star2.blendbin0 -> 460492 bytes
-rw-r--r--data_src/models/star2.blend1bin0 -> 468996 bytes
-rw-r--r--data_src/models/star3.blendbin0 -> 464580 bytes
-rw-r--r--data_src/models/star3.blend1bin0 -> 464580 bytes
-rw-r--r--data_src/models/test.blendbin0 -> 457488 bytes
-rw-r--r--data_src/models/test_ship.blendbin0 -> 479668 bytes
-rw-r--r--data_src/models/test_ship.blend1bin0 -> 479668 bytes
-rw-r--r--data_src/models/texture_brick.blendbin0 -> 508884 bytes
-rw-r--r--data_src/models/texture_dirt_1.blendbin0 -> 495156 bytes
-rw-r--r--data_src/models/texture_dirt_1.blend1bin0 -> 495156 bytes
-rw-r--r--data_src/models/texture_red_white_checker.blendbin0 -> 493964 bytes
-rw-r--r--data_src/models/texture_red_white_checker.blend1bin0 -> 493964 bytes
-rw-r--r--data_src/models/texture_wood_1.blendbin0 -> 496220 bytes
-rw-r--r--data_src/models/unselected_layer_outline.blendbin0 -> 477016 bytes
-rw-r--r--data_src/models/unselected_layer_outline.blend1bin0 -> 477016 bytes
-rw-r--r--data_src/nuclear-plant.pngbin0 -> 13627 bytes
-rw-r--r--data_src/plug.pngbin0 -> 5382 bytes
-rw-r--r--data_src/power-generator.pngbin0 -> 11264 bytes
-rw-r--r--data_src/pylon.pngbin0 -> 11519 bytes
-rw-r--r--data_src/rocket-thruster.pngbin0 -> 19239 bytes
-rw-r--r--data_src/space.jpgbin0 -> 285337 bytes
-rw-r--r--data_src/straight-pipe.pngbin0 -> 4585 bytes
-rw-r--r--data_src/tee-pipe.pngbin0 -> 5058 bytes
-rw-r--r--data_src/tesla-turret.pngbin0 -> 7579 bytes
-rw-r--r--data_src/test_ship.tsx7
-rw-r--r--rewrite.lua30
-rw-r--r--src/complete.moon37
-rw-r--r--src/conf.lua6
-rw-r--r--src/dispatch.moon72
-rw-r--r--src/ext.lua72
-rw-r--r--src/game.moon131
-rw-r--r--src/global.moon22
-rw-r--r--src/graph.lua191
-rw-r--r--src/layers.moon151
-rw-r--r--src/level1.moon56
-rw-r--r--src/level10.moon54
-rw-r--r--src/level11.moon83
-rw-r--r--src/level12.moon83
-rw-r--r--src/level2.moon43
-rw-r--r--src/level3.moon40
-rw-r--r--src/level3p2.moon44
-rw-r--r--src/level4.moon52
-rw-r--r--src/level5.moon52
-rw-r--r--src/level6.moon56
-rw-r--r--src/level7.moon56
-rw-r--r--src/level8.moon56
-rw-r--r--src/level9.moon56
-rw-r--r--src/main.moon36
-rw-r--r--src/manager.moon9
-rw-r--r--src/startscreen.moon12
-rw-r--r--src/ui.moon70
322 files changed, 1656 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4dd8d16
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+build/*
+data_src/img_raw/*
+debug/*
+ggj20/*
+*.zip
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..e59c443
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,71 @@
+
+#Binaries
+BLENDER = "C:\Program Files\Blender Foundation\Blender\blender.exe"
+CONVERT = convert
+MOONC = moonc.bat
+CP = cp
+CAT = cat
+CD = cd
+AMULET = amulet-console
+LUA = lua
+MV = mv
+UNZIP = unzip -o #overwrite without asking
+HTTP_SERVER = python -m http.server #STL
+OPEN_BROWSER = rundll32 url.dll,FileProtocolHandler http://localhost:8000
+ECHO=echo
+
+moon_files = $(shell ls src/*.moon)
+lua_files = $(shell ls src/*.lua)
+build_moon_files = $(moon_files:src/%.moon=build/%.lua)
+debug_moon_files = $(moon_files:src/%.moon=debug/%.lua.X)
+build_lua_files = $(lua_files:src/%.lua=build/%.lua)
+
+#Sprites from models
+model_files = $(shell sh -c "find data_src/models/*.blend")
+raw_imgs = $(model_files:data_src/models/%.blend=data_src/img_raw/%_raw.png)
+static_files = $(shell ls data_src/*.jpg) $(shell ls data_src/*.png)
+static_imgs = $(static_files:data_src/%=build/data/%)
+sprites = $(raw_imgs:data_src/img_raw/%_raw.png=build/data/%.png)
+all_files = $(build_moon_files) $(build_lua_files) $(debug_moon_files) $(sprites)
+
+all ggj20-1.0.0-html.zip : $(build_lua_files) $(build_moon_files) $(sprites) $(static_imgs)
+ $(AMULET) export -r -windows -mac -linux -html build
+
+serve: ggj20-1.0.0-html.zip
+ $(UNZIP) $^
+ $(OPEN_BROWSER)
+ $(CD) ggj20 && $(HTTP_SERVER)
+
+dev: $(build_lua_files) $(build_moon_files) $(debug_moon_files) $(sprites) $(static_imgs)
+ $(CD) build && $(AMULET) 2> err.log || true
+ $(CAT) build/err.log | $(LUA) rewrite.lua
+
+$(build_moon_files) : build/%.lua : src/%.moon
+ $(MOONC) -o $@ $<
+
+$(debug_moon_files) : debug/%.lua.X : src/%.moon
+ $(MOONC) -X $< > $@
+
+$(build_lua_files) : build/%.lua : src/%.lua
+ $(CP) $< $@
+
+#Convert images to our reduce 64 colors
+$(sprites) : build/data/%.png : data_src/img_raw/%_raw.png
+ $(CONVERT) $^ +dither -remap aap-64-1x.png $@
+
+$(raw_imgs) : data_src/img_raw/%_raw.png : data_src/models/%.blend
+ $(BLENDER) -b $^ -o //../../$(@:%_raw.png=%_raw_) -f 1
+ $(MV) $(@:%_raw.png=%_raw_0001.png) $@
+
+$(static_imgs) : build/data/% : data_src/%
+ $(CP) $^ $@
+
+clean:
+ $(RM) -f debug/*
+ $(RM) -f build/*.lua
+ $(RM) -f build/data/*.png
+ $(RM) -f data_src/img_raw/*.png
+ $(RM) -f build/out.log
+ $(RM) -f build/err.log
+ $(RM) -f *.zip
+ $(RM) -rf ggj20
diff --git a/aap-64-1x.png b/aap-64-1x.png
new file mode 100644
index 0000000..165ed09
--- /dev/null
+++ b/aap-64-1x.png
Binary files differ
diff --git a/data_src/Alien-Ships/Alien-Battlecruiser.psd b/data_src/Alien-Ships/Alien-Battlecruiser.psd
new file mode 100644
index 0000000..aff384a
--- /dev/null
+++ b/data_src/Alien-Ships/Alien-Battlecruiser.psd
Binary files differ
diff --git a/data_src/Alien-Ships/Alien-Battleship.psd b/data_src/Alien-Ships/Alien-Battleship.psd
new file mode 100644
index 0000000..58e5fe4
--- /dev/null
+++ b/data_src/Alien-Ships/Alien-Battleship.psd
Binary files differ
diff --git a/data_src/Alien-Ships/Alien-Bomber.psd b/data_src/Alien-Ships/Alien-Bomber.psd
new file mode 100644
index 0000000..9819924
--- /dev/null
+++ b/data_src/Alien-Ships/Alien-Bomber.psd
Binary files differ
diff --git a/data_src/Alien-Ships/Alien-Cruiser.psd b/data_src/Alien-Ships/Alien-Cruiser.psd
new file mode 100644
index 0000000..6609184
--- /dev/null
+++ b/data_src/Alien-Ships/Alien-Cruiser.psd
Binary files differ
diff --git a/data_src/Alien-Ships/Alien-Destroyer.psd b/data_src/Alien-Ships/Alien-Destroyer.psd
new file mode 100644
index 0000000..fb0782d
--- /dev/null
+++ b/data_src/Alien-Ships/Alien-Destroyer.psd
Binary files differ
diff --git a/data_src/Alien-Ships/Alien-Frigate.psd b/data_src/Alien-Ships/Alien-Frigate.psd
new file mode 100644
index 0000000..e41fab7
--- /dev/null
+++ b/data_src/Alien-Ships/Alien-Frigate.psd
Binary files differ
diff --git a/data_src/Alien-Ships/Alien-HeavyCruiser.psd b/data_src/Alien-Ships/Alien-HeavyCruiser.psd
new file mode 100644
index 0000000..e01a47d
--- /dev/null
+++ b/data_src/Alien-Ships/Alien-HeavyCruiser.psd
Binary files differ
diff --git a/data_src/Alien-Ships/Alien-Mothership2.psd b/data_src/Alien-Ships/Alien-Mothership2.psd
new file mode 100644
index 0000000..b322d19
--- /dev/null
+++ b/data_src/Alien-Ships/Alien-Mothership2.psd
Binary files differ
diff --git a/data_src/Alien-Ships/Alien-Scout.psd b/data_src/Alien-Ships/Alien-Scout.psd
new file mode 100644
index 0000000..9543016
--- /dev/null
+++ b/data_src/Alien-Ships/Alien-Scout.psd
Binary files differ
diff --git a/data_src/Alien-Ships/Alien-Spacestation.psd b/data_src/Alien-Ships/Alien-Spacestation.psd
new file mode 100644
index 0000000..7b2fb92
--- /dev/null
+++ b/data_src/Alien-Ships/Alien-Spacestation.psd
Binary files differ
diff --git a/data_src/Example_ships/1.png b/data_src/Example_ships/1.png
new file mode 100644
index 0000000..708d595
--- /dev/null
+++ b/data_src/Example_ships/1.png
Binary files differ
diff --git a/data_src/Example_ships/10.png b/data_src/Example_ships/10.png
new file mode 100644
index 0000000..46adef6
--- /dev/null
+++ b/data_src/Example_ships/10.png
Binary files differ
diff --git a/data_src/Example_ships/10B.png b/data_src/Example_ships/10B.png
new file mode 100644
index 0000000..2b2c6da
--- /dev/null
+++ b/data_src/Example_ships/10B.png
Binary files differ
diff --git a/data_src/Example_ships/11.png b/data_src/Example_ships/11.png
new file mode 100644
index 0000000..4495f38
--- /dev/null
+++ b/data_src/Example_ships/11.png
Binary files differ
diff --git a/data_src/Example_ships/11B.png b/data_src/Example_ships/11B.png
new file mode 100644
index 0000000..c5cf76a
--- /dev/null
+++ b/data_src/Example_ships/11B.png
Binary files differ
diff --git a/data_src/Example_ships/12.png b/data_src/Example_ships/12.png
new file mode 100644
index 0000000..4bdf2c3
--- /dev/null
+++ b/data_src/Example_ships/12.png
Binary files differ
diff --git a/data_src/Example_ships/12B.png b/data_src/Example_ships/12B.png
new file mode 100644
index 0000000..90c2d6a
--- /dev/null
+++ b/data_src/Example_ships/12B.png
Binary files differ
diff --git a/data_src/Example_ships/13.png b/data_src/Example_ships/13.png
new file mode 100644
index 0000000..198572a
--- /dev/null
+++ b/data_src/Example_ships/13.png
Binary files differ
diff --git a/data_src/Example_ships/13B.png b/data_src/Example_ships/13B.png
new file mode 100644
index 0000000..74befdb
--- /dev/null
+++ b/data_src/Example_ships/13B.png
Binary files differ
diff --git a/data_src/Example_ships/1B.png b/data_src/Example_ships/1B.png
new file mode 100644
index 0000000..e9091ec
--- /dev/null
+++ b/data_src/Example_ships/1B.png
Binary files differ
diff --git a/data_src/Example_ships/2.png b/data_src/Example_ships/2.png
new file mode 100644
index 0000000..88fc959
--- /dev/null
+++ b/data_src/Example_ships/2.png
Binary files differ
diff --git a/data_src/Example_ships/2B.png b/data_src/Example_ships/2B.png
new file mode 100644
index 0000000..8f4e9f0
--- /dev/null
+++ b/data_src/Example_ships/2B.png
Binary files differ
diff --git a/data_src/Example_ships/3.png b/data_src/Example_ships/3.png
new file mode 100644
index 0000000..d180b05
--- /dev/null
+++ b/data_src/Example_ships/3.png
Binary files differ
diff --git a/data_src/Example_ships/3B.png b/data_src/Example_ships/3B.png
new file mode 100644
index 0000000..bf85dce
--- /dev/null
+++ b/data_src/Example_ships/3B.png
Binary files differ
diff --git a/data_src/Example_ships/4.png b/data_src/Example_ships/4.png
new file mode 100644
index 0000000..74c7cd1
--- /dev/null
+++ b/data_src/Example_ships/4.png
Binary files differ
diff --git a/data_src/Example_ships/4B.png b/data_src/Example_ships/4B.png
new file mode 100644
index 0000000..6a2802d
--- /dev/null
+++ b/data_src/Example_ships/4B.png
Binary files differ
diff --git a/data_src/Example_ships/5.png b/data_src/Example_ships/5.png
new file mode 100644
index 0000000..485382d
--- /dev/null
+++ b/data_src/Example_ships/5.png
Binary files differ
diff --git a/data_src/Example_ships/5B.png b/data_src/Example_ships/5B.png
new file mode 100644
index 0000000..5122982
--- /dev/null
+++ b/data_src/Example_ships/5B.png
Binary files differ
diff --git a/data_src/Example_ships/6.png b/data_src/Example_ships/6.png
new file mode 100644
index 0000000..673a0ab
--- /dev/null
+++ b/data_src/Example_ships/6.png
Binary files differ
diff --git a/data_src/Example_ships/6B.png b/data_src/Example_ships/6B.png
new file mode 100644
index 0000000..e6323e9
--- /dev/null
+++ b/data_src/Example_ships/6B.png
Binary files differ
diff --git a/data_src/Example_ships/7.png b/data_src/Example_ships/7.png
new file mode 100644
index 0000000..3a8e607
--- /dev/null
+++ b/data_src/Example_ships/7.png
Binary files differ
diff --git a/data_src/Example_ships/7B.png b/data_src/Example_ships/7B.png
new file mode 100644
index 0000000..238a444
--- /dev/null
+++ b/data_src/Example_ships/7B.png
Binary files differ
diff --git a/data_src/Example_ships/8.png b/data_src/Example_ships/8.png
new file mode 100644
index 0000000..86d5d4e
--- /dev/null
+++ b/data_src/Example_ships/8.png
Binary files differ
diff --git a/data_src/Example_ships/8B.png b/data_src/Example_ships/8B.png
new file mode 100644
index 0000000..462a3e8
--- /dev/null
+++ b/data_src/Example_ships/8B.png
Binary files differ
diff --git a/data_src/Example_ships/9.png b/data_src/Example_ships/9.png
new file mode 100644
index 0000000..bb194a0
--- /dev/null
+++ b/data_src/Example_ships/9.png
Binary files differ
diff --git a/data_src/Example_ships/9B.png b/data_src/Example_ships/9B.png
new file mode 100644
index 0000000..2641475
--- /dev/null
+++ b/data_src/Example_ships/9B.png
Binary files differ
diff --git a/data_src/MONK.blend b/data_src/MONK.blend
new file mode 100644
index 0000000..524457d
--- /dev/null
+++ b/data_src/MONK.blend
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts.ora b/data_src/Spaceship-Parts/Spaceship-Parts.ora
new file mode 100644
index 0000000..d8c0359
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts.ora
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts.psd b/data_src/Spaceship-Parts/Spaceship-Parts.psd
new file mode 100644
index 0000000..dc31470
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts.psd
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/Thumbnails/thumbnail.png b/data_src/Spaceship-Parts/Spaceship-Parts/Thumbnails/thumbnail.png
new file mode 100644
index 0000000..81c61a5
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/Thumbnails/thumbnail.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/001-000.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-000.png
new file mode 100644
index 0000000..476a617
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-000.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/001-001.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-001.png
new file mode 100644
index 0000000..225e56b
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-001.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/001-002.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-002.png
new file mode 100644
index 0000000..01978a2
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-002.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/001-003.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-003.png
new file mode 100644
index 0000000..a399b6b
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-003.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/001-004.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-004.png
new file mode 100644
index 0000000..9e40340
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-004.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/001-005.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-005.png
new file mode 100644
index 0000000..65d0ce7
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-005.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/001-006.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-006.png
new file mode 100644
index 0000000..567855e
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-006.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/001-007.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-007.png
new file mode 100644
index 0000000..33b7b53
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/001-007.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/001.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/001.png
new file mode 100644
index 0000000..3993503
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/001.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/002.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/002.png
new file mode 100644
index 0000000..bdc67b0
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/002.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/003.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/003.png
new file mode 100644
index 0000000..8694d3e
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/003.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/004.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/004.png
new file mode 100644
index 0000000..2fecc89
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/004.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/005.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/005.png
new file mode 100644
index 0000000..a883ba9
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/005.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/006.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/006.png
new file mode 100644
index 0000000..f30b152
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/006.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/007.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/007.png
new file mode 100644
index 0000000..12fbdb9
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/007.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/008.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/008.png
new file mode 100644
index 0000000..7f0426d
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/008.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/009.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/009.png
new file mode 100644
index 0000000..e980cd8
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/009.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/010.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/010.png
new file mode 100644
index 0000000..438bce4
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/010.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/011.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/011.png
new file mode 100644
index 0000000..5070162
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/011.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/012.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/012.png
new file mode 100644
index 0000000..1990bbe
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/012.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/013.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/013.png
new file mode 100644
index 0000000..5b35520
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/013.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/014.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/014.png
new file mode 100644
index 0000000..bcd84c5
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/014.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/015.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/015.png
new file mode 100644
index 0000000..95a16a4
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/015.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/016.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/016.png
new file mode 100644
index 0000000..3a9c2c6
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/016.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/017.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/017.png
new file mode 100644
index 0000000..54d1286
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/017.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/018.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/018.png
new file mode 100644
index 0000000..ee0c8f2
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/018.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/019.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/019.png
new file mode 100644
index 0000000..bd28a40
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/019.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/020.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/020.png
new file mode 100644
index 0000000..793ff42
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/020.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/021.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/021.png
new file mode 100644
index 0000000..c00ecef
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/021.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/022.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/022.png
new file mode 100644
index 0000000..356dc8a
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/022.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/023.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/023.png
new file mode 100644
index 0000000..479b8a0
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/023.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/024.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/024.png
new file mode 100644
index 0000000..79ee5fe
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/024.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/025.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/025.png
new file mode 100644
index 0000000..d4acc89
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/025.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/026.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/026.png
new file mode 100644
index 0000000..a45383d
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/026.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/027.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/027.png
new file mode 100644
index 0000000..51967e7
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/027.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/028.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/028.png
new file mode 100644
index 0000000..f100d1c
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/028.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/029.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/029.png
new file mode 100644
index 0000000..5ae9da8
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/029.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/030.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/030.png
new file mode 100644
index 0000000..ba910d9
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/030.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/031.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/031.png
new file mode 100644
index 0000000..769da17
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/031.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/032.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/032.png
new file mode 100644
index 0000000..1927d1c
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/032.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/033.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/033.png
new file mode 100644
index 0000000..951333b
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/033.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/034.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/034.png
new file mode 100644
index 0000000..51f5183
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/034.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/035.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/035.png
new file mode 100644
index 0000000..3d2d2a9
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/035.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/036.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/036.png
new file mode 100644
index 0000000..506eba2
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/036.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/037.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/037.png
new file mode 100644
index 0000000..86fdafa
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/037.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/038.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/038.png
new file mode 100644
index 0000000..26020f4
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/038.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/039.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/039.png
new file mode 100644
index 0000000..b35d921
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/039.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/040.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/040.png
new file mode 100644
index 0000000..16d6c92
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/040.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/041.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/041.png
new file mode 100644
index 0000000..6466c5e
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/041.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/042.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/042.png
new file mode 100644
index 0000000..938c938
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/042.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/043.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/043.png
new file mode 100644
index 0000000..32750e3
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/043.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/044.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/044.png
new file mode 100644
index 0000000..a77aa7d
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/044.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/045.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/045.png
new file mode 100644
index 0000000..ead2e26
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/045.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/046.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/046.png
new file mode 100644
index 0000000..66982b0
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/046.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/047.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/047.png
new file mode 100644
index 0000000..be8ebf5
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/047.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/048.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/048.png
new file mode 100644
index 0000000..3eddc00
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/048.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/049.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/049.png
new file mode 100644
index 0000000..7927dee
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/049.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/050.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/050.png
new file mode 100644
index 0000000..52a71fa
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/050.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/051.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/051.png
new file mode 100644
index 0000000..5236924
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/051.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/052.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/052.png
new file mode 100644
index 0000000..058fabc
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/052.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/053.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/053.png
new file mode 100644
index 0000000..6841ca5
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/053.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/054.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/054.png
new file mode 100644
index 0000000..9067cd7
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/054.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/055.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/055.png
new file mode 100644
index 0000000..43d5d86
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/055.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/056.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/056.png
new file mode 100644
index 0000000..125e8e5
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/056.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/057.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/057.png
new file mode 100644
index 0000000..f52bdb9
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/057.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/058.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/058.png
new file mode 100644
index 0000000..22522e0
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/058.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/059.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/059.png
new file mode 100644
index 0000000..c293673
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/059.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/060.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/060.png
new file mode 100644
index 0000000..bff75b8
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/060.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/061.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/061.png
new file mode 100644
index 0000000..35afd80
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/061.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/062.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/062.png
new file mode 100644
index 0000000..22151f9
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/062.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/063.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/063.png
new file mode 100644
index 0000000..fafcab4
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/063.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/064.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/064.png
new file mode 100644
index 0000000..dc97389
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/064.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/065.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/065.png
new file mode 100644
index 0000000..b7d105c
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/065.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/066.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/066.png
new file mode 100644
index 0000000..5cb21ed
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/066.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/067.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/067.png
new file mode 100644
index 0000000..fadc0dd
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/067.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/068.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/068.png
new file mode 100644
index 0000000..5077c51
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/068.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/069.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/069.png
new file mode 100644
index 0000000..0b0aa0c
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/069.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/070.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/070.png
new file mode 100644
index 0000000..ae6bf4b
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/070.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/071.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/071.png
new file mode 100644
index 0000000..36ee373
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/071.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/072.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/072.png
new file mode 100644
index 0000000..9b4a903
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/072.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/073.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/073.png
new file mode 100644
index 0000000..8f481cb
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/073.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/074.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/074.png
new file mode 100644
index 0000000..9f49647
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/074.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/075.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/075.png
new file mode 100644
index 0000000..e2f6909
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/075.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/076.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/076.png
new file mode 100644
index 0000000..3019fea
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/076.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/077.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/077.png
new file mode 100644
index 0000000..3bffae3
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/077.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/078.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/078.png
new file mode 100644
index 0000000..3d26094
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/078.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/079.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/079.png
new file mode 100644
index 0000000..6ee01bd
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/079.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/080.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/080.png
new file mode 100644
index 0000000..0f2b34b
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/080.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/081.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/081.png
new file mode 100644
index 0000000..9a97a55
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/081.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/082.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/082.png
new file mode 100644
index 0000000..e1fed20
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/082.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/083.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/083.png
new file mode 100644
index 0000000..a8f5f64
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/083.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/084.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/084.png
new file mode 100644
index 0000000..384db03
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/084.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/085.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/085.png
new file mode 100644
index 0000000..34da3b4
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/085.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/086.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/086.png
new file mode 100644
index 0000000..295e560
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/086.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/087.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/087.png
new file mode 100644
index 0000000..9f33c7f
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/087.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/088.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/088.png
new file mode 100644
index 0000000..ed14815
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/088.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/089.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/089.png
new file mode 100644
index 0000000..a31326b
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/089.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/090.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/090.png
new file mode 100644
index 0000000..e764686
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/090.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/091.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/091.png
new file mode 100644
index 0000000..072b3ac
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/091.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/092.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/092.png
new file mode 100644
index 0000000..1b0bc10
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/092.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/093.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/093.png
new file mode 100644
index 0000000..77e3b5b
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/093.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/094.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/094.png
new file mode 100644
index 0000000..2bbb24d
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/094.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/095.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/095.png
new file mode 100644
index 0000000..ebfce1a
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/095.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/096.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/096.png
new file mode 100644
index 0000000..a039287
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/096.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/097.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/097.png
new file mode 100644
index 0000000..e1701e2
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/097.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/098.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/098.png
new file mode 100644
index 0000000..5432c2b
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/098.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/099.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/099.png
new file mode 100644
index 0000000..b8f57ea
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/099.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/100.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/100.png
new file mode 100644
index 0000000..fcf37ec
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/100.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/101.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/101.png
new file mode 100644
index 0000000..b0b7bdc
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/101.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/102.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/102.png
new file mode 100644
index 0000000..29572a5
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/102.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/103.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/103.png
new file mode 100644
index 0000000..07a5286
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/103.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/104.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/104.png
new file mode 100644
index 0000000..cb1e20e
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/104.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/105.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/105.png
new file mode 100644
index 0000000..c533c98
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/105.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/106.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/106.png
new file mode 100644
index 0000000..d9399e0
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/106.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/107.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/107.png
new file mode 100644
index 0000000..45734f4
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/107.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/108.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/108.png
new file mode 100644
index 0000000..e9f4561
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/108.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/109.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/109.png
new file mode 100644
index 0000000..789ba37
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/109.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/110.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/110.png
new file mode 100644
index 0000000..1736177
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/110.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/111.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/111.png
new file mode 100644
index 0000000..4f26f41
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/111.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/112.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/112.png
new file mode 100644
index 0000000..a1ea91f
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/112.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/113.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/113.png
new file mode 100644
index 0000000..0c19319
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/113.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/114.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/114.png
new file mode 100644
index 0000000..e2a038f
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/114.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/115.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/115.png
new file mode 100644
index 0000000..d38e7a0
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/115.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/116.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/116.png
new file mode 100644
index 0000000..7f74eb0
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/116.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/117.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/117.png
new file mode 100644
index 0000000..6b150d7
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/117.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/118.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/118.png
new file mode 100644
index 0000000..e6b1c00
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/118.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/119.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/119.png
new file mode 100644
index 0000000..8a49ac1
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/119.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/120.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/120.png
new file mode 100644
index 0000000..b9d61a3
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/120.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/121.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/121.png
new file mode 100644
index 0000000..7c15a3b
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/121.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/122.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/122.png
new file mode 100644
index 0000000..e45c931
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/122.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/123.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/123.png
new file mode 100644
index 0000000..980b24d
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/123.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/124.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/124.png
new file mode 100644
index 0000000..7ae5c91
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/124.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/125.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/125.png
new file mode 100644
index 0000000..f2e3520
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/125.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/126.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/126.png
new file mode 100644
index 0000000..eeae6e5
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/126.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/127.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/127.png
new file mode 100644
index 0000000..5677e39
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/127.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/data/128.png b/data_src/Spaceship-Parts/Spaceship-Parts/data/128.png
new file mode 100644
index 0000000..85f6776
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/data/128.png
Binary files differ
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/mimetype b/data_src/Spaceship-Parts/Spaceship-Parts/mimetype
new file mode 100644
index 0000000..42f4972
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/mimetype
@@ -0,0 +1 @@
+image/openraster \ No newline at end of file
diff --git a/data_src/Spaceship-Parts/Spaceship-Parts/stack.xml b/data_src/Spaceship-Parts/Spaceship-Parts/stack.xml
new file mode 100644
index 0000000..69e5436
--- /dev/null
+++ b/data_src/Spaceship-Parts/Spaceship-Parts/stack.xml
@@ -0,0 +1,2 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<image h="386" w="765"><stack><stack composite-op="svg:src-over" name="Light" opacity="1.0" visibility="visible" x="703" y="243"><layer composite-op="svg:src-over" name="Light 6" opacity="1.0" src="data/001-000.png" visibility="visible" x="720" y="299" /><layer composite-op="svg:src-over" name="Light 5" opacity="1.0" src="data/001-001.png" visibility="visible" x="736" y="324" /><layer composite-op="svg:src-over" name="Light 4" opacity="1.0" src="data/001-002.png" visibility="visible" x="726" y="275" /><layer composite-op="svg:src-over" name="Light 3" opacity="1.0" src="data/001-003.png" visibility="visible" x="721" y="346" /><layer composite-op="svg:src-over" name="Light 2B" opacity="1.0" src="data/001-004.png" visibility="visible" x="703" y="307" /><layer composite-op="svg:src-over" name="Light 2 " opacity="1.0" src="data/001-005.png" visibility="visible" x="718" y="243" /><layer composite-op="svg:src-over" name="Light 1B" opacity="1.0" src="data/001-006.png" visibility="visible" x="724" y="332" /><layer composite-op="svg:src-over" name="Light 1" opacity="1.0" src="data/001-007.png" visibility="visible" x="725" y="317" /></stack><layer composite-op="svg:src-over" name="Part 8 copy" opacity="1.0" src="data/001.png" visibility="visible" x="38" y="279" /><layer composite-op="svg:src-over" name="Part 7" opacity="1.0" src="data/002.png" visibility="visible" x="153" y="238" /><layer composite-op="svg:src-over" name="Part 6" opacity="1.0" src="data/003.png" visibility="visible" x="134" y="169" /><layer composite-op="svg:src-over" name="Part 5" opacity="1.0" src="data/004.png" visibility="visible" x="26" y="294" /><layer composite-op="svg:src-over" name="Wing 3" opacity="1.0" src="data/005.png" visibility="visible" x="36" y="121" /><layer composite-op="svg:src-over" name="Prow 2" opacity="1.0" src="data/006.png" visibility="visible" x="284" y="78" /><layer composite-op="svg:src-over" name="Weapon 6B" opacity="1.0" src="data/007.png" visibility="visible" x="177" y="4" /><layer composite-op="svg:src-over" name="Weapon 6A" opacity="1.0" src="data/008.png" visibility="visible" x="159" y="4" /><layer composite-op="svg:src-over" name="Layer 34" opacity="1.0" src="data/009.png" visibility="visible" x="139" y="212" /><layer composite-op="svg:src-over" name="Layer 35" opacity="1.0" src="data/010.png" visibility="visible" x="55" y="311" /><layer composite-op="svg:src-over" name="Layer 36" opacity="1.0" src="data/011.png" visibility="visible" x="97" y="276" /><layer composite-op="svg:src-over" name="Layer 38" opacity="1.0" src="data/012.png" visibility="visible" x="5" y="90" /><layer composite-op="svg:src-over" name="Layer 46" opacity="1.0" src="data/013.png" visibility="visible" x="89" y="329" /><layer composite-op="svg:src-over" name="Layer 47" opacity="1.0" src="data/014.png" visibility="visible" x="272" y="267" /><layer composite-op="svg:src-over" name="Part 9 #1" opacity="1.0" src="data/015.png" visibility="visible" x="111" y="194" /><layer composite-op="svg:src-over" name="Tower" opacity="1.0" src="data/016.png" visibility="visible" x="263" y="26" /><layer composite-op="svg:src-over" name="Weapon 5 Tower B" opacity="1.0" src="data/017.png" visibility="visible" x="229" y="15" /><layer composite-op="svg:src-over" name="Weapon 4 copy" opacity="1.0" src="data/018.png" visibility="visible" x="195" y="6" /><layer composite-op="svg:src-over" name="Weapon 4" opacity="1.0" src="data/019.png" visibility="visible" x="206" y="35" /><layer composite-op="svg:src-over" name="Part 4" opacity="1.0" src="data/020.png" visibility="visible" x="133" y="3" /><layer composite-op="svg:src-over" name="Layer 43" opacity="1.0" src="data/021.png" visibility="visible" x="162" y="49" /><layer composite-op="svg:src-over" name="Layer 110" opacity="1.0" src="data/022.png" visibility="visible" x="353" y="122" /><layer composite-op="svg:src-over" name="Layer 111" opacity="1.0" src="data/023.png" visibility="visible" x="137" y="124" /><layer composite-op="svg:src-over" name="Layer 30" opacity="1.0" src="data/024.png" visibility="visible" x="167" y="74" /><layer composite-op="svg:src-over" name="Layer 132" opacity="1.0" src="data/025.png" visibility="visible" x="106" y="160" /><layer composite-op="svg:src-over" name="Part 2" opacity="1.0" src="data/026.png" visibility="visible" x="105" y="115" /><layer composite-op="svg:src-over" name="Part 3" opacity="1.0" src="data/027.png" visibility="visible" x="4" y="7" /><layer composite-op="svg:src-over" name="Layer 42" opacity="1.0" src="data/028.png" visibility="visible" x="24" y="6" /><layer composite-op="svg:src-over" name="Layer 106" opacity="1.0" src="data/029.png" visibility="visible" x="132" y="48" /><layer composite-op="svg:src-over" name="Prow" opacity="1.0" src="data/030.png" visibility="visible" x="41" y="4" /><layer composite-op="svg:src-over" name="Engine" opacity="1.0" src="data/031.png" visibility="visible" x="176" y="341" /><layer composite-op="svg:src-over" name="Layer 39" opacity="1.0" src="data/032.png" visibility="visible" x="233" y="264" /><layer composite-op="svg:src-over" name="Wing 2" opacity="1.0" src="data/033.png" visibility="visible" x="5" y="149" /><layer composite-op="svg:src-over" name="Layer 53" opacity="1.0" src="data/034.png" visibility="visible" x="175" y="47" /><layer composite-op="svg:src-over" name="Frigate prow" opacity="1.0" src="data/035.png" visibility="visible" x="283" y="25" /><layer composite-op="svg:src-over" name="Layer 14" opacity="1.0" src="data/036.png" visibility="visible" x="248" y="139" /><layer composite-op="svg:src-over" name="Layer 15" opacity="1.0" src="data/037.png" visibility="visible" x="229" y="178" /><layer composite-op="svg:src-over" name="Weapon 3" opacity="1.0" src="data/038.png" visibility="visible" x="219" y="33" /><layer composite-op="svg:src-over" name="Weapon 2 copy" opacity="1.0" src="data/039.png" visibility="visible" x="220" y="7" /><layer composite-op="svg:src-over" name="Weapon 2" opacity="1.0" src="data/040.png" visibility="visible" x="213" y="7" /><layer composite-op="svg:src-over" name="Weapon 1" opacity="1.0" src="data/041.png" visibility="visible" x="152" y="4" /><layer composite-op="svg:src-over" name="Layer 112" opacity="1.0" src="data/042.png" visibility="visible" x="329" y="117" /><layer composite-op="svg:src-over" name="Engine copy 2" opacity="1.0" src="data/043.png" visibility="visible" x="364" y="35" /><layer composite-op="svg:src-over" name="Prow Cruiser copy" opacity="1.0" src="data/044.png" visibility="visible" x="322" y="220" /><layer composite-op="svg:src-over" name="Layer 102" opacity="1.0" src="data/045.png" visibility="visible" x="346" y="211" /><layer composite-op="svg:src-over" name="Layer 44" opacity="1.0" src="data/046.png" visibility="visible" x="298" y="242" /><layer composite-op="svg:src-over" name="Layer 116" opacity="1.0" src="data/047.png" visibility="visible" x="243" y="330" /><layer composite-op="svg:src-over" name="Layer 115" opacity="1.0" src="data/048.png" visibility="visible" x="255" y="327" /><layer composite-op="svg:src-over" name="Part 9" opacity="1.0" src="data/049.png" visibility="visible" x="258" y="179" /><layer composite-op="svg:src-over" name="Part 11" opacity="1.0" src="data/050.png" visibility="visible" x="187" y="174" /><layer composite-op="svg:src-over" name="Prow heavy cruiser" opacity="1.0" src="data/051.png" visibility="visible" x="321" y="6" /><layer composite-op="svg:src-over" name="Layer 107" opacity="1.0" src="data/052.png" visibility="visible" x="256" y="313" /><layer composite-op="svg:src-over" name="Part 10" opacity="1.0" src="data/053.png" visibility="visible" x="291" y="173" /><layer composite-op="svg:src-over" name="Layer 109" opacity="1.0" src="data/054.png" visibility="visible" x="243" y="315" /><layer composite-op="svg:src-over" name="Engine 2" opacity="1.0" src="data/055.png" visibility="visible" x="186" y="285" /><layer composite-op="svg:src-over" name="Layer 86" opacity="1.0" src="data/056.png" visibility="visible" x="458" y="330" /><layer composite-op="svg:src-over" name="Tail 2" opacity="1.0" src="data/057.png" visibility="visible" x="270" y="317" /><layer composite-op="svg:src-over" name="Layer 50" opacity="1.0" src="data/058.png" visibility="visible" x="259" y="2" /><layer composite-op="svg:src-over" name="Layer 51" opacity="1.0" src="data/059.png" visibility="visible" x="342" y="301" /><layer composite-op="svg:src-over" name="Layer 52" opacity="1.0" src="data/060.png" visibility="visible" x="318" y="292" /><layer composite-op="svg:src-over" name="Layer 40" opacity="1.0" src="data/061.png" visibility="visible" x="187" y="228" /><layer composite-op="svg:src-over" name="Tail" opacity="1.0" src="data/062.png" visibility="visible" x="256" y="314" /><layer composite-op="svg:src-over" name="Layer 45" opacity="1.0" src="data/063.png" visibility="visible" x="213" y="314" /><layer composite-op="svg:src-over" name="Layer 139 copy" opacity="1.0" src="data/064.png" visibility="visible" x="680" y="268" /><layer composite-op="svg:src-over" name="Layer 59" opacity="1.0" src="data/065.png" visibility="visible" x="385" y="253" /><layer composite-op="svg:src-over" name="Missile" opacity="1.0" src="data/066.png" visibility="visible" x="162" y="76" /><layer composite-op="svg:src-over" name="Layer 54" opacity="1.0" src="data/067.png" visibility="visible" x="392" y="9" /><layer composite-op="svg:src-over" name="Prow Destroyer" opacity="1.0" src="data/068.png" visibility="visible" x="412" y="13" /><layer composite-op="svg:src-over" name="Layer 55" opacity="1.0" src="data/069.png" visibility="visible" x="388" y="329" /><layer composite-op="svg:src-over" name="Layer 57" opacity="1.0" src="data/070.png" visibility="visible" x="372" y="104" /><layer composite-op="svg:src-over" name="Layer 58" opacity="1.0" src="data/071.png" visibility="visible" x="433" y="36" /><layer composite-op="svg:src-over" name="Layer 60" opacity="1.0" src="data/072.png" visibility="visible" x="437" y="253" /><layer composite-op="svg:src-over" name="Layer 61" opacity="1.0" src="data/073.png" visibility="visible" x="371" y="197" /><layer composite-op="svg:src-over" name="Layer 67 copy" opacity="1.0" src="data/074.png" visibility="visible" x="643" y="234" /><layer composite-op="svg:src-over" name="Layer 67" opacity="1.0" src="data/075.png" visibility="visible" x="369" y="159" /><layer composite-op="svg:src-over" name="Layer 73" opacity="1.0" src="data/076.png" visibility="visible" x="193" y="40" /><layer composite-op="svg:src-over" name="Layer 68" opacity="1.0" src="data/077.png" visibility="visible" x="390" y="80" /><layer composite-op="svg:src-over" name="Layer 117" opacity="1.0" src="data/078.png" visibility="visible" x="497" y="132" /><layer composite-op="svg:src-over" name="Layer 118" opacity="1.0" src="data/079.png" visibility="visible" x="617" y="332" /><layer composite-op="svg:src-over" name="Layer 119" opacity="1.0" src="data/080.png" visibility="visible" x="682" y="20" /><layer composite-op="svg:src-over" name="Layer 124" opacity="1.0" src="data/081.png" visibility="visible" x="692" y="209" /><layer composite-op="svg:src-over" name="Layer 125" opacity="1.0" src="data/082.png" visibility="visible" x="692" y="216" /><layer composite-op="svg:src-over" name="Layer 121" opacity="1.0" src="data/083.png" visibility="visible" x="685" y="164" /><layer composite-op="svg:src-over" name="Layer 128" opacity="1.0" src="data/084.png" visibility="visible" x="726" y="21" /><layer composite-op="svg:src-over" name="Layer 120" opacity="1.0" src="data/085.png" visibility="visible" x="733" y="65" /><layer composite-op="svg:src-over" name="Layer 123" opacity="1.0" src="data/086.png" visibility="visible" x="314" y="6" /><layer composite-op="svg:src-over" name="Layer 127" opacity="1.0" src="data/087.png" visibility="visible" x="621" y="268" /><layer composite-op="svg:src-over" name="Layer 69" opacity="1.0" src="data/088.png" visibility="visible" x="404" y="120" /><layer composite-op="svg:src-over" name="Layer 70" opacity="1.0" src="data/089.png" visibility="visible" x="421" y="75" /><layer composite-op="svg:src-over" name="Layer 71" opacity="1.0" src="data/090.png" visibility="visible" x="434" y="69" /><layer composite-op="svg:src-over" name="Layer 100" opacity="1.0" src="data/091.png" visibility="visible" x="634" y="161" /><layer composite-op="svg:src-over" name="Layer 101" opacity="1.0" src="data/092.png" visibility="visible" x="638" y="195" /><layer composite-op="svg:src-over" name="Engine 4" opacity="1.0" src="data/093.png" visibility="visible" x="633" y="100" /><layer composite-op="svg:src-over" name="Layer 92" opacity="1.0" src="data/094.png" visibility="visible" x="564" y="102" /><layer composite-op="svg:src-over" name="Layer 91" opacity="1.0" src="data/095.png" visibility="visible" x="569" y="10" /><layer composite-op="svg:src-over" name="Layer 87 copy" opacity="1.0" src="data/096.png" visibility="visible" x="692" y="229" /><layer composite-op="svg:src-over" name="Layer 87" opacity="1.0" src="data/097.png" visibility="visible" x="310" y="335" /><layer composite-op="svg:src-over" name="Layer 99" opacity="1.0" src="data/098.png" visibility="visible" x="436" y="4" /><layer composite-op="svg:src-over" name="Layer 97" opacity="1.0" src="data/099.png" visibility="visible" x="510" y="7" /><layer composite-op="svg:src-over" name="Layer 114" opacity="1.0" src="data/100.png" visibility="visible" x="670" y="215" /><layer composite-op="svg:src-over" name="Layer 95" opacity="1.0" src="data/101.png" visibility="visible" x="729" y="136" /><layer composite-op="svg:src-over" name="Layer 103" opacity="1.0" src="data/102.png" visibility="visible" x="329" y="144" /><layer composite-op="svg:src-over" name="Layer 93" opacity="1.0" src="data/103.png" visibility="visible" x="564" y="224" /><layer composite-op="svg:src-over" name="Layer 105" opacity="1.0" src="data/104.png" visibility="visible" x="698" y="68" /><layer composite-op="svg:src-over" name="Layer 88" opacity="1.0" src="data/105.png" visibility="visible" x="501" y="20" /><layer composite-op="svg:src-over" name="Layer 72" opacity="1.0" src="data/106.png" visibility="visible" x="297" y="323" /><layer composite-op="svg:src-over" name="Layer 75" opacity="1.0" src="data/107.png" visibility="visible" x="458" y="3" /><layer composite-op="svg:src-over" name="Layer 76 copy" opacity="1.0" src="data/108.png" visibility="visible" x="445" y="90" /><layer composite-op="svg:src-over" name="Layer 81" opacity="1.0" src="data/109.png" visibility="visible" x="446" y="179" /><layer composite-op="svg:src-over" name="Layer 78" opacity="1.0" src="data/110.png" visibility="visible" x="269" y="81" /><layer composite-op="svg:src-over" name="Layer 126" opacity="1.0" src="data/111.png" visibility="visible" x="400" y="160" /><layer composite-op="svg:src-over" name="Layer 79" opacity="1.0" src="data/112.png" visibility="visible" x="418" y="165" /><layer composite-op="svg:src-over" name="Layer 82" opacity="1.0" src="data/113.png" visibility="visible" x="419" y="284" /><layer composite-op="svg:src-over" name="Layer 85" opacity="1.0" src="data/114.png" visibility="visible" x="457" y="282" /><layer composite-op="svg:src-over" name="Layer 130" opacity="1.0" src="data/115.png" visibility="visible" x="547" y="201" /><layer composite-op="svg:src-over" name="Layer 129" opacity="1.0" src="data/116.png" visibility="visible" x="507" y="216" /><layer composite-op="svg:src-over" name="Layer 90" opacity="1.0" src="data/117.png" visibility="visible" x="491" y="291" /><layer composite-op="svg:src-over" name="Layer 83" opacity="1.0" src="data/118.png" visibility="visible" x="471" y="199" /><layer composite-op="svg:src-over" name="Engine 3" opacity="1.0" src="data/119.png" visibility="visible" x="241" y="354" /><layer composite-op="svg:src-over" name="Layer 8" opacity="1.0" src="data/120.png" visibility="visible" x="124" y="298" /><layer composite-op="svg:src-over" name="Part 1B" opacity="1.0" src="data/121.png" visibility="visible" x="228" y="83" /><layer composite-op="svg:src-over" name="Layer 104" opacity="1.0" src="data/122.png" visibility="visible" x="391" y="212" /><layer composite-op="svg:src-over" name="Layer 62" opacity="1.0" src="data/123.png" visibility="visible" x="97" y="199" /><layer composite-op="svg:src-over" name="Wing copy 3" opacity="1.0" src="data/124.png" visibility="visible" x="69" y="113" /><layer composite-op="svg:src-over" name="Wing copy 2" opacity="1.0" src="data/125.png" visibility="hidden" x="69" y="113" /><layer composite-op="svg:src-over" name="Layer 10 copy" opacity="1.0" src="data/126.png" visibility="visible" x="25" y="50" /><layer composite-op="svg:src-over" name="Prow Bomber" opacity="1.0" src="data/127.png" visibility="visible" x="654" y="5" /><layer composite-op="svg:src-over" name="Background" opacity="1.0" src="data/128.png" visibility="visible" x="0" y="0" /></stack></image> \ No newline at end of file
diff --git a/data_src/Stars-Nebulae/Nebula1.png b/data_src/Stars-Nebulae/Nebula1.png
new file mode 100644
index 0000000..2e1e3c3
--- /dev/null
+++ b/data_src/Stars-Nebulae/Nebula1.png
Binary files differ
diff --git a/data_src/Stars-Nebulae/Nebula2.png b/data_src/Stars-Nebulae/Nebula2.png
new file mode 100644
index 0000000..1457e1d
--- /dev/null
+++ b/data_src/Stars-Nebulae/Nebula2.png
Binary files differ
diff --git a/data_src/Stars-Nebulae/Nebula3.png b/data_src/Stars-Nebulae/Nebula3.png
new file mode 100644
index 0000000..6cfdba8
--- /dev/null
+++ b/data_src/Stars-Nebulae/Nebula3.png
Binary files differ
diff --git a/data_src/Stars-Nebulae/Stars.png b/data_src/Stars-Nebulae/Stars.png
new file mode 100644
index 0000000..e9b89d4
--- /dev/null
+++ b/data_src/Stars-Nebulae/Stars.png
Binary files differ
diff --git a/data_src/afterburn.png b/data_src/afterburn.png
new file mode 100644
index 0000000..5c2da34
--- /dev/null
+++ b/data_src/afterburn.png
Binary files differ
diff --git a/data_src/car-battery.png b/data_src/car-battery.png
new file mode 100644
index 0000000..45576aa
--- /dev/null
+++ b/data_src/car-battery.png
Binary files differ
diff --git a/data_src/electric.png b/data_src/electric.png
new file mode 100644
index 0000000..28a4fec
--- /dev/null
+++ b/data_src/electric.png
Binary files differ
diff --git a/data_src/electrical-resistance.png b/data_src/electrical-resistance.png
new file mode 100644
index 0000000..91efc62
--- /dev/null
+++ b/data_src/electrical-resistance.png
Binary files differ
diff --git a/data_src/fuel-tank.png b/data_src/fuel-tank.png
new file mode 100644
index 0000000..7268059
--- /dev/null
+++ b/data_src/fuel-tank.png
Binary files differ
diff --git a/data_src/joint1000.png b/data_src/joint1000.png
new file mode 100644
index 0000000..783aad4
--- /dev/null
+++ b/data_src/joint1000.png
Binary files differ
diff --git a/data_src/joint1010.png b/data_src/joint1010.png
new file mode 100644
index 0000000..1dc9061
--- /dev/null
+++ b/data_src/joint1010.png
Binary files differ
diff --git a/data_src/joint1100.png b/data_src/joint1100.png
new file mode 100644
index 0000000..946e176
--- /dev/null
+++ b/data_src/joint1100.png
Binary files differ
diff --git a/data_src/joint1110.png b/data_src/joint1110.png
new file mode 100644
index 0000000..c989386
--- /dev/null
+++ b/data_src/joint1110.png
Binary files differ
diff --git a/data_src/joint1111.png b/data_src/joint1111.png
new file mode 100644
index 0000000..647a626
--- /dev/null
+++ b/data_src/joint1111.png
Binary files differ
diff --git a/data_src/lightning-dissipation.png b/data_src/lightning-dissipation.png
new file mode 100644
index 0000000..d66bfc2
--- /dev/null
+++ b/data_src/lightning-dissipation.png
Binary files differ
diff --git a/data_src/models/complete.blend b/data_src/models/complete.blend
new file mode 100644
index 0000000..d994134
--- /dev/null
+++ b/data_src/models/complete.blend
Binary files differ
diff --git a/data_src/models/complete.blend1 b/data_src/models/complete.blend1
new file mode 100644
index 0000000..6ce1372
--- /dev/null
+++ b/data_src/models/complete.blend1
Binary files differ
diff --git a/data_src/models/green_outline.blend b/data_src/models/green_outline.blend
new file mode 100644
index 0000000..ac470ed
--- /dev/null
+++ b/data_src/models/green_outline.blend
Binary files differ
diff --git a/data_src/models/green_outline.blend1 b/data_src/models/green_outline.blend1
new file mode 100644
index 0000000..0aea309
--- /dev/null
+++ b/data_src/models/green_outline.blend1
Binary files differ
diff --git a/data_src/models/grid.blend b/data_src/models/grid.blend
new file mode 100644
index 0000000..58750fd
--- /dev/null
+++ b/data_src/models/grid.blend
Binary files differ
diff --git a/data_src/models/grid.blend1 b/data_src/models/grid.blend1
new file mode 100644
index 0000000..c08196d
--- /dev/null
+++ b/data_src/models/grid.blend1
Binary files differ
diff --git a/data_src/models/icon_battery.blend b/data_src/models/icon_battery.blend
new file mode 100644
index 0000000..6bba30c
--- /dev/null
+++ b/data_src/models/icon_battery.blend
Binary files differ
diff --git a/data_src/models/icon_battery.blend1 b/data_src/models/icon_battery.blend1
new file mode 100644
index 0000000..dc2537e
--- /dev/null
+++ b/data_src/models/icon_battery.blend1
Binary files differ
diff --git a/data_src/models/icon_engine.blend b/data_src/models/icon_engine.blend
new file mode 100644
index 0000000..8976da1
--- /dev/null
+++ b/data_src/models/icon_engine.blend
Binary files differ
diff --git a/data_src/models/icon_engine.blend1 b/data_src/models/icon_engine.blend1
new file mode 100644
index 0000000..b3d782a
--- /dev/null
+++ b/data_src/models/icon_engine.blend1
Binary files differ
diff --git a/data_src/models/icon_fueltank.blend b/data_src/models/icon_fueltank.blend
new file mode 100644
index 0000000..7963afb
--- /dev/null
+++ b/data_src/models/icon_fueltank.blend
Binary files differ
diff --git a/data_src/models/icon_fueltank.blend1 b/data_src/models/icon_fueltank.blend1
new file mode 100644
index 0000000..a5b5dc0
--- /dev/null
+++ b/data_src/models/icon_fueltank.blend1
Binary files differ
diff --git a/data_src/models/icon_generator.blend b/data_src/models/icon_generator.blend
new file mode 100644
index 0000000..9efd0ba
--- /dev/null
+++ b/data_src/models/icon_generator.blend
Binary files differ
diff --git a/data_src/models/icon_generator.blend1 b/data_src/models/icon_generator.blend1
new file mode 100644
index 0000000..7d13e3f
--- /dev/null
+++ b/data_src/models/icon_generator.blend1
Binary files differ
diff --git a/data_src/models/icon_high_voltage.blend b/data_src/models/icon_high_voltage.blend
new file mode 100644
index 0000000..508d34d
--- /dev/null
+++ b/data_src/models/icon_high_voltage.blend
Binary files differ
diff --git a/data_src/models/icon_high_voltage.blend1 b/data_src/models/icon_high_voltage.blend1
new file mode 100644
index 0000000..012b4d1
--- /dev/null
+++ b/data_src/models/icon_high_voltage.blend1
Binary files differ
diff --git a/data_src/models/icon_hv_source.blend b/data_src/models/icon_hv_source.blend
new file mode 100644
index 0000000..ed17e53
--- /dev/null
+++ b/data_src/models/icon_hv_source.blend
Binary files differ
diff --git a/data_src/models/icon_hv_source.blend1 b/data_src/models/icon_hv_source.blend1
new file mode 100644
index 0000000..f700d4c
--- /dev/null
+++ b/data_src/models/icon_hv_source.blend1
Binary files differ
diff --git a/data_src/models/icon_ionthrust.blend b/data_src/models/icon_ionthrust.blend
new file mode 100644
index 0000000..f18aefd
--- /dev/null
+++ b/data_src/models/icon_ionthrust.blend
Binary files differ
diff --git a/data_src/models/icon_ionthrust.blend1 b/data_src/models/icon_ionthrust.blend1
new file mode 100644
index 0000000..f4da45d
--- /dev/null
+++ b/data_src/models/icon_ionthrust.blend1
Binary files differ
diff --git a/data_src/models/icon_laser_turret.blend b/data_src/models/icon_laser_turret.blend
new file mode 100644
index 0000000..d533caf
--- /dev/null
+++ b/data_src/models/icon_laser_turret.blend
Binary files differ
diff --git a/data_src/models/icon_laser_turret.blend1 b/data_src/models/icon_laser_turret.blend1
new file mode 100644
index 0000000..9848f23
--- /dev/null
+++ b/data_src/models/icon_laser_turret.blend1
Binary files differ
diff --git a/data_src/models/icon_wire.blend b/data_src/models/icon_wire.blend
new file mode 100644
index 0000000..d68db38
--- /dev/null
+++ b/data_src/models/icon_wire.blend
Binary files differ
diff --git a/data_src/models/icon_wire.blend1 b/data_src/models/icon_wire.blend1
new file mode 100644
index 0000000..88056a5
--- /dev/null
+++ b/data_src/models/icon_wire.blend1
Binary files differ
diff --git a/data_src/models/layer_electric.blend b/data_src/models/layer_electric.blend
new file mode 100644
index 0000000..8cd5332
--- /dev/null
+++ b/data_src/models/layer_electric.blend
Binary files differ
diff --git a/data_src/models/layer_electric.blend1 b/data_src/models/layer_electric.blend1
new file mode 100644
index 0000000..2475e7d
--- /dev/null
+++ b/data_src/models/layer_electric.blend1
Binary files differ
diff --git a/data_src/models/layer_fuel.blend b/data_src/models/layer_fuel.blend
new file mode 100644
index 0000000..a987af1
--- /dev/null
+++ b/data_src/models/layer_fuel.blend
Binary files differ
diff --git a/data_src/models/layer_fuel.blend1 b/data_src/models/layer_fuel.blend1
new file mode 100644
index 0000000..309bf0f
--- /dev/null
+++ b/data_src/models/layer_fuel.blend1
Binary files differ
diff --git a/data_src/models/layer_hv.blend b/data_src/models/layer_hv.blend
new file mode 100644
index 0000000..ed25fa8
--- /dev/null
+++ b/data_src/models/layer_hv.blend
Binary files differ
diff --git a/data_src/models/layer_hv.blend1 b/data_src/models/layer_hv.blend1
new file mode 100644
index 0000000..119db1b
--- /dev/null
+++ b/data_src/models/layer_hv.blend1
Binary files differ
diff --git a/data_src/models/level_1.blend b/data_src/models/level_1.blend
new file mode 100644
index 0000000..e3623bf
--- /dev/null
+++ b/data_src/models/level_1.blend
Binary files differ
diff --git a/data_src/models/level_1.blend1 b/data_src/models/level_1.blend1
new file mode 100644
index 0000000..8b427d8
--- /dev/null
+++ b/data_src/models/level_1.blend1
Binary files differ
diff --git a/data_src/models/level_10.blend b/data_src/models/level_10.blend
new file mode 100644
index 0000000..480363f
--- /dev/null
+++ b/data_src/models/level_10.blend
Binary files differ
diff --git a/data_src/models/level_10.blend1 b/data_src/models/level_10.blend1
new file mode 100644
index 0000000..8a14887
--- /dev/null
+++ b/data_src/models/level_10.blend1
Binary files differ
diff --git a/data_src/models/level_11.blend b/data_src/models/level_11.blend
new file mode 100644
index 0000000..db99249
--- /dev/null
+++ b/data_src/models/level_11.blend
Binary files differ
diff --git a/data_src/models/level_12.blend b/data_src/models/level_12.blend
new file mode 100644
index 0000000..9e57015
--- /dev/null
+++ b/data_src/models/level_12.blend
Binary files differ
diff --git a/data_src/models/level_12.blend1 b/data_src/models/level_12.blend1
new file mode 100644
index 0000000..89f0e15
--- /dev/null
+++ b/data_src/models/level_12.blend1
Binary files differ
diff --git a/data_src/models/level_2.blend b/data_src/models/level_2.blend
new file mode 100644
index 0000000..e5057e6
--- /dev/null
+++ b/data_src/models/level_2.blend
Binary files differ
diff --git a/data_src/models/level_2.blend1 b/data_src/models/level_2.blend1
new file mode 100644
index 0000000..dcda7f9
--- /dev/null
+++ b/data_src/models/level_2.blend1
Binary files differ
diff --git a/data_src/models/level_3.blend b/data_src/models/level_3.blend
new file mode 100644
index 0000000..3c38d43
--- /dev/null
+++ b/data_src/models/level_3.blend
Binary files differ
diff --git a/data_src/models/level_3p2.blend b/data_src/models/level_3p2.blend
new file mode 100644
index 0000000..77f0df4
--- /dev/null
+++ b/data_src/models/level_3p2.blend
Binary files differ
diff --git a/data_src/models/level_3p2.blend1 b/data_src/models/level_3p2.blend1
new file mode 100644
index 0000000..4b14876
--- /dev/null
+++ b/data_src/models/level_3p2.blend1
Binary files differ
diff --git a/data_src/models/level_4.blend b/data_src/models/level_4.blend
new file mode 100644
index 0000000..c9c0279
--- /dev/null
+++ b/data_src/models/level_4.blend
Binary files differ
diff --git a/data_src/models/level_4.blend1 b/data_src/models/level_4.blend1
new file mode 100644
index 0000000..b01de38
--- /dev/null
+++ b/data_src/models/level_4.blend1
Binary files differ
diff --git a/data_src/models/level_5.blend b/data_src/models/level_5.blend
new file mode 100644
index 0000000..c2ae60e
--- /dev/null
+++ b/data_src/models/level_5.blend
Binary files differ
diff --git a/data_src/models/level_5.blend1 b/data_src/models/level_5.blend1
new file mode 100644
index 0000000..692b2f5
--- /dev/null
+++ b/data_src/models/level_5.blend1
Binary files differ
diff --git a/data_src/models/level_6.blend b/data_src/models/level_6.blend
new file mode 100644
index 0000000..eb09e14
--- /dev/null
+++ b/data_src/models/level_6.blend
Binary files differ
diff --git a/data_src/models/level_6.blend1 b/data_src/models/level_6.blend1
new file mode 100644
index 0000000..7c4c482
--- /dev/null
+++ b/data_src/models/level_6.blend1
Binary files differ
diff --git a/data_src/models/level_7.blend b/data_src/models/level_7.blend
new file mode 100644
index 0000000..9e89325
--- /dev/null
+++ b/data_src/models/level_7.blend
Binary files differ
diff --git a/data_src/models/level_7.blend1 b/data_src/models/level_7.blend1
new file mode 100644
index 0000000..86a6bf1
--- /dev/null
+++ b/data_src/models/level_7.blend1
Binary files differ
diff --git a/data_src/models/level_8.blend b/data_src/models/level_8.blend
new file mode 100644
index 0000000..caa04c4
--- /dev/null
+++ b/data_src/models/level_8.blend
Binary files differ
diff --git a/data_src/models/level_8.blend1 b/data_src/models/level_8.blend1
new file mode 100644
index 0000000..106fa69
--- /dev/null
+++ b/data_src/models/level_8.blend1
Binary files differ
diff --git a/data_src/models/level_9.blend b/data_src/models/level_9.blend
new file mode 100644
index 0000000..efbd437
--- /dev/null
+++ b/data_src/models/level_9.blend
Binary files differ
diff --git a/data_src/models/level_9.blend1 b/data_src/models/level_9.blend1
new file mode 100644
index 0000000..fde2424
--- /dev/null
+++ b/data_src/models/level_9.blend1
Binary files differ
diff --git a/data_src/models/level_complete.blend b/data_src/models/level_complete.blend
new file mode 100644
index 0000000..285bd86
--- /dev/null
+++ b/data_src/models/level_complete.blend
Binary files differ
diff --git a/data_src/models/level_complete.blend1 b/data_src/models/level_complete.blend1
new file mode 100644
index 0000000..8265c4f
--- /dev/null
+++ b/data_src/models/level_complete.blend1
Binary files differ
diff --git a/data_src/models/manage_chatbox.blend b/data_src/models/manage_chatbox.blend
new file mode 100644
index 0000000..a0f8a39
--- /dev/null
+++ b/data_src/models/manage_chatbox.blend
Binary files differ
diff --git a/data_src/models/manage_chatbox.blend1 b/data_src/models/manage_chatbox.blend1
new file mode 100644
index 0000000..8bb307a
--- /dev/null
+++ b/data_src/models/manage_chatbox.blend1
Binary files differ
diff --git a/data_src/models/manage_portrait.blend b/data_src/models/manage_portrait.blend
new file mode 100644
index 0000000..46af79a
--- /dev/null
+++ b/data_src/models/manage_portrait.blend
Binary files differ
diff --git a/data_src/models/manage_portrait.blend1 b/data_src/models/manage_portrait.blend1
new file mode 100644
index 0000000..713c3e5
--- /dev/null
+++ b/data_src/models/manage_portrait.blend1
Binary files differ
diff --git a/data_src/models/money_background.blend b/data_src/models/money_background.blend
new file mode 100644
index 0000000..3d7d095
--- /dev/null
+++ b/data_src/models/money_background.blend
Binary files differ
diff --git a/data_src/models/money_background.blend1 b/data_src/models/money_background.blend1
new file mode 100644
index 0000000..8c6813d
--- /dev/null
+++ b/data_src/models/money_background.blend1
Binary files differ
diff --git a/data_src/models/numbered_grid.blend b/data_src/models/numbered_grid.blend
new file mode 100644
index 0000000..3528368
--- /dev/null
+++ b/data_src/models/numbered_grid.blend
Binary files differ
diff --git a/data_src/models/numbered_grid.blend1 b/data_src/models/numbered_grid.blend1
new file mode 100644
index 0000000..558716a
--- /dev/null
+++ b/data_src/models/numbered_grid.blend1
Binary files differ
diff --git a/data_src/models/ph_manager.blend b/data_src/models/ph_manager.blend
new file mode 100644
index 0000000..15c054a
--- /dev/null
+++ b/data_src/models/ph_manager.blend
Binary files differ
diff --git a/data_src/models/ph_manager.blend1 b/data_src/models/ph_manager.blend1
new file mode 100644
index 0000000..15b2b5d
--- /dev/null
+++ b/data_src/models/ph_manager.blend1
Binary files differ
diff --git a/data_src/models/ph_start_screen.blend b/data_src/models/ph_start_screen.blend
new file mode 100644
index 0000000..caaa87d
--- /dev/null
+++ b/data_src/models/ph_start_screen.blend
Binary files differ
diff --git a/data_src/models/ph_start_screen.blend1 b/data_src/models/ph_start_screen.blend1
new file mode 100644
index 0000000..3e1b2c6
--- /dev/null
+++ b/data_src/models/ph_start_screen.blend1
Binary files differ
diff --git a/data_src/models/pipe1111.blend b/data_src/models/pipe1111.blend
new file mode 100644
index 0000000..9749e14
--- /dev/null
+++ b/data_src/models/pipe1111.blend
Binary files differ
diff --git a/data_src/models/pipe1111.blend1 b/data_src/models/pipe1111.blend1
new file mode 100644
index 0000000..859c9a7
--- /dev/null
+++ b/data_src/models/pipe1111.blend1
Binary files differ
diff --git a/data_src/models/pipe1111_hint.blend b/data_src/models/pipe1111_hint.blend
new file mode 100644
index 0000000..ab77f59
--- /dev/null
+++ b/data_src/models/pipe1111_hint.blend
Binary files differ
diff --git a/data_src/models/selected_layer_outline.blend b/data_src/models/selected_layer_outline.blend
new file mode 100644
index 0000000..d4a3dd0
--- /dev/null
+++ b/data_src/models/selected_layer_outline.blend
Binary files differ
diff --git a/data_src/models/selected_layer_outline.blend1 b/data_src/models/selected_layer_outline.blend1
new file mode 100644
index 0000000..ce0dace
--- /dev/null
+++ b/data_src/models/selected_layer_outline.blend1
Binary files differ
diff --git a/data_src/models/star.blend1 b/data_src/models/star.blend1
new file mode 100644
index 0000000..7d991f9
--- /dev/null
+++ b/data_src/models/star.blend1
Binary files differ
diff --git a/data_src/models/star1.blend b/data_src/models/star1.blend
new file mode 100644
index 0000000..c1bbeee
--- /dev/null
+++ b/data_src/models/star1.blend
Binary files differ
diff --git a/data_src/models/star2.blend b/data_src/models/star2.blend
new file mode 100644
index 0000000..04e0107
--- /dev/null
+++ b/data_src/models/star2.blend
Binary files differ
diff --git a/data_src/models/star2.blend1 b/data_src/models/star2.blend1
new file mode 100644
index 0000000..47a87dd
--- /dev/null
+++ b/data_src/models/star2.blend1
Binary files differ
diff --git a/data_src/models/star3.blend b/data_src/models/star3.blend
new file mode 100644
index 0000000..3a77529
--- /dev/null
+++ b/data_src/models/star3.blend
Binary files differ
diff --git a/data_src/models/star3.blend1 b/data_src/models/star3.blend1
new file mode 100644
index 0000000..a26496a
--- /dev/null
+++ b/data_src/models/star3.blend1
Binary files differ
diff --git a/data_src/models/test.blend b/data_src/models/test.blend
new file mode 100644
index 0000000..942a0b2
--- /dev/null
+++ b/data_src/models/test.blend
Binary files differ
diff --git a/data_src/models/test_ship.blend b/data_src/models/test_ship.blend
new file mode 100644
index 0000000..104dfa8
--- /dev/null
+++ b/data_src/models/test_ship.blend
Binary files differ
diff --git a/data_src/models/test_ship.blend1 b/data_src/models/test_ship.blend1
new file mode 100644
index 0000000..28cb132
--- /dev/null
+++ b/data_src/models/test_ship.blend1
Binary files differ
diff --git a/data_src/models/texture_brick.blend b/data_src/models/texture_brick.blend
new file mode 100644
index 0000000..958459e
--- /dev/null
+++ b/data_src/models/texture_brick.blend
Binary files differ
diff --git a/data_src/models/texture_dirt_1.blend b/data_src/models/texture_dirt_1.blend
new file mode 100644
index 0000000..f996ae4
--- /dev/null
+++ b/data_src/models/texture_dirt_1.blend
Binary files differ
diff --git a/data_src/models/texture_dirt_1.blend1 b/data_src/models/texture_dirt_1.blend1
new file mode 100644
index 0000000..83298d3
--- /dev/null
+++ b/data_src/models/texture_dirt_1.blend1
Binary files differ
diff --git a/data_src/models/texture_red_white_checker.blend b/data_src/models/texture_red_white_checker.blend
new file mode 100644
index 0000000..2095ee4
--- /dev/null
+++ b/data_src/models/texture_red_white_checker.blend
Binary files differ
diff --git a/data_src/models/texture_red_white_checker.blend1 b/data_src/models/texture_red_white_checker.blend1
new file mode 100644
index 0000000..2204479
--- /dev/null
+++ b/data_src/models/texture_red_white_checker.blend1
Binary files differ
diff --git a/data_src/models/texture_wood_1.blend b/data_src/models/texture_wood_1.blend
new file mode 100644
index 0000000..fe5380f
--- /dev/null
+++ b/data_src/models/texture_wood_1.blend
Binary files differ
diff --git a/data_src/models/unselected_layer_outline.blend b/data_src/models/unselected_layer_outline.blend
new file mode 100644
index 0000000..07ccf01
--- /dev/null
+++ b/data_src/models/unselected_layer_outline.blend
Binary files differ
diff --git a/data_src/models/unselected_layer_outline.blend1 b/data_src/models/unselected_layer_outline.blend1
new file mode 100644
index 0000000..e028f75
--- /dev/null
+++ b/data_src/models/unselected_layer_outline.blend1
Binary files differ
diff --git a/data_src/nuclear-plant.png b/data_src/nuclear-plant.png
new file mode 100644
index 0000000..d0ef0a7
--- /dev/null
+++ b/data_src/nuclear-plant.png
Binary files differ
diff --git a/data_src/plug.png b/data_src/plug.png
new file mode 100644
index 0000000..bf952ab
--- /dev/null
+++ b/data_src/plug.png
Binary files differ
diff --git a/data_src/power-generator.png b/data_src/power-generator.png
new file mode 100644
index 0000000..bbf042c
--- /dev/null
+++ b/data_src/power-generator.png
Binary files differ
diff --git a/data_src/pylon.png b/data_src/pylon.png
new file mode 100644
index 0000000..57758b9
--- /dev/null
+++ b/data_src/pylon.png
Binary files differ
diff --git a/data_src/rocket-thruster.png b/data_src/rocket-thruster.png
new file mode 100644
index 0000000..a938ede
--- /dev/null
+++ b/data_src/rocket-thruster.png
Binary files differ
diff --git a/data_src/space.jpg b/data_src/space.jpg
new file mode 100644
index 0000000..d569e51
--- /dev/null
+++ b/data_src/space.jpg
Binary files differ
diff --git a/data_src/straight-pipe.png b/data_src/straight-pipe.png
new file mode 100644
index 0000000..ee8154c
--- /dev/null
+++ b/data_src/straight-pipe.png
Binary files differ
diff --git a/data_src/tee-pipe.png b/data_src/tee-pipe.png
new file mode 100644
index 0000000..3269baa
--- /dev/null
+++ b/data_src/tee-pipe.png
Binary files differ
diff --git a/data_src/tesla-turret.png b/data_src/tesla-turret.png
new file mode 100644
index 0000000..f215eb1
--- /dev/null
+++ b/data_src/tesla-turret.png
Binary files differ
diff --git a/data_src/test_ship.tsx b/data_src/test_ship.tsx
new file mode 100644
index 0000000..8c6b659
--- /dev/null
+++ b/data_src/test_ship.tsx
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<tileset version="1.2" tiledversion="1.3.1" name="test_ship" tilewidth="128" tileheight="128" tilecount="1" columns="0">
+ <grid orientation="orthogonal" width="1" height="1"/>
+ <tile id="1">
+ <image width="128" height="128" source="img_raw/level_1_raw.png"/>
+ </tile>
+</tileset>
diff --git a/rewrite.lua b/rewrite.lua
new file mode 100644
index 0000000..f33c12c
--- /dev/null
+++ b/rewrite.lua
@@ -0,0 +1,30 @@
+--[[Script to rewrite a stack traceback in terms of moonscript instead of lua]]
+
+for data in io.lines() do
+ local filename, linenum, rest = data:gmatch("(.*%.lua):(%d+):(.*)")()
+ if filename and linenum and rest then
+ local _,_,stripped_filename = filename:find("(%S+)")
+ local moonfilename = filename:gsub(".lua$",".moon")
+
+ --If our file is not moonscript, we won't have a debug file
+ local debugfile = io.open("debug/" .. stripped_filename.. ".X")
+ if not debugfile then
+ print(data)
+ goto next
+ end
+
+ --Skip first line
+ debugfile:read("*l")
+ for line in debugfile:lines() do
+ _,_,pos,lua,moon = line:find("(%d+)%s+(%d+):%b[] >> (%d+)")
+ if tonumber(linenum) == tonumber(lua) then
+ print(string.format("\t%s:%d: %s",moonfilename,moon,rest))
+ goto next
+ end
+ end
+ else
+ print(data)
+ end
+ ::next::
+end
+
diff --git a/src/complete.moon b/src/complete.moon
new file mode 100644
index 0000000..f1af550
--- /dev/null
+++ b/src/complete.moon
@@ -0,0 +1,37 @@
+mod = ...
+
+mod.create_scene = () ->
+ ret = am.group!
+ ret\append(mod.starfield!)
+ ret ^ am.translate(0,0) ^ am.rotate(0) ^ am.sprite("data/complete.png")
+ ret
+
+stars = {
+ "data/star1.png"
+ "data/star2.png"
+ "data/star3.png"
+}
+
+mod.starfield = () ->
+ ret = am.group!
+ ret\action(coroutine.create(() ->
+ while true
+ --Randomly create stars with a 0.01 chance
+ if math.random() < 0.2
+ star_y = math.random(-256,256)
+ star_sprite = stars[math.random(#stars)]
+ star = am.translate(-512,star_y) ^ am.scale(1) ^ am.sprite(star_sprite)
+ starspeed = math.random(20,50)
+ star\action(coroutine.create(() ->
+ while star.x <= 550
+ star.x += starspeed
+ coroutine.yield!
+ ret\remove(star)
+ coroutine.yield true
+ ))
+ ret\append(star)
+ coroutine.yield!
+ ))
+ ret
+
+mod
diff --git a/src/conf.lua b/src/conf.lua
new file mode 100644
index 0000000..d56dc89
--- /dev/null
+++ b/src/conf.lua
@@ -0,0 +1,6 @@
+title = "Global Game Jam 2020"
+author = "Alex Pickering"
+shortname = "ggj20"
+version = "1.0.0"
+support_email = "alex@cogarr.net"
+copyright_message = "Copyright © 2019 Alexander M. Pickering."
diff --git a/src/dispatch.moon b/src/dispatch.moon
new file mode 100644
index 0000000..49a4ba1
--- /dev/null
+++ b/src/dispatch.moon
@@ -0,0 +1,72 @@
+--Control utilities
+state = require "global"
+ui = require "ui"
+mod = ...
+
+mod.window_to_normal = (pos) ->
+ nx = pos.x - state.win.left
+ ny = pos.y - state.win.top
+ vec2(nx,-ny)
+
+mod.normal_to_window = (pos) ->
+ print("in:",pos)
+ nx = pos.x + state.win.left
+ ny = -(pos.y) + state.win.top
+ print("out:",nx,ny)
+ vec2(nx,ny)
+
+state.layers\action(coroutine.create(()->
+ while true
+ if state.win\mouse_pressed("left")
+ pos = state.win\mouse_position!
+ --print("Mouse pos:",pos)
+ npos = mod.window_to_normal(pos)
+ --print("newpos:", mod.window_to_normal(pos))
+ gridx, gridy = math.floor(npos.x / 32), math.floor(npos.y / 32)
+ l = state.selected_layer
+ --print("Looking at active layer:",l)
+ tile = l\get_tile(gridx,gridy)
+ --print("tile:",tile)
+ if tile and tile.type.cantoggle --we want to remove
+ l\clear_square(gridx,gridy)
+ state.money += l.cost
+ state.play(77430200)
+ else
+ if state.money >= l.cost and not tile
+ state.play(77430200)
+ state.money -= l.cost
+ l\toggle_square(gridx,gridy)
+ state.update!
+ l\print_grid!
+ else
+ state.play(4807804)
+ if (state.win\key_pressed("1") or state.win\key_pressed("kp_1")) and state.layer_tbl[1]
+ print("setting selected layer to 1")
+ state.selected_layer.node.hidden = true
+ state.selected_layer = state.layer_tbl[1]
+ state.selected_layer.node.hidden = false
+ ui.reload_ui_layers!
+ elseif (state.win\key_pressed("2") or state.win\key_pressed("kp_2")) and state.layer_tbl[2]
+ print("setting selected layer to 2")
+ state.selected_layer.node.hidden = true
+ state.selected_layer = state.layer_tbl[2]
+ state.selected_layer.node.hidden = false
+ ui.reload_ui_layers!
+ elseif (state.win\key_pressed("3") or state.win\key_pressed("kp_3")) and state.layer_tbl[3]
+ state.selected_layer.node.hidden = true
+ state.selected_layer = state.layer_tbl[3]
+ state.selected_layer.node.hidden = false
+ ui.reload_ui_layers!
+ elseif (state.win\key_pressed("4") or state.win\key_pressed("kp_4")) and state.layer_tbl[4]
+ print("setting selected layer to 4")
+ state.selected_layer.node.hidden = true
+ state.selected_layer = state.layer_tbl[4]
+ state.selected_layer.node.hidden = false
+ ui.reload_ui_layers!
+ --for layernum, layer in pairs state.layer_tbl do
+ --if state.selected_layer == layer
+ --state.selecte
+ coroutine.yield!
+))
+
+mod
diff --git a/src/ext.lua b/src/ext.lua
new file mode 100644
index 0000000..85d4ef7
--- /dev/null
+++ b/src/ext.lua
@@ -0,0 +1,72 @@
+-- Override tostring to display more info about the table
+local old_tostring = tostring
+local numtabs = 0
+local printed_tables = {}
+--print = log
+--
+ --for obj in *@physobjs
+ --bp.add(t,obj.offset.x,obj.offset.y,obj.size.x,obj.size.y)
+
+local function tostring_helper(el)
+ assert(type(el) == "table", "Tried to call helper with something that was not a table, it was a " .. type(el))
+ local mt = getmetatable(el)
+ if mt and mt.__tostring then
+ return mt.__tostring(el)
+ elseif printed_tables[el] == true then
+ return old_tostring(el)
+ else
+ printed_tables[el] = true
+ numtabs = numtabs + 1
+ local strbuilder = {"{"}
+ for k,v in pairs(el) do
+ local key,value
+ if type(k) == "table" then
+ key = tostring_helper(k)
+ else
+ key = old_tostring(k)
+ end
+ if type(v) == "table" then
+ value = tostring_helper(v)
+ else
+ value = old_tostring(v)
+ end
+ strbuilder[#strbuilder + 1] = string.format("%s%s : %s", string.rep("\t",numtabs), key, value)
+ end
+ strbuilder[#strbuilder + 1] = string.rep("\t",numtabs - 1) .. "}"
+ numtabs = numtabs - 1
+ return table.concat(strbuilder,"\n")
+ end
+
+end
+function tostring(el)
+ printed_tables = {}
+ if type(el) == "table" then
+ return tostring_helper(el)
+ end
+ return old_tostring(el)
+end
+
+function checktype(item,t)
+ if type(item) ~= t then
+ error("Was not call with corret type",3)
+ end
+end
+
+-- Functions to save my hands
+function printf(fmt, ...)
+ print(string.format(fmt,...))
+end
+function errorf(fmt, ...)
+ --Our error isn't actually in this function, it's 1 above us (1) = 2
+ error(string.format(fmt,...),2)
+end
+function assertf(bool, fmt, ...)
+ assert(type(fmt) == "string", "Assertf arg #2 was \"" .. type(fmt) .. "\", expected string")
+ if not bool then
+ args = {fmt}
+ for k,v in ipairs({...}) do
+ table.insert(args,tostring(v))
+ end
+ error(string.format(unpack(args)),2)
+ end
+end
diff --git a/src/game.moon b/src/game.moon
new file mode 100644
index 0000000..037511a
--- /dev/null
+++ b/src/game.moon
@@ -0,0 +1,131 @@
+state = require "global"
+level1 = require "level1"
+level2 = require "level2"
+level3 = require "level3"
+level3p2 = require"level3p2"
+level4 = require "level4"
+level5 = require "level5"
+level6 = require "level6"
+level7 = require "level7"
+level8 = require "level8"
+level9 = require "level9"
+level10 = require "level10"
+level11 = require "level11"
+level12 = require "level12"
+game_complete = require "complete"
+ui = require "ui"
+mod = ...
+
+mod.ship_move_in_co = () ->
+ while true
+ while ui.manager_talking
+ coroutine.yield!
+ state.ship("sprite").color = vec4(1,1,1,1)
+ state.game_grid.hidden = true
+ state.layers.hidden = true
+ dist = state.ship("position").x - (state.win.left + 256) - 3
+ if dist > 3
+ state.ship("position").x = state.ship("position").x - (20*math.sin(dist / 512))
+ else
+ state.ship("sprite").color = vec4(0.5, 0.5, 0.5, 1)
+ state.game_grid.hidden = false
+ state.layers.hidden = false
+ break
+ coroutine.yield!
+ coroutine.yield true
+
+mod.ship_move_out_co = () ->
+ start_pos = state.ship("position").x
+ state.layers.hidden=true
+ state.game_grid.hidden =true
+ while true
+ print("Doing ship move out co...")
+ state.ship("sprite").color = vec4(1,1,1,1)
+ dist = state.ship("position").x - (state.win.left - 600 - 3)
+ if dist > 3
+ state.ship("position").x = state.ship("position").x - (20*math.sin(-start_pos / 512))
+ else
+ break
+ coroutine.yield!
+ state.move_out_done = true
+ coroutine.yield true
+
+mod.hint_mouse = () ->
+ mousepos = state.win\mouse_position!
+ mod.mouse_hint("position").x = mousepos.x
+ mod.mouse_hint("position").y = mousepos.y
+
+mod.gen_scene = () ->
+ state.selected_state = "electrical"
+ state.game_background = am.translate(0,0) ^ am.rotate(0) ^ am.scale(2) ^ am.sprite("data/space.jpg")
+ state.game_grid = am.translate(0,0) ^ am.scale(2) ^ am.rotate(0) ^ am.sprite("data/numbered_grid.png")\tag("sprite")
+ --state.game_grid = am.translate(0,0) ^ am.scale(2) ^ am.rotate(0) ^ am.sprite("data/grid.png")\tag("sprite")
+ state.game_grid("sprite").color = vec4(1,1,1,0.2)
+ state.ship = am.translate(1024,0)\tag("position") ^ am.scale(1) ^ am.rotate(math.pi / 2) ^ (am.sprite("data/test_ship.png")\tag("sprite"))
+ state.money = 100
+ gui = ui.make_ui!
+ ret = am.group! ^ {state.game_background, state.ship, state.game_grid, state.layers, gui}
+ state.layers.hidden = true
+ state.game_grid.hidden = true
+ state.mouse_hint = am.translate(0,0)\tag("position") ^ am.scale(1) ^ am.text("hint hint")\tag("sprite")
+ state.mouse_hint\action(coroutine.create(() ->
+ while true
+ state.mouse_hint("position").y -= 1
+ state.mouse_hint("sprite").color.a -= 0.01
+ coroutine.yield!
+ ))
+ state.ship\action(coroutine.create(() ->
+ ui.manager_say("Welcome to the drydocks, newbie. We're here to fix\nships as cheaply as possible. I'll start you off\nhooking up broken fuel lines.")
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ level1.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ ui.manager_say("If there are multiple tanks, you only need to\nconnect thrusters to one of them.")
+ level2.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ level3.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ level3p2.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ ui.manager_say("I think you're ready for the big time, use [1]\nand [2] to toggle between the fuel and electrical\ngrid. Ion thrusters need power to operate.")
+ level4.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ ui.manager_say("The credits from salvageing components from one grid\ncan be used in the other grid.")
+ level5.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ level6.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ level7.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ level8.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ ui.manager_say("Some ships use generators instead of batteries.\nConnect the generator to the fuel and the ion\nthrusters.")
+ level9.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ level10.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ ui.manager_say("Some ships have laser weapons, they need High\nvoltage power, which can't be next to regular\nvoltage or it'll interfere.")
+ level11.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ ui.manager_say("Ah, we're at the last ship already. You must have\nbeen quite clever to make it this far.")
+ level12.setup_level!
+ while not state.move_out_done or ui.manager_talking
+ coroutine.yield!
+ state.win.scene = game_complete.create_scene!
+
+ ))
+ --state.ship\action(coroutine.create(ship_move_in_co))
+ ret
+
diff --git a/src/global.moon b/src/global.moon
new file mode 100644
index 0000000..1e62e16
--- /dev/null
+++ b/src/global.moon
@@ -0,0 +1,22 @@
+--Hodls global state
+
+mod = ...
+
+mod.screen_width = 1024
+mod.screen_height = 512
+
+mod.layers = am.group!
+mod.current_level = 0
+mod.layer_tbl = {}
+mod.add_layer = (layer) ->
+ mod.layers\append(layer.node)
+ table.insert(mod.layer_tbl,layer)
+
+mod.clear_layers = () ->
+ mod.layers\remove_all!
+ mod.layer_tbl = {}
+
+mod.play = (seed) ->
+ mod.layers\action(am.play(seed,false,1,1))
+
+mod
diff --git a/src/graph.lua b/src/graph.lua
new file mode 100644
index 0000000..96d0ea4
--- /dev/null
+++ b/src/graph.lua
@@ -0,0 +1,191 @@
+-- ======================================================================
+-- Copyright (c) 2012 RapidFire Studio Limited
+-- All Rights Reserved.
+-- http://www.rapidfirestudio.com
+
+-- Permission is hereby granted, free of charge, to any person obtaining
+-- a copy of this software and associated documentation files (the
+-- "Software"), to deal in the Software without restriction, including
+-- without limitation the rights to use, copy, modify, merge, publish,
+-- distribute, sublicense, and/or sell copies of the Software, and to
+-- permit persons to whom the Software is furnished to do so, subject to
+-- the following conditions:
+
+-- The above copyright notice and this permission notice shall be
+-- included in all copies or substantial portions of the Software.
+
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+-- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+-- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+-- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+-- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+-- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+-- ======================================================================
+-- Modifications & updates for ggj20, Alexander Pickering
+print("requireing graph...")
+mod = ...
+
+----------------------------------------------------------------
+-- local variables
+----------------------------------------------------------------
+
+local INF = 1/0
+local cachedPaths = nil
+
+----------------------------------------------------------------
+-- local functions
+----------------------------------------------------------------
+
+function dist ( x1, y1, x2, y2 )
+
+ return math.sqrt ( ((x2 - x1)^ 2 ) + ((y2 - y1) ^ 2 ) )
+end
+
+function dist_between ( nodeA, nodeB )
+
+ return dist ( nodeA.x, nodeA.y, nodeB.x, nodeB.y )
+end
+
+function heuristic_cost_estimate ( nodeA, nodeB )
+
+ return dist ( nodeA.x, nodeA.y, nodeB.x, nodeB.y )
+end
+
+function is_valid_node ( node, neighbor )
+
+ return true
+end
+
+function lowest_f_score ( set, f_score )
+
+ local lowest, bestNode = INF, nil
+ for _, node in ipairs ( set ) do
+ local score = f_score [ node ]
+ if score < lowest then
+ lowest, bestNode = score, node
+ end
+ end
+ return bestNode
+end
+
+function neighbor_nodes ( theNode, nodes )
+
+ local neighbors = {}
+ for _, node in ipairs ( nodes ) do
+ if theNode ~= node and is_valid_node ( theNode, node ) then
+ table.insert ( neighbors, node )
+ end
+ end
+ return neighbors
+end
+
+function not_in ( set, theNode )
+
+ for _, node in ipairs ( set ) do
+ if node == theNode then return false end
+ end
+ return true
+end
+
+function remove_node ( set, theNode )
+
+ for i, node in ipairs ( set ) do
+ if node == theNode then
+ set [ i ] = set [ #set ]
+ set [ #set ] = nil
+ break
+ end
+ end
+end
+
+function unwind_path ( flat_path, map, current_node )
+
+ if map [ current_node ] then
+ table.insert ( flat_path, 1, map [ current_node ] )
+ return unwind_path ( flat_path, map, map [ current_node ] )
+ else
+ return flat_path
+ end
+end
+
+------------------------------------------------------------------
+---- pathfinding functions
+------------------------------------------------------------------
+
+function a_star ( start, goal, nodes, valid_node_func )
+
+ local closedset = {}
+ local openset = { start }
+ local came_from = {}
+
+ if valid_node_func then is_valid_node = valid_node_func end
+
+ local g_score, f_score = {}, {}
+ g_score [ start ] = 0
+ f_score [ start ] = g_score [ start ] + heuristic_cost_estimate ( start, goal )
+
+ while #openset > 0 do
+
+ local current = lowest_f_score ( openset, f_score )
+ if current == goal then
+ local path = unwind_path ( {}, came_from, goal )
+ table.insert ( path, goal )
+ return path
+ end
+
+ remove_node ( openset, current )
+ table.insert ( closedset, current )
+
+ local neighbors = neighbor_nodes ( current, nodes )
+ for _, neighbor in ipairs ( neighbors ) do
+ if not_in ( closedset, neighbor ) then
+
+ local tentative_g_score = g_score [ current ] + dist_between ( current, neighbor )
+
+ if not_in ( openset, neighbor ) or tentative_g_score < g_score [ neighbor ] then
+ came_from [ neighbor ] = current
+ g_score [ neighbor ] = tentative_g_score
+ f_score [ neighbor ] = g_score [ neighbor ] + heuristic_cost_estimate ( neighbor, goal )
+ if not_in ( openset, neighbor ) then
+ table.insert ( openset, neighbor )
+ end
+ end
+ end
+ end
+ end
+ return nil -- no valid path
+end
+
+----------------------------------------------------------------
+-- exposed functions
+----------------------------------------------------------------
+
+function clear_cached_paths ()
+
+ cachedPaths = nil
+end
+
+function distance ( x1, y1, x2, y2 )
+
+ return dist ( x1, y1, x2, y2 )
+end
+
+function mod.path ( start, goal, nodes, ignore_cache, valid_node_func )
+
+ if not cachedPaths then cachedPaths = {} end
+ if not cachedPaths [ start ] then
+ cachedPaths [ start ] = {}
+ elseif cachedPaths [ start ] [ goal ] and not ignore_cache then
+ return cachedPaths [ start ] [ goal ]
+ end
+
+ local resPath = a_star ( start, goal, nodes, valid_node_func )
+ if not cachedPaths [ start ] [ goal ] and not ignore_cache then
+ cachedPaths [ start ] [ goal ] = resPath
+ end
+
+ return resPath
+end
+
+return mod
diff --git a/src/layers.moon b/src/layers.moon
new file mode 100644
index 0000000..6b6de6f
--- /dev/null
+++ b/src/layers.moon
@@ -0,0 +1,151 @@
+--Keeps track of layers
+state = require "global"
+disp = require "dispatch"
+graph = require "graph"
+mod = ...
+
+class Icon
+ new: (squaretype,position,layer) =>
+ @type = squaretype
+ @node = am.group! ^ {am.translate(position.x + 16, position.y - 16) ^ am.scale(1) ^ am.rotate(0) ^ am.sprite(@type.img_src)}
+ layer.node\append(@node)
+ @x = position.x
+ @y = position.y
+
+ __tostring: =>
+ return string.format("<%s at (%d, %d)>",@type.type,@x,@y)
+
+
+prototypes = {}
+class IconPrototype
+ new: (squaretype,img,cantoggle) =>
+ @type = squaretype
+ @img_src = img
+ prototypes[@type] = @
+ @cantoggle = cantoggle
+ totile: (x,y,layer) =>
+ ret = Icon(@,vec2(x,y),layer)
+ ret
+
+IconPrototype("liquid fuel thruster","data/icon_engine.png",false)
+IconPrototype("ion thruster","data/icon_ionthrust.png",false)
+IconPrototype("fuel pipe","data/pipe1111.png",true)
+IconPrototype("liquid fuel tank","data/icon_fueltank.png",false)
+IconPrototype("electric wire","data/icon_wire.png",true)
+IconPrototype("generator", "data/icon_generator.png",false)
+IconPrototype("battery","data/icon_battery.png",false)
+IconPrototype("high volt cabel","data/icon_high_voltage.png",true)
+IconPrototype("high volt source","data/icon_hv_source.png",false)
+IconPrototype("laser beam","data/icon_laser_turret.png",false)
+
+mod.check_paths = (tbl) ->
+ for k, path in pairs(tbl)
+ pathresult = graph.path(path[1],path[2],path[3],true,mod.Layer.tiles_adjacent)
+ if pathresult == nil
+ print("Failed to find path from",path[1], "to",path[2])
+ return false
+ return true
+
+mod.check_hv_paths = (tbl) ->
+ for k, path in pairs(tbl)
+ pathresult = graph.path(path[1],path[2],path[3],true,mod.Layer.hv_tiles_adjacent)
+ print("pathresult was:",pathresult)
+ if pathresult == nil
+ print("Failed to find path from",path[1], "to",path[2])
+ return false
+ return true
+
+electricals = {
+ ["electric wire"]: true
+ ["generator"]: true
+ ["ion thruster"]: true
+}
+hvs = {
+ ["high volt cabel"]: true
+ ["high volt source"]: true
+ ["laser beam"]: true
+}
+
+class Layer
+ new: (layername, default_node, node_cost, layer_icon) =>
+ @name = layername
+ @grid = {}
+ @node = am.group!
+ @nodelist = {} --A node least to easily remove all of them
+ @default = default_node
+ @icon = layer_icon
+ @cost = node_cost
+ print("Setting node action")
+
+ mark_square: (x,y,proto) =>
+ print("Marking square:",x,y)
+ assert(proto,"Marking a square on a layer must have a type")
+ assert(prototypes[proto], "Unkown square type:" .. proto)
+ gpos = disp.normal_to_window(vec2(x*32,y*32))
+ item = prototypes[proto]\totile(gpos.x, gpos.y, @)
+ @grid[x] = @grid[x] or {}
+ @grid[x][y] = item
+ item
+
+ tiles_adjacent: (node, neighbor) ->
+ xdist = math.abs(neighbor.x - node.x)
+ ydist = math.abs(neighbor.y - node.y)
+ dist = ( xdist ^ 2) + (ydist ^ 2)
+ ret = false
+ if dist == (32 ^ 2)
+ ret = true
+ ret
+
+ hv_tiles_adjacent: (node,neighbor) ->
+ if mod.Layer.tiles_adjacent(node,neighbor)
+ print("neighbor type.type:",neighbor.type.type)
+ if hvs[node.type.type] and electricals[neighbor.type.type]
+ error("High volt-normal error")
+ return true
+ else
+ return false
+
+ get_tile: (x,y) =>
+ if @grid[x] and @grid[x][y]
+ return @grid[x][y]
+ return nil
+
+ flat_tiles: =>
+ ret = {}
+ for _,row in pairs @grid
+ for _,peice in pairs row
+ table.insert(ret,peice)
+ ret
+
+ clear_square: (x,y) =>
+ t = @get_tile(x,y)
+ @node\remove(t.node)
+ @grid[x][y] = nil
+ print("Clearing:",t)
+
+ toggle_square: (x,y,t) =>
+ t = @get_tile(x,y)
+ if t
+ @clear_square(x,y)
+ else
+ @mark_square(x,y,t or @default)
+
+ print_grid: =>
+ for row = 1, math.floor((state.win.bottom - state.win.top) / 32)
+ this_row = {}
+ for col = 1, math.floor((state.win.right - state.win.left) / 32)
+ if @grid[row] and @grid[row][col]
+ table.insert(this_row,"1")
+ else
+ table.insert(this_row,"0")
+ print(table.concat(this_row))
+
+mod.Layer = Layer
+
+mod.create_layer = (layername) ->
+ ret = Layer(layername)
+
+mod.gen_scene = () ->
+ mod.node = am.group!
+
+mod
diff --git a/src/level1.moon b/src/level1.moon
new file mode 100644
index 0000000..a77814e
--- /dev/null
+++ b/src/level1.moon
@@ -0,0 +1,56 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+disp = require "dispatch"
+import Layer from layer
+ui = require "ui"
+print("In level1, Layer is", Layer)
+for k,v in pairs layer
+ print(k,":",v)
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 1
+ --ret = am.group!
+ state.clear_layers!
+ elayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ state.add_layer(elayer)
+ state.ship("sprite").source = "data/level_1.png"
+ state.money = 200
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ elayer\mark_square(9,8,"liquid fuel thruster")
+ elayer\mark_square(6,8,"liquid fuel tank")
+ elayer\mark_square(7,8,"fuel pipe")
+ --Hint fuel pipe
+ tp = disp.normal_to_window(vec2((8*32)+16,(8*32)+16))
+ fuel_hint = am.translate(tp) ^ am.sprite("data/pipe1111_hint.png")\tag "sprite"
+ elayer.node\append(fuel_hint)
+ should_hint = true
+ fuel_hint\action(coroutine.create(() ->
+ while should_hint
+ alpha = 0
+ for i = 1,256,10
+ fuel_hint("sprite").color = vec4(1,1,1,i/256)
+ coroutine.yield!
+ for i = 1,256,10
+ fuel_hint("sprite").color = vec4(1,1,1,1 - (i/256))
+ coroutine.yield!
+ ))
+
+
+ state.selected_layer = elayer
+ state.update = () ->
+ print("Game level updated!")
+ flat_tiles = elayer\flat_tiles!
+ path1 = graph.path(elayer\get_tile(6,8),elayer\get_tile(9,8),flat_tiles,true,elayer.tiles_adjacent)
+ --path2 = graph.path(elayer\get_tile(6,8),elayer\get_tile(9,7),flat_tiles,false,elayer.tiles_adjacent)
+ print("path:",path1, path2)
+ --print("selected layer:",state.active_layer)
+ if path1
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+ ui.reload_ui_layers!
+
+ --ret ^ elayer.node
+ --ret
+mod
diff --git a/src/level10.moon b/src/level10.moon
new file mode 100644
index 0000000..bc05d8a
--- /dev/null
+++ b/src/level10.moon
@@ -0,0 +1,54 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+import Layer from layer
+ui = require "ui"
+
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 9
+ --ret = am.group!
+ state.move_out_done = false
+ state.clear_layers!
+ flayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ elayer = Layer("electric","electric wire",10,"data/layer_electric.png")
+ state.add_layer(flayer)
+ state.add_layer(elayer)
+ state.money = 360
+ state.ship("position").x = 800
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ state.ship("sprite").source = "data/level_10.png"
+ t1 = elayer\mark_square(21,5,"ion thruster")
+ t2 = elayer\mark_square(21,7,"ion thruster")
+ t3 = elayer\mark_square(21,8,"ion thruster")
+ t4 = elayer\mark_square(21,10,"ion thruster")
+
+ t5 = flayer\mark_square(5,8,"generator")
+ t6 = elayer\mark_square(5,8,"generator")
+
+ t7 = flayer\mark_square(18,8,"generator")
+ t8 = elayer\mark_square(18,8,"generator")
+
+ p1 = flayer\mark_square(10,8,"liquid fuel tank")
+
+ elayer.node.hidden = true
+ state.selected_layer = flayer
+ state.update = () ->
+ ftiles = flayer\flat_tiles!
+ etiles = elayer\flat_tiles!
+
+ paths = {
+ {t1,t6,etiles},
+ {t2,t6,etiles},
+ {t3,t6,etiles},
+ {t4,t6,etiles},
+ {t5,p1,ftiles}
+ }
+ if layer.check_paths(paths)
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+
+ ui.reload_ui_layers!
+
+mod
diff --git a/src/level11.moon b/src/level11.moon
new file mode 100644
index 0000000..ebf33b1
--- /dev/null
+++ b/src/level11.moon
@@ -0,0 +1,83 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+import Layer from layer
+ui = require "ui"
+
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 10
+ --ret = am.group!
+ state.move_out_done = false
+ state.clear_layers!
+ flayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ elayer = Layer("electric","electric wire",10,"data/layer_electric.png")
+ hlayer = Layer("high voltage","high volt cabel",30,"data/layer_hv.png")
+ state.add_layer(flayer)
+ state.add_layer(elayer)
+ state.add_layer(hlayer)
+ --state.money = 500
+ state.money = 800
+ state.ship("position").x = 800
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ state.ship("sprite").source = "data/level_11.png"
+ t1 = elayer\mark_square(20,6,"ion thruster")
+ t2 = elayer\mark_square(20,9,"ion thruster")
+
+ --flayer\mark_square(8,4,"")
+ t3 = hlayer\mark_square(10,8,"high volt source")
+ hlayer\mark_square(10,9,"high volt cabel")
+ hlayer\mark_square(10,10,"high volt cabel")
+ hlayer\mark_square(9,10,"high volt cabel")
+
+ t4 = flayer\mark_square(13,8,"generator")
+ t5 = elayer\mark_square(13,8,"generator")
+
+ t6 = hlayer\mark_square(8,4,"laser beam")
+ t7 = hlayer\mark_square(8,5,"laser beam")
+ t8 = hlayer\mark_square(8,10,"laser beam")
+ t9 = hlayer\mark_square(8,11,"laser beam")
+
+ p1 = flayer\mark_square(7,7,"liquid fuel tank")
+
+
+ elayer.node.hidden = true
+ hlayer.node.hidden = true
+ state.selected_layer = flayer
+ state.update = () ->
+ ftiles = flayer\flat_tiles!
+ etiles = elayer\flat_tiles!
+ --Mege the etiles into the ftiles layer so we can check
+ --that hv cabels are not next to normal cables
+ htiles = hlayer\flat_tiles!
+ for _,t in pairs etiles
+ table.insert(htiles,t)
+ --table.merge(htiles,etiles)
+ --table.merge(htiles,hlayer\flat_tiles!)
+ print("htiles before path finding:",htiles)
+ paths,paths2 = nil,nil
+ pass,err = pcall(() ->
+ paths = layer.check_paths{
+ {t1,t5,etiles},
+ {t2,t5,etiles},
+ {t4,p1,ftiles},
+ }
+ paths2 = layer.check_hv_paths{
+ {t6,t3,htiles},
+ {t7,t3,htiles},
+ {t8,t3,htiles}
+ {t9,t3,htiles}
+ }
+ print("paths:",paths)
+ print("paths2 is",paths2)
+ return (paths and paths2)
+ )
+ print("pass:",pass,"err:",err)
+ if pass and err
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+
+ ui.reload_ui_layers!
+
+mod
diff --git a/src/level12.moon b/src/level12.moon
new file mode 100644
index 0000000..a1cf1e5
--- /dev/null
+++ b/src/level12.moon
@@ -0,0 +1,83 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+import Layer from layer
+ui = require "ui"
+
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 10
+ --ret = am.group!
+ state.move_out_done = false
+ state.clear_layers!
+ flayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ elayer = Layer("electric","electric wire",10,"data/layer_electric.png")
+ hlayer = Layer("high voltage","high volt cabel",30,"data/layer_hv.png")
+ state.add_layer(flayer)
+ state.add_layer(elayer)
+ state.add_layer(hlayer)
+ --state.money = 500
+ state.money = 1460
+ state.ship("position").x = 800
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ state.ship("sprite").source = "data/level_12.png"
+ t1 = flayer\mark_square(9,12,"liquid fuel tank")
+
+ t2 = flayer\mark_square(24,6,"generator")
+ t3 = elayer\mark_square(24,6,"generator")
+
+ t4 = flayer\mark_square(26,6,"liquid fuel thruster")
+ t5 = flayer\mark_square(26,8,"liquid fuel thruster")
+ t6 = flayer\mark_square(26,10,"liquid fuel thruster")
+
+ t7 = elayer\mark_square(24,4,"ion thruster")
+ t8 = elayer\mark_square(20,3,"ion thruster")
+ t9 = elayer\mark_square(15,3,"ion thruster")
+ t10 = elayer\mark_square(19,9,"ion thruster")
+ t11 = elayer\mark_square(19,12,"battery")
+
+ t12 = hlayer\mark_square(16,8,"high volt source")
+ t13 = hlayer\mark_square(8,5,"laser beam")
+
+ elayer.node.hidden = true
+ hlayer.node.hidden = true
+ state.selected_layer = flayer
+ state.update = () ->
+ ftiles = flayer\flat_tiles!
+ etiles = elayer\flat_tiles!
+ --Mege the etiles into the ftiles layer so we can check
+ --that hv cabels are not next to normal cables
+ htiles = hlayer\flat_tiles!
+ for _,t in pairs etiles
+ table.insert(htiles,t)
+ --table.merge(htiles,etiles)
+ --table.merge(htiles,hlayer\flat_tiles!)
+ print("htiles before path finding:",htiles)
+ paths,paths2 = nil,nil
+ pass,err = pcall(() ->
+ paths = layer.check_paths{
+ {t10,t11,etiles},
+ {t7,t3,etiles},
+ {t8,t3,etiles},
+ {t9,t3,etiles},
+ {t2,t1,ftiles},
+ {t4,t1,ftiles},
+ {t5,t1,ftiles},
+ {t6,t1,ftiles},
+ }
+ paths2 = layer.check_hv_paths{
+ {t12,t13,htiles},
+ }
+ print("paths:",paths)
+ print("paths2 is",paths2)
+ return (paths and paths2)
+ )
+ print("pass:",pass,"err:",err)
+ if pass and err
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+
+ ui.reload_ui_layers!
+
+mod
diff --git a/src/level2.moon b/src/level2.moon
new file mode 100644
index 0000000..3355a77
--- /dev/null
+++ b/src/level2.moon
@@ -0,0 +1,43 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+import Layer from layer
+ui = require "ui"
+
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 2
+ --ret = am.group!
+ state.move_out_done = false
+ state.clear_layers!
+ elayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ state.add_layer(elayer)
+ state.money = 150
+ state.ship("position").x = 800
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ state.ship("sprite").source = "data/level_2.png"
+ t1 = elayer\mark_square(11,8,"liquid fuel thruster")
+ t2 = elayer\mark_square(11,7,"liquid fuel thruster")
+ p1 = elayer\mark_square(6,6,"liquid fuel tank")
+ p2 = elayer\mark_square(6,9,"liquid fuel tank")
+ elayer\mark_square(9,7,"fuel pipe")
+ elayer\mark_square(9,8,"fuel pipe")
+ elayer\mark_square(10,8,"fuel pipe")
+ state.selected_layer = elayer
+ print("About to set update...")
+ state.update = () ->
+ print("Game level updated!")
+ flat_tiles = elayer\flat_tiles!
+ path1 = graph.path(t1,p1,flat_tiles,false,elayer.tiles_adjacent)
+ path2 = graph.path(t1,p2,flat_tiles,false,elayer.tiles_adjacent)
+ path3 = graph.path(t2,p1,flat_tiles,false,elayer.tiles_adjacent)
+ path4 = graph.path(t2,p2,flat_tiles,false,elayer.tiles_adjacent)
+ --print("selected layer:",state.active_layer)
+ if (path1 or path2) and (path3 or path4)
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+ print("Set update function")
+ ui.reload_ui_layers!
+
+mod
diff --git a/src/level3.moon b/src/level3.moon
new file mode 100644
index 0000000..1ca0b7a
--- /dev/null
+++ b/src/level3.moon
@@ -0,0 +1,40 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+import Layer from layer
+ui = require "ui"
+
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 3
+ --ret = am.group!
+ state.move_out_done = false
+ state.clear_layers!
+ elayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ state.add_layer(elayer)
+ state.money = 100
+ state.ship("position").x = 800
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ state.ship("sprite").source = "data/level_3.png"
+ t1 = elayer\mark_square(11,8,"liquid fuel thruster")
+ t2 = elayer\mark_square(11,7,"liquid fuel thruster")
+ p1 = elayer\mark_square(6,6,"liquid fuel tank")
+ p2 = elayer\mark_square(6,9,"liquid fuel tank")
+ elayer\mark_square(9,7,"fuel pipe")
+ elayer\mark_square(9,8,"fuel pipe")
+ elayer\mark_square(10,8,"fuel pipe")
+ state.selected_layer = elayer
+ state.update = () ->
+ flat_tiles = elayer\flat_tiles!
+ path1 = graph.path(t1,p1,flat_tiles,false,elayer.tiles_adjacent)
+ path2 = graph.path(t1,p2,flat_tiles,false,elayer.tiles_adjacent)
+ path3 = graph.path(t2,p1,flat_tiles,false,elayer.tiles_adjacent)
+ path4 = graph.path(t2,p2,flat_tiles,false,elayer.tiles_adjacent)
+ --print("selected layer:",state.active_layer)
+ if (path1 or path2) and (path3 or path4)
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+ ui.reload_ui_layers!
+
+mod
diff --git a/src/level3p2.moon b/src/level3p2.moon
new file mode 100644
index 0000000..363e3ce
--- /dev/null
+++ b/src/level3p2.moon
@@ -0,0 +1,44 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+import Layer from layer
+ui = require "ui"
+
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 3.5
+ --ret = am.group!
+ state.move_out_done = false
+ state.clear_layers!
+ elayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ state.add_layer(elayer)
+ state.money = 0
+ state.ship("position").x = 800
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ state.ship("sprite").source = "data/level_3p2.png"
+ t1 = elayer\mark_square(9,4,"liquid fuel thruster")
+ t2 = elayer\mark_square(9,10,"liquid fuel thruster")
+ p1 = elayer\mark_square(6,7,"liquid fuel tank")
+ elayer\mark_square(8,4,"fuel pipe")
+ elayer\mark_square(6,4,"fuel pipe")
+ elayer\mark_square(6,6,"fuel pipe")
+
+ elayer\mark_square(6,8,"fuel pipe")
+ elayer\mark_square(6,9,"fuel pipe")
+ elayer\mark_square(7,10,"fuel pipe")
+ elayer\mark_square(8,10,"fuel pipe")
+ state.selected_layer = elayer
+ state.update = () ->
+ flat_tiles = elayer\flat_tiles!
+
+ paths = layer.check_paths{
+ {t1,p1,flat_tiles},
+ {t2,p1,flat_tiles}
+ }
+ if paths
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+ ui.reload_ui_layers!
+
+mod
diff --git a/src/level4.moon b/src/level4.moon
new file mode 100644
index 0000000..7157874
--- /dev/null
+++ b/src/level4.moon
@@ -0,0 +1,52 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+import Layer from layer
+ui = require "ui"
+
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 4
+ --ret = am.group!
+ state.move_out_done = false
+ state.clear_layers!
+ flayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ elayer = Layer("electric","electric wire",10,"data/layer_electric.png")
+ state.add_layer(flayer)
+ state.add_layer(elayer)
+ state.money = 110
+ state.ship("position").x = 800
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ state.ship("sprite").source = "data/level_4.png"
+ t1 = flayer\mark_square(11,8,"liquid fuel thruster")
+ t2 = flayer\mark_square(11,7,"liquid fuel thruster")
+ p1 = flayer\mark_square(7,8,"liquid fuel tank")
+ flayer\mark_square(10,8,"fuel pipe")
+
+ t3 = elayer\mark_square(9,5,"ion thruster")
+ t4 = elayer\mark_square(9,10,"ion thruster")
+ p2 = elayer\mark_square(7,7,"battery")
+ elayer\mark_square(7,6,"electric wire")
+ elayer\mark_square(7,8,"electric wire")
+ elayer\mark_square(7,9,"electric wire")
+ elayer\mark_square(8,10,"electric wire")
+ elayer\mark_square(7,5,"electric wire")
+ elayer\mark_square(8,5,"electric wire")
+
+ elayer.node.hidden = true
+ state.selected_layer = flayer
+ state.update = () ->
+ flat_tiles = flayer\flat_tiles!
+ flat_tiles2 = elayer\flat_tiles!
+ path1 = graph.path(t1,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path2 = graph.path(t2,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path3 = graph.path(t3,p2,flat_tiles2,true,flayer.tiles_adjacent)
+ path4 = graph.path(t4,p2,flat_tiles2,true,flayer.tiles_adjacent)
+ if path1 and path2 and path3 and path4
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+
+ ui.reload_ui_layers!
+
+mod
diff --git a/src/level5.moon b/src/level5.moon
new file mode 100644
index 0000000..9fbd7cd
--- /dev/null
+++ b/src/level5.moon
@@ -0,0 +1,52 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+import Layer from layer
+ui = require "ui"
+
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 5
+ --ret = am.group!
+ state.move_out_done = false
+ state.clear_layers!
+ flayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ elayer = Layer("electric","electric wire",10,"data/layer_electric.png")
+ state.add_layer(flayer)
+ state.add_layer(elayer)
+ state.money = 90
+ state.ship("position").x = 800
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ state.ship("sprite").source = "data/level_5.png"
+ t1 = flayer\mark_square(11,8,"liquid fuel thruster")
+ t2 = flayer\mark_square(11,7,"liquid fuel thruster")
+ p1 = flayer\mark_square(7,8,"liquid fuel tank")
+ flayer\mark_square(10,8,"fuel pipe")
+
+ t3 = elayer\mark_square(9,5,"ion thruster")
+ t4 = elayer\mark_square(9,10,"ion thruster")
+ p2 = elayer\mark_square(7,7,"battery")
+ elayer\mark_square(7,6,"electric wire")
+ elayer\mark_square(7,8,"electric wire")
+ elayer\mark_square(7,9,"electric wire")
+ elayer\mark_square(8,10,"electric wire")
+ elayer\mark_square(7,5,"electric wire")
+ elayer\mark_square(8,5,"electric wire")
+
+ elayer.node.hidden = true
+ state.selected_layer = flayer
+ state.update = () ->
+ flat_tiles = flayer\flat_tiles!
+ flat_tiles2 = elayer\flat_tiles!
+ path1 = graph.path(t1,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path2 = graph.path(t2,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path3 = graph.path(t3,p2,flat_tiles2,true,flayer.tiles_adjacent)
+ path4 = graph.path(t4,p2,flat_tiles2,true,flayer.tiles_adjacent)
+ if path1 and path2 and path3 and path4
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+
+ ui.reload_ui_layers!
+
+mod
diff --git a/src/level6.moon b/src/level6.moon
new file mode 100644
index 0000000..f01bb0b
--- /dev/null
+++ b/src/level6.moon
@@ -0,0 +1,56 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+import Layer from layer
+ui = require "ui"
+
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 6
+ --ret = am.group!
+ state.move_out_done = false
+ state.clear_layers!
+ flayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ elayer = Layer("electric","electric wire",10,"data/layer_electric.png")
+ state.add_layer(flayer)
+ state.add_layer(elayer)
+ state.money = 90 + (50*5)
+ state.ship("position").x = 800
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ state.ship("sprite").source = "data/level_6.png"
+ t1 = flayer\mark_square(15,4,"liquid fuel thruster")
+ flayer\mark_square(14,4,"fuel pipe")
+ t2 = flayer\mark_square(15,6,"liquid fuel thruster")
+ flayer\mark_square(14,6,"fuel pipe")
+ t3 = flayer\mark_square(15,9,"liquid fuel thruster")
+ flayer\mark_square(14,9,"fuel pipe")
+ t4 = flayer\mark_square(15,11,"liquid fuel thruster")
+ flayer\mark_square(14,11,"fuel pipe")
+ p1 = flayer\mark_square(7,8,"liquid fuel tank")
+ for i = 4,11 do
+ flayer\mark_square(13,i,"fuel pipe")
+
+ t5 = elayer\mark_square(11,6,"ion thruster")
+ t6 = elayer\mark_square(11,9,"ion thruster")
+ p2 = elayer\mark_square(3,7,"battery")
+
+ elayer.node.hidden = true
+ state.selected_layer = flayer
+ state.update = () ->
+ flat_tiles = flayer\flat_tiles!
+ flat_tiles2 = elayer\flat_tiles!
+ path1 = graph.path(t1,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path2 = graph.path(t2,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path3 = graph.path(t3,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path4 = graph.path(t4,p1,flat_tiles,true,flayer.tiles_adjacent)
+
+ path5 = graph.path(t5,p2,flat_tiles2,true,flayer.tiles_adjacent)
+ path6 = graph.path(t6,p2,flat_tiles2,true,flayer.tiles_adjacent)
+ if path1 and path2 and path3 and path4 and path5 and path6
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+
+ ui.reload_ui_layers!
+
+mod
diff --git a/src/level7.moon b/src/level7.moon
new file mode 100644
index 0000000..14a3dc3
--- /dev/null
+++ b/src/level7.moon
@@ -0,0 +1,56 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+import Layer from layer
+ui = require "ui"
+
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 7
+ --ret = am.group!
+ state.move_out_done = false
+ state.clear_layers!
+ flayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ elayer = Layer("electric","electric wire",10,"data/layer_electric.png")
+ state.add_layer(flayer)
+ state.add_layer(elayer)
+ state.money = 190
+ state.ship("position").x = 800
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ state.ship("sprite").source = "data/level_7.png"
+ t1 = flayer\mark_square(15,4,"liquid fuel thruster")
+ flayer\mark_square(14,4,"fuel pipe")
+ t2 = flayer\mark_square(15,6,"liquid fuel thruster")
+ flayer\mark_square(14,6,"fuel pipe")
+ t3 = flayer\mark_square(15,9,"liquid fuel thruster")
+ flayer\mark_square(14,9,"fuel pipe")
+ t4 = flayer\mark_square(15,11,"liquid fuel thruster")
+ flayer\mark_square(14,11,"fuel pipe")
+ p1 = flayer\mark_square(7,8,"liquid fuel tank")
+ for i = 4,11 do
+ flayer\mark_square(13,i,"fuel pipe")
+
+ t5 = elayer\mark_square(11,6,"ion thruster")
+ t6 = elayer\mark_square(11,9,"ion thruster")
+ p2 = elayer\mark_square(3,7,"battery")
+
+ elayer.node.hidden = true
+ state.selected_layer = flayer
+ state.update = () ->
+ flat_tiles = flayer\flat_tiles!
+ flat_tiles2 = elayer\flat_tiles!
+ path1 = graph.path(t1,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path2 = graph.path(t2,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path3 = graph.path(t3,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path4 = graph.path(t4,p1,flat_tiles,true,flayer.tiles_adjacent)
+
+ path5 = graph.path(t5,p2,flat_tiles2,true,flayer.tiles_adjacent)
+ path6 = graph.path(t6,p2,flat_tiles2,true,flayer.tiles_adjacent)
+ if path1 and path2 and path3 and path4 and path5 and path6
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+
+ ui.reload_ui_layers!
+
+mod
diff --git a/src/level8.moon b/src/level8.moon
new file mode 100644
index 0000000..0a9ce96
--- /dev/null
+++ b/src/level8.moon
@@ -0,0 +1,56 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+import Layer from layer
+ui = require "ui"
+
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 8
+ --ret = am.group!
+ state.move_out_done = false
+ state.clear_layers!
+ flayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ elayer = Layer("electric","electric wire",10,"data/layer_electric.png")
+ state.add_layer(flayer)
+ state.add_layer(elayer)
+ state.money = 40
+ state.ship("position").x = 800
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ state.ship("sprite").source = "data/level_8.png"
+ t1 = flayer\mark_square(15,4,"liquid fuel thruster")
+ flayer\mark_square(14,4,"fuel pipe")
+ t2 = flayer\mark_square(15,6,"liquid fuel thruster")
+ flayer\mark_square(14,6,"fuel pipe")
+ t3 = flayer\mark_square(15,9,"liquid fuel thruster")
+ flayer\mark_square(14,9,"fuel pipe")
+ t4 = flayer\mark_square(15,11,"liquid fuel thruster")
+ flayer\mark_square(14,11,"fuel pipe")
+ p1 = flayer\mark_square(7,8,"liquid fuel tank")
+ for i = 4,11 do
+ flayer\mark_square(13,i,"fuel pipe")
+
+ t5 = elayer\mark_square(11,6,"ion thruster")
+ t6 = elayer\mark_square(11,9,"ion thruster")
+ p2 = elayer\mark_square(3,7,"battery")
+
+ elayer.node.hidden = true
+ state.selected_layer = flayer
+ state.update = () ->
+ flat_tiles = flayer\flat_tiles!
+ flat_tiles2 = elayer\flat_tiles!
+ path1 = graph.path(t1,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path2 = graph.path(t2,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path3 = graph.path(t3,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path4 = graph.path(t4,p1,flat_tiles,true,flayer.tiles_adjacent)
+
+ path5 = graph.path(t5,p2,flat_tiles2,true,flayer.tiles_adjacent)
+ path6 = graph.path(t6,p2,flat_tiles2,true,flayer.tiles_adjacent)
+ if path1 and path2 and path3 and path4 and path5 and path6
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+
+ ui.reload_ui_layers!
+
+mod
diff --git a/src/level9.moon b/src/level9.moon
new file mode 100644
index 0000000..aab46b1
--- /dev/null
+++ b/src/level9.moon
@@ -0,0 +1,56 @@
+layer = require "layers"
+game = require "game"
+state = require "global"
+graph = require "graph"
+import Layer from layer
+ui = require "ui"
+
+mod = ...
+
+mod.setup_level = () ->
+ state.current_level = 9
+ --ret = am.group!
+ state.move_out_done = false
+ state.clear_layers!
+ flayer = Layer("fuel","fuel pipe",50,"data/layer_fuel.png")
+ elayer = Layer("electric","electric wire",10,"data/layer_electric.png")
+ state.add_layer(flayer)
+ state.add_layer(elayer)
+ state.money = 840
+ state.ship("position").x = 800
+ state.ship\action(coroutine.create(game.ship_move_in_co))
+ state.ship("sprite").source = "data/level_9.png"
+ t1 = flayer\mark_square(21,5,"liquid fuel thruster")
+ t2 = elayer\mark_square(21,6,"ion thruster")
+ t3 = flayer\mark_square(21,7,"liquid fuel thruster")
+ t4 = flayer\mark_square(21,8,"liquid fuel thruster")
+ t5 = elayer\mark_square(21,9,"ion thruster")
+ t6 = flayer\mark_square(21,10,"liquid fuel thruster")
+
+ t7 = flayer\mark_square(13,8,"generator")
+ t8 = elayer\mark_square(13,8,"generator")
+
+ p1 = flayer\mark_square(7,7,"liquid fuel tank")
+
+ elayer.node.hidden = true
+ state.selected_layer = flayer
+ state.update = () ->
+ flat_tiles = flayer\flat_tiles!
+ flat_tiles2 = elayer\flat_tiles!
+
+ path1 = graph.path(t1,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path3 = graph.path(t3,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path4 = graph.path(t4,p1,flat_tiles,true,flayer.tiles_adjacent)
+ path6 = graph.path(t6,p1,flat_tiles,true,flayer.tiles_adjacent)
+
+ path5 = graph.path(t5,t8,flat_tiles2,true,flayer.tiles_adjacent)
+ path2 = graph.path(t2,t8,flat_tiles2,true,flayer.tiles_adjacent)
+
+ path7 = graph.path(t7,p1,flat_tiles,true,flayer.tiles_adjacent)
+
+ if path1 and path2 and path3 and path4 and path5 and path6 and path7
+ state.ship\action(coroutine.create(game.ship_move_out_co))
+
+ ui.reload_ui_layers!
+
+mod
diff --git a/src/main.moon b/src/main.moon
new file mode 100644
index 0000000..b90c819
--- /dev/null
+++ b/src/main.moon
@@ -0,0 +1,36 @@
+--Theme: repair
+--Game: drydock - repair space ships (?)
+require "ext"
+print("Hello, world!")
+ss = require "startscreen"
+game = require "game"
+state = require "global"
+level_1 = require "level1"
+complete = require "complete"
+mod = ...
+
+state.win = am.window {
+ title: "ggj20",
+ width: state.screen_width,
+ height: state.screen_height,
+ clear_color: vec4(0, 0, 0, 1)
+}
+
+
+r1 = ss.gen_scene!
+--r1\append(complete.starfield!)
+state.win.scene = r1
+r1\action(coroutine.create(() ->
+ while true
+ if state.win\key_down("space")
+ state.win.scene = am.group! ^ {game.gen_scene!, level_1.setup_level!}
+ coroutine.yield!
+))
+
+
+
+-- This is a comment
+-- to make sure that errors
+-- are rewritten correctly
+
+--error("success!")
diff --git a/src/manager.moon b/src/manager.moon
new file mode 100644
index 0000000..f6d2b3f
--- /dev/null
+++ b/src/manager.moon
@@ -0,0 +1,9 @@
+-- manage overlay text
+
+mod = ...
+
+mod.talk = (text) ->
+ --pass
+
+
+mod
diff --git a/src/startscreen.moon b/src/startscreen.moon
new file mode 100644
index 0000000..9c92758
--- /dev/null
+++ b/src/startscreen.moon
@@ -0,0 +1,12 @@
+--start screen
+
+mod = ...
+
+mod.gen_scene = () ->
+ node = am.group!
+ background = am.translate(0,0) ^ am.scale(1) ^ am.sprite("data/ph_start_screen.png")
+ text = am.translate(0,-100) ^ am.text("Press space to start")
+ node ^ {background, text}
+ node
+
+
diff --git a/src/ui.moon b/src/ui.moon
new file mode 100644
index 0000000..4adcde0
--- /dev/null
+++ b/src/ui.moon
@@ -0,0 +1,70 @@
+--UI things
+state = require "global"
+disp = require "dispatch"
+mod = ...
+
+money_text
+credits_ui
+layers = am.group!
+mod.managerstuff
+mod.manager_text
+mod.manager_talking = true
+mod.make_ui = () ->
+ to = disp.normal_to_window(vec2(100,25))
+ money_bg = am.translate(to) ^ am.scale(1) ^ am.rotate(0) ^ am.sprite("data/money_background.png")
+ money_text = am.translate(to) ^ am.scale(1) ^ am.rotate(0) ^ am.text("")\tag "sprite"
+ mod.managerstuff = am.group!
+ manager_portrait = am.translate(-512 + 128,-128) ^ am.scale(1) ^ am.rotate(0) ^ am.sprite("data/manage_portrait.png")
+ manager_background = am.translate(0,-128) ^ am.scale(1) ^ am.rotate(0) ^ am.sprite("data/manage_chatbox.png")
+ mod.manager_text = am.translate(-256 + 32,-256 + 90) ^ am.scale(1) ^ am.rotate(0) ^ am.text("This is some text",vec4(1,1,1,1),"left","top")\tag("text")
+ print("mod.manager_text is:",mod.manager_text)
+ continue_text = am.translate(-256 + 32,-256 + 32) ^ am.scale(1) ^ am.rotate(0) ^ am.text("Press space to continue...",vec4(0,0,0,1),"left","top")
+ mod.managerstuff\append(manager_portrait)
+ mod.managerstuff\append(manager_background)
+ mod.managerstuff\append(mod.manager_text)
+ mod.managerstuff\append(continue_text)
+ mod.managerstuff.hidden = true
+ money_text\action(coroutine.create(() ->
+ while true
+ money_text("sprite").text = string.format("%d credits", state.money)
+ coroutine.yield!
+ ))
+ ret = am.group! ^ {money_bg, money_text, layers, mod.managerstuff}
+ credits_ui = ret
+ ret
+
+mod.reload_ui_layers = () ->
+ layer_sprites = {}
+ for i,layer in pairs state.layer_tbl
+ if state.current_level < 4 then
+ layer.hidden = true -- hide layer selection until lvl 5
+ else
+ layer.hidden = false
+ selected_layer = am.translate(state.win.right-32,128 - (64*i))\tag("position") ^ am.rotate(0) ^ am.sprite(layer.icon)
+ selected_layer\append(am.sprite("data/selected_layer_outline.png")\tag("outline"))
+ selected_layer("outline").color = vec4(0.4,0.4,0.4,1)
+ layers\append(selected_layer)
+ if state.selected_layer == layer
+ selected_layer("outline").color = vec4(1,1,1,1)
+
+
+
+mod.hide_ui = () ->
+ credits_ui.hidden = true
+
+mod.hide_ui = () ->
+ credits_ui.hidden = false
+
+mod.manager_say = (text) ->
+ mod.managerstuff.hidden = false
+ print("Setting text:",text)
+ mod.manager_text("text").text = text
+ mod.manager_talking = true
+ mod.managerstuff\action(coroutine.create(() ->
+ while not state.win\key_pressed("space")
+ coroutine.yield!
+ mod.managerstuff.hidden = true
+ mod.manager_talking = false
+ ))
+ print("Completed doing manager say stuff")
+mod