From d080fcd3d978a3510855f3b17d50664f47c27627 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Sun, 26 Mar 2023 19:29:02 +0200 Subject: [PATCH 01/23] Separate system resources and example assets --- .../resources/{ => assets}/cache/hit_box_cache.json | 0 .../{ => assets}/fonts/ttf/Kenney_Blocks.ttf | Bin .../{ => assets}/fonts/ttf/Kenney_Future.ttf | Bin .../{ => assets}/fonts/ttf/Kenney_Future_Narrow.ttf | Bin .../{ => assets}/fonts/ttf/Kenney_High.ttf | Bin .../{ => assets}/fonts/ttf/Kenney_High_Square.ttf | Bin .../{ => assets}/fonts/ttf/Kenney_Mini.ttf | Bin .../{ => assets}/fonts/ttf/Kenney_Mini_Square.ttf | Bin .../{ => assets}/fonts/ttf/Kenney_Pixel.ttf | Bin .../{ => assets}/fonts/ttf/Kenney_Pixel_Square.ttf | Bin .../{ => assets}/fonts/ttf/Kenney_Rocket.ttf | Bin .../{ => assets}/fonts/ttf/Kenney_Rocket_Square.ttf | Bin .../resources/{ => assets}/images/Kenney Donate.url | 0 .../{ => assets}/images/Kenney Facebook.url | 0 .../{ => assets}/images/Kenney Twitter.url | 0 .../{ => assets}/images/Kenney Website.url | 0 arcade/resources/{ => assets}/images/License.txt | 0 .../{ => assets}/images/alien/alienBlue_climb1.png | Bin .../{ => assets}/images/alien/alienBlue_climb2.png | Bin .../{ => assets}/images/alien/alienBlue_front.png | Bin .../{ => assets}/images/alien/alienBlue_jump.png | Bin .../{ => assets}/images/alien/alienBlue_walk1.png | Bin .../{ => assets}/images/alien/alienBlue_walk2.png | Bin .../female_adventurer/femaleAdventurer_climb0.png | Bin .../female_adventurer/femaleAdventurer_climb1.png | Bin .../female_adventurer/femaleAdventurer_fall.png | Bin .../female_adventurer/femaleAdventurer_idle.png | Bin .../female_adventurer/femaleAdventurer_jump.png | Bin .../female_adventurer/femaleAdventurer_walk0.png | Bin .../female_adventurer/femaleAdventurer_walk1.png | Bin .../female_adventurer/femaleAdventurer_walk2.png | Bin .../female_adventurer/femaleAdventurer_walk3.png | Bin .../female_adventurer/femaleAdventurer_walk4.png | Bin .../female_adventurer/femaleAdventurer_walk5.png | Bin .../female_adventurer/femaleAdventurer_walk6.png | Bin .../female_adventurer/femaleAdventurer_walk7.png | Bin .../female_person/femalePerson_climb0.png | Bin .../female_person/femalePerson_climb1.png | Bin .../female_person/femalePerson_fall.png | Bin .../female_person/femalePerson_idle.png | Bin .../female_person/femalePerson_jump.png | Bin .../female_person/femalePerson_walk0.png | Bin .../female_person/femalePerson_walk1.png | Bin .../female_person/femalePerson_walk2.png | Bin .../female_person/femalePerson_walk3.png | Bin .../female_person/femalePerson_walk4.png | Bin .../female_person/femalePerson_walk5.png | Bin .../female_person/femalePerson_walk6.png | Bin .../female_person/femalePerson_walk7.png | Bin .../male_adventurer/maleAdventurer_climb0.png | Bin .../male_adventurer/maleAdventurer_climb1.png | Bin .../male_adventurer/maleAdventurer_fall.png | Bin .../male_adventurer/maleAdventurer_idle.png | Bin .../male_adventurer/maleAdventurer_jump.png | Bin .../male_adventurer/maleAdventurer_walk0.png | Bin .../male_adventurer/maleAdventurer_walk1.png | Bin .../male_adventurer/maleAdventurer_walk2.png | Bin .../male_adventurer/maleAdventurer_walk3.png | Bin .../male_adventurer/maleAdventurer_walk4.png | Bin .../male_adventurer/maleAdventurer_walk5.png | Bin .../male_adventurer/maleAdventurer_walk6.png | Bin .../male_adventurer/maleAdventurer_walk7.png | Bin .../male_person/malePerson_climb0.png | Bin .../male_person/malePerson_climb1.png | Bin .../male_person/malePerson_fall.png | Bin .../male_person/malePerson_idle.png | Bin .../male_person/malePerson_jump.png | Bin .../male_person/malePerson_walk0.png | Bin .../male_person/malePerson_walk1.png | Bin .../male_person/malePerson_walk2.png | Bin .../male_person/malePerson_walk3.png | Bin .../male_person/malePerson_walk4.png | Bin .../male_person/malePerson_walk5.png | Bin .../male_person/malePerson_walk6.png | Bin .../male_person/malePerson_walk7.png | Bin .../animated_characters/robot/robot_climb0.png | Bin .../animated_characters/robot/robot_climb1.png | Bin .../images/animated_characters/robot/robot_fall.png | Bin .../images/animated_characters/robot/robot_idle.png | Bin .../images/animated_characters/robot/robot_jump.png | Bin .../animated_characters/robot/robot_walk0.png | Bin .../animated_characters/robot/robot_walk1.png | Bin .../animated_characters/robot/robot_walk2.png | Bin .../animated_characters/robot/robot_walk3.png | Bin .../animated_characters/robot/robot_walk4.png | Bin .../animated_characters/robot/robot_walk5.png | Bin .../animated_characters/robot/robot_walk6.png | Bin .../animated_characters/robot/robot_walk7.png | Bin .../animated_characters/zombie/zombie_climb0.png | Bin .../animated_characters/zombie/zombie_climb1.png | Bin .../animated_characters/zombie/zombie_fall.png | Bin .../animated_characters/zombie/zombie_idle.png | Bin .../animated_characters/zombie/zombie_jump.png | Bin .../animated_characters/zombie/zombie_walk0.png | Bin .../animated_characters/zombie/zombie_walk1.png | Bin .../animated_characters/zombie/zombie_walk2.png | Bin .../animated_characters/zombie/zombie_walk3.png | Bin .../animated_characters/zombie/zombie_walk4.png | Bin .../animated_characters/zombie/zombie_walk5.png | Bin .../animated_characters/zombie/zombie_walk6.png | Bin .../animated_characters/zombie/zombie_walk7.png | Bin .../{ => assets}/images/backgrounds/abstract_1.jpg | Bin .../{ => assets}/images/backgrounds/abstract_2.jpg | Bin .../images/backgrounds/instructions_0.png | Bin .../images/backgrounds/instructions_1.png | Bin .../{ => assets}/images/backgrounds/stars.png | Bin .../{ => assets}/images/cards/cardBack_blue1.png | Bin .../{ => assets}/images/cards/cardBack_blue2.png | Bin .../{ => assets}/images/cards/cardBack_blue3.png | Bin .../{ => assets}/images/cards/cardBack_blue4.png | Bin .../{ => assets}/images/cards/cardBack_blue5.png | Bin .../{ => assets}/images/cards/cardBack_green1.png | Bin .../{ => assets}/images/cards/cardBack_green2.png | Bin .../{ => assets}/images/cards/cardBack_green3.png | Bin .../{ => assets}/images/cards/cardBack_green4.png | Bin .../{ => assets}/images/cards/cardBack_green5.png | Bin .../{ => assets}/images/cards/cardBack_red1.png | Bin .../{ => assets}/images/cards/cardBack_red2.png | Bin .../{ => assets}/images/cards/cardBack_red3.png | Bin .../{ => assets}/images/cards/cardBack_red4.png | Bin .../{ => assets}/images/cards/cardBack_red5.png | Bin .../{ => assets}/images/cards/cardClubs10.png | Bin .../{ => assets}/images/cards/cardClubs2.png | Bin .../{ => assets}/images/cards/cardClubs3.png | Bin .../{ => assets}/images/cards/cardClubs4.png | Bin .../{ => assets}/images/cards/cardClubs5.png | Bin .../{ => assets}/images/cards/cardClubs6.png | Bin .../{ => assets}/images/cards/cardClubs7.png | Bin .../{ => assets}/images/cards/cardClubs8.png | Bin .../{ => assets}/images/cards/cardClubs9.png | Bin .../{ => assets}/images/cards/cardClubsA.png | Bin .../{ => assets}/images/cards/cardClubsJ.png | Bin .../{ => assets}/images/cards/cardClubsK.png | Bin .../{ => assets}/images/cards/cardClubsQ.png | Bin .../{ => assets}/images/cards/cardDiamonds10.png | Bin .../{ => assets}/images/cards/cardDiamonds2.png | Bin .../{ => assets}/images/cards/cardDiamonds3.png | Bin .../{ => assets}/images/cards/cardDiamonds4.png | Bin .../{ => assets}/images/cards/cardDiamonds5.png | Bin .../{ => assets}/images/cards/cardDiamonds6.png | Bin .../{ => assets}/images/cards/cardDiamonds7.png | Bin .../{ => assets}/images/cards/cardDiamonds8.png | Bin .../{ => assets}/images/cards/cardDiamonds9.png | Bin .../{ => assets}/images/cards/cardDiamondsA.png | Bin .../{ => assets}/images/cards/cardDiamondsJ.png | Bin .../{ => assets}/images/cards/cardDiamondsK.png | Bin .../{ => assets}/images/cards/cardDiamondsQ.png | Bin .../{ => assets}/images/cards/cardHearts10.png | Bin .../{ => assets}/images/cards/cardHearts2.png | Bin .../{ => assets}/images/cards/cardHearts3.png | Bin .../{ => assets}/images/cards/cardHearts4.png | Bin .../{ => assets}/images/cards/cardHearts5.png | Bin .../{ => assets}/images/cards/cardHearts6.png | Bin .../{ => assets}/images/cards/cardHearts7.png | Bin .../{ => assets}/images/cards/cardHearts8.png | Bin .../{ => assets}/images/cards/cardHearts9.png | Bin .../{ => assets}/images/cards/cardHeartsA.png | Bin .../{ => assets}/images/cards/cardHeartsJ.png | Bin .../{ => assets}/images/cards/cardHeartsK.png | Bin .../{ => assets}/images/cards/cardHeartsQ.png | Bin .../{ => assets}/images/cards/cardJoker.png | Bin .../{ => assets}/images/cards/cardSpades10.png | Bin .../{ => assets}/images/cards/cardSpades2.png | Bin .../{ => assets}/images/cards/cardSpades3.png | Bin .../{ => assets}/images/cards/cardSpades4.png | Bin .../{ => assets}/images/cards/cardSpades5.png | Bin .../{ => assets}/images/cards/cardSpades6.png | Bin .../{ => assets}/images/cards/cardSpades7.png | Bin .../{ => assets}/images/cards/cardSpades8.png | Bin .../{ => assets}/images/cards/cardSpades9.png | Bin .../{ => assets}/images/cards/cardSpadesA.png | Bin .../{ => assets}/images/cards/cardSpadesJ.png | Bin .../{ => assets}/images/cards/cardSpadesK.png | Bin .../{ => assets}/images/cards/cardSpadesQ.png | Bin .../images/cybercity_background/back-buildings.png | Bin .../images/cybercity_background/far-buildings.png | Bin .../images/cybercity_background/foreground.png | Bin .../images/cybercity_background/public-license.txt | 0 .../resources/{ => assets}/images/enemies/bee.png | Bin .../{ => assets}/images/enemies/fishGreen.png | Bin .../{ => assets}/images/enemies/fishPink.png | Bin .../resources/{ => assets}/images/enemies/fly.png | Bin .../resources/{ => assets}/images/enemies/frog.png | Bin .../{ => assets}/images/enemies/frog_move.png | Bin .../{ => assets}/images/enemies/ladybug.png | Bin .../resources/{ => assets}/images/enemies/mouse.png | Bin .../resources/{ => assets}/images/enemies/saw.png | Bin .../{ => assets}/images/enemies/sawHalf.png | Bin .../{ => assets}/images/enemies/slimeBlock.png | Bin .../{ => assets}/images/enemies/slimeBlue.png | Bin .../{ => assets}/images/enemies/slimeBlue_move.png | Bin .../{ => assets}/images/enemies/slimeGreen.png | Bin .../{ => assets}/images/enemies/slimePurple.png | Bin .../{ => assets}/images/enemies/wormGreen.png | Bin .../{ => assets}/images/enemies/wormGreen_dead.png | Bin .../{ => assets}/images/enemies/wormGreen_move.png | Bin .../{ => assets}/images/enemies/wormPink.png | Bin .../{ => assets}/images/items/coinBronze.png | Bin .../{ => assets}/images/items/coinGold.png | Bin .../{ => assets}/images/items/coinGold_ll.png | Bin .../{ => assets}/images/items/coinGold_lr.png | Bin .../{ => assets}/images/items/coinGold_ul.png | Bin .../{ => assets}/images/items/coinGold_ur.png | Bin .../{ => assets}/images/items/coinSilver.png | Bin .../{ => assets}/images/items/coinSilver_test.png | Bin .../{ => assets}/images/items/flagGreen1.png | Bin .../{ => assets}/images/items/flagGreen2.png | Bin .../{ => assets}/images/items/flagGreen_down.png | Bin .../{ => assets}/images/items/flagRed1.png | Bin .../{ => assets}/images/items/flagRed2.png | Bin .../{ => assets}/images/items/flagRed_down.png | Bin .../{ => assets}/images/items/flagYellow1.png | Bin .../{ => assets}/images/items/flagYellow2.png | Bin .../{ => assets}/images/items/flagYellow_down.png | Bin .../resources/{ => assets}/images/items/gemBlue.png | Bin .../{ => assets}/images/items/gemGreen.png | Bin .../resources/{ => assets}/images/items/gemRed.png | Bin .../{ => assets}/images/items/gemYellow.png | Bin .../resources/{ => assets}/images/items/gold_1.png | Bin .../resources/{ => assets}/images/items/gold_2.png | Bin .../resources/{ => assets}/images/items/gold_3.png | Bin .../resources/{ => assets}/images/items/gold_4.png | Bin .../resources/{ => assets}/images/items/keyBlue.png | Bin .../{ => assets}/images/items/keyGreen.png | Bin .../resources/{ => assets}/images/items/keyRed.png | Bin .../{ => assets}/images/items/keyYellow.png | Bin .../{ => assets}/images/items/ladderMid.png | Bin .../{ => assets}/images/items/ladderTop.png | Bin arcade/resources/{ => assets}/images/items/star.png | Bin .../images/miami_synth_parallax/car/car-idle.png | Bin .../miami_synth_parallax/car/car-running0.png | Bin .../miami_synth_parallax/car/car-running1.png | Bin .../miami_synth_parallax/car/car-running2.png | Bin .../miami_synth_parallax/car/car-running3.png | Bin .../images/miami_synth_parallax/layers/back.png | Bin .../miami_synth_parallax/layers/buildings.png | Bin .../images/miami_synth_parallax/layers/highway.png | Bin .../images/miami_synth_parallax/layers/palms.png | Bin .../images/miami_synth_parallax/layers/sun.png | Bin .../images/miami_synth_parallax/public-license.txt | 0 .../{ => assets}/images/pinball/bumper.png | Bin .../{ => assets}/images/pinball/pool_cue_ball.png | Bin arcade/resources/{ => assets}/images/readme.txt | 0 .../images/space_shooter/laserBlue01.png | Bin .../images/space_shooter/laserRed01.png | Bin .../images/space_shooter/meteorGrey_big1.png | Bin .../images/space_shooter/meteorGrey_big2.png | Bin .../images/space_shooter/meteorGrey_big3.png | Bin .../images/space_shooter/meteorGrey_big4.png | Bin .../images/space_shooter/meteorGrey_med1.png | Bin .../images/space_shooter/meteorGrey_med2.png | Bin .../images/space_shooter/meteorGrey_small1.png | Bin .../images/space_shooter/meteorGrey_small2.png | Bin .../images/space_shooter/meteorGrey_tiny1.png | Bin .../images/space_shooter/meteorGrey_tiny2.png | Bin .../images/space_shooter/playerLife1_blue.png | Bin .../images/space_shooter/playerLife1_green.png | Bin .../images/space_shooter/playerLife1_orange.png | Bin .../images/space_shooter/playerShip1_blue.png | Bin .../images/space_shooter/playerShip1_green.png | Bin .../images/space_shooter/playerShip1_orange.png | Bin .../images/space_shooter/playerShip2_orange.png | Bin .../images/space_shooter/playerShip3_orange.png | Bin .../images/spritesheets/codepage_437.png | Bin .../{ => assets}/images/spritesheets/explosion.png | Bin .../images/spritesheets/number_sheet.png | Bin .../{ => assets}/images/spritesheets/tiles.png | Bin .../{ => assets}/images/test_textures/anim.gif | Bin .../images/test_textures/normal_mapping/diffuse.jpg | Bin .../images/test_textures/normal_mapping/normal.jpg | Bin .../images/test_textures/test_texture.png | Bin .../{ => assets}/images/test_textures/xy_square.png | Bin arcade/resources/{ => assets}/images/tiles/bomb.png | Bin .../{ => assets}/images/tiles/boxCrate.png | Bin .../{ => assets}/images/tiles/boxCrate_double.png | Bin .../{ => assets}/images/tiles/boxCrate_single.png | Bin .../{ => assets}/images/tiles/brickBrown.png | Bin .../{ => assets}/images/tiles/brickGrey.png | Bin .../{ => assets}/images/tiles/brickTextureWhite.png | Bin .../resources/{ => assets}/images/tiles/bridgeA.png | Bin .../resources/{ => assets}/images/tiles/bridgeB.png | Bin arcade/resources/{ => assets}/images/tiles/bush.png | Bin .../resources/{ => assets}/images/tiles/cactus.png | Bin arcade/resources/{ => assets}/images/tiles/dirt.png | Bin .../{ => assets}/images/tiles/dirtCenter.png | Bin .../images/tiles/dirtCenter_rounded.png | Bin .../{ => assets}/images/tiles/dirtCliffAlt_left.png | Bin .../images/tiles/dirtCliffAlt_right.png | Bin .../{ => assets}/images/tiles/dirtCliff_left.png | Bin .../{ => assets}/images/tiles/dirtCliff_right.png | Bin .../{ => assets}/images/tiles/dirtCorner_left.png | Bin .../{ => assets}/images/tiles/dirtCorner_right.png | Bin .../{ => assets}/images/tiles/dirtHalf.png | Bin .../{ => assets}/images/tiles/dirtHalf_left.png | Bin .../{ => assets}/images/tiles/dirtHalf_mid.png | Bin .../{ => assets}/images/tiles/dirtHalf_right.png | Bin .../{ => assets}/images/tiles/dirtHill_left.png | Bin .../{ => assets}/images/tiles/dirtHill_right.png | Bin .../{ => assets}/images/tiles/dirtLeft.png | Bin .../resources/{ => assets}/images/tiles/dirtMid.png | Bin .../{ => assets}/images/tiles/dirtRight.png | Bin .../{ => assets}/images/tiles/doorClosed_mid.png | Bin .../{ => assets}/images/tiles/doorClosed_top.png | Bin .../resources/{ => assets}/images/tiles/grass.png | Bin .../{ => assets}/images/tiles/grassCenter.png | Bin .../{ => assets}/images/tiles/grassCenter_round.png | Bin .../images/tiles/grassCliffAlt_left.png | Bin .../images/tiles/grassCliffAlt_right.png | Bin .../{ => assets}/images/tiles/grassCliff_left.png | Bin .../{ => assets}/images/tiles/grassCliff_right.png | Bin .../{ => assets}/images/tiles/grassCorner_left.png | Bin .../{ => assets}/images/tiles/grassCorner_right.png | Bin .../{ => assets}/images/tiles/grassHalf.png | Bin .../{ => assets}/images/tiles/grassHalf_left.png | Bin .../{ => assets}/images/tiles/grassHalf_mid.png | Bin .../{ => assets}/images/tiles/grassHalf_right.png | Bin .../{ => assets}/images/tiles/grassHill_left.png | Bin .../{ => assets}/images/tiles/grassHill_right.png | Bin .../{ => assets}/images/tiles/grassLeft.png | Bin .../{ => assets}/images/tiles/grassMid.png | Bin .../{ => assets}/images/tiles/grassRight.png | Bin .../{ => assets}/images/tiles/grass_sprout.png | Bin .../{ => assets}/images/tiles/ladderMid.png | Bin .../{ => assets}/images/tiles/ladderTop.png | Bin arcade/resources/{ => assets}/images/tiles/lava.png | Bin .../{ => assets}/images/tiles/lavaTop_high.png | Bin .../{ => assets}/images/tiles/lavaTop_low.png | Bin .../{ => assets}/images/tiles/leverLeft.png | Bin .../{ => assets}/images/tiles/leverMid.png | Bin .../{ => assets}/images/tiles/leverRight.png | Bin .../resources/{ => assets}/images/tiles/lockRed.png | Bin .../{ => assets}/images/tiles/lockYellow.png | Bin .../{ => assets}/images/tiles/mushroomRed.png | Bin .../resources/{ => assets}/images/tiles/planet.png | Bin .../{ => assets}/images/tiles/planetCenter.png | Bin .../images/tiles/planetCenter_rounded.png | Bin .../images/tiles/planetCliffAlt_left.png | Bin .../images/tiles/planetCliffAlt_right.png | Bin .../{ => assets}/images/tiles/planetCliff_left.png | Bin .../{ => assets}/images/tiles/planetCliff_right.png | Bin .../{ => assets}/images/tiles/planetCorner_left.png | Bin .../images/tiles/planetCorner_right.png | Bin .../{ => assets}/images/tiles/planetHalf.png | Bin .../{ => assets}/images/tiles/planetHalf_left.png | Bin .../{ => assets}/images/tiles/planetHalf_mid.png | Bin .../{ => assets}/images/tiles/planetHalf_right.png | Bin .../{ => assets}/images/tiles/planetHill_left.png | Bin .../{ => assets}/images/tiles/planetHill_right.png | Bin .../{ => assets}/images/tiles/planetLeft.png | Bin .../{ => assets}/images/tiles/planetMid.png | Bin .../{ => assets}/images/tiles/planetRight.png | Bin .../{ => assets}/images/tiles/plantPurple.png | Bin arcade/resources/{ => assets}/images/tiles/rock.png | Bin arcade/resources/{ => assets}/images/tiles/sand.png | Bin .../{ => assets}/images/tiles/sandCenter.png | Bin .../images/tiles/sandCenter_rounded.png | Bin .../{ => assets}/images/tiles/sandCliffAlt_left.png | Bin .../images/tiles/sandCliffAlt_right.png | Bin .../{ => assets}/images/tiles/sandCliff_left.png | Bin .../{ => assets}/images/tiles/sandCliff_right.png | Bin .../{ => assets}/images/tiles/sandCorner_left.png | Bin .../{ => assets}/images/tiles/sandCorner_right.png | Bin .../{ => assets}/images/tiles/sandHalf.png | Bin .../{ => assets}/images/tiles/sandHalf_left.png | Bin .../{ => assets}/images/tiles/sandHalf_mid.png | Bin .../{ => assets}/images/tiles/sandHalf_right.png | Bin .../{ => assets}/images/tiles/sandHill_left.png | Bin .../{ => assets}/images/tiles/sandHill_right.png | Bin .../{ => assets}/images/tiles/sandLeft.png | Bin .../resources/{ => assets}/images/tiles/sandMid.png | Bin .../{ => assets}/images/tiles/sandRight.png | Bin .../{ => assets}/images/tiles/signExit.png | Bin .../{ => assets}/images/tiles/signLeft.png | Bin .../{ => assets}/images/tiles/signRight.png | Bin arcade/resources/{ => assets}/images/tiles/snow.png | Bin .../{ => assets}/images/tiles/snowCenter.png | Bin .../images/tiles/snowCenter_rounded.png | Bin .../{ => assets}/images/tiles/snowCliffAlt_left.png | Bin .../images/tiles/snowCliffAlt_right.png | Bin .../{ => assets}/images/tiles/snowCliff_left.png | Bin .../{ => assets}/images/tiles/snowCliff_right.png | Bin .../{ => assets}/images/tiles/snowCorner_left.png | Bin .../{ => assets}/images/tiles/snowCorner_right.png | Bin .../{ => assets}/images/tiles/snowHalf.png | Bin .../{ => assets}/images/tiles/snowHalf_left.png | Bin .../{ => assets}/images/tiles/snowHalf_mid.png | Bin .../{ => assets}/images/tiles/snowHalf_right.png | Bin .../{ => assets}/images/tiles/snowHill_left.png | Bin .../{ => assets}/images/tiles/snowHill_right.png | Bin .../{ => assets}/images/tiles/snowLeft.png | Bin .../resources/{ => assets}/images/tiles/snowMid.png | Bin .../{ => assets}/images/tiles/snowRight.png | Bin .../{ => assets}/images/tiles/snow_pile.png | Bin .../resources/{ => assets}/images/tiles/spikes.png | Bin .../resources/{ => assets}/images/tiles/stone.png | Bin .../{ => assets}/images/tiles/stoneCenter.png | Bin .../images/tiles/stoneCenter_rounded.png | Bin .../images/tiles/stoneCliffAlt_left.png | Bin .../images/tiles/stoneCliffAlt_right.png | Bin .../{ => assets}/images/tiles/stoneCliff_left.png | Bin .../{ => assets}/images/tiles/stoneCliff_right.png | Bin .../{ => assets}/images/tiles/stoneCorner_left.png | Bin .../{ => assets}/images/tiles/stoneCorner_right.png | Bin .../{ => assets}/images/tiles/stoneHalf.png | Bin .../{ => assets}/images/tiles/stoneHalf_left.png | Bin .../{ => assets}/images/tiles/stoneHalf_mid.png | Bin .../{ => assets}/images/tiles/stoneHalf_right.png | Bin .../{ => assets}/images/tiles/stoneHill_left.png | Bin .../{ => assets}/images/tiles/stoneHill_right.png | Bin .../{ => assets}/images/tiles/stoneLeft.png | Bin .../{ => assets}/images/tiles/stoneMid.png | Bin .../{ => assets}/images/tiles/stoneRight.png | Bin .../{ => assets}/images/tiles/switchGreen.png | Bin .../images/tiles/switchGreen_pressed.png | Bin .../{ => assets}/images/tiles/switchRed.png | Bin .../{ => assets}/images/tiles/switchRed_pressed.png | Bin .../resources/{ => assets}/images/tiles/torch1.png | Bin .../resources/{ => assets}/images/tiles/torch2.png | Bin .../{ => assets}/images/tiles/torchOff.png | Bin .../resources/{ => assets}/images/tiles/water.png | Bin .../{ => assets}/images/tiles/waterTop_high.png | Bin .../{ => assets}/images/tiles/waterTop_low.png | Bin .../images/topdown_tanks/tankBlue_barrel1.png | Bin .../topdown_tanks/tankBlue_barrel1_outline.png | Bin .../images/topdown_tanks/tankBlue_barrel2.png | Bin .../topdown_tanks/tankBlue_barrel2_outline.png | Bin .../images/topdown_tanks/tankBlue_barrel3.png | Bin .../topdown_tanks/tankBlue_barrel3_outline.png | Bin .../images/topdown_tanks/tankBody_bigRed.png | Bin .../topdown_tanks/tankBody_bigRed_outline.png | Bin .../images/topdown_tanks/tankBody_blue.png | Bin .../images/topdown_tanks/tankBody_blue_outline.png | Bin .../images/topdown_tanks/tankBody_dark.png | Bin .../images/topdown_tanks/tankBody_darkLarge.png | Bin .../topdown_tanks/tankBody_darkLarge_outline.png | Bin .../images/topdown_tanks/tankBody_dark_outline.png | Bin .../images/topdown_tanks/tankBody_green.png | Bin .../images/topdown_tanks/tankBody_green_outline.png | Bin .../images/topdown_tanks/tankBody_huge.png | Bin .../images/topdown_tanks/tankBody_huge_outline.png | Bin .../images/topdown_tanks/tankBody_red.png | Bin .../images/topdown_tanks/tankBody_red_outline.png | Bin .../images/topdown_tanks/tankBody_sand.png | Bin .../images/topdown_tanks/tankBody_sand_outline.png | Bin .../images/topdown_tanks/tankDark_barrel1.png | Bin .../topdown_tanks/tankDark_barrel1_outline.png | Bin .../images/topdown_tanks/tankDark_barrel2.png | Bin .../topdown_tanks/tankDark_barrel2_outline.png | Bin .../images/topdown_tanks/tankDark_barrel3.png | Bin .../topdown_tanks/tankDark_barrel3_outline.png | Bin .../images/topdown_tanks/tankGreen_barrel1.png | Bin .../topdown_tanks/tankGreen_barrel1_outline.png | Bin .../images/topdown_tanks/tankGreen_barrel2.png | Bin .../topdown_tanks/tankGreen_barrel2_outline.png | Bin .../images/topdown_tanks/tankGreen_barrel3.png | Bin .../topdown_tanks/tankGreen_barrel3_outline.png | Bin .../images/topdown_tanks/tankRed_barrel1.png | Bin .../topdown_tanks/tankRed_barrel1_outline.png | Bin .../images/topdown_tanks/tankRed_barrel2.png | Bin .../topdown_tanks/tankRed_barrel2_outline.png | Bin .../images/topdown_tanks/tankRed_barrel3.png | Bin .../topdown_tanks/tankRed_barrel3_outline.png | Bin .../images/topdown_tanks/tankSand_barrel1.png | Bin .../topdown_tanks/tankSand_barrel1_outline.png | Bin .../images/topdown_tanks/tankSand_barrel2.png | Bin .../topdown_tanks/tankSand_barrel2_outline.png | Bin .../images/topdown_tanks/tankSand_barrel3.png | Bin .../topdown_tanks/tankSand_barrel3_outline.png | Bin .../{ => assets}/images/topdown_tanks/tank_blue.png | Bin .../{ => assets}/images/topdown_tanks/tank_dark.png | Bin .../images/topdown_tanks/tank_green.png | Bin .../{ => assets}/images/topdown_tanks/tank_red.png | Bin .../{ => assets}/images/topdown_tanks/tank_sand.png | Bin .../images/topdown_tanks/tileGrass1.png | Bin .../images/topdown_tanks/tileGrass2.png | Bin .../images/topdown_tanks/tileGrass_roadCornerLL.png | Bin .../images/topdown_tanks/tileGrass_roadCornerLR.png | Bin .../images/topdown_tanks/tileGrass_roadCornerUL.png | Bin .../images/topdown_tanks/tileGrass_roadCornerUR.png | Bin .../images/topdown_tanks/tileGrass_roadCrossing.png | Bin .../topdown_tanks/tileGrass_roadCrossingRound.png | Bin .../images/topdown_tanks/tileGrass_roadEast.png | Bin .../images/topdown_tanks/tileGrass_roadNorth.png | Bin .../images/topdown_tanks/tileGrass_roadSplitE.png | Bin .../images/topdown_tanks/tileGrass_roadSplitN.png | Bin .../images/topdown_tanks/tileGrass_roadSplitS.png | Bin .../images/topdown_tanks/tileGrass_roadSplitW.png | Bin .../topdown_tanks/tileGrass_roadTransitionE.png | Bin .../tileGrass_roadTransitionE_dirt.png | Bin .../topdown_tanks/tileGrass_roadTransitionN.png | Bin .../tileGrass_roadTransitionN_dirt.png | Bin .../topdown_tanks/tileGrass_roadTransitionS.png | Bin .../tileGrass_roadTransitionS_dirt.png | Bin .../topdown_tanks/tileGrass_roadTransitionW.png | Bin .../tileGrass_roadTransitionW_dirt.png | Bin .../images/topdown_tanks/tileGrass_transitionE.png | Bin .../images/topdown_tanks/tileGrass_transitionN.png | Bin .../images/topdown_tanks/tileGrass_transitionS.png | Bin .../images/topdown_tanks/tileGrass_transitionW.png | Bin .../{ => assets}/images/topdown_tanks/tileSand1.png | Bin .../{ => assets}/images/topdown_tanks/tileSand2.png | Bin .../images/topdown_tanks/tileSand_roadCornerLL.png | Bin .../images/topdown_tanks/tileSand_roadCornerLR.png | Bin .../images/topdown_tanks/tileSand_roadCornerUL.png | Bin .../images/topdown_tanks/tileSand_roadCornerUR.png | Bin .../images/topdown_tanks/tileSand_roadCrossing.png | Bin .../topdown_tanks/tileSand_roadCrossingRound.png | Bin .../images/topdown_tanks/tileSand_roadEast.png | Bin .../images/topdown_tanks/tileSand_roadNorth.png | Bin .../images/topdown_tanks/tileSand_roadSplitE.png | Bin .../images/topdown_tanks/tileSand_roadSplitN.png | Bin .../images/topdown_tanks/tileSand_roadSplitS.png | Bin .../images/topdown_tanks/tileSand_roadSplitW.png | Bin .../images/topdown_tanks/tracksDouble.png | Bin .../images/topdown_tanks/tracksLarge.png | Bin .../images/topdown_tanks/tracksSmall.png | Bin .../images/topdown_tanks/treeBrown_large.png | Bin .../images/topdown_tanks/treeBrown_small.png | Bin .../images/topdown_tanks/treeGreen_large.png | Bin .../images/topdown_tanks/treeGreen_small.png | Bin arcade/resources/{ => assets}/music/1918.mp3 | Bin arcade/resources/{ => assets}/music/funkyrobot.mp3 | Bin arcade/resources/{ => assets}/music/readme.txt | 0 .../{ => assets}/onscreen_controls/flat_dark/a.png | Bin .../{ => assets}/onscreen_controls/flat_dark/b.png | Bin .../onscreen_controls/flat_dark/cancel.png | Bin .../onscreen_controls/flat_dark/checked.png | Bin .../onscreen_controls/flat_dark/close.png | Bin .../onscreen_controls/flat_dark/down.png | Bin .../onscreen_controls/flat_dark/expand.png | Bin .../onscreen_controls/flat_dark/flatDark20.png | Bin .../onscreen_controls/flat_dark/gear.png | Bin .../onscreen_controls/flat_dark/hamburger.png | Bin .../onscreen_controls/flat_dark/key_round.png | Bin .../onscreen_controls/flat_dark/key_square.png | Bin .../{ => assets}/onscreen_controls/flat_dark/l.png | Bin .../onscreen_controls/flat_dark/left.png | Bin .../onscreen_controls/flat_dark/music_off.png | Bin .../onscreen_controls/flat_dark/music_on.png | Bin .../onscreen_controls/flat_dark/pause.png | Bin .../onscreen_controls/flat_dark/pause_square.png | Bin .../onscreen_controls/flat_dark/play.png | Bin .../{ => assets}/onscreen_controls/flat_dark/r.png | Bin .../onscreen_controls/flat_dark/right.png | Bin .../onscreen_controls/flat_dark/save.png | Bin .../onscreen_controls/flat_dark/search.png | Bin .../onscreen_controls/flat_dark/select.png | Bin .../onscreen_controls/flat_dark/sound_off.png | Bin .../onscreen_controls/flat_dark/sound_on.png | Bin .../onscreen_controls/flat_dark/star.png | Bin .../onscreen_controls/flat_dark/star_square.png | Bin .../onscreen_controls/flat_dark/start.png | Bin .../onscreen_controls/flat_dark/unchecked.png | Bin .../{ => assets}/onscreen_controls/flat_dark/up.png | Bin .../onscreen_controls/flat_dark/wrench.png | Bin .../{ => assets}/onscreen_controls/flat_dark/x.png | Bin .../{ => assets}/onscreen_controls/flat_dark/y.png | Bin .../{ => assets}/onscreen_controls/flat_light/a.png | Bin .../{ => assets}/onscreen_controls/flat_light/b.png | Bin .../onscreen_controls/flat_light/back.png | Bin .../onscreen_controls/flat_light/cancel.png | Bin .../onscreen_controls/flat_light/checked.png | Bin .../onscreen_controls/flat_light/close.png | Bin .../onscreen_controls/flat_light/down.png | Bin .../onscreen_controls/flat_light/expand.png | Bin .../onscreen_controls/flat_light/gear.png | Bin .../onscreen_controls/flat_light/hamburger.png | Bin .../onscreen_controls/flat_light/key_round.png | Bin .../onscreen_controls/flat_light/key_square.png | Bin .../{ => assets}/onscreen_controls/flat_light/l.png | Bin .../onscreen_controls/flat_light/left.png | Bin .../onscreen_controls/flat_light/music_off.png | Bin .../onscreen_controls/flat_light/music_on.png | Bin .../onscreen_controls/flat_light/pause.png | Bin .../onscreen_controls/flat_light/pause_square.png | Bin .../onscreen_controls/flat_light/play.png | Bin .../{ => assets}/onscreen_controls/flat_light/r.png | Bin .../onscreen_controls/flat_light/right.png | Bin .../onscreen_controls/flat_light/save.png | Bin .../onscreen_controls/flat_light/search.png | Bin .../onscreen_controls/flat_light/select.png | Bin .../onscreen_controls/flat_light/sound_off.png | Bin .../onscreen_controls/flat_light/sound_on.png | Bin .../onscreen_controls/flat_light/star_round.png | Bin .../onscreen_controls/flat_light/star_square.png | Bin .../onscreen_controls/flat_light/start.png | Bin .../onscreen_controls/flat_light/unchecked.png | Bin .../onscreen_controls/flat_light/up.png | Bin .../onscreen_controls/flat_light/wrench.png | Bin .../{ => assets}/onscreen_controls/flat_light/x.png | Bin .../{ => assets}/onscreen_controls/flat_light/y.png | Bin .../onscreen_controls/shaded_dark/a.png | Bin .../onscreen_controls/shaded_dark/b.png | Bin .../onscreen_controls/shaded_dark/back.png | Bin .../onscreen_controls/shaded_dark/cancel.png | Bin .../onscreen_controls/shaded_dark/checked.png | Bin .../onscreen_controls/shaded_dark/close.png | Bin .../onscreen_controls/shaded_dark/down.png | Bin .../onscreen_controls/shaded_dark/expand.png | Bin .../onscreen_controls/shaded_dark/gear.png | Bin .../onscreen_controls/shaded_dark/hamburger.png | Bin .../onscreen_controls/shaded_dark/key_round.png | Bin .../onscreen_controls/shaded_dark/key_square.png | Bin .../onscreen_controls/shaded_dark/l.png | Bin .../onscreen_controls/shaded_dark/left.png | Bin .../onscreen_controls/shaded_dark/music_off.png | Bin .../onscreen_controls/shaded_dark/music_on.png | Bin .../onscreen_controls/shaded_dark/pause.png | Bin .../onscreen_controls/shaded_dark/pause_square.png | Bin .../onscreen_controls/shaded_dark/play.png | Bin .../onscreen_controls/shaded_dark/r.png | Bin .../onscreen_controls/shaded_dark/right.png | Bin .../onscreen_controls/shaded_dark/save.png | Bin .../onscreen_controls/shaded_dark/search.png | Bin .../onscreen_controls/shaded_dark/select.png | Bin .../onscreen_controls/shaded_dark/sound_off.png | Bin .../onscreen_controls/shaded_dark/sound_on.png | Bin .../onscreen_controls/shaded_dark/star_round.png | Bin .../onscreen_controls/shaded_dark/star_square.png | Bin .../onscreen_controls/shaded_dark/start.png | Bin .../onscreen_controls/shaded_dark/unchecked.png | Bin .../onscreen_controls/shaded_dark/up.png | Bin .../onscreen_controls/shaded_dark/wrench.png | Bin .../onscreen_controls/shaded_dark/x.png | Bin .../onscreen_controls/shaded_dark/y.png | Bin .../onscreen_controls/shaded_light/a.png | Bin .../onscreen_controls/shaded_light/b.png | Bin .../onscreen_controls/shaded_light/back.png | Bin .../onscreen_controls/shaded_light/cancel.png | Bin .../onscreen_controls/shaded_light/checked.png | Bin .../onscreen_controls/shaded_light/close.png | Bin .../onscreen_controls/shaded_light/down.png | Bin .../onscreen_controls/shaded_light/expand.png | Bin .../onscreen_controls/shaded_light/gear.png | Bin .../onscreen_controls/shaded_light/hamburger.png | Bin .../onscreen_controls/shaded_light/key.png | Bin .../onscreen_controls/shaded_light/key_round.png | Bin .../onscreen_controls/shaded_light/l.png | Bin .../onscreen_controls/shaded_light/left.png | Bin .../onscreen_controls/shaded_light/music_off.png | Bin .../onscreen_controls/shaded_light/music_on.png | Bin .../onscreen_controls/shaded_light/pause.png | Bin .../onscreen_controls/shaded_light/pause_square.png | Bin .../onscreen_controls/shaded_light/play.png | Bin .../onscreen_controls/shaded_light/r.png | Bin .../onscreen_controls/shaded_light/right.png | Bin .../onscreen_controls/shaded_light/save.png | Bin .../onscreen_controls/shaded_light/search.png | Bin .../onscreen_controls/shaded_light/select.png | Bin .../onscreen_controls/shaded_light/sound_off.png | Bin .../onscreen_controls/shaded_light/sound_on.png | Bin .../onscreen_controls/shaded_light/star_round.png | Bin .../onscreen_controls/shaded_light/star_square.png | Bin .../onscreen_controls/shaded_light/start.png | Bin .../onscreen_controls/shaded_light/unchecked.png | Bin .../onscreen_controls/shaded_light/up.png | Bin .../onscreen_controls/shaded_light/wrench.png | Bin .../onscreen_controls/shaded_light/x.png | Bin .../onscreen_controls/shaded_light/y.png | Bin .../resources/{ => assets}/sounds/Kenney Donate.url | 0 .../{ => assets}/sounds/Kenney Facebook.url | 0 .../{ => assets}/sounds/Kenney Twitter.url | 0 .../{ => assets}/sounds/Kenney Website.url | 0 arcade/resources/{ => assets}/sounds/License.txt | 0 arcade/resources/{ => assets}/sounds/coin1.wav | Bin arcade/resources/{ => assets}/sounds/coin2.wav | Bin arcade/resources/{ => assets}/sounds/coin3.wav | Bin arcade/resources/{ => assets}/sounds/coin4.wav | Bin arcade/resources/{ => assets}/sounds/coin5.wav | Bin arcade/resources/{ => assets}/sounds/error1.wav | Bin arcade/resources/{ => assets}/sounds/error2.wav | Bin arcade/resources/{ => assets}/sounds/error3.wav | Bin arcade/resources/{ => assets}/sounds/error4.wav | Bin arcade/resources/{ => assets}/sounds/error5.wav | Bin arcade/resources/{ => assets}/sounds/explosion1.wav | Bin arcade/resources/{ => assets}/sounds/explosion2.wav | Bin arcade/resources/{ => assets}/sounds/fall1.wav | Bin arcade/resources/{ => assets}/sounds/fall2.wav | Bin arcade/resources/{ => assets}/sounds/fall3.wav | Bin arcade/resources/{ => assets}/sounds/fall4.wav | Bin arcade/resources/{ => assets}/sounds/gameover1.wav | Bin arcade/resources/{ => assets}/sounds/gameover2.wav | Bin arcade/resources/{ => assets}/sounds/gameover3.wav | Bin arcade/resources/{ => assets}/sounds/gameover4.wav | Bin arcade/resources/{ => assets}/sounds/gameover5.wav | Bin arcade/resources/{ => assets}/sounds/hit1.wav | Bin arcade/resources/{ => assets}/sounds/hit2.wav | Bin arcade/resources/{ => assets}/sounds/hit3.wav | Bin arcade/resources/{ => assets}/sounds/hit4.wav | Bin arcade/resources/{ => assets}/sounds/hit5.wav | Bin arcade/resources/{ => assets}/sounds/hurt1.wav | Bin arcade/resources/{ => assets}/sounds/hurt2.wav | Bin arcade/resources/{ => assets}/sounds/hurt3.wav | Bin arcade/resources/{ => assets}/sounds/hurt4.wav | Bin arcade/resources/{ => assets}/sounds/hurt5.wav | Bin arcade/resources/{ => assets}/sounds/jump1.wav | Bin arcade/resources/{ => assets}/sounds/jump2.wav | Bin arcade/resources/{ => assets}/sounds/jump3.wav | Bin arcade/resources/{ => assets}/sounds/jump4.wav | Bin arcade/resources/{ => assets}/sounds/jump5.wav | Bin arcade/resources/{ => assets}/sounds/laser1.mp3 | Bin arcade/resources/{ => assets}/sounds/laser1.ogg | Bin arcade/resources/{ => assets}/sounds/laser1.wav | Bin arcade/resources/{ => assets}/sounds/laser2.wav | Bin arcade/resources/{ => assets}/sounds/laser3.wav | Bin arcade/resources/{ => assets}/sounds/laser4.wav | Bin arcade/resources/{ => assets}/sounds/laser5.wav | Bin arcade/resources/{ => assets}/sounds/lose1.wav | Bin arcade/resources/{ => assets}/sounds/lose2.wav | Bin arcade/resources/{ => assets}/sounds/lose3.wav | Bin arcade/resources/{ => assets}/sounds/lose4.wav | Bin arcade/resources/{ => assets}/sounds/lose5.wav | Bin arcade/resources/{ => assets}/sounds/phaseJump1.ogg | Bin arcade/resources/{ => assets}/sounds/phaseJump1.wav | Bin arcade/resources/{ => assets}/sounds/readme.txt | 0 arcade/resources/{ => assets}/sounds/rockHit2.ogg | Bin arcade/resources/{ => assets}/sounds/rockHit2.wav | Bin arcade/resources/{ => assets}/sounds/secret2.wav | Bin arcade/resources/{ => assets}/sounds/secret4.wav | Bin arcade/resources/{ => assets}/sounds/upgrade1.wav | Bin arcade/resources/{ => assets}/sounds/upgrade2.wav | Bin arcade/resources/{ => assets}/sounds/upgrade3.wav | Bin arcade/resources/{ => assets}/sounds/upgrade4.wav | Bin arcade/resources/{ => assets}/sounds/upgrade5.wav | Bin arcade/resources/{ => assets}/tiled_maps/dirt.json | 0 arcade/resources/{ => assets}/tiled_maps/grass.json | 0 arcade/resources/{ => assets}/tiled_maps/items.json | 0 .../resources/{ => assets}/tiled_maps/level_1.json | 0 .../resources/{ => assets}/tiled_maps/level_2.json | 0 arcade/resources/{ => assets}/tiled_maps/map.json | 0 .../{ => assets}/tiled_maps/map2_level_1.json | 0 .../{ => assets}/tiled_maps/map2_level_2.json | 0 .../{ => assets}/tiled_maps/map_with_ladders.json | 0 .../{ => assets}/tiled_maps/maps.tiled-project | 0 .../{ => assets}/tiled_maps/more_tiles.json | 0 .../{ => assets}/tiled_maps/pymunk_test_map.json | 0 .../{ => assets}/tiled_maps/spritesheet.json | 0 .../{ => assets}/tiled_maps/standard_tileset.json | 0 .../{ => assets}/tiled_maps/test_map_1.json | 0 .../{ => assets}/tiled_maps/test_map_2.json | 0 .../{ => assets}/tiled_maps/test_map_3.json | 0 .../{ => assets}/tiled_maps/test_map_5.json | 0 .../{ => assets}/tiled_maps/test_map_6.json | 0 .../{ => assets}/tiled_maps/test_map_7.json | 0 .../{ => assets}/tiled_maps/test_objects.json | 0 arcade/resources/{ => system}/gamecontrollerdb.txt | 0 .../gui_basic_assets/button_square_blue.png | Bin .../gui_basic_assets/button_square_blue_pressed.png | Bin .../{ => system}/gui_basic_assets/icons/larger.png | Bin .../{ => system}/gui_basic_assets/icons/smaller.png | Bin .../gui_basic_assets/items/shield_gold.png | Bin .../gui_basic_assets/items/sword_gold.png | Bin .../gui_basic_assets/red_button_hover.png | Bin .../gui_basic_assets/red_button_normal.png | Bin .../gui_basic_assets/red_button_press.png | Bin .../{ => system}/gui_basic_assets/slider_bar.png | Bin .../{ => system}/gui_basic_assets/slider_thumb.png | Bin .../gui_basic_assets/toggle/switch_green.png | Bin .../gui_basic_assets/toggle/switch_red.png | Bin .../gui_basic_assets/window/grey_panel.png | Bin arcade/resources/{ => system}/shaders/__init__.py | 0 .../{ => system}/shaders/atlas/blit_fs.glsl | 0 .../{ => system}/shaders/atlas/blit_vs.glsl | 0 .../{ => system}/shaders/atlas/resize_fs.glsl | 0 .../{ => system}/shaders/atlas/resize_gs.glsl | 0 .../{ => system}/shaders/atlas/resize_vs.glsl | 0 .../{ => system}/shaders/background_fs.glsl | 0 .../{ => system}/shaders/background_vs.glsl | 0 .../{ => system}/shaders/bloom/bloom_filter_a.glsl | 0 .../{ => system}/shaders/bloom/bloom_filter_b.glsl | 0 .../shaders/bloom/bloom_filter_image.glsl | 0 .../shaders/collision/col_trans_gs.glsl | 0 .../shaders/collision/col_trans_vs.glsl | 0 .../{ => system}/shaders/gui/nine_patch_fs.glsl | 0 .../{ => system}/shaders/gui/nine_patch_gs.glsl | 0 .../{ => system}/shaders/gui/nine_patch_vs.glsl | 0 .../{ => system}/shaders/gui/surface_fs.glsl | 0 .../{ => system}/shaders/gui/surface_gs.glsl | 0 .../{ => system}/shaders/gui/surface_vs.glsl | 0 .../resources/{ => system}/shaders/lib/random.glsl | 0 .../resources/{ => system}/shaders/lib/sprite.glsl | 0 .../{ => system}/shaders/lights/combine_fs.glsl | 0 .../{ => system}/shaders/lights/combine_vs.glsl | 0 .../shaders/lights/point_lights_fs.glsl | 0 .../shaders/lights/point_lights_geo.glsl | 0 .../shaders/lights/point_lights_vs.glsl | 0 .../shaders/postprocessing/gaussian_blur_x_fs.glsl | 0 .../shaders/postprocessing/gaussian_blur_y_fs.glsl | 0 .../shaders/postprocessing/gaussian_combine_fs.glsl | 0 .../shaders/postprocessing/glow_filter_fs.glsl | 0 .../shaders/postprocessing/glow_filter_vs.glsl | 0 .../{ => system}/shaders/shadertoy/base_fs.glsl | 0 .../{ => system}/shaders/shadertoy/base_vs.glsl | 0 .../shaders/shadertoy/crt_monitor_filter.glsl | 0 .../{ => system}/shaders/shape_element_list_fs.glsl | 0 .../{ => system}/shaders/shape_element_list_vs.glsl | 0 .../resources/{ => system}/shaders/shapes/README.md | 0 .../shapes/ellipse/filled_unbuffered_fs.glsl | 0 .../shapes/ellipse/filled_unbuffered_geo.glsl | 0 .../shapes/ellipse/filled_unbuffered_vs.glsl | 0 .../shapes/ellipse/outline_unbuffered_fs.glsl | 0 .../shapes/ellipse/outline_unbuffered_geo.glsl | 0 .../shapes/ellipse/outline_unbuffered_vs.glsl | 0 .../shaders/shapes/line/buffered_fs.glsl | 0 .../shaders/shapes/line/buffered_geo.glsl | 0 .../shaders/shapes/line/buffered_vs.glsl | 0 .../shapes/line/line_generic_with_colors_fs.glsl | 0 .../shapes/line/line_generic_with_colors_vs.glsl | 0 .../shaders/shapes/line/line_vertex_shader_fs.glsl | 0 .../shaders/shapes/line/line_vertex_shader_vs.glsl | 0 .../shaders/shapes/line/unbuffered_fs.glsl | 0 .../shaders/shapes/line/unbuffered_geo.glsl | 0 .../shaders/shapes/line/unbuffered_vs.glsl | 0 .../shapes/rectangle/filled_unbuffered_fs.glsl | 0 .../shapes/rectangle/filled_unbuffered_geo.glsl | 0 .../shapes/rectangle/filled_unbuffered_vs.glsl | 0 .../sprites/sprite_list_geometry_cull_geo.glsl | 0 .../shaders/sprites/sprite_list_geometry_fs.glsl | 0 .../sprites/sprite_list_geometry_no_cull_geo.glsl | 0 .../shaders/sprites/sprite_list_geometry_vs.glsl | 0 .../shaders/texture_default_projection_vs.glsl | 0 .../resources/{ => system}/shaders/texture_fs.glsl | 0 822 files changed, 0 insertions(+), 0 deletions(-) rename arcade/resources/{ => assets}/cache/hit_box_cache.json (100%) rename arcade/resources/{ => assets}/fonts/ttf/Kenney_Blocks.ttf (100%) rename arcade/resources/{ => assets}/fonts/ttf/Kenney_Future.ttf (100%) rename arcade/resources/{ => assets}/fonts/ttf/Kenney_Future_Narrow.ttf (100%) rename arcade/resources/{ => assets}/fonts/ttf/Kenney_High.ttf (100%) rename arcade/resources/{ => assets}/fonts/ttf/Kenney_High_Square.ttf (100%) rename arcade/resources/{ => assets}/fonts/ttf/Kenney_Mini.ttf (100%) rename arcade/resources/{ => assets}/fonts/ttf/Kenney_Mini_Square.ttf (100%) rename arcade/resources/{ => assets}/fonts/ttf/Kenney_Pixel.ttf (100%) rename arcade/resources/{ => assets}/fonts/ttf/Kenney_Pixel_Square.ttf (100%) rename arcade/resources/{ => assets}/fonts/ttf/Kenney_Rocket.ttf (100%) rename arcade/resources/{ => assets}/fonts/ttf/Kenney_Rocket_Square.ttf (100%) rename arcade/resources/{ => assets}/images/Kenney Donate.url (100%) rename arcade/resources/{ => assets}/images/Kenney Facebook.url (100%) rename arcade/resources/{ => assets}/images/Kenney Twitter.url (100%) rename arcade/resources/{ => assets}/images/Kenney Website.url (100%) rename arcade/resources/{ => assets}/images/License.txt (100%) rename arcade/resources/{ => assets}/images/alien/alienBlue_climb1.png (100%) rename arcade/resources/{ => assets}/images/alien/alienBlue_climb2.png (100%) rename arcade/resources/{ => assets}/images/alien/alienBlue_front.png (100%) rename arcade/resources/{ => assets}/images/alien/alienBlue_jump.png (100%) rename arcade/resources/{ => assets}/images/alien/alienBlue_walk1.png (100%) rename arcade/resources/{ => assets}/images/alien/alienBlue_walk2.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_climb0.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_climb1.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_fall.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_idle.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_jump.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_walk0.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_walk1.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_walk2.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_walk3.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_walk4.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_walk5.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_walk6.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_adventurer/femaleAdventurer_walk7.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_climb0.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_climb1.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_fall.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_idle.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_jump.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_walk0.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_walk1.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_walk2.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_walk3.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_walk4.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_walk5.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_walk6.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/female_person/femalePerson_walk7.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_climb0.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_climb1.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_fall.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_idle.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_jump.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_walk0.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_walk1.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_walk2.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_walk3.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_walk4.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_walk5.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_walk6.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_adventurer/maleAdventurer_walk7.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_climb0.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_climb1.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_fall.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_idle.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_jump.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_walk0.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_walk1.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_walk2.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_walk3.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_walk4.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_walk5.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_walk6.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/male_person/malePerson_walk7.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_climb0.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_climb1.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_fall.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_idle.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_jump.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_walk0.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_walk1.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_walk2.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_walk3.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_walk4.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_walk5.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_walk6.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/robot/robot_walk7.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_climb0.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_climb1.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_fall.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_idle.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_jump.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_walk0.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_walk1.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_walk2.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_walk3.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_walk4.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_walk5.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_walk6.png (100%) rename arcade/resources/{ => assets}/images/animated_characters/zombie/zombie_walk7.png (100%) rename arcade/resources/{ => assets}/images/backgrounds/abstract_1.jpg (100%) rename arcade/resources/{ => assets}/images/backgrounds/abstract_2.jpg (100%) rename arcade/resources/{ => assets}/images/backgrounds/instructions_0.png (100%) rename arcade/resources/{ => assets}/images/backgrounds/instructions_1.png (100%) rename arcade/resources/{ => assets}/images/backgrounds/stars.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_blue1.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_blue2.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_blue3.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_blue4.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_blue5.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_green1.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_green2.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_green3.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_green4.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_green5.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_red1.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_red2.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_red3.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_red4.png (100%) rename arcade/resources/{ => assets}/images/cards/cardBack_red5.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubs10.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubs2.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubs3.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubs4.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubs5.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubs6.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubs7.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubs8.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubs9.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubsA.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubsJ.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubsK.png (100%) rename arcade/resources/{ => assets}/images/cards/cardClubsQ.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamonds10.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamonds2.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamonds3.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamonds4.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamonds5.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamonds6.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamonds7.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamonds8.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamonds9.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamondsA.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamondsJ.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamondsK.png (100%) rename arcade/resources/{ => assets}/images/cards/cardDiamondsQ.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHearts10.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHearts2.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHearts3.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHearts4.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHearts5.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHearts6.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHearts7.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHearts8.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHearts9.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHeartsA.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHeartsJ.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHeartsK.png (100%) rename arcade/resources/{ => assets}/images/cards/cardHeartsQ.png (100%) rename arcade/resources/{ => assets}/images/cards/cardJoker.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpades10.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpades2.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpades3.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpades4.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpades5.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpades6.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpades7.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpades8.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpades9.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpadesA.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpadesJ.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpadesK.png (100%) rename arcade/resources/{ => assets}/images/cards/cardSpadesQ.png (100%) rename arcade/resources/{ => assets}/images/cybercity_background/back-buildings.png (100%) rename arcade/resources/{ => assets}/images/cybercity_background/far-buildings.png (100%) rename arcade/resources/{ => assets}/images/cybercity_background/foreground.png (100%) rename arcade/resources/{ => assets}/images/cybercity_background/public-license.txt (100%) rename arcade/resources/{ => assets}/images/enemies/bee.png (100%) rename arcade/resources/{ => assets}/images/enemies/fishGreen.png (100%) rename arcade/resources/{ => assets}/images/enemies/fishPink.png (100%) rename arcade/resources/{ => assets}/images/enemies/fly.png (100%) rename arcade/resources/{ => assets}/images/enemies/frog.png (100%) rename arcade/resources/{ => assets}/images/enemies/frog_move.png (100%) rename arcade/resources/{ => assets}/images/enemies/ladybug.png (100%) rename arcade/resources/{ => assets}/images/enemies/mouse.png (100%) rename arcade/resources/{ => assets}/images/enemies/saw.png (100%) rename arcade/resources/{ => assets}/images/enemies/sawHalf.png (100%) rename arcade/resources/{ => assets}/images/enemies/slimeBlock.png (100%) rename arcade/resources/{ => assets}/images/enemies/slimeBlue.png (100%) rename arcade/resources/{ => assets}/images/enemies/slimeBlue_move.png (100%) rename arcade/resources/{ => assets}/images/enemies/slimeGreen.png (100%) rename arcade/resources/{ => assets}/images/enemies/slimePurple.png (100%) rename arcade/resources/{ => assets}/images/enemies/wormGreen.png (100%) rename arcade/resources/{ => assets}/images/enemies/wormGreen_dead.png (100%) rename arcade/resources/{ => assets}/images/enemies/wormGreen_move.png (100%) rename arcade/resources/{ => assets}/images/enemies/wormPink.png (100%) rename arcade/resources/{ => assets}/images/items/coinBronze.png (100%) rename arcade/resources/{ => assets}/images/items/coinGold.png (100%) rename arcade/resources/{ => assets}/images/items/coinGold_ll.png (100%) rename arcade/resources/{ => assets}/images/items/coinGold_lr.png (100%) rename arcade/resources/{ => assets}/images/items/coinGold_ul.png (100%) rename arcade/resources/{ => assets}/images/items/coinGold_ur.png (100%) rename arcade/resources/{ => assets}/images/items/coinSilver.png (100%) rename arcade/resources/{ => assets}/images/items/coinSilver_test.png (100%) rename arcade/resources/{ => assets}/images/items/flagGreen1.png (100%) rename arcade/resources/{ => assets}/images/items/flagGreen2.png (100%) rename arcade/resources/{ => assets}/images/items/flagGreen_down.png (100%) rename arcade/resources/{ => assets}/images/items/flagRed1.png (100%) rename arcade/resources/{ => assets}/images/items/flagRed2.png (100%) rename arcade/resources/{ => assets}/images/items/flagRed_down.png (100%) rename arcade/resources/{ => assets}/images/items/flagYellow1.png (100%) rename arcade/resources/{ => assets}/images/items/flagYellow2.png (100%) rename arcade/resources/{ => assets}/images/items/flagYellow_down.png (100%) rename arcade/resources/{ => assets}/images/items/gemBlue.png (100%) rename arcade/resources/{ => assets}/images/items/gemGreen.png (100%) rename arcade/resources/{ => assets}/images/items/gemRed.png (100%) rename arcade/resources/{ => assets}/images/items/gemYellow.png (100%) rename arcade/resources/{ => assets}/images/items/gold_1.png (100%) rename arcade/resources/{ => assets}/images/items/gold_2.png (100%) rename arcade/resources/{ => assets}/images/items/gold_3.png (100%) rename arcade/resources/{ => assets}/images/items/gold_4.png (100%) rename arcade/resources/{ => assets}/images/items/keyBlue.png (100%) rename arcade/resources/{ => assets}/images/items/keyGreen.png (100%) rename arcade/resources/{ => assets}/images/items/keyRed.png (100%) rename arcade/resources/{ => assets}/images/items/keyYellow.png (100%) rename arcade/resources/{ => assets}/images/items/ladderMid.png (100%) rename arcade/resources/{ => assets}/images/items/ladderTop.png (100%) rename arcade/resources/{ => assets}/images/items/star.png (100%) rename arcade/resources/{ => assets}/images/miami_synth_parallax/car/car-idle.png (100%) rename arcade/resources/{ => assets}/images/miami_synth_parallax/car/car-running0.png (100%) rename arcade/resources/{ => assets}/images/miami_synth_parallax/car/car-running1.png (100%) rename arcade/resources/{ => assets}/images/miami_synth_parallax/car/car-running2.png (100%) rename arcade/resources/{ => assets}/images/miami_synth_parallax/car/car-running3.png (100%) rename arcade/resources/{ => assets}/images/miami_synth_parallax/layers/back.png (100%) rename arcade/resources/{ => assets}/images/miami_synth_parallax/layers/buildings.png (100%) rename arcade/resources/{ => assets}/images/miami_synth_parallax/layers/highway.png (100%) rename arcade/resources/{ => assets}/images/miami_synth_parallax/layers/palms.png (100%) rename arcade/resources/{ => assets}/images/miami_synth_parallax/layers/sun.png (100%) rename arcade/resources/{ => assets}/images/miami_synth_parallax/public-license.txt (100%) rename arcade/resources/{ => assets}/images/pinball/bumper.png (100%) rename arcade/resources/{ => assets}/images/pinball/pool_cue_ball.png (100%) rename arcade/resources/{ => assets}/images/readme.txt (100%) rename arcade/resources/{ => assets}/images/space_shooter/laserBlue01.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/laserRed01.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/meteorGrey_big1.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/meteorGrey_big2.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/meteorGrey_big3.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/meteorGrey_big4.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/meteorGrey_med1.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/meteorGrey_med2.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/meteorGrey_small1.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/meteorGrey_small2.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/meteorGrey_tiny1.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/meteorGrey_tiny2.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/playerLife1_blue.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/playerLife1_green.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/playerLife1_orange.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/playerShip1_blue.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/playerShip1_green.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/playerShip1_orange.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/playerShip2_orange.png (100%) rename arcade/resources/{ => assets}/images/space_shooter/playerShip3_orange.png (100%) rename arcade/resources/{ => assets}/images/spritesheets/codepage_437.png (100%) rename arcade/resources/{ => assets}/images/spritesheets/explosion.png (100%) rename arcade/resources/{ => assets}/images/spritesheets/number_sheet.png (100%) rename arcade/resources/{ => assets}/images/spritesheets/tiles.png (100%) rename arcade/resources/{ => assets}/images/test_textures/anim.gif (100%) rename arcade/resources/{ => assets}/images/test_textures/normal_mapping/diffuse.jpg (100%) rename arcade/resources/{ => assets}/images/test_textures/normal_mapping/normal.jpg (100%) rename arcade/resources/{ => assets}/images/test_textures/test_texture.png (100%) rename arcade/resources/{ => assets}/images/test_textures/xy_square.png (100%) rename arcade/resources/{ => assets}/images/tiles/bomb.png (100%) rename arcade/resources/{ => assets}/images/tiles/boxCrate.png (100%) rename arcade/resources/{ => assets}/images/tiles/boxCrate_double.png (100%) rename arcade/resources/{ => assets}/images/tiles/boxCrate_single.png (100%) rename arcade/resources/{ => assets}/images/tiles/brickBrown.png (100%) rename arcade/resources/{ => assets}/images/tiles/brickGrey.png (100%) rename arcade/resources/{ => assets}/images/tiles/brickTextureWhite.png (100%) rename arcade/resources/{ => assets}/images/tiles/bridgeA.png (100%) rename arcade/resources/{ => assets}/images/tiles/bridgeB.png (100%) rename arcade/resources/{ => assets}/images/tiles/bush.png (100%) rename arcade/resources/{ => assets}/images/tiles/cactus.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirt.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtCenter.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtCenter_rounded.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtCliffAlt_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtCliffAlt_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtCliff_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtCliff_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtCorner_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtCorner_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtHalf.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtHalf_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtHalf_mid.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtHalf_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtHill_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtHill_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtLeft.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtMid.png (100%) rename arcade/resources/{ => assets}/images/tiles/dirtRight.png (100%) rename arcade/resources/{ => assets}/images/tiles/doorClosed_mid.png (100%) rename arcade/resources/{ => assets}/images/tiles/doorClosed_top.png (100%) rename arcade/resources/{ => assets}/images/tiles/grass.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassCenter.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassCenter_round.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassCliffAlt_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassCliffAlt_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassCliff_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassCliff_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassCorner_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassCorner_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassHalf.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassHalf_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassHalf_mid.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassHalf_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassHill_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassHill_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassLeft.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassMid.png (100%) rename arcade/resources/{ => assets}/images/tiles/grassRight.png (100%) rename arcade/resources/{ => assets}/images/tiles/grass_sprout.png (100%) rename arcade/resources/{ => assets}/images/tiles/ladderMid.png (100%) rename arcade/resources/{ => assets}/images/tiles/ladderTop.png (100%) rename arcade/resources/{ => assets}/images/tiles/lava.png (100%) rename arcade/resources/{ => assets}/images/tiles/lavaTop_high.png (100%) rename arcade/resources/{ => assets}/images/tiles/lavaTop_low.png (100%) rename arcade/resources/{ => assets}/images/tiles/leverLeft.png (100%) rename arcade/resources/{ => assets}/images/tiles/leverMid.png (100%) rename arcade/resources/{ => assets}/images/tiles/leverRight.png (100%) rename arcade/resources/{ => assets}/images/tiles/lockRed.png (100%) rename arcade/resources/{ => assets}/images/tiles/lockYellow.png (100%) rename arcade/resources/{ => assets}/images/tiles/mushroomRed.png (100%) rename arcade/resources/{ => assets}/images/tiles/planet.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetCenter.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetCenter_rounded.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetCliffAlt_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetCliffAlt_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetCliff_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetCliff_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetCorner_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetCorner_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetHalf.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetHalf_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetHalf_mid.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetHalf_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetHill_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetHill_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetLeft.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetMid.png (100%) rename arcade/resources/{ => assets}/images/tiles/planetRight.png (100%) rename arcade/resources/{ => assets}/images/tiles/plantPurple.png (100%) rename arcade/resources/{ => assets}/images/tiles/rock.png (100%) rename arcade/resources/{ => assets}/images/tiles/sand.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandCenter.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandCenter_rounded.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandCliffAlt_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandCliffAlt_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandCliff_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandCliff_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandCorner_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandCorner_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandHalf.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandHalf_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandHalf_mid.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandHalf_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandHill_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandHill_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandLeft.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandMid.png (100%) rename arcade/resources/{ => assets}/images/tiles/sandRight.png (100%) rename arcade/resources/{ => assets}/images/tiles/signExit.png (100%) rename arcade/resources/{ => assets}/images/tiles/signLeft.png (100%) rename arcade/resources/{ => assets}/images/tiles/signRight.png (100%) rename arcade/resources/{ => assets}/images/tiles/snow.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowCenter.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowCenter_rounded.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowCliffAlt_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowCliffAlt_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowCliff_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowCliff_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowCorner_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowCorner_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowHalf.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowHalf_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowHalf_mid.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowHalf_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowHill_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowHill_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowLeft.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowMid.png (100%) rename arcade/resources/{ => assets}/images/tiles/snowRight.png (100%) rename arcade/resources/{ => assets}/images/tiles/snow_pile.png (100%) rename arcade/resources/{ => assets}/images/tiles/spikes.png (100%) rename arcade/resources/{ => assets}/images/tiles/stone.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneCenter.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneCenter_rounded.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneCliffAlt_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneCliffAlt_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneCliff_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneCliff_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneCorner_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneCorner_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneHalf.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneHalf_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneHalf_mid.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneHalf_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneHill_left.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneHill_right.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneLeft.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneMid.png (100%) rename arcade/resources/{ => assets}/images/tiles/stoneRight.png (100%) rename arcade/resources/{ => assets}/images/tiles/switchGreen.png (100%) rename arcade/resources/{ => assets}/images/tiles/switchGreen_pressed.png (100%) rename arcade/resources/{ => assets}/images/tiles/switchRed.png (100%) rename arcade/resources/{ => assets}/images/tiles/switchRed_pressed.png (100%) rename arcade/resources/{ => assets}/images/tiles/torch1.png (100%) rename arcade/resources/{ => assets}/images/tiles/torch2.png (100%) rename arcade/resources/{ => assets}/images/tiles/torchOff.png (100%) rename arcade/resources/{ => assets}/images/tiles/water.png (100%) rename arcade/resources/{ => assets}/images/tiles/waterTop_high.png (100%) rename arcade/resources/{ => assets}/images/tiles/waterTop_low.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBlue_barrel1.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBlue_barrel1_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBlue_barrel2.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBlue_barrel2_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBlue_barrel3.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBlue_barrel3_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_bigRed.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_bigRed_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_blue.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_blue_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_dark.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_darkLarge.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_darkLarge_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_dark_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_green.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_green_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_huge.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_huge_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_red.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_red_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_sand.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankBody_sand_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankDark_barrel1.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankDark_barrel1_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankDark_barrel2.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankDark_barrel2_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankDark_barrel3.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankDark_barrel3_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankGreen_barrel1.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankGreen_barrel1_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankGreen_barrel2.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankGreen_barrel2_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankGreen_barrel3.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankGreen_barrel3_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankRed_barrel1.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankRed_barrel1_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankRed_barrel2.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankRed_barrel2_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankRed_barrel3.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankRed_barrel3_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankSand_barrel1.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankSand_barrel1_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankSand_barrel2.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankSand_barrel2_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankSand_barrel3.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tankSand_barrel3_outline.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tank_blue.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tank_dark.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tank_green.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tank_red.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tank_sand.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass1.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass2.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadCornerLL.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadCornerLR.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadCornerUL.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadCornerUR.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadCrossing.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadCrossingRound.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadEast.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadNorth.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadSplitE.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadSplitN.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadSplitS.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadSplitW.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadTransitionE.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadTransitionE_dirt.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadTransitionN.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadTransitionN_dirt.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadTransitionS.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadTransitionS_dirt.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadTransitionW.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_roadTransitionW_dirt.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_transitionE.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_transitionN.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_transitionS.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileGrass_transitionW.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand1.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand2.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand_roadCornerLL.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand_roadCornerLR.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand_roadCornerUL.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand_roadCornerUR.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand_roadCrossing.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand_roadCrossingRound.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand_roadEast.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand_roadNorth.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand_roadSplitE.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand_roadSplitN.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand_roadSplitS.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tileSand_roadSplitW.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tracksDouble.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tracksLarge.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/tracksSmall.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/treeBrown_large.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/treeBrown_small.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/treeGreen_large.png (100%) rename arcade/resources/{ => assets}/images/topdown_tanks/treeGreen_small.png (100%) rename arcade/resources/{ => assets}/music/1918.mp3 (100%) rename arcade/resources/{ => assets}/music/funkyrobot.mp3 (100%) rename arcade/resources/{ => assets}/music/readme.txt (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/a.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/b.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/cancel.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/checked.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/close.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/down.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/expand.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/flatDark20.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/gear.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/hamburger.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/key_round.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/key_square.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/l.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/left.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/music_off.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/music_on.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/pause.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/pause_square.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/play.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/r.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/right.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/save.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/search.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/select.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/sound_off.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/sound_on.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/star.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/star_square.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/start.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/unchecked.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/up.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/wrench.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/x.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_dark/y.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/a.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/b.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/back.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/cancel.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/checked.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/close.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/down.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/expand.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/gear.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/hamburger.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/key_round.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/key_square.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/l.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/left.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/music_off.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/music_on.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/pause.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/pause_square.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/play.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/r.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/right.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/save.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/search.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/select.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/sound_off.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/sound_on.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/star_round.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/star_square.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/start.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/unchecked.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/up.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/wrench.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/x.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/flat_light/y.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/a.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/b.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/back.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/cancel.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/checked.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/close.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/down.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/expand.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/gear.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/hamburger.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/key_round.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/key_square.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/l.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/left.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/music_off.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/music_on.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/pause.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/pause_square.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/play.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/r.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/right.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/save.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/search.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/select.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/sound_off.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/sound_on.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/star_round.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/star_square.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/start.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/unchecked.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/up.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/wrench.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/x.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_dark/y.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/a.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/b.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/back.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/cancel.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/checked.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/close.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/down.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/expand.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/gear.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/hamburger.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/key.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/key_round.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/l.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/left.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/music_off.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/music_on.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/pause.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/pause_square.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/play.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/r.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/right.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/save.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/search.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/select.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/sound_off.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/sound_on.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/star_round.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/star_square.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/start.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/unchecked.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/up.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/wrench.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/x.png (100%) rename arcade/resources/{ => assets}/onscreen_controls/shaded_light/y.png (100%) rename arcade/resources/{ => assets}/sounds/Kenney Donate.url (100%) rename arcade/resources/{ => assets}/sounds/Kenney Facebook.url (100%) rename arcade/resources/{ => assets}/sounds/Kenney Twitter.url (100%) rename arcade/resources/{ => assets}/sounds/Kenney Website.url (100%) rename arcade/resources/{ => assets}/sounds/License.txt (100%) rename arcade/resources/{ => assets}/sounds/coin1.wav (100%) rename arcade/resources/{ => assets}/sounds/coin2.wav (100%) rename arcade/resources/{ => assets}/sounds/coin3.wav (100%) rename arcade/resources/{ => assets}/sounds/coin4.wav (100%) rename arcade/resources/{ => assets}/sounds/coin5.wav (100%) rename arcade/resources/{ => assets}/sounds/error1.wav (100%) rename arcade/resources/{ => assets}/sounds/error2.wav (100%) rename arcade/resources/{ => assets}/sounds/error3.wav (100%) rename arcade/resources/{ => assets}/sounds/error4.wav (100%) rename arcade/resources/{ => assets}/sounds/error5.wav (100%) rename arcade/resources/{ => assets}/sounds/explosion1.wav (100%) rename arcade/resources/{ => assets}/sounds/explosion2.wav (100%) rename arcade/resources/{ => assets}/sounds/fall1.wav (100%) rename arcade/resources/{ => assets}/sounds/fall2.wav (100%) rename arcade/resources/{ => assets}/sounds/fall3.wav (100%) rename arcade/resources/{ => assets}/sounds/fall4.wav (100%) rename arcade/resources/{ => assets}/sounds/gameover1.wav (100%) rename arcade/resources/{ => assets}/sounds/gameover2.wav (100%) rename arcade/resources/{ => assets}/sounds/gameover3.wav (100%) rename arcade/resources/{ => assets}/sounds/gameover4.wav (100%) rename arcade/resources/{ => assets}/sounds/gameover5.wav (100%) rename arcade/resources/{ => assets}/sounds/hit1.wav (100%) rename arcade/resources/{ => assets}/sounds/hit2.wav (100%) rename arcade/resources/{ => assets}/sounds/hit3.wav (100%) rename arcade/resources/{ => assets}/sounds/hit4.wav (100%) rename arcade/resources/{ => assets}/sounds/hit5.wav (100%) rename arcade/resources/{ => assets}/sounds/hurt1.wav (100%) rename arcade/resources/{ => assets}/sounds/hurt2.wav (100%) rename arcade/resources/{ => assets}/sounds/hurt3.wav (100%) rename arcade/resources/{ => assets}/sounds/hurt4.wav (100%) rename arcade/resources/{ => assets}/sounds/hurt5.wav (100%) rename arcade/resources/{ => assets}/sounds/jump1.wav (100%) rename arcade/resources/{ => assets}/sounds/jump2.wav (100%) rename arcade/resources/{ => assets}/sounds/jump3.wav (100%) rename arcade/resources/{ => assets}/sounds/jump4.wav (100%) rename arcade/resources/{ => assets}/sounds/jump5.wav (100%) rename arcade/resources/{ => assets}/sounds/laser1.mp3 (100%) rename arcade/resources/{ => assets}/sounds/laser1.ogg (100%) rename arcade/resources/{ => assets}/sounds/laser1.wav (100%) rename arcade/resources/{ => assets}/sounds/laser2.wav (100%) rename arcade/resources/{ => assets}/sounds/laser3.wav (100%) rename arcade/resources/{ => assets}/sounds/laser4.wav (100%) rename arcade/resources/{ => assets}/sounds/laser5.wav (100%) rename arcade/resources/{ => assets}/sounds/lose1.wav (100%) rename arcade/resources/{ => assets}/sounds/lose2.wav (100%) rename arcade/resources/{ => assets}/sounds/lose3.wav (100%) rename arcade/resources/{ => assets}/sounds/lose4.wav (100%) rename arcade/resources/{ => assets}/sounds/lose5.wav (100%) rename arcade/resources/{ => assets}/sounds/phaseJump1.ogg (100%) rename arcade/resources/{ => assets}/sounds/phaseJump1.wav (100%) rename arcade/resources/{ => assets}/sounds/readme.txt (100%) rename arcade/resources/{ => assets}/sounds/rockHit2.ogg (100%) rename arcade/resources/{ => assets}/sounds/rockHit2.wav (100%) rename arcade/resources/{ => assets}/sounds/secret2.wav (100%) rename arcade/resources/{ => assets}/sounds/secret4.wav (100%) rename arcade/resources/{ => assets}/sounds/upgrade1.wav (100%) rename arcade/resources/{ => assets}/sounds/upgrade2.wav (100%) rename arcade/resources/{ => assets}/sounds/upgrade3.wav (100%) rename arcade/resources/{ => assets}/sounds/upgrade4.wav (100%) rename arcade/resources/{ => assets}/sounds/upgrade5.wav (100%) rename arcade/resources/{ => assets}/tiled_maps/dirt.json (100%) rename arcade/resources/{ => assets}/tiled_maps/grass.json (100%) rename arcade/resources/{ => assets}/tiled_maps/items.json (100%) rename arcade/resources/{ => assets}/tiled_maps/level_1.json (100%) rename arcade/resources/{ => assets}/tiled_maps/level_2.json (100%) rename arcade/resources/{ => assets}/tiled_maps/map.json (100%) rename arcade/resources/{ => assets}/tiled_maps/map2_level_1.json (100%) rename arcade/resources/{ => assets}/tiled_maps/map2_level_2.json (100%) rename arcade/resources/{ => assets}/tiled_maps/map_with_ladders.json (100%) rename arcade/resources/{ => assets}/tiled_maps/maps.tiled-project (100%) rename arcade/resources/{ => assets}/tiled_maps/more_tiles.json (100%) rename arcade/resources/{ => assets}/tiled_maps/pymunk_test_map.json (100%) rename arcade/resources/{ => assets}/tiled_maps/spritesheet.json (100%) rename arcade/resources/{ => assets}/tiled_maps/standard_tileset.json (100%) rename arcade/resources/{ => assets}/tiled_maps/test_map_1.json (100%) rename arcade/resources/{ => assets}/tiled_maps/test_map_2.json (100%) rename arcade/resources/{ => assets}/tiled_maps/test_map_3.json (100%) rename arcade/resources/{ => assets}/tiled_maps/test_map_5.json (100%) rename arcade/resources/{ => assets}/tiled_maps/test_map_6.json (100%) rename arcade/resources/{ => assets}/tiled_maps/test_map_7.json (100%) rename arcade/resources/{ => assets}/tiled_maps/test_objects.json (100%) rename arcade/resources/{ => system}/gamecontrollerdb.txt (100%) rename arcade/resources/{ => system}/gui_basic_assets/button_square_blue.png (100%) rename arcade/resources/{ => system}/gui_basic_assets/button_square_blue_pressed.png (100%) rename arcade/resources/{ => system}/gui_basic_assets/icons/larger.png (100%) rename arcade/resources/{ => system}/gui_basic_assets/icons/smaller.png (100%) rename arcade/resources/{ => system}/gui_basic_assets/items/shield_gold.png (100%) rename arcade/resources/{ => system}/gui_basic_assets/items/sword_gold.png (100%) rename arcade/resources/{ => system}/gui_basic_assets/red_button_hover.png (100%) rename arcade/resources/{ => system}/gui_basic_assets/red_button_normal.png (100%) rename arcade/resources/{ => system}/gui_basic_assets/red_button_press.png (100%) rename arcade/resources/{ => system}/gui_basic_assets/slider_bar.png (100%) rename arcade/resources/{ => system}/gui_basic_assets/slider_thumb.png (100%) rename arcade/resources/{ => system}/gui_basic_assets/toggle/switch_green.png (100%) mode change 100755 => 100644 rename arcade/resources/{ => system}/gui_basic_assets/toggle/switch_red.png (100%) mode change 100755 => 100644 rename arcade/resources/{ => system}/gui_basic_assets/window/grey_panel.png (100%) rename arcade/resources/{ => system}/shaders/__init__.py (100%) rename arcade/resources/{ => system}/shaders/atlas/blit_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/atlas/blit_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/atlas/resize_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/atlas/resize_gs.glsl (100%) rename arcade/resources/{ => system}/shaders/atlas/resize_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/background_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/background_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/bloom/bloom_filter_a.glsl (100%) rename arcade/resources/{ => system}/shaders/bloom/bloom_filter_b.glsl (100%) rename arcade/resources/{ => system}/shaders/bloom/bloom_filter_image.glsl (100%) rename arcade/resources/{ => system}/shaders/collision/col_trans_gs.glsl (100%) rename arcade/resources/{ => system}/shaders/collision/col_trans_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/gui/nine_patch_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/gui/nine_patch_gs.glsl (100%) rename arcade/resources/{ => system}/shaders/gui/nine_patch_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/gui/surface_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/gui/surface_gs.glsl (100%) rename arcade/resources/{ => system}/shaders/gui/surface_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/lib/random.glsl (100%) rename arcade/resources/{ => system}/shaders/lib/sprite.glsl (100%) rename arcade/resources/{ => system}/shaders/lights/combine_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/lights/combine_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/lights/point_lights_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/lights/point_lights_geo.glsl (100%) rename arcade/resources/{ => system}/shaders/lights/point_lights_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/postprocessing/gaussian_blur_x_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/postprocessing/gaussian_blur_y_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/postprocessing/gaussian_combine_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/postprocessing/glow_filter_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/postprocessing/glow_filter_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/shadertoy/base_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/shadertoy/base_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/shadertoy/crt_monitor_filter.glsl (100%) rename arcade/resources/{ => system}/shaders/shape_element_list_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/shape_element_list_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/README.md (100%) rename arcade/resources/{ => system}/shaders/shapes/ellipse/filled_unbuffered_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/ellipse/filled_unbuffered_geo.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/ellipse/filled_unbuffered_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/ellipse/outline_unbuffered_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/ellipse/outline_unbuffered_geo.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/ellipse/outline_unbuffered_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/line/buffered_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/line/buffered_geo.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/line/buffered_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/line/line_generic_with_colors_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/line/line_generic_with_colors_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/line/line_vertex_shader_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/line/line_vertex_shader_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/line/unbuffered_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/line/unbuffered_geo.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/line/unbuffered_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/rectangle/filled_unbuffered_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/rectangle/filled_unbuffered_geo.glsl (100%) rename arcade/resources/{ => system}/shaders/shapes/rectangle/filled_unbuffered_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/sprites/sprite_list_geometry_cull_geo.glsl (100%) rename arcade/resources/{ => system}/shaders/sprites/sprite_list_geometry_fs.glsl (100%) rename arcade/resources/{ => system}/shaders/sprites/sprite_list_geometry_no_cull_geo.glsl (100%) rename arcade/resources/{ => system}/shaders/sprites/sprite_list_geometry_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/texture_default_projection_vs.glsl (100%) rename arcade/resources/{ => system}/shaders/texture_fs.glsl (100%) diff --git a/arcade/resources/cache/hit_box_cache.json b/arcade/resources/assets/cache/hit_box_cache.json similarity index 100% rename from arcade/resources/cache/hit_box_cache.json rename to arcade/resources/assets/cache/hit_box_cache.json diff --git a/arcade/resources/fonts/ttf/Kenney_Blocks.ttf b/arcade/resources/assets/fonts/ttf/Kenney_Blocks.ttf similarity index 100% rename from arcade/resources/fonts/ttf/Kenney_Blocks.ttf rename to arcade/resources/assets/fonts/ttf/Kenney_Blocks.ttf diff --git a/arcade/resources/fonts/ttf/Kenney_Future.ttf b/arcade/resources/assets/fonts/ttf/Kenney_Future.ttf similarity index 100% rename from arcade/resources/fonts/ttf/Kenney_Future.ttf rename to arcade/resources/assets/fonts/ttf/Kenney_Future.ttf diff --git a/arcade/resources/fonts/ttf/Kenney_Future_Narrow.ttf b/arcade/resources/assets/fonts/ttf/Kenney_Future_Narrow.ttf similarity index 100% rename from arcade/resources/fonts/ttf/Kenney_Future_Narrow.ttf rename to arcade/resources/assets/fonts/ttf/Kenney_Future_Narrow.ttf diff --git a/arcade/resources/fonts/ttf/Kenney_High.ttf b/arcade/resources/assets/fonts/ttf/Kenney_High.ttf similarity index 100% rename from arcade/resources/fonts/ttf/Kenney_High.ttf rename to arcade/resources/assets/fonts/ttf/Kenney_High.ttf diff --git a/arcade/resources/fonts/ttf/Kenney_High_Square.ttf b/arcade/resources/assets/fonts/ttf/Kenney_High_Square.ttf similarity index 100% rename from arcade/resources/fonts/ttf/Kenney_High_Square.ttf rename to arcade/resources/assets/fonts/ttf/Kenney_High_Square.ttf diff --git a/arcade/resources/fonts/ttf/Kenney_Mini.ttf b/arcade/resources/assets/fonts/ttf/Kenney_Mini.ttf similarity index 100% rename from arcade/resources/fonts/ttf/Kenney_Mini.ttf rename to arcade/resources/assets/fonts/ttf/Kenney_Mini.ttf diff --git a/arcade/resources/fonts/ttf/Kenney_Mini_Square.ttf b/arcade/resources/assets/fonts/ttf/Kenney_Mini_Square.ttf similarity index 100% rename from arcade/resources/fonts/ttf/Kenney_Mini_Square.ttf rename to arcade/resources/assets/fonts/ttf/Kenney_Mini_Square.ttf diff --git a/arcade/resources/fonts/ttf/Kenney_Pixel.ttf b/arcade/resources/assets/fonts/ttf/Kenney_Pixel.ttf similarity index 100% rename from arcade/resources/fonts/ttf/Kenney_Pixel.ttf rename to arcade/resources/assets/fonts/ttf/Kenney_Pixel.ttf diff --git a/arcade/resources/fonts/ttf/Kenney_Pixel_Square.ttf b/arcade/resources/assets/fonts/ttf/Kenney_Pixel_Square.ttf similarity index 100% rename from arcade/resources/fonts/ttf/Kenney_Pixel_Square.ttf rename to arcade/resources/assets/fonts/ttf/Kenney_Pixel_Square.ttf diff --git a/arcade/resources/fonts/ttf/Kenney_Rocket.ttf b/arcade/resources/assets/fonts/ttf/Kenney_Rocket.ttf similarity index 100% rename from arcade/resources/fonts/ttf/Kenney_Rocket.ttf rename to arcade/resources/assets/fonts/ttf/Kenney_Rocket.ttf diff --git a/arcade/resources/fonts/ttf/Kenney_Rocket_Square.ttf b/arcade/resources/assets/fonts/ttf/Kenney_Rocket_Square.ttf similarity index 100% rename from arcade/resources/fonts/ttf/Kenney_Rocket_Square.ttf rename to arcade/resources/assets/fonts/ttf/Kenney_Rocket_Square.ttf diff --git a/arcade/resources/images/Kenney Donate.url b/arcade/resources/assets/images/Kenney Donate.url similarity index 100% rename from arcade/resources/images/Kenney Donate.url rename to arcade/resources/assets/images/Kenney Donate.url diff --git a/arcade/resources/images/Kenney Facebook.url b/arcade/resources/assets/images/Kenney Facebook.url similarity index 100% rename from arcade/resources/images/Kenney Facebook.url rename to arcade/resources/assets/images/Kenney Facebook.url diff --git a/arcade/resources/images/Kenney Twitter.url b/arcade/resources/assets/images/Kenney Twitter.url similarity index 100% rename from arcade/resources/images/Kenney Twitter.url rename to arcade/resources/assets/images/Kenney Twitter.url diff --git a/arcade/resources/images/Kenney Website.url b/arcade/resources/assets/images/Kenney Website.url similarity index 100% rename from arcade/resources/images/Kenney Website.url rename to arcade/resources/assets/images/Kenney Website.url diff --git a/arcade/resources/images/License.txt b/arcade/resources/assets/images/License.txt similarity index 100% rename from arcade/resources/images/License.txt rename to arcade/resources/assets/images/License.txt diff --git a/arcade/resources/images/alien/alienBlue_climb1.png b/arcade/resources/assets/images/alien/alienBlue_climb1.png similarity index 100% rename from arcade/resources/images/alien/alienBlue_climb1.png rename to arcade/resources/assets/images/alien/alienBlue_climb1.png diff --git a/arcade/resources/images/alien/alienBlue_climb2.png b/arcade/resources/assets/images/alien/alienBlue_climb2.png similarity index 100% rename from arcade/resources/images/alien/alienBlue_climb2.png rename to arcade/resources/assets/images/alien/alienBlue_climb2.png diff --git a/arcade/resources/images/alien/alienBlue_front.png b/arcade/resources/assets/images/alien/alienBlue_front.png similarity index 100% rename from arcade/resources/images/alien/alienBlue_front.png rename to arcade/resources/assets/images/alien/alienBlue_front.png diff --git a/arcade/resources/images/alien/alienBlue_jump.png b/arcade/resources/assets/images/alien/alienBlue_jump.png similarity index 100% rename from arcade/resources/images/alien/alienBlue_jump.png rename to arcade/resources/assets/images/alien/alienBlue_jump.png diff --git a/arcade/resources/images/alien/alienBlue_walk1.png b/arcade/resources/assets/images/alien/alienBlue_walk1.png similarity index 100% rename from arcade/resources/images/alien/alienBlue_walk1.png rename to arcade/resources/assets/images/alien/alienBlue_walk1.png diff --git a/arcade/resources/images/alien/alienBlue_walk2.png b/arcade/resources/assets/images/alien/alienBlue_walk2.png similarity index 100% rename from arcade/resources/images/alien/alienBlue_walk2.png rename to arcade/resources/assets/images/alien/alienBlue_walk2.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_climb0.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_climb0.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_climb0.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_climb0.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_climb1.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_climb1.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_climb1.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_climb1.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_fall.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_fall.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_fall.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_fall.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_idle.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_idle.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_idle.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_idle.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_jump.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_jump.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_jump.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_jump.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk0.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk0.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk0.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk0.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk1.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk1.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk1.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk1.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk2.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk2.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk2.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk2.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk3.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk3.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk3.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk3.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk4.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk4.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk4.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk4.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk5.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk5.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk5.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk5.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk6.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk6.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk6.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk6.png diff --git a/arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk7.png b/arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk7.png similarity index 100% rename from arcade/resources/images/animated_characters/female_adventurer/femaleAdventurer_walk7.png rename to arcade/resources/assets/images/animated_characters/female_adventurer/femaleAdventurer_walk7.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_climb0.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_climb0.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_climb0.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_climb0.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_climb1.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_climb1.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_climb1.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_climb1.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_fall.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_fall.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_fall.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_fall.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_idle.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_idle.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_idle.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_idle.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_jump.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_jump.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_jump.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_jump.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_walk0.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk0.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_walk0.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk0.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_walk1.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk1.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_walk1.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk1.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_walk2.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk2.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_walk2.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk2.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_walk3.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk3.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_walk3.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk3.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_walk4.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk4.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_walk4.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk4.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_walk5.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk5.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_walk5.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk5.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_walk6.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk6.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_walk6.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk6.png diff --git a/arcade/resources/images/animated_characters/female_person/femalePerson_walk7.png b/arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk7.png similarity index 100% rename from arcade/resources/images/animated_characters/female_person/femalePerson_walk7.png rename to arcade/resources/assets/images/animated_characters/female_person/femalePerson_walk7.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_climb0.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_climb0.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_climb0.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_climb0.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_climb1.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_climb1.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_climb1.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_climb1.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_fall.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_fall.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_fall.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_fall.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_idle.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_idle.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_idle.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_idle.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_jump.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_jump.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_jump.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_jump.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk0.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk0.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk0.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk0.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk1.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk1.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk1.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk1.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk2.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk2.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk2.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk2.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk3.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk3.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk3.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk3.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk4.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk4.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk4.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk4.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk5.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk5.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk5.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk5.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk6.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk6.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk6.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk6.png diff --git a/arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk7.png b/arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk7.png similarity index 100% rename from arcade/resources/images/animated_characters/male_adventurer/maleAdventurer_walk7.png rename to arcade/resources/assets/images/animated_characters/male_adventurer/maleAdventurer_walk7.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_climb0.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_climb0.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_climb0.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_climb0.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_climb1.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_climb1.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_climb1.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_climb1.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_fall.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_fall.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_fall.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_fall.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_idle.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_idle.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_idle.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_idle.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_jump.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_jump.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_jump.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_jump.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_walk0.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_walk0.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_walk0.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_walk0.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_walk1.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_walk1.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_walk1.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_walk1.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_walk2.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_walk2.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_walk2.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_walk2.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_walk3.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_walk3.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_walk3.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_walk3.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_walk4.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_walk4.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_walk4.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_walk4.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_walk5.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_walk5.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_walk5.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_walk5.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_walk6.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_walk6.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_walk6.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_walk6.png diff --git a/arcade/resources/images/animated_characters/male_person/malePerson_walk7.png b/arcade/resources/assets/images/animated_characters/male_person/malePerson_walk7.png similarity index 100% rename from arcade/resources/images/animated_characters/male_person/malePerson_walk7.png rename to arcade/resources/assets/images/animated_characters/male_person/malePerson_walk7.png diff --git a/arcade/resources/images/animated_characters/robot/robot_climb0.png b/arcade/resources/assets/images/animated_characters/robot/robot_climb0.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_climb0.png rename to arcade/resources/assets/images/animated_characters/robot/robot_climb0.png diff --git a/arcade/resources/images/animated_characters/robot/robot_climb1.png b/arcade/resources/assets/images/animated_characters/robot/robot_climb1.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_climb1.png rename to arcade/resources/assets/images/animated_characters/robot/robot_climb1.png diff --git a/arcade/resources/images/animated_characters/robot/robot_fall.png b/arcade/resources/assets/images/animated_characters/robot/robot_fall.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_fall.png rename to arcade/resources/assets/images/animated_characters/robot/robot_fall.png diff --git a/arcade/resources/images/animated_characters/robot/robot_idle.png b/arcade/resources/assets/images/animated_characters/robot/robot_idle.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_idle.png rename to arcade/resources/assets/images/animated_characters/robot/robot_idle.png diff --git a/arcade/resources/images/animated_characters/robot/robot_jump.png b/arcade/resources/assets/images/animated_characters/robot/robot_jump.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_jump.png rename to arcade/resources/assets/images/animated_characters/robot/robot_jump.png diff --git a/arcade/resources/images/animated_characters/robot/robot_walk0.png b/arcade/resources/assets/images/animated_characters/robot/robot_walk0.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_walk0.png rename to arcade/resources/assets/images/animated_characters/robot/robot_walk0.png diff --git a/arcade/resources/images/animated_characters/robot/robot_walk1.png b/arcade/resources/assets/images/animated_characters/robot/robot_walk1.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_walk1.png rename to arcade/resources/assets/images/animated_characters/robot/robot_walk1.png diff --git a/arcade/resources/images/animated_characters/robot/robot_walk2.png b/arcade/resources/assets/images/animated_characters/robot/robot_walk2.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_walk2.png rename to arcade/resources/assets/images/animated_characters/robot/robot_walk2.png diff --git a/arcade/resources/images/animated_characters/robot/robot_walk3.png b/arcade/resources/assets/images/animated_characters/robot/robot_walk3.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_walk3.png rename to arcade/resources/assets/images/animated_characters/robot/robot_walk3.png diff --git a/arcade/resources/images/animated_characters/robot/robot_walk4.png b/arcade/resources/assets/images/animated_characters/robot/robot_walk4.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_walk4.png rename to arcade/resources/assets/images/animated_characters/robot/robot_walk4.png diff --git a/arcade/resources/images/animated_characters/robot/robot_walk5.png b/arcade/resources/assets/images/animated_characters/robot/robot_walk5.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_walk5.png rename to arcade/resources/assets/images/animated_characters/robot/robot_walk5.png diff --git a/arcade/resources/images/animated_characters/robot/robot_walk6.png b/arcade/resources/assets/images/animated_characters/robot/robot_walk6.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_walk6.png rename to arcade/resources/assets/images/animated_characters/robot/robot_walk6.png diff --git a/arcade/resources/images/animated_characters/robot/robot_walk7.png b/arcade/resources/assets/images/animated_characters/robot/robot_walk7.png similarity index 100% rename from arcade/resources/images/animated_characters/robot/robot_walk7.png rename to arcade/resources/assets/images/animated_characters/robot/robot_walk7.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_climb0.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_climb0.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_climb0.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_climb0.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_climb1.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_climb1.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_climb1.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_climb1.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_fall.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_fall.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_fall.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_fall.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_idle.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_idle.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_idle.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_idle.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_jump.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_jump.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_jump.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_jump.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_walk0.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_walk0.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_walk0.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_walk0.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_walk1.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_walk1.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_walk1.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_walk1.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_walk2.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_walk2.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_walk2.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_walk2.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_walk3.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_walk3.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_walk3.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_walk3.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_walk4.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_walk4.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_walk4.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_walk4.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_walk5.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_walk5.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_walk5.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_walk5.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_walk6.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_walk6.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_walk6.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_walk6.png diff --git a/arcade/resources/images/animated_characters/zombie/zombie_walk7.png b/arcade/resources/assets/images/animated_characters/zombie/zombie_walk7.png similarity index 100% rename from arcade/resources/images/animated_characters/zombie/zombie_walk7.png rename to arcade/resources/assets/images/animated_characters/zombie/zombie_walk7.png diff --git a/arcade/resources/images/backgrounds/abstract_1.jpg b/arcade/resources/assets/images/backgrounds/abstract_1.jpg similarity index 100% rename from arcade/resources/images/backgrounds/abstract_1.jpg rename to arcade/resources/assets/images/backgrounds/abstract_1.jpg diff --git a/arcade/resources/images/backgrounds/abstract_2.jpg b/arcade/resources/assets/images/backgrounds/abstract_2.jpg similarity index 100% rename from arcade/resources/images/backgrounds/abstract_2.jpg rename to arcade/resources/assets/images/backgrounds/abstract_2.jpg diff --git a/arcade/resources/images/backgrounds/instructions_0.png b/arcade/resources/assets/images/backgrounds/instructions_0.png similarity index 100% rename from arcade/resources/images/backgrounds/instructions_0.png rename to arcade/resources/assets/images/backgrounds/instructions_0.png diff --git a/arcade/resources/images/backgrounds/instructions_1.png b/arcade/resources/assets/images/backgrounds/instructions_1.png similarity index 100% rename from arcade/resources/images/backgrounds/instructions_1.png rename to arcade/resources/assets/images/backgrounds/instructions_1.png diff --git a/arcade/resources/images/backgrounds/stars.png b/arcade/resources/assets/images/backgrounds/stars.png similarity index 100% rename from arcade/resources/images/backgrounds/stars.png rename to arcade/resources/assets/images/backgrounds/stars.png diff --git a/arcade/resources/images/cards/cardBack_blue1.png b/arcade/resources/assets/images/cards/cardBack_blue1.png similarity index 100% rename from arcade/resources/images/cards/cardBack_blue1.png rename to arcade/resources/assets/images/cards/cardBack_blue1.png diff --git a/arcade/resources/images/cards/cardBack_blue2.png b/arcade/resources/assets/images/cards/cardBack_blue2.png similarity index 100% rename from arcade/resources/images/cards/cardBack_blue2.png rename to arcade/resources/assets/images/cards/cardBack_blue2.png diff --git a/arcade/resources/images/cards/cardBack_blue3.png b/arcade/resources/assets/images/cards/cardBack_blue3.png similarity index 100% rename from arcade/resources/images/cards/cardBack_blue3.png rename to arcade/resources/assets/images/cards/cardBack_blue3.png diff --git a/arcade/resources/images/cards/cardBack_blue4.png b/arcade/resources/assets/images/cards/cardBack_blue4.png similarity index 100% rename from arcade/resources/images/cards/cardBack_blue4.png rename to arcade/resources/assets/images/cards/cardBack_blue4.png diff --git a/arcade/resources/images/cards/cardBack_blue5.png b/arcade/resources/assets/images/cards/cardBack_blue5.png similarity index 100% rename from arcade/resources/images/cards/cardBack_blue5.png rename to arcade/resources/assets/images/cards/cardBack_blue5.png diff --git a/arcade/resources/images/cards/cardBack_green1.png b/arcade/resources/assets/images/cards/cardBack_green1.png similarity index 100% rename from arcade/resources/images/cards/cardBack_green1.png rename to arcade/resources/assets/images/cards/cardBack_green1.png diff --git a/arcade/resources/images/cards/cardBack_green2.png b/arcade/resources/assets/images/cards/cardBack_green2.png similarity index 100% rename from arcade/resources/images/cards/cardBack_green2.png rename to arcade/resources/assets/images/cards/cardBack_green2.png diff --git a/arcade/resources/images/cards/cardBack_green3.png b/arcade/resources/assets/images/cards/cardBack_green3.png similarity index 100% rename from arcade/resources/images/cards/cardBack_green3.png rename to arcade/resources/assets/images/cards/cardBack_green3.png diff --git a/arcade/resources/images/cards/cardBack_green4.png b/arcade/resources/assets/images/cards/cardBack_green4.png similarity index 100% rename from arcade/resources/images/cards/cardBack_green4.png rename to arcade/resources/assets/images/cards/cardBack_green4.png diff --git a/arcade/resources/images/cards/cardBack_green5.png b/arcade/resources/assets/images/cards/cardBack_green5.png similarity index 100% rename from arcade/resources/images/cards/cardBack_green5.png rename to arcade/resources/assets/images/cards/cardBack_green5.png diff --git a/arcade/resources/images/cards/cardBack_red1.png b/arcade/resources/assets/images/cards/cardBack_red1.png similarity index 100% rename from arcade/resources/images/cards/cardBack_red1.png rename to arcade/resources/assets/images/cards/cardBack_red1.png diff --git a/arcade/resources/images/cards/cardBack_red2.png b/arcade/resources/assets/images/cards/cardBack_red2.png similarity index 100% rename from arcade/resources/images/cards/cardBack_red2.png rename to arcade/resources/assets/images/cards/cardBack_red2.png diff --git a/arcade/resources/images/cards/cardBack_red3.png b/arcade/resources/assets/images/cards/cardBack_red3.png similarity index 100% rename from arcade/resources/images/cards/cardBack_red3.png rename to arcade/resources/assets/images/cards/cardBack_red3.png diff --git a/arcade/resources/images/cards/cardBack_red4.png b/arcade/resources/assets/images/cards/cardBack_red4.png similarity index 100% rename from arcade/resources/images/cards/cardBack_red4.png rename to arcade/resources/assets/images/cards/cardBack_red4.png diff --git a/arcade/resources/images/cards/cardBack_red5.png b/arcade/resources/assets/images/cards/cardBack_red5.png similarity index 100% rename from arcade/resources/images/cards/cardBack_red5.png rename to arcade/resources/assets/images/cards/cardBack_red5.png diff --git a/arcade/resources/images/cards/cardClubs10.png b/arcade/resources/assets/images/cards/cardClubs10.png similarity index 100% rename from arcade/resources/images/cards/cardClubs10.png rename to arcade/resources/assets/images/cards/cardClubs10.png diff --git a/arcade/resources/images/cards/cardClubs2.png b/arcade/resources/assets/images/cards/cardClubs2.png similarity index 100% rename from arcade/resources/images/cards/cardClubs2.png rename to arcade/resources/assets/images/cards/cardClubs2.png diff --git a/arcade/resources/images/cards/cardClubs3.png b/arcade/resources/assets/images/cards/cardClubs3.png similarity index 100% rename from arcade/resources/images/cards/cardClubs3.png rename to arcade/resources/assets/images/cards/cardClubs3.png diff --git a/arcade/resources/images/cards/cardClubs4.png b/arcade/resources/assets/images/cards/cardClubs4.png similarity index 100% rename from arcade/resources/images/cards/cardClubs4.png rename to arcade/resources/assets/images/cards/cardClubs4.png diff --git a/arcade/resources/images/cards/cardClubs5.png b/arcade/resources/assets/images/cards/cardClubs5.png similarity index 100% rename from arcade/resources/images/cards/cardClubs5.png rename to arcade/resources/assets/images/cards/cardClubs5.png diff --git a/arcade/resources/images/cards/cardClubs6.png b/arcade/resources/assets/images/cards/cardClubs6.png similarity index 100% rename from arcade/resources/images/cards/cardClubs6.png rename to arcade/resources/assets/images/cards/cardClubs6.png diff --git a/arcade/resources/images/cards/cardClubs7.png b/arcade/resources/assets/images/cards/cardClubs7.png similarity index 100% rename from arcade/resources/images/cards/cardClubs7.png rename to arcade/resources/assets/images/cards/cardClubs7.png diff --git a/arcade/resources/images/cards/cardClubs8.png b/arcade/resources/assets/images/cards/cardClubs8.png similarity index 100% rename from arcade/resources/images/cards/cardClubs8.png rename to arcade/resources/assets/images/cards/cardClubs8.png diff --git a/arcade/resources/images/cards/cardClubs9.png b/arcade/resources/assets/images/cards/cardClubs9.png similarity index 100% rename from arcade/resources/images/cards/cardClubs9.png rename to arcade/resources/assets/images/cards/cardClubs9.png diff --git a/arcade/resources/images/cards/cardClubsA.png b/arcade/resources/assets/images/cards/cardClubsA.png similarity index 100% rename from arcade/resources/images/cards/cardClubsA.png rename to arcade/resources/assets/images/cards/cardClubsA.png diff --git a/arcade/resources/images/cards/cardClubsJ.png b/arcade/resources/assets/images/cards/cardClubsJ.png similarity index 100% rename from arcade/resources/images/cards/cardClubsJ.png rename to arcade/resources/assets/images/cards/cardClubsJ.png diff --git a/arcade/resources/images/cards/cardClubsK.png b/arcade/resources/assets/images/cards/cardClubsK.png similarity index 100% rename from arcade/resources/images/cards/cardClubsK.png rename to arcade/resources/assets/images/cards/cardClubsK.png diff --git a/arcade/resources/images/cards/cardClubsQ.png b/arcade/resources/assets/images/cards/cardClubsQ.png similarity index 100% rename from arcade/resources/images/cards/cardClubsQ.png rename to arcade/resources/assets/images/cards/cardClubsQ.png diff --git a/arcade/resources/images/cards/cardDiamonds10.png b/arcade/resources/assets/images/cards/cardDiamonds10.png similarity index 100% rename from arcade/resources/images/cards/cardDiamonds10.png rename to arcade/resources/assets/images/cards/cardDiamonds10.png diff --git a/arcade/resources/images/cards/cardDiamonds2.png b/arcade/resources/assets/images/cards/cardDiamonds2.png similarity index 100% rename from arcade/resources/images/cards/cardDiamonds2.png rename to arcade/resources/assets/images/cards/cardDiamonds2.png diff --git a/arcade/resources/images/cards/cardDiamonds3.png b/arcade/resources/assets/images/cards/cardDiamonds3.png similarity index 100% rename from arcade/resources/images/cards/cardDiamonds3.png rename to arcade/resources/assets/images/cards/cardDiamonds3.png diff --git a/arcade/resources/images/cards/cardDiamonds4.png b/arcade/resources/assets/images/cards/cardDiamonds4.png similarity index 100% rename from arcade/resources/images/cards/cardDiamonds4.png rename to arcade/resources/assets/images/cards/cardDiamonds4.png diff --git a/arcade/resources/images/cards/cardDiamonds5.png b/arcade/resources/assets/images/cards/cardDiamonds5.png similarity index 100% rename from arcade/resources/images/cards/cardDiamonds5.png rename to arcade/resources/assets/images/cards/cardDiamonds5.png diff --git a/arcade/resources/images/cards/cardDiamonds6.png b/arcade/resources/assets/images/cards/cardDiamonds6.png similarity index 100% rename from arcade/resources/images/cards/cardDiamonds6.png rename to arcade/resources/assets/images/cards/cardDiamonds6.png diff --git a/arcade/resources/images/cards/cardDiamonds7.png b/arcade/resources/assets/images/cards/cardDiamonds7.png similarity index 100% rename from arcade/resources/images/cards/cardDiamonds7.png rename to arcade/resources/assets/images/cards/cardDiamonds7.png diff --git a/arcade/resources/images/cards/cardDiamonds8.png b/arcade/resources/assets/images/cards/cardDiamonds8.png similarity index 100% rename from arcade/resources/images/cards/cardDiamonds8.png rename to arcade/resources/assets/images/cards/cardDiamonds8.png diff --git a/arcade/resources/images/cards/cardDiamonds9.png b/arcade/resources/assets/images/cards/cardDiamonds9.png similarity index 100% rename from arcade/resources/images/cards/cardDiamonds9.png rename to arcade/resources/assets/images/cards/cardDiamonds9.png diff --git a/arcade/resources/images/cards/cardDiamondsA.png b/arcade/resources/assets/images/cards/cardDiamondsA.png similarity index 100% rename from arcade/resources/images/cards/cardDiamondsA.png rename to arcade/resources/assets/images/cards/cardDiamondsA.png diff --git a/arcade/resources/images/cards/cardDiamondsJ.png b/arcade/resources/assets/images/cards/cardDiamondsJ.png similarity index 100% rename from arcade/resources/images/cards/cardDiamondsJ.png rename to arcade/resources/assets/images/cards/cardDiamondsJ.png diff --git a/arcade/resources/images/cards/cardDiamondsK.png b/arcade/resources/assets/images/cards/cardDiamondsK.png similarity index 100% rename from arcade/resources/images/cards/cardDiamondsK.png rename to arcade/resources/assets/images/cards/cardDiamondsK.png diff --git a/arcade/resources/images/cards/cardDiamondsQ.png b/arcade/resources/assets/images/cards/cardDiamondsQ.png similarity index 100% rename from arcade/resources/images/cards/cardDiamondsQ.png rename to arcade/resources/assets/images/cards/cardDiamondsQ.png diff --git a/arcade/resources/images/cards/cardHearts10.png b/arcade/resources/assets/images/cards/cardHearts10.png similarity index 100% rename from arcade/resources/images/cards/cardHearts10.png rename to arcade/resources/assets/images/cards/cardHearts10.png diff --git a/arcade/resources/images/cards/cardHearts2.png b/arcade/resources/assets/images/cards/cardHearts2.png similarity index 100% rename from arcade/resources/images/cards/cardHearts2.png rename to arcade/resources/assets/images/cards/cardHearts2.png diff --git a/arcade/resources/images/cards/cardHearts3.png b/arcade/resources/assets/images/cards/cardHearts3.png similarity index 100% rename from arcade/resources/images/cards/cardHearts3.png rename to arcade/resources/assets/images/cards/cardHearts3.png diff --git a/arcade/resources/images/cards/cardHearts4.png b/arcade/resources/assets/images/cards/cardHearts4.png similarity index 100% rename from arcade/resources/images/cards/cardHearts4.png rename to arcade/resources/assets/images/cards/cardHearts4.png diff --git a/arcade/resources/images/cards/cardHearts5.png b/arcade/resources/assets/images/cards/cardHearts5.png similarity index 100% rename from arcade/resources/images/cards/cardHearts5.png rename to arcade/resources/assets/images/cards/cardHearts5.png diff --git a/arcade/resources/images/cards/cardHearts6.png b/arcade/resources/assets/images/cards/cardHearts6.png similarity index 100% rename from arcade/resources/images/cards/cardHearts6.png rename to arcade/resources/assets/images/cards/cardHearts6.png diff --git a/arcade/resources/images/cards/cardHearts7.png b/arcade/resources/assets/images/cards/cardHearts7.png similarity index 100% rename from arcade/resources/images/cards/cardHearts7.png rename to arcade/resources/assets/images/cards/cardHearts7.png diff --git a/arcade/resources/images/cards/cardHearts8.png b/arcade/resources/assets/images/cards/cardHearts8.png similarity index 100% rename from arcade/resources/images/cards/cardHearts8.png rename to arcade/resources/assets/images/cards/cardHearts8.png diff --git a/arcade/resources/images/cards/cardHearts9.png b/arcade/resources/assets/images/cards/cardHearts9.png similarity index 100% rename from arcade/resources/images/cards/cardHearts9.png rename to arcade/resources/assets/images/cards/cardHearts9.png diff --git a/arcade/resources/images/cards/cardHeartsA.png b/arcade/resources/assets/images/cards/cardHeartsA.png similarity index 100% rename from arcade/resources/images/cards/cardHeartsA.png rename to arcade/resources/assets/images/cards/cardHeartsA.png diff --git a/arcade/resources/images/cards/cardHeartsJ.png b/arcade/resources/assets/images/cards/cardHeartsJ.png similarity index 100% rename from arcade/resources/images/cards/cardHeartsJ.png rename to arcade/resources/assets/images/cards/cardHeartsJ.png diff --git a/arcade/resources/images/cards/cardHeartsK.png b/arcade/resources/assets/images/cards/cardHeartsK.png similarity index 100% rename from arcade/resources/images/cards/cardHeartsK.png rename to arcade/resources/assets/images/cards/cardHeartsK.png diff --git a/arcade/resources/images/cards/cardHeartsQ.png b/arcade/resources/assets/images/cards/cardHeartsQ.png similarity index 100% rename from arcade/resources/images/cards/cardHeartsQ.png rename to arcade/resources/assets/images/cards/cardHeartsQ.png diff --git a/arcade/resources/images/cards/cardJoker.png b/arcade/resources/assets/images/cards/cardJoker.png similarity index 100% rename from arcade/resources/images/cards/cardJoker.png rename to arcade/resources/assets/images/cards/cardJoker.png diff --git a/arcade/resources/images/cards/cardSpades10.png b/arcade/resources/assets/images/cards/cardSpades10.png similarity index 100% rename from arcade/resources/images/cards/cardSpades10.png rename to arcade/resources/assets/images/cards/cardSpades10.png diff --git a/arcade/resources/images/cards/cardSpades2.png b/arcade/resources/assets/images/cards/cardSpades2.png similarity index 100% rename from arcade/resources/images/cards/cardSpades2.png rename to arcade/resources/assets/images/cards/cardSpades2.png diff --git a/arcade/resources/images/cards/cardSpades3.png b/arcade/resources/assets/images/cards/cardSpades3.png similarity index 100% rename from arcade/resources/images/cards/cardSpades3.png rename to arcade/resources/assets/images/cards/cardSpades3.png diff --git a/arcade/resources/images/cards/cardSpades4.png b/arcade/resources/assets/images/cards/cardSpades4.png similarity index 100% rename from arcade/resources/images/cards/cardSpades4.png rename to arcade/resources/assets/images/cards/cardSpades4.png diff --git a/arcade/resources/images/cards/cardSpades5.png b/arcade/resources/assets/images/cards/cardSpades5.png similarity index 100% rename from arcade/resources/images/cards/cardSpades5.png rename to arcade/resources/assets/images/cards/cardSpades5.png diff --git a/arcade/resources/images/cards/cardSpades6.png b/arcade/resources/assets/images/cards/cardSpades6.png similarity index 100% rename from arcade/resources/images/cards/cardSpades6.png rename to arcade/resources/assets/images/cards/cardSpades6.png diff --git a/arcade/resources/images/cards/cardSpades7.png b/arcade/resources/assets/images/cards/cardSpades7.png similarity index 100% rename from arcade/resources/images/cards/cardSpades7.png rename to arcade/resources/assets/images/cards/cardSpades7.png diff --git a/arcade/resources/images/cards/cardSpades8.png b/arcade/resources/assets/images/cards/cardSpades8.png similarity index 100% rename from arcade/resources/images/cards/cardSpades8.png rename to arcade/resources/assets/images/cards/cardSpades8.png diff --git a/arcade/resources/images/cards/cardSpades9.png b/arcade/resources/assets/images/cards/cardSpades9.png similarity index 100% rename from arcade/resources/images/cards/cardSpades9.png rename to arcade/resources/assets/images/cards/cardSpades9.png diff --git a/arcade/resources/images/cards/cardSpadesA.png b/arcade/resources/assets/images/cards/cardSpadesA.png similarity index 100% rename from arcade/resources/images/cards/cardSpadesA.png rename to arcade/resources/assets/images/cards/cardSpadesA.png diff --git a/arcade/resources/images/cards/cardSpadesJ.png b/arcade/resources/assets/images/cards/cardSpadesJ.png similarity index 100% rename from arcade/resources/images/cards/cardSpadesJ.png rename to arcade/resources/assets/images/cards/cardSpadesJ.png diff --git a/arcade/resources/images/cards/cardSpadesK.png b/arcade/resources/assets/images/cards/cardSpadesK.png similarity index 100% rename from arcade/resources/images/cards/cardSpadesK.png rename to arcade/resources/assets/images/cards/cardSpadesK.png diff --git a/arcade/resources/images/cards/cardSpadesQ.png b/arcade/resources/assets/images/cards/cardSpadesQ.png similarity index 100% rename from arcade/resources/images/cards/cardSpadesQ.png rename to arcade/resources/assets/images/cards/cardSpadesQ.png diff --git a/arcade/resources/images/cybercity_background/back-buildings.png b/arcade/resources/assets/images/cybercity_background/back-buildings.png similarity index 100% rename from arcade/resources/images/cybercity_background/back-buildings.png rename to arcade/resources/assets/images/cybercity_background/back-buildings.png diff --git a/arcade/resources/images/cybercity_background/far-buildings.png b/arcade/resources/assets/images/cybercity_background/far-buildings.png similarity index 100% rename from arcade/resources/images/cybercity_background/far-buildings.png rename to arcade/resources/assets/images/cybercity_background/far-buildings.png diff --git a/arcade/resources/images/cybercity_background/foreground.png b/arcade/resources/assets/images/cybercity_background/foreground.png similarity index 100% rename from arcade/resources/images/cybercity_background/foreground.png rename to arcade/resources/assets/images/cybercity_background/foreground.png diff --git a/arcade/resources/images/cybercity_background/public-license.txt b/arcade/resources/assets/images/cybercity_background/public-license.txt similarity index 100% rename from arcade/resources/images/cybercity_background/public-license.txt rename to arcade/resources/assets/images/cybercity_background/public-license.txt diff --git a/arcade/resources/images/enemies/bee.png b/arcade/resources/assets/images/enemies/bee.png similarity index 100% rename from arcade/resources/images/enemies/bee.png rename to arcade/resources/assets/images/enemies/bee.png diff --git a/arcade/resources/images/enemies/fishGreen.png b/arcade/resources/assets/images/enemies/fishGreen.png similarity index 100% rename from arcade/resources/images/enemies/fishGreen.png rename to arcade/resources/assets/images/enemies/fishGreen.png diff --git a/arcade/resources/images/enemies/fishPink.png b/arcade/resources/assets/images/enemies/fishPink.png similarity index 100% rename from arcade/resources/images/enemies/fishPink.png rename to arcade/resources/assets/images/enemies/fishPink.png diff --git a/arcade/resources/images/enemies/fly.png b/arcade/resources/assets/images/enemies/fly.png similarity index 100% rename from arcade/resources/images/enemies/fly.png rename to arcade/resources/assets/images/enemies/fly.png diff --git a/arcade/resources/images/enemies/frog.png b/arcade/resources/assets/images/enemies/frog.png similarity index 100% rename from arcade/resources/images/enemies/frog.png rename to arcade/resources/assets/images/enemies/frog.png diff --git a/arcade/resources/images/enemies/frog_move.png b/arcade/resources/assets/images/enemies/frog_move.png similarity index 100% rename from arcade/resources/images/enemies/frog_move.png rename to arcade/resources/assets/images/enemies/frog_move.png diff --git a/arcade/resources/images/enemies/ladybug.png b/arcade/resources/assets/images/enemies/ladybug.png similarity index 100% rename from arcade/resources/images/enemies/ladybug.png rename to arcade/resources/assets/images/enemies/ladybug.png diff --git a/arcade/resources/images/enemies/mouse.png b/arcade/resources/assets/images/enemies/mouse.png similarity index 100% rename from arcade/resources/images/enemies/mouse.png rename to arcade/resources/assets/images/enemies/mouse.png diff --git a/arcade/resources/images/enemies/saw.png b/arcade/resources/assets/images/enemies/saw.png similarity index 100% rename from arcade/resources/images/enemies/saw.png rename to arcade/resources/assets/images/enemies/saw.png diff --git a/arcade/resources/images/enemies/sawHalf.png b/arcade/resources/assets/images/enemies/sawHalf.png similarity index 100% rename from arcade/resources/images/enemies/sawHalf.png rename to arcade/resources/assets/images/enemies/sawHalf.png diff --git a/arcade/resources/images/enemies/slimeBlock.png b/arcade/resources/assets/images/enemies/slimeBlock.png similarity index 100% rename from arcade/resources/images/enemies/slimeBlock.png rename to arcade/resources/assets/images/enemies/slimeBlock.png diff --git a/arcade/resources/images/enemies/slimeBlue.png b/arcade/resources/assets/images/enemies/slimeBlue.png similarity index 100% rename from arcade/resources/images/enemies/slimeBlue.png rename to arcade/resources/assets/images/enemies/slimeBlue.png diff --git a/arcade/resources/images/enemies/slimeBlue_move.png b/arcade/resources/assets/images/enemies/slimeBlue_move.png similarity index 100% rename from arcade/resources/images/enemies/slimeBlue_move.png rename to arcade/resources/assets/images/enemies/slimeBlue_move.png diff --git a/arcade/resources/images/enemies/slimeGreen.png b/arcade/resources/assets/images/enemies/slimeGreen.png similarity index 100% rename from arcade/resources/images/enemies/slimeGreen.png rename to arcade/resources/assets/images/enemies/slimeGreen.png diff --git a/arcade/resources/images/enemies/slimePurple.png b/arcade/resources/assets/images/enemies/slimePurple.png similarity index 100% rename from arcade/resources/images/enemies/slimePurple.png rename to arcade/resources/assets/images/enemies/slimePurple.png diff --git a/arcade/resources/images/enemies/wormGreen.png b/arcade/resources/assets/images/enemies/wormGreen.png similarity index 100% rename from arcade/resources/images/enemies/wormGreen.png rename to arcade/resources/assets/images/enemies/wormGreen.png diff --git a/arcade/resources/images/enemies/wormGreen_dead.png b/arcade/resources/assets/images/enemies/wormGreen_dead.png similarity index 100% rename from arcade/resources/images/enemies/wormGreen_dead.png rename to arcade/resources/assets/images/enemies/wormGreen_dead.png diff --git a/arcade/resources/images/enemies/wormGreen_move.png b/arcade/resources/assets/images/enemies/wormGreen_move.png similarity index 100% rename from arcade/resources/images/enemies/wormGreen_move.png rename to arcade/resources/assets/images/enemies/wormGreen_move.png diff --git a/arcade/resources/images/enemies/wormPink.png b/arcade/resources/assets/images/enemies/wormPink.png similarity index 100% rename from arcade/resources/images/enemies/wormPink.png rename to arcade/resources/assets/images/enemies/wormPink.png diff --git a/arcade/resources/images/items/coinBronze.png b/arcade/resources/assets/images/items/coinBronze.png similarity index 100% rename from arcade/resources/images/items/coinBronze.png rename to arcade/resources/assets/images/items/coinBronze.png diff --git a/arcade/resources/images/items/coinGold.png b/arcade/resources/assets/images/items/coinGold.png similarity index 100% rename from arcade/resources/images/items/coinGold.png rename to arcade/resources/assets/images/items/coinGold.png diff --git a/arcade/resources/images/items/coinGold_ll.png b/arcade/resources/assets/images/items/coinGold_ll.png similarity index 100% rename from arcade/resources/images/items/coinGold_ll.png rename to arcade/resources/assets/images/items/coinGold_ll.png diff --git a/arcade/resources/images/items/coinGold_lr.png b/arcade/resources/assets/images/items/coinGold_lr.png similarity index 100% rename from arcade/resources/images/items/coinGold_lr.png rename to arcade/resources/assets/images/items/coinGold_lr.png diff --git a/arcade/resources/images/items/coinGold_ul.png b/arcade/resources/assets/images/items/coinGold_ul.png similarity index 100% rename from arcade/resources/images/items/coinGold_ul.png rename to arcade/resources/assets/images/items/coinGold_ul.png diff --git a/arcade/resources/images/items/coinGold_ur.png b/arcade/resources/assets/images/items/coinGold_ur.png similarity index 100% rename from arcade/resources/images/items/coinGold_ur.png rename to arcade/resources/assets/images/items/coinGold_ur.png diff --git a/arcade/resources/images/items/coinSilver.png b/arcade/resources/assets/images/items/coinSilver.png similarity index 100% rename from arcade/resources/images/items/coinSilver.png rename to arcade/resources/assets/images/items/coinSilver.png diff --git a/arcade/resources/images/items/coinSilver_test.png b/arcade/resources/assets/images/items/coinSilver_test.png similarity index 100% rename from arcade/resources/images/items/coinSilver_test.png rename to arcade/resources/assets/images/items/coinSilver_test.png diff --git a/arcade/resources/images/items/flagGreen1.png b/arcade/resources/assets/images/items/flagGreen1.png similarity index 100% rename from arcade/resources/images/items/flagGreen1.png rename to arcade/resources/assets/images/items/flagGreen1.png diff --git a/arcade/resources/images/items/flagGreen2.png b/arcade/resources/assets/images/items/flagGreen2.png similarity index 100% rename from arcade/resources/images/items/flagGreen2.png rename to arcade/resources/assets/images/items/flagGreen2.png diff --git a/arcade/resources/images/items/flagGreen_down.png b/arcade/resources/assets/images/items/flagGreen_down.png similarity index 100% rename from arcade/resources/images/items/flagGreen_down.png rename to arcade/resources/assets/images/items/flagGreen_down.png diff --git a/arcade/resources/images/items/flagRed1.png b/arcade/resources/assets/images/items/flagRed1.png similarity index 100% rename from arcade/resources/images/items/flagRed1.png rename to arcade/resources/assets/images/items/flagRed1.png diff --git a/arcade/resources/images/items/flagRed2.png b/arcade/resources/assets/images/items/flagRed2.png similarity index 100% rename from arcade/resources/images/items/flagRed2.png rename to arcade/resources/assets/images/items/flagRed2.png diff --git a/arcade/resources/images/items/flagRed_down.png b/arcade/resources/assets/images/items/flagRed_down.png similarity index 100% rename from arcade/resources/images/items/flagRed_down.png rename to arcade/resources/assets/images/items/flagRed_down.png diff --git a/arcade/resources/images/items/flagYellow1.png b/arcade/resources/assets/images/items/flagYellow1.png similarity index 100% rename from arcade/resources/images/items/flagYellow1.png rename to arcade/resources/assets/images/items/flagYellow1.png diff --git a/arcade/resources/images/items/flagYellow2.png b/arcade/resources/assets/images/items/flagYellow2.png similarity index 100% rename from arcade/resources/images/items/flagYellow2.png rename to arcade/resources/assets/images/items/flagYellow2.png diff --git a/arcade/resources/images/items/flagYellow_down.png b/arcade/resources/assets/images/items/flagYellow_down.png similarity index 100% rename from arcade/resources/images/items/flagYellow_down.png rename to arcade/resources/assets/images/items/flagYellow_down.png diff --git a/arcade/resources/images/items/gemBlue.png b/arcade/resources/assets/images/items/gemBlue.png similarity index 100% rename from arcade/resources/images/items/gemBlue.png rename to arcade/resources/assets/images/items/gemBlue.png diff --git a/arcade/resources/images/items/gemGreen.png b/arcade/resources/assets/images/items/gemGreen.png similarity index 100% rename from arcade/resources/images/items/gemGreen.png rename to arcade/resources/assets/images/items/gemGreen.png diff --git a/arcade/resources/images/items/gemRed.png b/arcade/resources/assets/images/items/gemRed.png similarity index 100% rename from arcade/resources/images/items/gemRed.png rename to arcade/resources/assets/images/items/gemRed.png diff --git a/arcade/resources/images/items/gemYellow.png b/arcade/resources/assets/images/items/gemYellow.png similarity index 100% rename from arcade/resources/images/items/gemYellow.png rename to arcade/resources/assets/images/items/gemYellow.png diff --git a/arcade/resources/images/items/gold_1.png b/arcade/resources/assets/images/items/gold_1.png similarity index 100% rename from arcade/resources/images/items/gold_1.png rename to arcade/resources/assets/images/items/gold_1.png diff --git a/arcade/resources/images/items/gold_2.png b/arcade/resources/assets/images/items/gold_2.png similarity index 100% rename from arcade/resources/images/items/gold_2.png rename to arcade/resources/assets/images/items/gold_2.png diff --git a/arcade/resources/images/items/gold_3.png b/arcade/resources/assets/images/items/gold_3.png similarity index 100% rename from arcade/resources/images/items/gold_3.png rename to arcade/resources/assets/images/items/gold_3.png diff --git a/arcade/resources/images/items/gold_4.png b/arcade/resources/assets/images/items/gold_4.png similarity index 100% rename from arcade/resources/images/items/gold_4.png rename to arcade/resources/assets/images/items/gold_4.png diff --git a/arcade/resources/images/items/keyBlue.png b/arcade/resources/assets/images/items/keyBlue.png similarity index 100% rename from arcade/resources/images/items/keyBlue.png rename to arcade/resources/assets/images/items/keyBlue.png diff --git a/arcade/resources/images/items/keyGreen.png b/arcade/resources/assets/images/items/keyGreen.png similarity index 100% rename from arcade/resources/images/items/keyGreen.png rename to arcade/resources/assets/images/items/keyGreen.png diff --git a/arcade/resources/images/items/keyRed.png b/arcade/resources/assets/images/items/keyRed.png similarity index 100% rename from arcade/resources/images/items/keyRed.png rename to arcade/resources/assets/images/items/keyRed.png diff --git a/arcade/resources/images/items/keyYellow.png b/arcade/resources/assets/images/items/keyYellow.png similarity index 100% rename from arcade/resources/images/items/keyYellow.png rename to arcade/resources/assets/images/items/keyYellow.png diff --git a/arcade/resources/images/items/ladderMid.png b/arcade/resources/assets/images/items/ladderMid.png similarity index 100% rename from arcade/resources/images/items/ladderMid.png rename to arcade/resources/assets/images/items/ladderMid.png diff --git a/arcade/resources/images/items/ladderTop.png b/arcade/resources/assets/images/items/ladderTop.png similarity index 100% rename from arcade/resources/images/items/ladderTop.png rename to arcade/resources/assets/images/items/ladderTop.png diff --git a/arcade/resources/images/items/star.png b/arcade/resources/assets/images/items/star.png similarity index 100% rename from arcade/resources/images/items/star.png rename to arcade/resources/assets/images/items/star.png diff --git a/arcade/resources/images/miami_synth_parallax/car/car-idle.png b/arcade/resources/assets/images/miami_synth_parallax/car/car-idle.png similarity index 100% rename from arcade/resources/images/miami_synth_parallax/car/car-idle.png rename to arcade/resources/assets/images/miami_synth_parallax/car/car-idle.png diff --git a/arcade/resources/images/miami_synth_parallax/car/car-running0.png b/arcade/resources/assets/images/miami_synth_parallax/car/car-running0.png similarity index 100% rename from arcade/resources/images/miami_synth_parallax/car/car-running0.png rename to arcade/resources/assets/images/miami_synth_parallax/car/car-running0.png diff --git a/arcade/resources/images/miami_synth_parallax/car/car-running1.png b/arcade/resources/assets/images/miami_synth_parallax/car/car-running1.png similarity index 100% rename from arcade/resources/images/miami_synth_parallax/car/car-running1.png rename to arcade/resources/assets/images/miami_synth_parallax/car/car-running1.png diff --git a/arcade/resources/images/miami_synth_parallax/car/car-running2.png b/arcade/resources/assets/images/miami_synth_parallax/car/car-running2.png similarity index 100% rename from arcade/resources/images/miami_synth_parallax/car/car-running2.png rename to arcade/resources/assets/images/miami_synth_parallax/car/car-running2.png diff --git a/arcade/resources/images/miami_synth_parallax/car/car-running3.png b/arcade/resources/assets/images/miami_synth_parallax/car/car-running3.png similarity index 100% rename from arcade/resources/images/miami_synth_parallax/car/car-running3.png rename to arcade/resources/assets/images/miami_synth_parallax/car/car-running3.png diff --git a/arcade/resources/images/miami_synth_parallax/layers/back.png b/arcade/resources/assets/images/miami_synth_parallax/layers/back.png similarity index 100% rename from arcade/resources/images/miami_synth_parallax/layers/back.png rename to arcade/resources/assets/images/miami_synth_parallax/layers/back.png diff --git a/arcade/resources/images/miami_synth_parallax/layers/buildings.png b/arcade/resources/assets/images/miami_synth_parallax/layers/buildings.png similarity index 100% rename from arcade/resources/images/miami_synth_parallax/layers/buildings.png rename to arcade/resources/assets/images/miami_synth_parallax/layers/buildings.png diff --git a/arcade/resources/images/miami_synth_parallax/layers/highway.png b/arcade/resources/assets/images/miami_synth_parallax/layers/highway.png similarity index 100% rename from arcade/resources/images/miami_synth_parallax/layers/highway.png rename to arcade/resources/assets/images/miami_synth_parallax/layers/highway.png diff --git a/arcade/resources/images/miami_synth_parallax/layers/palms.png b/arcade/resources/assets/images/miami_synth_parallax/layers/palms.png similarity index 100% rename from arcade/resources/images/miami_synth_parallax/layers/palms.png rename to arcade/resources/assets/images/miami_synth_parallax/layers/palms.png diff --git a/arcade/resources/images/miami_synth_parallax/layers/sun.png b/arcade/resources/assets/images/miami_synth_parallax/layers/sun.png similarity index 100% rename from arcade/resources/images/miami_synth_parallax/layers/sun.png rename to arcade/resources/assets/images/miami_synth_parallax/layers/sun.png diff --git a/arcade/resources/images/miami_synth_parallax/public-license.txt b/arcade/resources/assets/images/miami_synth_parallax/public-license.txt similarity index 100% rename from arcade/resources/images/miami_synth_parallax/public-license.txt rename to arcade/resources/assets/images/miami_synth_parallax/public-license.txt diff --git a/arcade/resources/images/pinball/bumper.png b/arcade/resources/assets/images/pinball/bumper.png similarity index 100% rename from arcade/resources/images/pinball/bumper.png rename to arcade/resources/assets/images/pinball/bumper.png diff --git a/arcade/resources/images/pinball/pool_cue_ball.png b/arcade/resources/assets/images/pinball/pool_cue_ball.png similarity index 100% rename from arcade/resources/images/pinball/pool_cue_ball.png rename to arcade/resources/assets/images/pinball/pool_cue_ball.png diff --git a/arcade/resources/images/readme.txt b/arcade/resources/assets/images/readme.txt similarity index 100% rename from arcade/resources/images/readme.txt rename to arcade/resources/assets/images/readme.txt diff --git a/arcade/resources/images/space_shooter/laserBlue01.png b/arcade/resources/assets/images/space_shooter/laserBlue01.png similarity index 100% rename from arcade/resources/images/space_shooter/laserBlue01.png rename to arcade/resources/assets/images/space_shooter/laserBlue01.png diff --git a/arcade/resources/images/space_shooter/laserRed01.png b/arcade/resources/assets/images/space_shooter/laserRed01.png similarity index 100% rename from arcade/resources/images/space_shooter/laserRed01.png rename to arcade/resources/assets/images/space_shooter/laserRed01.png diff --git a/arcade/resources/images/space_shooter/meteorGrey_big1.png b/arcade/resources/assets/images/space_shooter/meteorGrey_big1.png similarity index 100% rename from arcade/resources/images/space_shooter/meteorGrey_big1.png rename to arcade/resources/assets/images/space_shooter/meteorGrey_big1.png diff --git a/arcade/resources/images/space_shooter/meteorGrey_big2.png b/arcade/resources/assets/images/space_shooter/meteorGrey_big2.png similarity index 100% rename from arcade/resources/images/space_shooter/meteorGrey_big2.png rename to arcade/resources/assets/images/space_shooter/meteorGrey_big2.png diff --git a/arcade/resources/images/space_shooter/meteorGrey_big3.png b/arcade/resources/assets/images/space_shooter/meteorGrey_big3.png similarity index 100% rename from arcade/resources/images/space_shooter/meteorGrey_big3.png rename to arcade/resources/assets/images/space_shooter/meteorGrey_big3.png diff --git a/arcade/resources/images/space_shooter/meteorGrey_big4.png b/arcade/resources/assets/images/space_shooter/meteorGrey_big4.png similarity index 100% rename from arcade/resources/images/space_shooter/meteorGrey_big4.png rename to arcade/resources/assets/images/space_shooter/meteorGrey_big4.png diff --git a/arcade/resources/images/space_shooter/meteorGrey_med1.png b/arcade/resources/assets/images/space_shooter/meteorGrey_med1.png similarity index 100% rename from arcade/resources/images/space_shooter/meteorGrey_med1.png rename to arcade/resources/assets/images/space_shooter/meteorGrey_med1.png diff --git a/arcade/resources/images/space_shooter/meteorGrey_med2.png b/arcade/resources/assets/images/space_shooter/meteorGrey_med2.png similarity index 100% rename from arcade/resources/images/space_shooter/meteorGrey_med2.png rename to arcade/resources/assets/images/space_shooter/meteorGrey_med2.png diff --git a/arcade/resources/images/space_shooter/meteorGrey_small1.png b/arcade/resources/assets/images/space_shooter/meteorGrey_small1.png similarity index 100% rename from arcade/resources/images/space_shooter/meteorGrey_small1.png rename to arcade/resources/assets/images/space_shooter/meteorGrey_small1.png diff --git a/arcade/resources/images/space_shooter/meteorGrey_small2.png b/arcade/resources/assets/images/space_shooter/meteorGrey_small2.png similarity index 100% rename from arcade/resources/images/space_shooter/meteorGrey_small2.png rename to arcade/resources/assets/images/space_shooter/meteorGrey_small2.png diff --git a/arcade/resources/images/space_shooter/meteorGrey_tiny1.png b/arcade/resources/assets/images/space_shooter/meteorGrey_tiny1.png similarity index 100% rename from arcade/resources/images/space_shooter/meteorGrey_tiny1.png rename to arcade/resources/assets/images/space_shooter/meteorGrey_tiny1.png diff --git a/arcade/resources/images/space_shooter/meteorGrey_tiny2.png b/arcade/resources/assets/images/space_shooter/meteorGrey_tiny2.png similarity index 100% rename from arcade/resources/images/space_shooter/meteorGrey_tiny2.png rename to arcade/resources/assets/images/space_shooter/meteorGrey_tiny2.png diff --git a/arcade/resources/images/space_shooter/playerLife1_blue.png b/arcade/resources/assets/images/space_shooter/playerLife1_blue.png similarity index 100% rename from arcade/resources/images/space_shooter/playerLife1_blue.png rename to arcade/resources/assets/images/space_shooter/playerLife1_blue.png diff --git a/arcade/resources/images/space_shooter/playerLife1_green.png b/arcade/resources/assets/images/space_shooter/playerLife1_green.png similarity index 100% rename from arcade/resources/images/space_shooter/playerLife1_green.png rename to arcade/resources/assets/images/space_shooter/playerLife1_green.png diff --git a/arcade/resources/images/space_shooter/playerLife1_orange.png b/arcade/resources/assets/images/space_shooter/playerLife1_orange.png similarity index 100% rename from arcade/resources/images/space_shooter/playerLife1_orange.png rename to arcade/resources/assets/images/space_shooter/playerLife1_orange.png diff --git a/arcade/resources/images/space_shooter/playerShip1_blue.png b/arcade/resources/assets/images/space_shooter/playerShip1_blue.png similarity index 100% rename from arcade/resources/images/space_shooter/playerShip1_blue.png rename to arcade/resources/assets/images/space_shooter/playerShip1_blue.png diff --git a/arcade/resources/images/space_shooter/playerShip1_green.png b/arcade/resources/assets/images/space_shooter/playerShip1_green.png similarity index 100% rename from arcade/resources/images/space_shooter/playerShip1_green.png rename to arcade/resources/assets/images/space_shooter/playerShip1_green.png diff --git a/arcade/resources/images/space_shooter/playerShip1_orange.png b/arcade/resources/assets/images/space_shooter/playerShip1_orange.png similarity index 100% rename from arcade/resources/images/space_shooter/playerShip1_orange.png rename to arcade/resources/assets/images/space_shooter/playerShip1_orange.png diff --git a/arcade/resources/images/space_shooter/playerShip2_orange.png b/arcade/resources/assets/images/space_shooter/playerShip2_orange.png similarity index 100% rename from arcade/resources/images/space_shooter/playerShip2_orange.png rename to arcade/resources/assets/images/space_shooter/playerShip2_orange.png diff --git a/arcade/resources/images/space_shooter/playerShip3_orange.png b/arcade/resources/assets/images/space_shooter/playerShip3_orange.png similarity index 100% rename from arcade/resources/images/space_shooter/playerShip3_orange.png rename to arcade/resources/assets/images/space_shooter/playerShip3_orange.png diff --git a/arcade/resources/images/spritesheets/codepage_437.png b/arcade/resources/assets/images/spritesheets/codepage_437.png similarity index 100% rename from arcade/resources/images/spritesheets/codepage_437.png rename to arcade/resources/assets/images/spritesheets/codepage_437.png diff --git a/arcade/resources/images/spritesheets/explosion.png b/arcade/resources/assets/images/spritesheets/explosion.png similarity index 100% rename from arcade/resources/images/spritesheets/explosion.png rename to arcade/resources/assets/images/spritesheets/explosion.png diff --git a/arcade/resources/images/spritesheets/number_sheet.png b/arcade/resources/assets/images/spritesheets/number_sheet.png similarity index 100% rename from arcade/resources/images/spritesheets/number_sheet.png rename to arcade/resources/assets/images/spritesheets/number_sheet.png diff --git a/arcade/resources/images/spritesheets/tiles.png b/arcade/resources/assets/images/spritesheets/tiles.png similarity index 100% rename from arcade/resources/images/spritesheets/tiles.png rename to arcade/resources/assets/images/spritesheets/tiles.png diff --git a/arcade/resources/images/test_textures/anim.gif b/arcade/resources/assets/images/test_textures/anim.gif similarity index 100% rename from arcade/resources/images/test_textures/anim.gif rename to arcade/resources/assets/images/test_textures/anim.gif diff --git a/arcade/resources/images/test_textures/normal_mapping/diffuse.jpg b/arcade/resources/assets/images/test_textures/normal_mapping/diffuse.jpg similarity index 100% rename from arcade/resources/images/test_textures/normal_mapping/diffuse.jpg rename to arcade/resources/assets/images/test_textures/normal_mapping/diffuse.jpg diff --git a/arcade/resources/images/test_textures/normal_mapping/normal.jpg b/arcade/resources/assets/images/test_textures/normal_mapping/normal.jpg similarity index 100% rename from arcade/resources/images/test_textures/normal_mapping/normal.jpg rename to arcade/resources/assets/images/test_textures/normal_mapping/normal.jpg diff --git a/arcade/resources/images/test_textures/test_texture.png b/arcade/resources/assets/images/test_textures/test_texture.png similarity index 100% rename from arcade/resources/images/test_textures/test_texture.png rename to arcade/resources/assets/images/test_textures/test_texture.png diff --git a/arcade/resources/images/test_textures/xy_square.png b/arcade/resources/assets/images/test_textures/xy_square.png similarity index 100% rename from arcade/resources/images/test_textures/xy_square.png rename to arcade/resources/assets/images/test_textures/xy_square.png diff --git a/arcade/resources/images/tiles/bomb.png b/arcade/resources/assets/images/tiles/bomb.png similarity index 100% rename from arcade/resources/images/tiles/bomb.png rename to arcade/resources/assets/images/tiles/bomb.png diff --git a/arcade/resources/images/tiles/boxCrate.png b/arcade/resources/assets/images/tiles/boxCrate.png similarity index 100% rename from arcade/resources/images/tiles/boxCrate.png rename to arcade/resources/assets/images/tiles/boxCrate.png diff --git a/arcade/resources/images/tiles/boxCrate_double.png b/arcade/resources/assets/images/tiles/boxCrate_double.png similarity index 100% rename from arcade/resources/images/tiles/boxCrate_double.png rename to arcade/resources/assets/images/tiles/boxCrate_double.png diff --git a/arcade/resources/images/tiles/boxCrate_single.png b/arcade/resources/assets/images/tiles/boxCrate_single.png similarity index 100% rename from arcade/resources/images/tiles/boxCrate_single.png rename to arcade/resources/assets/images/tiles/boxCrate_single.png diff --git a/arcade/resources/images/tiles/brickBrown.png b/arcade/resources/assets/images/tiles/brickBrown.png similarity index 100% rename from arcade/resources/images/tiles/brickBrown.png rename to arcade/resources/assets/images/tiles/brickBrown.png diff --git a/arcade/resources/images/tiles/brickGrey.png b/arcade/resources/assets/images/tiles/brickGrey.png similarity index 100% rename from arcade/resources/images/tiles/brickGrey.png rename to arcade/resources/assets/images/tiles/brickGrey.png diff --git a/arcade/resources/images/tiles/brickTextureWhite.png b/arcade/resources/assets/images/tiles/brickTextureWhite.png similarity index 100% rename from arcade/resources/images/tiles/brickTextureWhite.png rename to arcade/resources/assets/images/tiles/brickTextureWhite.png diff --git a/arcade/resources/images/tiles/bridgeA.png b/arcade/resources/assets/images/tiles/bridgeA.png similarity index 100% rename from arcade/resources/images/tiles/bridgeA.png rename to arcade/resources/assets/images/tiles/bridgeA.png diff --git a/arcade/resources/images/tiles/bridgeB.png b/arcade/resources/assets/images/tiles/bridgeB.png similarity index 100% rename from arcade/resources/images/tiles/bridgeB.png rename to arcade/resources/assets/images/tiles/bridgeB.png diff --git a/arcade/resources/images/tiles/bush.png b/arcade/resources/assets/images/tiles/bush.png similarity index 100% rename from arcade/resources/images/tiles/bush.png rename to arcade/resources/assets/images/tiles/bush.png diff --git a/arcade/resources/images/tiles/cactus.png b/arcade/resources/assets/images/tiles/cactus.png similarity index 100% rename from arcade/resources/images/tiles/cactus.png rename to arcade/resources/assets/images/tiles/cactus.png diff --git a/arcade/resources/images/tiles/dirt.png b/arcade/resources/assets/images/tiles/dirt.png similarity index 100% rename from arcade/resources/images/tiles/dirt.png rename to arcade/resources/assets/images/tiles/dirt.png diff --git a/arcade/resources/images/tiles/dirtCenter.png b/arcade/resources/assets/images/tiles/dirtCenter.png similarity index 100% rename from arcade/resources/images/tiles/dirtCenter.png rename to arcade/resources/assets/images/tiles/dirtCenter.png diff --git a/arcade/resources/images/tiles/dirtCenter_rounded.png b/arcade/resources/assets/images/tiles/dirtCenter_rounded.png similarity index 100% rename from arcade/resources/images/tiles/dirtCenter_rounded.png rename to arcade/resources/assets/images/tiles/dirtCenter_rounded.png diff --git a/arcade/resources/images/tiles/dirtCliffAlt_left.png b/arcade/resources/assets/images/tiles/dirtCliffAlt_left.png similarity index 100% rename from arcade/resources/images/tiles/dirtCliffAlt_left.png rename to arcade/resources/assets/images/tiles/dirtCliffAlt_left.png diff --git a/arcade/resources/images/tiles/dirtCliffAlt_right.png b/arcade/resources/assets/images/tiles/dirtCliffAlt_right.png similarity index 100% rename from arcade/resources/images/tiles/dirtCliffAlt_right.png rename to arcade/resources/assets/images/tiles/dirtCliffAlt_right.png diff --git a/arcade/resources/images/tiles/dirtCliff_left.png b/arcade/resources/assets/images/tiles/dirtCliff_left.png similarity index 100% rename from arcade/resources/images/tiles/dirtCliff_left.png rename to arcade/resources/assets/images/tiles/dirtCliff_left.png diff --git a/arcade/resources/images/tiles/dirtCliff_right.png b/arcade/resources/assets/images/tiles/dirtCliff_right.png similarity index 100% rename from arcade/resources/images/tiles/dirtCliff_right.png rename to arcade/resources/assets/images/tiles/dirtCliff_right.png diff --git a/arcade/resources/images/tiles/dirtCorner_left.png b/arcade/resources/assets/images/tiles/dirtCorner_left.png similarity index 100% rename from arcade/resources/images/tiles/dirtCorner_left.png rename to arcade/resources/assets/images/tiles/dirtCorner_left.png diff --git a/arcade/resources/images/tiles/dirtCorner_right.png b/arcade/resources/assets/images/tiles/dirtCorner_right.png similarity index 100% rename from arcade/resources/images/tiles/dirtCorner_right.png rename to arcade/resources/assets/images/tiles/dirtCorner_right.png diff --git a/arcade/resources/images/tiles/dirtHalf.png b/arcade/resources/assets/images/tiles/dirtHalf.png similarity index 100% rename from arcade/resources/images/tiles/dirtHalf.png rename to arcade/resources/assets/images/tiles/dirtHalf.png diff --git a/arcade/resources/images/tiles/dirtHalf_left.png b/arcade/resources/assets/images/tiles/dirtHalf_left.png similarity index 100% rename from arcade/resources/images/tiles/dirtHalf_left.png rename to arcade/resources/assets/images/tiles/dirtHalf_left.png diff --git a/arcade/resources/images/tiles/dirtHalf_mid.png b/arcade/resources/assets/images/tiles/dirtHalf_mid.png similarity index 100% rename from arcade/resources/images/tiles/dirtHalf_mid.png rename to arcade/resources/assets/images/tiles/dirtHalf_mid.png diff --git a/arcade/resources/images/tiles/dirtHalf_right.png b/arcade/resources/assets/images/tiles/dirtHalf_right.png similarity index 100% rename from arcade/resources/images/tiles/dirtHalf_right.png rename to arcade/resources/assets/images/tiles/dirtHalf_right.png diff --git a/arcade/resources/images/tiles/dirtHill_left.png b/arcade/resources/assets/images/tiles/dirtHill_left.png similarity index 100% rename from arcade/resources/images/tiles/dirtHill_left.png rename to arcade/resources/assets/images/tiles/dirtHill_left.png diff --git a/arcade/resources/images/tiles/dirtHill_right.png b/arcade/resources/assets/images/tiles/dirtHill_right.png similarity index 100% rename from arcade/resources/images/tiles/dirtHill_right.png rename to arcade/resources/assets/images/tiles/dirtHill_right.png diff --git a/arcade/resources/images/tiles/dirtLeft.png b/arcade/resources/assets/images/tiles/dirtLeft.png similarity index 100% rename from arcade/resources/images/tiles/dirtLeft.png rename to arcade/resources/assets/images/tiles/dirtLeft.png diff --git a/arcade/resources/images/tiles/dirtMid.png b/arcade/resources/assets/images/tiles/dirtMid.png similarity index 100% rename from arcade/resources/images/tiles/dirtMid.png rename to arcade/resources/assets/images/tiles/dirtMid.png diff --git a/arcade/resources/images/tiles/dirtRight.png b/arcade/resources/assets/images/tiles/dirtRight.png similarity index 100% rename from arcade/resources/images/tiles/dirtRight.png rename to arcade/resources/assets/images/tiles/dirtRight.png diff --git a/arcade/resources/images/tiles/doorClosed_mid.png b/arcade/resources/assets/images/tiles/doorClosed_mid.png similarity index 100% rename from arcade/resources/images/tiles/doorClosed_mid.png rename to arcade/resources/assets/images/tiles/doorClosed_mid.png diff --git a/arcade/resources/images/tiles/doorClosed_top.png b/arcade/resources/assets/images/tiles/doorClosed_top.png similarity index 100% rename from arcade/resources/images/tiles/doorClosed_top.png rename to arcade/resources/assets/images/tiles/doorClosed_top.png diff --git a/arcade/resources/images/tiles/grass.png b/arcade/resources/assets/images/tiles/grass.png similarity index 100% rename from arcade/resources/images/tiles/grass.png rename to arcade/resources/assets/images/tiles/grass.png diff --git a/arcade/resources/images/tiles/grassCenter.png b/arcade/resources/assets/images/tiles/grassCenter.png similarity index 100% rename from arcade/resources/images/tiles/grassCenter.png rename to arcade/resources/assets/images/tiles/grassCenter.png diff --git a/arcade/resources/images/tiles/grassCenter_round.png b/arcade/resources/assets/images/tiles/grassCenter_round.png similarity index 100% rename from arcade/resources/images/tiles/grassCenter_round.png rename to arcade/resources/assets/images/tiles/grassCenter_round.png diff --git a/arcade/resources/images/tiles/grassCliffAlt_left.png b/arcade/resources/assets/images/tiles/grassCliffAlt_left.png similarity index 100% rename from arcade/resources/images/tiles/grassCliffAlt_left.png rename to arcade/resources/assets/images/tiles/grassCliffAlt_left.png diff --git a/arcade/resources/images/tiles/grassCliffAlt_right.png b/arcade/resources/assets/images/tiles/grassCliffAlt_right.png similarity index 100% rename from arcade/resources/images/tiles/grassCliffAlt_right.png rename to arcade/resources/assets/images/tiles/grassCliffAlt_right.png diff --git a/arcade/resources/images/tiles/grassCliff_left.png b/arcade/resources/assets/images/tiles/grassCliff_left.png similarity index 100% rename from arcade/resources/images/tiles/grassCliff_left.png rename to arcade/resources/assets/images/tiles/grassCliff_left.png diff --git a/arcade/resources/images/tiles/grassCliff_right.png b/arcade/resources/assets/images/tiles/grassCliff_right.png similarity index 100% rename from arcade/resources/images/tiles/grassCliff_right.png rename to arcade/resources/assets/images/tiles/grassCliff_right.png diff --git a/arcade/resources/images/tiles/grassCorner_left.png b/arcade/resources/assets/images/tiles/grassCorner_left.png similarity index 100% rename from arcade/resources/images/tiles/grassCorner_left.png rename to arcade/resources/assets/images/tiles/grassCorner_left.png diff --git a/arcade/resources/images/tiles/grassCorner_right.png b/arcade/resources/assets/images/tiles/grassCorner_right.png similarity index 100% rename from arcade/resources/images/tiles/grassCorner_right.png rename to arcade/resources/assets/images/tiles/grassCorner_right.png diff --git a/arcade/resources/images/tiles/grassHalf.png b/arcade/resources/assets/images/tiles/grassHalf.png similarity index 100% rename from arcade/resources/images/tiles/grassHalf.png rename to arcade/resources/assets/images/tiles/grassHalf.png diff --git a/arcade/resources/images/tiles/grassHalf_left.png b/arcade/resources/assets/images/tiles/grassHalf_left.png similarity index 100% rename from arcade/resources/images/tiles/grassHalf_left.png rename to arcade/resources/assets/images/tiles/grassHalf_left.png diff --git a/arcade/resources/images/tiles/grassHalf_mid.png b/arcade/resources/assets/images/tiles/grassHalf_mid.png similarity index 100% rename from arcade/resources/images/tiles/grassHalf_mid.png rename to arcade/resources/assets/images/tiles/grassHalf_mid.png diff --git a/arcade/resources/images/tiles/grassHalf_right.png b/arcade/resources/assets/images/tiles/grassHalf_right.png similarity index 100% rename from arcade/resources/images/tiles/grassHalf_right.png rename to arcade/resources/assets/images/tiles/grassHalf_right.png diff --git a/arcade/resources/images/tiles/grassHill_left.png b/arcade/resources/assets/images/tiles/grassHill_left.png similarity index 100% rename from arcade/resources/images/tiles/grassHill_left.png rename to arcade/resources/assets/images/tiles/grassHill_left.png diff --git a/arcade/resources/images/tiles/grassHill_right.png b/arcade/resources/assets/images/tiles/grassHill_right.png similarity index 100% rename from arcade/resources/images/tiles/grassHill_right.png rename to arcade/resources/assets/images/tiles/grassHill_right.png diff --git a/arcade/resources/images/tiles/grassLeft.png b/arcade/resources/assets/images/tiles/grassLeft.png similarity index 100% rename from arcade/resources/images/tiles/grassLeft.png rename to arcade/resources/assets/images/tiles/grassLeft.png diff --git a/arcade/resources/images/tiles/grassMid.png b/arcade/resources/assets/images/tiles/grassMid.png similarity index 100% rename from arcade/resources/images/tiles/grassMid.png rename to arcade/resources/assets/images/tiles/grassMid.png diff --git a/arcade/resources/images/tiles/grassRight.png b/arcade/resources/assets/images/tiles/grassRight.png similarity index 100% rename from arcade/resources/images/tiles/grassRight.png rename to arcade/resources/assets/images/tiles/grassRight.png diff --git a/arcade/resources/images/tiles/grass_sprout.png b/arcade/resources/assets/images/tiles/grass_sprout.png similarity index 100% rename from arcade/resources/images/tiles/grass_sprout.png rename to arcade/resources/assets/images/tiles/grass_sprout.png diff --git a/arcade/resources/images/tiles/ladderMid.png b/arcade/resources/assets/images/tiles/ladderMid.png similarity index 100% rename from arcade/resources/images/tiles/ladderMid.png rename to arcade/resources/assets/images/tiles/ladderMid.png diff --git a/arcade/resources/images/tiles/ladderTop.png b/arcade/resources/assets/images/tiles/ladderTop.png similarity index 100% rename from arcade/resources/images/tiles/ladderTop.png rename to arcade/resources/assets/images/tiles/ladderTop.png diff --git a/arcade/resources/images/tiles/lava.png b/arcade/resources/assets/images/tiles/lava.png similarity index 100% rename from arcade/resources/images/tiles/lava.png rename to arcade/resources/assets/images/tiles/lava.png diff --git a/arcade/resources/images/tiles/lavaTop_high.png b/arcade/resources/assets/images/tiles/lavaTop_high.png similarity index 100% rename from arcade/resources/images/tiles/lavaTop_high.png rename to arcade/resources/assets/images/tiles/lavaTop_high.png diff --git a/arcade/resources/images/tiles/lavaTop_low.png b/arcade/resources/assets/images/tiles/lavaTop_low.png similarity index 100% rename from arcade/resources/images/tiles/lavaTop_low.png rename to arcade/resources/assets/images/tiles/lavaTop_low.png diff --git a/arcade/resources/images/tiles/leverLeft.png b/arcade/resources/assets/images/tiles/leverLeft.png similarity index 100% rename from arcade/resources/images/tiles/leverLeft.png rename to arcade/resources/assets/images/tiles/leverLeft.png diff --git a/arcade/resources/images/tiles/leverMid.png b/arcade/resources/assets/images/tiles/leverMid.png similarity index 100% rename from arcade/resources/images/tiles/leverMid.png rename to arcade/resources/assets/images/tiles/leverMid.png diff --git a/arcade/resources/images/tiles/leverRight.png b/arcade/resources/assets/images/tiles/leverRight.png similarity index 100% rename from arcade/resources/images/tiles/leverRight.png rename to arcade/resources/assets/images/tiles/leverRight.png diff --git a/arcade/resources/images/tiles/lockRed.png b/arcade/resources/assets/images/tiles/lockRed.png similarity index 100% rename from arcade/resources/images/tiles/lockRed.png rename to arcade/resources/assets/images/tiles/lockRed.png diff --git a/arcade/resources/images/tiles/lockYellow.png b/arcade/resources/assets/images/tiles/lockYellow.png similarity index 100% rename from arcade/resources/images/tiles/lockYellow.png rename to arcade/resources/assets/images/tiles/lockYellow.png diff --git a/arcade/resources/images/tiles/mushroomRed.png b/arcade/resources/assets/images/tiles/mushroomRed.png similarity index 100% rename from arcade/resources/images/tiles/mushroomRed.png rename to arcade/resources/assets/images/tiles/mushroomRed.png diff --git a/arcade/resources/images/tiles/planet.png b/arcade/resources/assets/images/tiles/planet.png similarity index 100% rename from arcade/resources/images/tiles/planet.png rename to arcade/resources/assets/images/tiles/planet.png diff --git a/arcade/resources/images/tiles/planetCenter.png b/arcade/resources/assets/images/tiles/planetCenter.png similarity index 100% rename from arcade/resources/images/tiles/planetCenter.png rename to arcade/resources/assets/images/tiles/planetCenter.png diff --git a/arcade/resources/images/tiles/planetCenter_rounded.png b/arcade/resources/assets/images/tiles/planetCenter_rounded.png similarity index 100% rename from arcade/resources/images/tiles/planetCenter_rounded.png rename to arcade/resources/assets/images/tiles/planetCenter_rounded.png diff --git a/arcade/resources/images/tiles/planetCliffAlt_left.png b/arcade/resources/assets/images/tiles/planetCliffAlt_left.png similarity index 100% rename from arcade/resources/images/tiles/planetCliffAlt_left.png rename to arcade/resources/assets/images/tiles/planetCliffAlt_left.png diff --git a/arcade/resources/images/tiles/planetCliffAlt_right.png b/arcade/resources/assets/images/tiles/planetCliffAlt_right.png similarity index 100% rename from arcade/resources/images/tiles/planetCliffAlt_right.png rename to arcade/resources/assets/images/tiles/planetCliffAlt_right.png diff --git a/arcade/resources/images/tiles/planetCliff_left.png b/arcade/resources/assets/images/tiles/planetCliff_left.png similarity index 100% rename from arcade/resources/images/tiles/planetCliff_left.png rename to arcade/resources/assets/images/tiles/planetCliff_left.png diff --git a/arcade/resources/images/tiles/planetCliff_right.png b/arcade/resources/assets/images/tiles/planetCliff_right.png similarity index 100% rename from arcade/resources/images/tiles/planetCliff_right.png rename to arcade/resources/assets/images/tiles/planetCliff_right.png diff --git a/arcade/resources/images/tiles/planetCorner_left.png b/arcade/resources/assets/images/tiles/planetCorner_left.png similarity index 100% rename from arcade/resources/images/tiles/planetCorner_left.png rename to arcade/resources/assets/images/tiles/planetCorner_left.png diff --git a/arcade/resources/images/tiles/planetCorner_right.png b/arcade/resources/assets/images/tiles/planetCorner_right.png similarity index 100% rename from arcade/resources/images/tiles/planetCorner_right.png rename to arcade/resources/assets/images/tiles/planetCorner_right.png diff --git a/arcade/resources/images/tiles/planetHalf.png b/arcade/resources/assets/images/tiles/planetHalf.png similarity index 100% rename from arcade/resources/images/tiles/planetHalf.png rename to arcade/resources/assets/images/tiles/planetHalf.png diff --git a/arcade/resources/images/tiles/planetHalf_left.png b/arcade/resources/assets/images/tiles/planetHalf_left.png similarity index 100% rename from arcade/resources/images/tiles/planetHalf_left.png rename to arcade/resources/assets/images/tiles/planetHalf_left.png diff --git a/arcade/resources/images/tiles/planetHalf_mid.png b/arcade/resources/assets/images/tiles/planetHalf_mid.png similarity index 100% rename from arcade/resources/images/tiles/planetHalf_mid.png rename to arcade/resources/assets/images/tiles/planetHalf_mid.png diff --git a/arcade/resources/images/tiles/planetHalf_right.png b/arcade/resources/assets/images/tiles/planetHalf_right.png similarity index 100% rename from arcade/resources/images/tiles/planetHalf_right.png rename to arcade/resources/assets/images/tiles/planetHalf_right.png diff --git a/arcade/resources/images/tiles/planetHill_left.png b/arcade/resources/assets/images/tiles/planetHill_left.png similarity index 100% rename from arcade/resources/images/tiles/planetHill_left.png rename to arcade/resources/assets/images/tiles/planetHill_left.png diff --git a/arcade/resources/images/tiles/planetHill_right.png b/arcade/resources/assets/images/tiles/planetHill_right.png similarity index 100% rename from arcade/resources/images/tiles/planetHill_right.png rename to arcade/resources/assets/images/tiles/planetHill_right.png diff --git a/arcade/resources/images/tiles/planetLeft.png b/arcade/resources/assets/images/tiles/planetLeft.png similarity index 100% rename from arcade/resources/images/tiles/planetLeft.png rename to arcade/resources/assets/images/tiles/planetLeft.png diff --git a/arcade/resources/images/tiles/planetMid.png b/arcade/resources/assets/images/tiles/planetMid.png similarity index 100% rename from arcade/resources/images/tiles/planetMid.png rename to arcade/resources/assets/images/tiles/planetMid.png diff --git a/arcade/resources/images/tiles/planetRight.png b/arcade/resources/assets/images/tiles/planetRight.png similarity index 100% rename from arcade/resources/images/tiles/planetRight.png rename to arcade/resources/assets/images/tiles/planetRight.png diff --git a/arcade/resources/images/tiles/plantPurple.png b/arcade/resources/assets/images/tiles/plantPurple.png similarity index 100% rename from arcade/resources/images/tiles/plantPurple.png rename to arcade/resources/assets/images/tiles/plantPurple.png diff --git a/arcade/resources/images/tiles/rock.png b/arcade/resources/assets/images/tiles/rock.png similarity index 100% rename from arcade/resources/images/tiles/rock.png rename to arcade/resources/assets/images/tiles/rock.png diff --git a/arcade/resources/images/tiles/sand.png b/arcade/resources/assets/images/tiles/sand.png similarity index 100% rename from arcade/resources/images/tiles/sand.png rename to arcade/resources/assets/images/tiles/sand.png diff --git a/arcade/resources/images/tiles/sandCenter.png b/arcade/resources/assets/images/tiles/sandCenter.png similarity index 100% rename from arcade/resources/images/tiles/sandCenter.png rename to arcade/resources/assets/images/tiles/sandCenter.png diff --git a/arcade/resources/images/tiles/sandCenter_rounded.png b/arcade/resources/assets/images/tiles/sandCenter_rounded.png similarity index 100% rename from arcade/resources/images/tiles/sandCenter_rounded.png rename to arcade/resources/assets/images/tiles/sandCenter_rounded.png diff --git a/arcade/resources/images/tiles/sandCliffAlt_left.png b/arcade/resources/assets/images/tiles/sandCliffAlt_left.png similarity index 100% rename from arcade/resources/images/tiles/sandCliffAlt_left.png rename to arcade/resources/assets/images/tiles/sandCliffAlt_left.png diff --git a/arcade/resources/images/tiles/sandCliffAlt_right.png b/arcade/resources/assets/images/tiles/sandCliffAlt_right.png similarity index 100% rename from arcade/resources/images/tiles/sandCliffAlt_right.png rename to arcade/resources/assets/images/tiles/sandCliffAlt_right.png diff --git a/arcade/resources/images/tiles/sandCliff_left.png b/arcade/resources/assets/images/tiles/sandCliff_left.png similarity index 100% rename from arcade/resources/images/tiles/sandCliff_left.png rename to arcade/resources/assets/images/tiles/sandCliff_left.png diff --git a/arcade/resources/images/tiles/sandCliff_right.png b/arcade/resources/assets/images/tiles/sandCliff_right.png similarity index 100% rename from arcade/resources/images/tiles/sandCliff_right.png rename to arcade/resources/assets/images/tiles/sandCliff_right.png diff --git a/arcade/resources/images/tiles/sandCorner_left.png b/arcade/resources/assets/images/tiles/sandCorner_left.png similarity index 100% rename from arcade/resources/images/tiles/sandCorner_left.png rename to arcade/resources/assets/images/tiles/sandCorner_left.png diff --git a/arcade/resources/images/tiles/sandCorner_right.png b/arcade/resources/assets/images/tiles/sandCorner_right.png similarity index 100% rename from arcade/resources/images/tiles/sandCorner_right.png rename to arcade/resources/assets/images/tiles/sandCorner_right.png diff --git a/arcade/resources/images/tiles/sandHalf.png b/arcade/resources/assets/images/tiles/sandHalf.png similarity index 100% rename from arcade/resources/images/tiles/sandHalf.png rename to arcade/resources/assets/images/tiles/sandHalf.png diff --git a/arcade/resources/images/tiles/sandHalf_left.png b/arcade/resources/assets/images/tiles/sandHalf_left.png similarity index 100% rename from arcade/resources/images/tiles/sandHalf_left.png rename to arcade/resources/assets/images/tiles/sandHalf_left.png diff --git a/arcade/resources/images/tiles/sandHalf_mid.png b/arcade/resources/assets/images/tiles/sandHalf_mid.png similarity index 100% rename from arcade/resources/images/tiles/sandHalf_mid.png rename to arcade/resources/assets/images/tiles/sandHalf_mid.png diff --git a/arcade/resources/images/tiles/sandHalf_right.png b/arcade/resources/assets/images/tiles/sandHalf_right.png similarity index 100% rename from arcade/resources/images/tiles/sandHalf_right.png rename to arcade/resources/assets/images/tiles/sandHalf_right.png diff --git a/arcade/resources/images/tiles/sandHill_left.png b/arcade/resources/assets/images/tiles/sandHill_left.png similarity index 100% rename from arcade/resources/images/tiles/sandHill_left.png rename to arcade/resources/assets/images/tiles/sandHill_left.png diff --git a/arcade/resources/images/tiles/sandHill_right.png b/arcade/resources/assets/images/tiles/sandHill_right.png similarity index 100% rename from arcade/resources/images/tiles/sandHill_right.png rename to arcade/resources/assets/images/tiles/sandHill_right.png diff --git a/arcade/resources/images/tiles/sandLeft.png b/arcade/resources/assets/images/tiles/sandLeft.png similarity index 100% rename from arcade/resources/images/tiles/sandLeft.png rename to arcade/resources/assets/images/tiles/sandLeft.png diff --git a/arcade/resources/images/tiles/sandMid.png b/arcade/resources/assets/images/tiles/sandMid.png similarity index 100% rename from arcade/resources/images/tiles/sandMid.png rename to arcade/resources/assets/images/tiles/sandMid.png diff --git a/arcade/resources/images/tiles/sandRight.png b/arcade/resources/assets/images/tiles/sandRight.png similarity index 100% rename from arcade/resources/images/tiles/sandRight.png rename to arcade/resources/assets/images/tiles/sandRight.png diff --git a/arcade/resources/images/tiles/signExit.png b/arcade/resources/assets/images/tiles/signExit.png similarity index 100% rename from arcade/resources/images/tiles/signExit.png rename to arcade/resources/assets/images/tiles/signExit.png diff --git a/arcade/resources/images/tiles/signLeft.png b/arcade/resources/assets/images/tiles/signLeft.png similarity index 100% rename from arcade/resources/images/tiles/signLeft.png rename to arcade/resources/assets/images/tiles/signLeft.png diff --git a/arcade/resources/images/tiles/signRight.png b/arcade/resources/assets/images/tiles/signRight.png similarity index 100% rename from arcade/resources/images/tiles/signRight.png rename to arcade/resources/assets/images/tiles/signRight.png diff --git a/arcade/resources/images/tiles/snow.png b/arcade/resources/assets/images/tiles/snow.png similarity index 100% rename from arcade/resources/images/tiles/snow.png rename to arcade/resources/assets/images/tiles/snow.png diff --git a/arcade/resources/images/tiles/snowCenter.png b/arcade/resources/assets/images/tiles/snowCenter.png similarity index 100% rename from arcade/resources/images/tiles/snowCenter.png rename to arcade/resources/assets/images/tiles/snowCenter.png diff --git a/arcade/resources/images/tiles/snowCenter_rounded.png b/arcade/resources/assets/images/tiles/snowCenter_rounded.png similarity index 100% rename from arcade/resources/images/tiles/snowCenter_rounded.png rename to arcade/resources/assets/images/tiles/snowCenter_rounded.png diff --git a/arcade/resources/images/tiles/snowCliffAlt_left.png b/arcade/resources/assets/images/tiles/snowCliffAlt_left.png similarity index 100% rename from arcade/resources/images/tiles/snowCliffAlt_left.png rename to arcade/resources/assets/images/tiles/snowCliffAlt_left.png diff --git a/arcade/resources/images/tiles/snowCliffAlt_right.png b/arcade/resources/assets/images/tiles/snowCliffAlt_right.png similarity index 100% rename from arcade/resources/images/tiles/snowCliffAlt_right.png rename to arcade/resources/assets/images/tiles/snowCliffAlt_right.png diff --git a/arcade/resources/images/tiles/snowCliff_left.png b/arcade/resources/assets/images/tiles/snowCliff_left.png similarity index 100% rename from arcade/resources/images/tiles/snowCliff_left.png rename to arcade/resources/assets/images/tiles/snowCliff_left.png diff --git a/arcade/resources/images/tiles/snowCliff_right.png b/arcade/resources/assets/images/tiles/snowCliff_right.png similarity index 100% rename from arcade/resources/images/tiles/snowCliff_right.png rename to arcade/resources/assets/images/tiles/snowCliff_right.png diff --git a/arcade/resources/images/tiles/snowCorner_left.png b/arcade/resources/assets/images/tiles/snowCorner_left.png similarity index 100% rename from arcade/resources/images/tiles/snowCorner_left.png rename to arcade/resources/assets/images/tiles/snowCorner_left.png diff --git a/arcade/resources/images/tiles/snowCorner_right.png b/arcade/resources/assets/images/tiles/snowCorner_right.png similarity index 100% rename from arcade/resources/images/tiles/snowCorner_right.png rename to arcade/resources/assets/images/tiles/snowCorner_right.png diff --git a/arcade/resources/images/tiles/snowHalf.png b/arcade/resources/assets/images/tiles/snowHalf.png similarity index 100% rename from arcade/resources/images/tiles/snowHalf.png rename to arcade/resources/assets/images/tiles/snowHalf.png diff --git a/arcade/resources/images/tiles/snowHalf_left.png b/arcade/resources/assets/images/tiles/snowHalf_left.png similarity index 100% rename from arcade/resources/images/tiles/snowHalf_left.png rename to arcade/resources/assets/images/tiles/snowHalf_left.png diff --git a/arcade/resources/images/tiles/snowHalf_mid.png b/arcade/resources/assets/images/tiles/snowHalf_mid.png similarity index 100% rename from arcade/resources/images/tiles/snowHalf_mid.png rename to arcade/resources/assets/images/tiles/snowHalf_mid.png diff --git a/arcade/resources/images/tiles/snowHalf_right.png b/arcade/resources/assets/images/tiles/snowHalf_right.png similarity index 100% rename from arcade/resources/images/tiles/snowHalf_right.png rename to arcade/resources/assets/images/tiles/snowHalf_right.png diff --git a/arcade/resources/images/tiles/snowHill_left.png b/arcade/resources/assets/images/tiles/snowHill_left.png similarity index 100% rename from arcade/resources/images/tiles/snowHill_left.png rename to arcade/resources/assets/images/tiles/snowHill_left.png diff --git a/arcade/resources/images/tiles/snowHill_right.png b/arcade/resources/assets/images/tiles/snowHill_right.png similarity index 100% rename from arcade/resources/images/tiles/snowHill_right.png rename to arcade/resources/assets/images/tiles/snowHill_right.png diff --git a/arcade/resources/images/tiles/snowLeft.png b/arcade/resources/assets/images/tiles/snowLeft.png similarity index 100% rename from arcade/resources/images/tiles/snowLeft.png rename to arcade/resources/assets/images/tiles/snowLeft.png diff --git a/arcade/resources/images/tiles/snowMid.png b/arcade/resources/assets/images/tiles/snowMid.png similarity index 100% rename from arcade/resources/images/tiles/snowMid.png rename to arcade/resources/assets/images/tiles/snowMid.png diff --git a/arcade/resources/images/tiles/snowRight.png b/arcade/resources/assets/images/tiles/snowRight.png similarity index 100% rename from arcade/resources/images/tiles/snowRight.png rename to arcade/resources/assets/images/tiles/snowRight.png diff --git a/arcade/resources/images/tiles/snow_pile.png b/arcade/resources/assets/images/tiles/snow_pile.png similarity index 100% rename from arcade/resources/images/tiles/snow_pile.png rename to arcade/resources/assets/images/tiles/snow_pile.png diff --git a/arcade/resources/images/tiles/spikes.png b/arcade/resources/assets/images/tiles/spikes.png similarity index 100% rename from arcade/resources/images/tiles/spikes.png rename to arcade/resources/assets/images/tiles/spikes.png diff --git a/arcade/resources/images/tiles/stone.png b/arcade/resources/assets/images/tiles/stone.png similarity index 100% rename from arcade/resources/images/tiles/stone.png rename to arcade/resources/assets/images/tiles/stone.png diff --git a/arcade/resources/images/tiles/stoneCenter.png b/arcade/resources/assets/images/tiles/stoneCenter.png similarity index 100% rename from arcade/resources/images/tiles/stoneCenter.png rename to arcade/resources/assets/images/tiles/stoneCenter.png diff --git a/arcade/resources/images/tiles/stoneCenter_rounded.png b/arcade/resources/assets/images/tiles/stoneCenter_rounded.png similarity index 100% rename from arcade/resources/images/tiles/stoneCenter_rounded.png rename to arcade/resources/assets/images/tiles/stoneCenter_rounded.png diff --git a/arcade/resources/images/tiles/stoneCliffAlt_left.png b/arcade/resources/assets/images/tiles/stoneCliffAlt_left.png similarity index 100% rename from arcade/resources/images/tiles/stoneCliffAlt_left.png rename to arcade/resources/assets/images/tiles/stoneCliffAlt_left.png diff --git a/arcade/resources/images/tiles/stoneCliffAlt_right.png b/arcade/resources/assets/images/tiles/stoneCliffAlt_right.png similarity index 100% rename from arcade/resources/images/tiles/stoneCliffAlt_right.png rename to arcade/resources/assets/images/tiles/stoneCliffAlt_right.png diff --git a/arcade/resources/images/tiles/stoneCliff_left.png b/arcade/resources/assets/images/tiles/stoneCliff_left.png similarity index 100% rename from arcade/resources/images/tiles/stoneCliff_left.png rename to arcade/resources/assets/images/tiles/stoneCliff_left.png diff --git a/arcade/resources/images/tiles/stoneCliff_right.png b/arcade/resources/assets/images/tiles/stoneCliff_right.png similarity index 100% rename from arcade/resources/images/tiles/stoneCliff_right.png rename to arcade/resources/assets/images/tiles/stoneCliff_right.png diff --git a/arcade/resources/images/tiles/stoneCorner_left.png b/arcade/resources/assets/images/tiles/stoneCorner_left.png similarity index 100% rename from arcade/resources/images/tiles/stoneCorner_left.png rename to arcade/resources/assets/images/tiles/stoneCorner_left.png diff --git a/arcade/resources/images/tiles/stoneCorner_right.png b/arcade/resources/assets/images/tiles/stoneCorner_right.png similarity index 100% rename from arcade/resources/images/tiles/stoneCorner_right.png rename to arcade/resources/assets/images/tiles/stoneCorner_right.png diff --git a/arcade/resources/images/tiles/stoneHalf.png b/arcade/resources/assets/images/tiles/stoneHalf.png similarity index 100% rename from arcade/resources/images/tiles/stoneHalf.png rename to arcade/resources/assets/images/tiles/stoneHalf.png diff --git a/arcade/resources/images/tiles/stoneHalf_left.png b/arcade/resources/assets/images/tiles/stoneHalf_left.png similarity index 100% rename from arcade/resources/images/tiles/stoneHalf_left.png rename to arcade/resources/assets/images/tiles/stoneHalf_left.png diff --git a/arcade/resources/images/tiles/stoneHalf_mid.png b/arcade/resources/assets/images/tiles/stoneHalf_mid.png similarity index 100% rename from arcade/resources/images/tiles/stoneHalf_mid.png rename to arcade/resources/assets/images/tiles/stoneHalf_mid.png diff --git a/arcade/resources/images/tiles/stoneHalf_right.png b/arcade/resources/assets/images/tiles/stoneHalf_right.png similarity index 100% rename from arcade/resources/images/tiles/stoneHalf_right.png rename to arcade/resources/assets/images/tiles/stoneHalf_right.png diff --git a/arcade/resources/images/tiles/stoneHill_left.png b/arcade/resources/assets/images/tiles/stoneHill_left.png similarity index 100% rename from arcade/resources/images/tiles/stoneHill_left.png rename to arcade/resources/assets/images/tiles/stoneHill_left.png diff --git a/arcade/resources/images/tiles/stoneHill_right.png b/arcade/resources/assets/images/tiles/stoneHill_right.png similarity index 100% rename from arcade/resources/images/tiles/stoneHill_right.png rename to arcade/resources/assets/images/tiles/stoneHill_right.png diff --git a/arcade/resources/images/tiles/stoneLeft.png b/arcade/resources/assets/images/tiles/stoneLeft.png similarity index 100% rename from arcade/resources/images/tiles/stoneLeft.png rename to arcade/resources/assets/images/tiles/stoneLeft.png diff --git a/arcade/resources/images/tiles/stoneMid.png b/arcade/resources/assets/images/tiles/stoneMid.png similarity index 100% rename from arcade/resources/images/tiles/stoneMid.png rename to arcade/resources/assets/images/tiles/stoneMid.png diff --git a/arcade/resources/images/tiles/stoneRight.png b/arcade/resources/assets/images/tiles/stoneRight.png similarity index 100% rename from arcade/resources/images/tiles/stoneRight.png rename to arcade/resources/assets/images/tiles/stoneRight.png diff --git a/arcade/resources/images/tiles/switchGreen.png b/arcade/resources/assets/images/tiles/switchGreen.png similarity index 100% rename from arcade/resources/images/tiles/switchGreen.png rename to arcade/resources/assets/images/tiles/switchGreen.png diff --git a/arcade/resources/images/tiles/switchGreen_pressed.png b/arcade/resources/assets/images/tiles/switchGreen_pressed.png similarity index 100% rename from arcade/resources/images/tiles/switchGreen_pressed.png rename to arcade/resources/assets/images/tiles/switchGreen_pressed.png diff --git a/arcade/resources/images/tiles/switchRed.png b/arcade/resources/assets/images/tiles/switchRed.png similarity index 100% rename from arcade/resources/images/tiles/switchRed.png rename to arcade/resources/assets/images/tiles/switchRed.png diff --git a/arcade/resources/images/tiles/switchRed_pressed.png b/arcade/resources/assets/images/tiles/switchRed_pressed.png similarity index 100% rename from arcade/resources/images/tiles/switchRed_pressed.png rename to arcade/resources/assets/images/tiles/switchRed_pressed.png diff --git a/arcade/resources/images/tiles/torch1.png b/arcade/resources/assets/images/tiles/torch1.png similarity index 100% rename from arcade/resources/images/tiles/torch1.png rename to arcade/resources/assets/images/tiles/torch1.png diff --git a/arcade/resources/images/tiles/torch2.png b/arcade/resources/assets/images/tiles/torch2.png similarity index 100% rename from arcade/resources/images/tiles/torch2.png rename to arcade/resources/assets/images/tiles/torch2.png diff --git a/arcade/resources/images/tiles/torchOff.png b/arcade/resources/assets/images/tiles/torchOff.png similarity index 100% rename from arcade/resources/images/tiles/torchOff.png rename to arcade/resources/assets/images/tiles/torchOff.png diff --git a/arcade/resources/images/tiles/water.png b/arcade/resources/assets/images/tiles/water.png similarity index 100% rename from arcade/resources/images/tiles/water.png rename to arcade/resources/assets/images/tiles/water.png diff --git a/arcade/resources/images/tiles/waterTop_high.png b/arcade/resources/assets/images/tiles/waterTop_high.png similarity index 100% rename from arcade/resources/images/tiles/waterTop_high.png rename to arcade/resources/assets/images/tiles/waterTop_high.png diff --git a/arcade/resources/images/tiles/waterTop_low.png b/arcade/resources/assets/images/tiles/waterTop_low.png similarity index 100% rename from arcade/resources/images/tiles/waterTop_low.png rename to arcade/resources/assets/images/tiles/waterTop_low.png diff --git a/arcade/resources/images/topdown_tanks/tankBlue_barrel1.png b/arcade/resources/assets/images/topdown_tanks/tankBlue_barrel1.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBlue_barrel1.png rename to arcade/resources/assets/images/topdown_tanks/tankBlue_barrel1.png diff --git a/arcade/resources/images/topdown_tanks/tankBlue_barrel1_outline.png b/arcade/resources/assets/images/topdown_tanks/tankBlue_barrel1_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBlue_barrel1_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankBlue_barrel1_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankBlue_barrel2.png b/arcade/resources/assets/images/topdown_tanks/tankBlue_barrel2.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBlue_barrel2.png rename to arcade/resources/assets/images/topdown_tanks/tankBlue_barrel2.png diff --git a/arcade/resources/images/topdown_tanks/tankBlue_barrel2_outline.png b/arcade/resources/assets/images/topdown_tanks/tankBlue_barrel2_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBlue_barrel2_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankBlue_barrel2_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankBlue_barrel3.png b/arcade/resources/assets/images/topdown_tanks/tankBlue_barrel3.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBlue_barrel3.png rename to arcade/resources/assets/images/topdown_tanks/tankBlue_barrel3.png diff --git a/arcade/resources/images/topdown_tanks/tankBlue_barrel3_outline.png b/arcade/resources/assets/images/topdown_tanks/tankBlue_barrel3_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBlue_barrel3_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankBlue_barrel3_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_bigRed.png b/arcade/resources/assets/images/topdown_tanks/tankBody_bigRed.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_bigRed.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_bigRed.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_bigRed_outline.png b/arcade/resources/assets/images/topdown_tanks/tankBody_bigRed_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_bigRed_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_bigRed_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_blue.png b/arcade/resources/assets/images/topdown_tanks/tankBody_blue.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_blue.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_blue.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_blue_outline.png b/arcade/resources/assets/images/topdown_tanks/tankBody_blue_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_blue_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_blue_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_dark.png b/arcade/resources/assets/images/topdown_tanks/tankBody_dark.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_dark.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_dark.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_darkLarge.png b/arcade/resources/assets/images/topdown_tanks/tankBody_darkLarge.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_darkLarge.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_darkLarge.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_darkLarge_outline.png b/arcade/resources/assets/images/topdown_tanks/tankBody_darkLarge_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_darkLarge_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_darkLarge_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_dark_outline.png b/arcade/resources/assets/images/topdown_tanks/tankBody_dark_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_dark_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_dark_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_green.png b/arcade/resources/assets/images/topdown_tanks/tankBody_green.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_green.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_green.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_green_outline.png b/arcade/resources/assets/images/topdown_tanks/tankBody_green_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_green_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_green_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_huge.png b/arcade/resources/assets/images/topdown_tanks/tankBody_huge.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_huge.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_huge.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_huge_outline.png b/arcade/resources/assets/images/topdown_tanks/tankBody_huge_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_huge_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_huge_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_red.png b/arcade/resources/assets/images/topdown_tanks/tankBody_red.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_red.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_red.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_red_outline.png b/arcade/resources/assets/images/topdown_tanks/tankBody_red_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_red_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_red_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_sand.png b/arcade/resources/assets/images/topdown_tanks/tankBody_sand.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_sand.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_sand.png diff --git a/arcade/resources/images/topdown_tanks/tankBody_sand_outline.png b/arcade/resources/assets/images/topdown_tanks/tankBody_sand_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankBody_sand_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankBody_sand_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankDark_barrel1.png b/arcade/resources/assets/images/topdown_tanks/tankDark_barrel1.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankDark_barrel1.png rename to arcade/resources/assets/images/topdown_tanks/tankDark_barrel1.png diff --git a/arcade/resources/images/topdown_tanks/tankDark_barrel1_outline.png b/arcade/resources/assets/images/topdown_tanks/tankDark_barrel1_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankDark_barrel1_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankDark_barrel1_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankDark_barrel2.png b/arcade/resources/assets/images/topdown_tanks/tankDark_barrel2.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankDark_barrel2.png rename to arcade/resources/assets/images/topdown_tanks/tankDark_barrel2.png diff --git a/arcade/resources/images/topdown_tanks/tankDark_barrel2_outline.png b/arcade/resources/assets/images/topdown_tanks/tankDark_barrel2_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankDark_barrel2_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankDark_barrel2_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankDark_barrel3.png b/arcade/resources/assets/images/topdown_tanks/tankDark_barrel3.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankDark_barrel3.png rename to arcade/resources/assets/images/topdown_tanks/tankDark_barrel3.png diff --git a/arcade/resources/images/topdown_tanks/tankDark_barrel3_outline.png b/arcade/resources/assets/images/topdown_tanks/tankDark_barrel3_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankDark_barrel3_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankDark_barrel3_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankGreen_barrel1.png b/arcade/resources/assets/images/topdown_tanks/tankGreen_barrel1.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankGreen_barrel1.png rename to arcade/resources/assets/images/topdown_tanks/tankGreen_barrel1.png diff --git a/arcade/resources/images/topdown_tanks/tankGreen_barrel1_outline.png b/arcade/resources/assets/images/topdown_tanks/tankGreen_barrel1_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankGreen_barrel1_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankGreen_barrel1_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankGreen_barrel2.png b/arcade/resources/assets/images/topdown_tanks/tankGreen_barrel2.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankGreen_barrel2.png rename to arcade/resources/assets/images/topdown_tanks/tankGreen_barrel2.png diff --git a/arcade/resources/images/topdown_tanks/tankGreen_barrel2_outline.png b/arcade/resources/assets/images/topdown_tanks/tankGreen_barrel2_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankGreen_barrel2_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankGreen_barrel2_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankGreen_barrel3.png b/arcade/resources/assets/images/topdown_tanks/tankGreen_barrel3.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankGreen_barrel3.png rename to arcade/resources/assets/images/topdown_tanks/tankGreen_barrel3.png diff --git a/arcade/resources/images/topdown_tanks/tankGreen_barrel3_outline.png b/arcade/resources/assets/images/topdown_tanks/tankGreen_barrel3_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankGreen_barrel3_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankGreen_barrel3_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankRed_barrel1.png b/arcade/resources/assets/images/topdown_tanks/tankRed_barrel1.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankRed_barrel1.png rename to arcade/resources/assets/images/topdown_tanks/tankRed_barrel1.png diff --git a/arcade/resources/images/topdown_tanks/tankRed_barrel1_outline.png b/arcade/resources/assets/images/topdown_tanks/tankRed_barrel1_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankRed_barrel1_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankRed_barrel1_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankRed_barrel2.png b/arcade/resources/assets/images/topdown_tanks/tankRed_barrel2.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankRed_barrel2.png rename to arcade/resources/assets/images/topdown_tanks/tankRed_barrel2.png diff --git a/arcade/resources/images/topdown_tanks/tankRed_barrel2_outline.png b/arcade/resources/assets/images/topdown_tanks/tankRed_barrel2_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankRed_barrel2_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankRed_barrel2_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankRed_barrel3.png b/arcade/resources/assets/images/topdown_tanks/tankRed_barrel3.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankRed_barrel3.png rename to arcade/resources/assets/images/topdown_tanks/tankRed_barrel3.png diff --git a/arcade/resources/images/topdown_tanks/tankRed_barrel3_outline.png b/arcade/resources/assets/images/topdown_tanks/tankRed_barrel3_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankRed_barrel3_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankRed_barrel3_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankSand_barrel1.png b/arcade/resources/assets/images/topdown_tanks/tankSand_barrel1.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankSand_barrel1.png rename to arcade/resources/assets/images/topdown_tanks/tankSand_barrel1.png diff --git a/arcade/resources/images/topdown_tanks/tankSand_barrel1_outline.png b/arcade/resources/assets/images/topdown_tanks/tankSand_barrel1_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankSand_barrel1_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankSand_barrel1_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankSand_barrel2.png b/arcade/resources/assets/images/topdown_tanks/tankSand_barrel2.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankSand_barrel2.png rename to arcade/resources/assets/images/topdown_tanks/tankSand_barrel2.png diff --git a/arcade/resources/images/topdown_tanks/tankSand_barrel2_outline.png b/arcade/resources/assets/images/topdown_tanks/tankSand_barrel2_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankSand_barrel2_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankSand_barrel2_outline.png diff --git a/arcade/resources/images/topdown_tanks/tankSand_barrel3.png b/arcade/resources/assets/images/topdown_tanks/tankSand_barrel3.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankSand_barrel3.png rename to arcade/resources/assets/images/topdown_tanks/tankSand_barrel3.png diff --git a/arcade/resources/images/topdown_tanks/tankSand_barrel3_outline.png b/arcade/resources/assets/images/topdown_tanks/tankSand_barrel3_outline.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tankSand_barrel3_outline.png rename to arcade/resources/assets/images/topdown_tanks/tankSand_barrel3_outline.png diff --git a/arcade/resources/images/topdown_tanks/tank_blue.png b/arcade/resources/assets/images/topdown_tanks/tank_blue.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tank_blue.png rename to arcade/resources/assets/images/topdown_tanks/tank_blue.png diff --git a/arcade/resources/images/topdown_tanks/tank_dark.png b/arcade/resources/assets/images/topdown_tanks/tank_dark.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tank_dark.png rename to arcade/resources/assets/images/topdown_tanks/tank_dark.png diff --git a/arcade/resources/images/topdown_tanks/tank_green.png b/arcade/resources/assets/images/topdown_tanks/tank_green.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tank_green.png rename to arcade/resources/assets/images/topdown_tanks/tank_green.png diff --git a/arcade/resources/images/topdown_tanks/tank_red.png b/arcade/resources/assets/images/topdown_tanks/tank_red.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tank_red.png rename to arcade/resources/assets/images/topdown_tanks/tank_red.png diff --git a/arcade/resources/images/topdown_tanks/tank_sand.png b/arcade/resources/assets/images/topdown_tanks/tank_sand.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tank_sand.png rename to arcade/resources/assets/images/topdown_tanks/tank_sand.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass1.png b/arcade/resources/assets/images/topdown_tanks/tileGrass1.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass1.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass1.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass2.png b/arcade/resources/assets/images/topdown_tanks/tileGrass2.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass2.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass2.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadCornerLL.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadCornerLL.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadCornerLL.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadCornerLL.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadCornerLR.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadCornerLR.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadCornerLR.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadCornerLR.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadCornerUL.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadCornerUL.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadCornerUL.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadCornerUL.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadCornerUR.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadCornerUR.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadCornerUR.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadCornerUR.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadCrossing.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadCrossing.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadCrossing.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadCrossing.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadCrossingRound.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadCrossingRound.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadCrossingRound.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadCrossingRound.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadEast.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadEast.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadEast.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadEast.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadNorth.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadNorth.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadNorth.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadNorth.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadSplitE.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadSplitE.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadSplitE.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadSplitE.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadSplitN.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadSplitN.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadSplitN.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadSplitN.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadSplitS.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadSplitS.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadSplitS.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadSplitS.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadSplitW.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadSplitW.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadSplitW.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadSplitW.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadTransitionE.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionE.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadTransitionE.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionE.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadTransitionE_dirt.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionE_dirt.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadTransitionE_dirt.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionE_dirt.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadTransitionN.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionN.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadTransitionN.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionN.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadTransitionN_dirt.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionN_dirt.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadTransitionN_dirt.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionN_dirt.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadTransitionS.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionS.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadTransitionS.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionS.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadTransitionS_dirt.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionS_dirt.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadTransitionS_dirt.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionS_dirt.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadTransitionW.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionW.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadTransitionW.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionW.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_roadTransitionW_dirt.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionW_dirt.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_roadTransitionW_dirt.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_roadTransitionW_dirt.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_transitionE.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_transitionE.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_transitionE.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_transitionE.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_transitionN.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_transitionN.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_transitionN.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_transitionN.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_transitionS.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_transitionS.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_transitionS.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_transitionS.png diff --git a/arcade/resources/images/topdown_tanks/tileGrass_transitionW.png b/arcade/resources/assets/images/topdown_tanks/tileGrass_transitionW.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileGrass_transitionW.png rename to arcade/resources/assets/images/topdown_tanks/tileGrass_transitionW.png diff --git a/arcade/resources/images/topdown_tanks/tileSand1.png b/arcade/resources/assets/images/topdown_tanks/tileSand1.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand1.png rename to arcade/resources/assets/images/topdown_tanks/tileSand1.png diff --git a/arcade/resources/images/topdown_tanks/tileSand2.png b/arcade/resources/assets/images/topdown_tanks/tileSand2.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand2.png rename to arcade/resources/assets/images/topdown_tanks/tileSand2.png diff --git a/arcade/resources/images/topdown_tanks/tileSand_roadCornerLL.png b/arcade/resources/assets/images/topdown_tanks/tileSand_roadCornerLL.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand_roadCornerLL.png rename to arcade/resources/assets/images/topdown_tanks/tileSand_roadCornerLL.png diff --git a/arcade/resources/images/topdown_tanks/tileSand_roadCornerLR.png b/arcade/resources/assets/images/topdown_tanks/tileSand_roadCornerLR.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand_roadCornerLR.png rename to arcade/resources/assets/images/topdown_tanks/tileSand_roadCornerLR.png diff --git a/arcade/resources/images/topdown_tanks/tileSand_roadCornerUL.png b/arcade/resources/assets/images/topdown_tanks/tileSand_roadCornerUL.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand_roadCornerUL.png rename to arcade/resources/assets/images/topdown_tanks/tileSand_roadCornerUL.png diff --git a/arcade/resources/images/topdown_tanks/tileSand_roadCornerUR.png b/arcade/resources/assets/images/topdown_tanks/tileSand_roadCornerUR.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand_roadCornerUR.png rename to arcade/resources/assets/images/topdown_tanks/tileSand_roadCornerUR.png diff --git a/arcade/resources/images/topdown_tanks/tileSand_roadCrossing.png b/arcade/resources/assets/images/topdown_tanks/tileSand_roadCrossing.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand_roadCrossing.png rename to arcade/resources/assets/images/topdown_tanks/tileSand_roadCrossing.png diff --git a/arcade/resources/images/topdown_tanks/tileSand_roadCrossingRound.png b/arcade/resources/assets/images/topdown_tanks/tileSand_roadCrossingRound.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand_roadCrossingRound.png rename to arcade/resources/assets/images/topdown_tanks/tileSand_roadCrossingRound.png diff --git a/arcade/resources/images/topdown_tanks/tileSand_roadEast.png b/arcade/resources/assets/images/topdown_tanks/tileSand_roadEast.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand_roadEast.png rename to arcade/resources/assets/images/topdown_tanks/tileSand_roadEast.png diff --git a/arcade/resources/images/topdown_tanks/tileSand_roadNorth.png b/arcade/resources/assets/images/topdown_tanks/tileSand_roadNorth.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand_roadNorth.png rename to arcade/resources/assets/images/topdown_tanks/tileSand_roadNorth.png diff --git a/arcade/resources/images/topdown_tanks/tileSand_roadSplitE.png b/arcade/resources/assets/images/topdown_tanks/tileSand_roadSplitE.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand_roadSplitE.png rename to arcade/resources/assets/images/topdown_tanks/tileSand_roadSplitE.png diff --git a/arcade/resources/images/topdown_tanks/tileSand_roadSplitN.png b/arcade/resources/assets/images/topdown_tanks/tileSand_roadSplitN.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand_roadSplitN.png rename to arcade/resources/assets/images/topdown_tanks/tileSand_roadSplitN.png diff --git a/arcade/resources/images/topdown_tanks/tileSand_roadSplitS.png b/arcade/resources/assets/images/topdown_tanks/tileSand_roadSplitS.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand_roadSplitS.png rename to arcade/resources/assets/images/topdown_tanks/tileSand_roadSplitS.png diff --git a/arcade/resources/images/topdown_tanks/tileSand_roadSplitW.png b/arcade/resources/assets/images/topdown_tanks/tileSand_roadSplitW.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tileSand_roadSplitW.png rename to arcade/resources/assets/images/topdown_tanks/tileSand_roadSplitW.png diff --git a/arcade/resources/images/topdown_tanks/tracksDouble.png b/arcade/resources/assets/images/topdown_tanks/tracksDouble.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tracksDouble.png rename to arcade/resources/assets/images/topdown_tanks/tracksDouble.png diff --git a/arcade/resources/images/topdown_tanks/tracksLarge.png b/arcade/resources/assets/images/topdown_tanks/tracksLarge.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tracksLarge.png rename to arcade/resources/assets/images/topdown_tanks/tracksLarge.png diff --git a/arcade/resources/images/topdown_tanks/tracksSmall.png b/arcade/resources/assets/images/topdown_tanks/tracksSmall.png similarity index 100% rename from arcade/resources/images/topdown_tanks/tracksSmall.png rename to arcade/resources/assets/images/topdown_tanks/tracksSmall.png diff --git a/arcade/resources/images/topdown_tanks/treeBrown_large.png b/arcade/resources/assets/images/topdown_tanks/treeBrown_large.png similarity index 100% rename from arcade/resources/images/topdown_tanks/treeBrown_large.png rename to arcade/resources/assets/images/topdown_tanks/treeBrown_large.png diff --git a/arcade/resources/images/topdown_tanks/treeBrown_small.png b/arcade/resources/assets/images/topdown_tanks/treeBrown_small.png similarity index 100% rename from arcade/resources/images/topdown_tanks/treeBrown_small.png rename to arcade/resources/assets/images/topdown_tanks/treeBrown_small.png diff --git a/arcade/resources/images/topdown_tanks/treeGreen_large.png b/arcade/resources/assets/images/topdown_tanks/treeGreen_large.png similarity index 100% rename from arcade/resources/images/topdown_tanks/treeGreen_large.png rename to arcade/resources/assets/images/topdown_tanks/treeGreen_large.png diff --git a/arcade/resources/images/topdown_tanks/treeGreen_small.png b/arcade/resources/assets/images/topdown_tanks/treeGreen_small.png similarity index 100% rename from arcade/resources/images/topdown_tanks/treeGreen_small.png rename to arcade/resources/assets/images/topdown_tanks/treeGreen_small.png diff --git a/arcade/resources/music/1918.mp3 b/arcade/resources/assets/music/1918.mp3 similarity index 100% rename from arcade/resources/music/1918.mp3 rename to arcade/resources/assets/music/1918.mp3 diff --git a/arcade/resources/music/funkyrobot.mp3 b/arcade/resources/assets/music/funkyrobot.mp3 similarity index 100% rename from arcade/resources/music/funkyrobot.mp3 rename to arcade/resources/assets/music/funkyrobot.mp3 diff --git a/arcade/resources/music/readme.txt b/arcade/resources/assets/music/readme.txt similarity index 100% rename from arcade/resources/music/readme.txt rename to arcade/resources/assets/music/readme.txt diff --git a/arcade/resources/onscreen_controls/flat_dark/a.png b/arcade/resources/assets/onscreen_controls/flat_dark/a.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/a.png rename to arcade/resources/assets/onscreen_controls/flat_dark/a.png diff --git a/arcade/resources/onscreen_controls/flat_dark/b.png b/arcade/resources/assets/onscreen_controls/flat_dark/b.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/b.png rename to arcade/resources/assets/onscreen_controls/flat_dark/b.png diff --git a/arcade/resources/onscreen_controls/flat_dark/cancel.png b/arcade/resources/assets/onscreen_controls/flat_dark/cancel.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/cancel.png rename to arcade/resources/assets/onscreen_controls/flat_dark/cancel.png diff --git a/arcade/resources/onscreen_controls/flat_dark/checked.png b/arcade/resources/assets/onscreen_controls/flat_dark/checked.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/checked.png rename to arcade/resources/assets/onscreen_controls/flat_dark/checked.png diff --git a/arcade/resources/onscreen_controls/flat_dark/close.png b/arcade/resources/assets/onscreen_controls/flat_dark/close.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/close.png rename to arcade/resources/assets/onscreen_controls/flat_dark/close.png diff --git a/arcade/resources/onscreen_controls/flat_dark/down.png b/arcade/resources/assets/onscreen_controls/flat_dark/down.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/down.png rename to arcade/resources/assets/onscreen_controls/flat_dark/down.png diff --git a/arcade/resources/onscreen_controls/flat_dark/expand.png b/arcade/resources/assets/onscreen_controls/flat_dark/expand.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/expand.png rename to arcade/resources/assets/onscreen_controls/flat_dark/expand.png diff --git a/arcade/resources/onscreen_controls/flat_dark/flatDark20.png b/arcade/resources/assets/onscreen_controls/flat_dark/flatDark20.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/flatDark20.png rename to arcade/resources/assets/onscreen_controls/flat_dark/flatDark20.png diff --git a/arcade/resources/onscreen_controls/flat_dark/gear.png b/arcade/resources/assets/onscreen_controls/flat_dark/gear.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/gear.png rename to arcade/resources/assets/onscreen_controls/flat_dark/gear.png diff --git a/arcade/resources/onscreen_controls/flat_dark/hamburger.png b/arcade/resources/assets/onscreen_controls/flat_dark/hamburger.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/hamburger.png rename to arcade/resources/assets/onscreen_controls/flat_dark/hamburger.png diff --git a/arcade/resources/onscreen_controls/flat_dark/key_round.png b/arcade/resources/assets/onscreen_controls/flat_dark/key_round.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/key_round.png rename to arcade/resources/assets/onscreen_controls/flat_dark/key_round.png diff --git a/arcade/resources/onscreen_controls/flat_dark/key_square.png b/arcade/resources/assets/onscreen_controls/flat_dark/key_square.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/key_square.png rename to arcade/resources/assets/onscreen_controls/flat_dark/key_square.png diff --git a/arcade/resources/onscreen_controls/flat_dark/l.png b/arcade/resources/assets/onscreen_controls/flat_dark/l.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/l.png rename to arcade/resources/assets/onscreen_controls/flat_dark/l.png diff --git a/arcade/resources/onscreen_controls/flat_dark/left.png b/arcade/resources/assets/onscreen_controls/flat_dark/left.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/left.png rename to arcade/resources/assets/onscreen_controls/flat_dark/left.png diff --git a/arcade/resources/onscreen_controls/flat_dark/music_off.png b/arcade/resources/assets/onscreen_controls/flat_dark/music_off.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/music_off.png rename to arcade/resources/assets/onscreen_controls/flat_dark/music_off.png diff --git a/arcade/resources/onscreen_controls/flat_dark/music_on.png b/arcade/resources/assets/onscreen_controls/flat_dark/music_on.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/music_on.png rename to arcade/resources/assets/onscreen_controls/flat_dark/music_on.png diff --git a/arcade/resources/onscreen_controls/flat_dark/pause.png b/arcade/resources/assets/onscreen_controls/flat_dark/pause.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/pause.png rename to arcade/resources/assets/onscreen_controls/flat_dark/pause.png diff --git a/arcade/resources/onscreen_controls/flat_dark/pause_square.png b/arcade/resources/assets/onscreen_controls/flat_dark/pause_square.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/pause_square.png rename to arcade/resources/assets/onscreen_controls/flat_dark/pause_square.png diff --git a/arcade/resources/onscreen_controls/flat_dark/play.png b/arcade/resources/assets/onscreen_controls/flat_dark/play.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/play.png rename to arcade/resources/assets/onscreen_controls/flat_dark/play.png diff --git a/arcade/resources/onscreen_controls/flat_dark/r.png b/arcade/resources/assets/onscreen_controls/flat_dark/r.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/r.png rename to arcade/resources/assets/onscreen_controls/flat_dark/r.png diff --git a/arcade/resources/onscreen_controls/flat_dark/right.png b/arcade/resources/assets/onscreen_controls/flat_dark/right.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/right.png rename to arcade/resources/assets/onscreen_controls/flat_dark/right.png diff --git a/arcade/resources/onscreen_controls/flat_dark/save.png b/arcade/resources/assets/onscreen_controls/flat_dark/save.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/save.png rename to arcade/resources/assets/onscreen_controls/flat_dark/save.png diff --git a/arcade/resources/onscreen_controls/flat_dark/search.png b/arcade/resources/assets/onscreen_controls/flat_dark/search.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/search.png rename to arcade/resources/assets/onscreen_controls/flat_dark/search.png diff --git a/arcade/resources/onscreen_controls/flat_dark/select.png b/arcade/resources/assets/onscreen_controls/flat_dark/select.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/select.png rename to arcade/resources/assets/onscreen_controls/flat_dark/select.png diff --git a/arcade/resources/onscreen_controls/flat_dark/sound_off.png b/arcade/resources/assets/onscreen_controls/flat_dark/sound_off.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/sound_off.png rename to arcade/resources/assets/onscreen_controls/flat_dark/sound_off.png diff --git a/arcade/resources/onscreen_controls/flat_dark/sound_on.png b/arcade/resources/assets/onscreen_controls/flat_dark/sound_on.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/sound_on.png rename to arcade/resources/assets/onscreen_controls/flat_dark/sound_on.png diff --git a/arcade/resources/onscreen_controls/flat_dark/star.png b/arcade/resources/assets/onscreen_controls/flat_dark/star.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/star.png rename to arcade/resources/assets/onscreen_controls/flat_dark/star.png diff --git a/arcade/resources/onscreen_controls/flat_dark/star_square.png b/arcade/resources/assets/onscreen_controls/flat_dark/star_square.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/star_square.png rename to arcade/resources/assets/onscreen_controls/flat_dark/star_square.png diff --git a/arcade/resources/onscreen_controls/flat_dark/start.png b/arcade/resources/assets/onscreen_controls/flat_dark/start.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/start.png rename to arcade/resources/assets/onscreen_controls/flat_dark/start.png diff --git a/arcade/resources/onscreen_controls/flat_dark/unchecked.png b/arcade/resources/assets/onscreen_controls/flat_dark/unchecked.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/unchecked.png rename to arcade/resources/assets/onscreen_controls/flat_dark/unchecked.png diff --git a/arcade/resources/onscreen_controls/flat_dark/up.png b/arcade/resources/assets/onscreen_controls/flat_dark/up.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/up.png rename to arcade/resources/assets/onscreen_controls/flat_dark/up.png diff --git a/arcade/resources/onscreen_controls/flat_dark/wrench.png b/arcade/resources/assets/onscreen_controls/flat_dark/wrench.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/wrench.png rename to arcade/resources/assets/onscreen_controls/flat_dark/wrench.png diff --git a/arcade/resources/onscreen_controls/flat_dark/x.png b/arcade/resources/assets/onscreen_controls/flat_dark/x.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/x.png rename to arcade/resources/assets/onscreen_controls/flat_dark/x.png diff --git a/arcade/resources/onscreen_controls/flat_dark/y.png b/arcade/resources/assets/onscreen_controls/flat_dark/y.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_dark/y.png rename to arcade/resources/assets/onscreen_controls/flat_dark/y.png diff --git a/arcade/resources/onscreen_controls/flat_light/a.png b/arcade/resources/assets/onscreen_controls/flat_light/a.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/a.png rename to arcade/resources/assets/onscreen_controls/flat_light/a.png diff --git a/arcade/resources/onscreen_controls/flat_light/b.png b/arcade/resources/assets/onscreen_controls/flat_light/b.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/b.png rename to arcade/resources/assets/onscreen_controls/flat_light/b.png diff --git a/arcade/resources/onscreen_controls/flat_light/back.png b/arcade/resources/assets/onscreen_controls/flat_light/back.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/back.png rename to arcade/resources/assets/onscreen_controls/flat_light/back.png diff --git a/arcade/resources/onscreen_controls/flat_light/cancel.png b/arcade/resources/assets/onscreen_controls/flat_light/cancel.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/cancel.png rename to arcade/resources/assets/onscreen_controls/flat_light/cancel.png diff --git a/arcade/resources/onscreen_controls/flat_light/checked.png b/arcade/resources/assets/onscreen_controls/flat_light/checked.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/checked.png rename to arcade/resources/assets/onscreen_controls/flat_light/checked.png diff --git a/arcade/resources/onscreen_controls/flat_light/close.png b/arcade/resources/assets/onscreen_controls/flat_light/close.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/close.png rename to arcade/resources/assets/onscreen_controls/flat_light/close.png diff --git a/arcade/resources/onscreen_controls/flat_light/down.png b/arcade/resources/assets/onscreen_controls/flat_light/down.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/down.png rename to arcade/resources/assets/onscreen_controls/flat_light/down.png diff --git a/arcade/resources/onscreen_controls/flat_light/expand.png b/arcade/resources/assets/onscreen_controls/flat_light/expand.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/expand.png rename to arcade/resources/assets/onscreen_controls/flat_light/expand.png diff --git a/arcade/resources/onscreen_controls/flat_light/gear.png b/arcade/resources/assets/onscreen_controls/flat_light/gear.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/gear.png rename to arcade/resources/assets/onscreen_controls/flat_light/gear.png diff --git a/arcade/resources/onscreen_controls/flat_light/hamburger.png b/arcade/resources/assets/onscreen_controls/flat_light/hamburger.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/hamburger.png rename to arcade/resources/assets/onscreen_controls/flat_light/hamburger.png diff --git a/arcade/resources/onscreen_controls/flat_light/key_round.png b/arcade/resources/assets/onscreen_controls/flat_light/key_round.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/key_round.png rename to arcade/resources/assets/onscreen_controls/flat_light/key_round.png diff --git a/arcade/resources/onscreen_controls/flat_light/key_square.png b/arcade/resources/assets/onscreen_controls/flat_light/key_square.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/key_square.png rename to arcade/resources/assets/onscreen_controls/flat_light/key_square.png diff --git a/arcade/resources/onscreen_controls/flat_light/l.png b/arcade/resources/assets/onscreen_controls/flat_light/l.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/l.png rename to arcade/resources/assets/onscreen_controls/flat_light/l.png diff --git a/arcade/resources/onscreen_controls/flat_light/left.png b/arcade/resources/assets/onscreen_controls/flat_light/left.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/left.png rename to arcade/resources/assets/onscreen_controls/flat_light/left.png diff --git a/arcade/resources/onscreen_controls/flat_light/music_off.png b/arcade/resources/assets/onscreen_controls/flat_light/music_off.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/music_off.png rename to arcade/resources/assets/onscreen_controls/flat_light/music_off.png diff --git a/arcade/resources/onscreen_controls/flat_light/music_on.png b/arcade/resources/assets/onscreen_controls/flat_light/music_on.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/music_on.png rename to arcade/resources/assets/onscreen_controls/flat_light/music_on.png diff --git a/arcade/resources/onscreen_controls/flat_light/pause.png b/arcade/resources/assets/onscreen_controls/flat_light/pause.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/pause.png rename to arcade/resources/assets/onscreen_controls/flat_light/pause.png diff --git a/arcade/resources/onscreen_controls/flat_light/pause_square.png b/arcade/resources/assets/onscreen_controls/flat_light/pause_square.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/pause_square.png rename to arcade/resources/assets/onscreen_controls/flat_light/pause_square.png diff --git a/arcade/resources/onscreen_controls/flat_light/play.png b/arcade/resources/assets/onscreen_controls/flat_light/play.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/play.png rename to arcade/resources/assets/onscreen_controls/flat_light/play.png diff --git a/arcade/resources/onscreen_controls/flat_light/r.png b/arcade/resources/assets/onscreen_controls/flat_light/r.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/r.png rename to arcade/resources/assets/onscreen_controls/flat_light/r.png diff --git a/arcade/resources/onscreen_controls/flat_light/right.png b/arcade/resources/assets/onscreen_controls/flat_light/right.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/right.png rename to arcade/resources/assets/onscreen_controls/flat_light/right.png diff --git a/arcade/resources/onscreen_controls/flat_light/save.png b/arcade/resources/assets/onscreen_controls/flat_light/save.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/save.png rename to arcade/resources/assets/onscreen_controls/flat_light/save.png diff --git a/arcade/resources/onscreen_controls/flat_light/search.png b/arcade/resources/assets/onscreen_controls/flat_light/search.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/search.png rename to arcade/resources/assets/onscreen_controls/flat_light/search.png diff --git a/arcade/resources/onscreen_controls/flat_light/select.png b/arcade/resources/assets/onscreen_controls/flat_light/select.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/select.png rename to arcade/resources/assets/onscreen_controls/flat_light/select.png diff --git a/arcade/resources/onscreen_controls/flat_light/sound_off.png b/arcade/resources/assets/onscreen_controls/flat_light/sound_off.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/sound_off.png rename to arcade/resources/assets/onscreen_controls/flat_light/sound_off.png diff --git a/arcade/resources/onscreen_controls/flat_light/sound_on.png b/arcade/resources/assets/onscreen_controls/flat_light/sound_on.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/sound_on.png rename to arcade/resources/assets/onscreen_controls/flat_light/sound_on.png diff --git a/arcade/resources/onscreen_controls/flat_light/star_round.png b/arcade/resources/assets/onscreen_controls/flat_light/star_round.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/star_round.png rename to arcade/resources/assets/onscreen_controls/flat_light/star_round.png diff --git a/arcade/resources/onscreen_controls/flat_light/star_square.png b/arcade/resources/assets/onscreen_controls/flat_light/star_square.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/star_square.png rename to arcade/resources/assets/onscreen_controls/flat_light/star_square.png diff --git a/arcade/resources/onscreen_controls/flat_light/start.png b/arcade/resources/assets/onscreen_controls/flat_light/start.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/start.png rename to arcade/resources/assets/onscreen_controls/flat_light/start.png diff --git a/arcade/resources/onscreen_controls/flat_light/unchecked.png b/arcade/resources/assets/onscreen_controls/flat_light/unchecked.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/unchecked.png rename to arcade/resources/assets/onscreen_controls/flat_light/unchecked.png diff --git a/arcade/resources/onscreen_controls/flat_light/up.png b/arcade/resources/assets/onscreen_controls/flat_light/up.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/up.png rename to arcade/resources/assets/onscreen_controls/flat_light/up.png diff --git a/arcade/resources/onscreen_controls/flat_light/wrench.png b/arcade/resources/assets/onscreen_controls/flat_light/wrench.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/wrench.png rename to arcade/resources/assets/onscreen_controls/flat_light/wrench.png diff --git a/arcade/resources/onscreen_controls/flat_light/x.png b/arcade/resources/assets/onscreen_controls/flat_light/x.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/x.png rename to arcade/resources/assets/onscreen_controls/flat_light/x.png diff --git a/arcade/resources/onscreen_controls/flat_light/y.png b/arcade/resources/assets/onscreen_controls/flat_light/y.png similarity index 100% rename from arcade/resources/onscreen_controls/flat_light/y.png rename to arcade/resources/assets/onscreen_controls/flat_light/y.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/a.png b/arcade/resources/assets/onscreen_controls/shaded_dark/a.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/a.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/a.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/b.png b/arcade/resources/assets/onscreen_controls/shaded_dark/b.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/b.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/b.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/back.png b/arcade/resources/assets/onscreen_controls/shaded_dark/back.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/back.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/back.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/cancel.png b/arcade/resources/assets/onscreen_controls/shaded_dark/cancel.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/cancel.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/cancel.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/checked.png b/arcade/resources/assets/onscreen_controls/shaded_dark/checked.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/checked.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/checked.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/close.png b/arcade/resources/assets/onscreen_controls/shaded_dark/close.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/close.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/close.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/down.png b/arcade/resources/assets/onscreen_controls/shaded_dark/down.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/down.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/down.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/expand.png b/arcade/resources/assets/onscreen_controls/shaded_dark/expand.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/expand.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/expand.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/gear.png b/arcade/resources/assets/onscreen_controls/shaded_dark/gear.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/gear.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/gear.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/hamburger.png b/arcade/resources/assets/onscreen_controls/shaded_dark/hamburger.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/hamburger.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/hamburger.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/key_round.png b/arcade/resources/assets/onscreen_controls/shaded_dark/key_round.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/key_round.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/key_round.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/key_square.png b/arcade/resources/assets/onscreen_controls/shaded_dark/key_square.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/key_square.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/key_square.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/l.png b/arcade/resources/assets/onscreen_controls/shaded_dark/l.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/l.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/l.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/left.png b/arcade/resources/assets/onscreen_controls/shaded_dark/left.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/left.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/left.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/music_off.png b/arcade/resources/assets/onscreen_controls/shaded_dark/music_off.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/music_off.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/music_off.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/music_on.png b/arcade/resources/assets/onscreen_controls/shaded_dark/music_on.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/music_on.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/music_on.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/pause.png b/arcade/resources/assets/onscreen_controls/shaded_dark/pause.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/pause.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/pause.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/pause_square.png b/arcade/resources/assets/onscreen_controls/shaded_dark/pause_square.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/pause_square.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/pause_square.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/play.png b/arcade/resources/assets/onscreen_controls/shaded_dark/play.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/play.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/play.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/r.png b/arcade/resources/assets/onscreen_controls/shaded_dark/r.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/r.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/r.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/right.png b/arcade/resources/assets/onscreen_controls/shaded_dark/right.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/right.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/right.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/save.png b/arcade/resources/assets/onscreen_controls/shaded_dark/save.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/save.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/save.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/search.png b/arcade/resources/assets/onscreen_controls/shaded_dark/search.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/search.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/search.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/select.png b/arcade/resources/assets/onscreen_controls/shaded_dark/select.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/select.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/select.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/sound_off.png b/arcade/resources/assets/onscreen_controls/shaded_dark/sound_off.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/sound_off.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/sound_off.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/sound_on.png b/arcade/resources/assets/onscreen_controls/shaded_dark/sound_on.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/sound_on.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/sound_on.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/star_round.png b/arcade/resources/assets/onscreen_controls/shaded_dark/star_round.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/star_round.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/star_round.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/star_square.png b/arcade/resources/assets/onscreen_controls/shaded_dark/star_square.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/star_square.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/star_square.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/start.png b/arcade/resources/assets/onscreen_controls/shaded_dark/start.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/start.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/start.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/unchecked.png b/arcade/resources/assets/onscreen_controls/shaded_dark/unchecked.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/unchecked.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/unchecked.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/up.png b/arcade/resources/assets/onscreen_controls/shaded_dark/up.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/up.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/up.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/wrench.png b/arcade/resources/assets/onscreen_controls/shaded_dark/wrench.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/wrench.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/wrench.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/x.png b/arcade/resources/assets/onscreen_controls/shaded_dark/x.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/x.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/x.png diff --git a/arcade/resources/onscreen_controls/shaded_dark/y.png b/arcade/resources/assets/onscreen_controls/shaded_dark/y.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_dark/y.png rename to arcade/resources/assets/onscreen_controls/shaded_dark/y.png diff --git a/arcade/resources/onscreen_controls/shaded_light/a.png b/arcade/resources/assets/onscreen_controls/shaded_light/a.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/a.png rename to arcade/resources/assets/onscreen_controls/shaded_light/a.png diff --git a/arcade/resources/onscreen_controls/shaded_light/b.png b/arcade/resources/assets/onscreen_controls/shaded_light/b.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/b.png rename to arcade/resources/assets/onscreen_controls/shaded_light/b.png diff --git a/arcade/resources/onscreen_controls/shaded_light/back.png b/arcade/resources/assets/onscreen_controls/shaded_light/back.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/back.png rename to arcade/resources/assets/onscreen_controls/shaded_light/back.png diff --git a/arcade/resources/onscreen_controls/shaded_light/cancel.png b/arcade/resources/assets/onscreen_controls/shaded_light/cancel.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/cancel.png rename to arcade/resources/assets/onscreen_controls/shaded_light/cancel.png diff --git a/arcade/resources/onscreen_controls/shaded_light/checked.png b/arcade/resources/assets/onscreen_controls/shaded_light/checked.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/checked.png rename to arcade/resources/assets/onscreen_controls/shaded_light/checked.png diff --git a/arcade/resources/onscreen_controls/shaded_light/close.png b/arcade/resources/assets/onscreen_controls/shaded_light/close.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/close.png rename to arcade/resources/assets/onscreen_controls/shaded_light/close.png diff --git a/arcade/resources/onscreen_controls/shaded_light/down.png b/arcade/resources/assets/onscreen_controls/shaded_light/down.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/down.png rename to arcade/resources/assets/onscreen_controls/shaded_light/down.png diff --git a/arcade/resources/onscreen_controls/shaded_light/expand.png b/arcade/resources/assets/onscreen_controls/shaded_light/expand.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/expand.png rename to arcade/resources/assets/onscreen_controls/shaded_light/expand.png diff --git a/arcade/resources/onscreen_controls/shaded_light/gear.png b/arcade/resources/assets/onscreen_controls/shaded_light/gear.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/gear.png rename to arcade/resources/assets/onscreen_controls/shaded_light/gear.png diff --git a/arcade/resources/onscreen_controls/shaded_light/hamburger.png b/arcade/resources/assets/onscreen_controls/shaded_light/hamburger.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/hamburger.png rename to arcade/resources/assets/onscreen_controls/shaded_light/hamburger.png diff --git a/arcade/resources/onscreen_controls/shaded_light/key.png b/arcade/resources/assets/onscreen_controls/shaded_light/key.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/key.png rename to arcade/resources/assets/onscreen_controls/shaded_light/key.png diff --git a/arcade/resources/onscreen_controls/shaded_light/key_round.png b/arcade/resources/assets/onscreen_controls/shaded_light/key_round.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/key_round.png rename to arcade/resources/assets/onscreen_controls/shaded_light/key_round.png diff --git a/arcade/resources/onscreen_controls/shaded_light/l.png b/arcade/resources/assets/onscreen_controls/shaded_light/l.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/l.png rename to arcade/resources/assets/onscreen_controls/shaded_light/l.png diff --git a/arcade/resources/onscreen_controls/shaded_light/left.png b/arcade/resources/assets/onscreen_controls/shaded_light/left.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/left.png rename to arcade/resources/assets/onscreen_controls/shaded_light/left.png diff --git a/arcade/resources/onscreen_controls/shaded_light/music_off.png b/arcade/resources/assets/onscreen_controls/shaded_light/music_off.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/music_off.png rename to arcade/resources/assets/onscreen_controls/shaded_light/music_off.png diff --git a/arcade/resources/onscreen_controls/shaded_light/music_on.png b/arcade/resources/assets/onscreen_controls/shaded_light/music_on.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/music_on.png rename to arcade/resources/assets/onscreen_controls/shaded_light/music_on.png diff --git a/arcade/resources/onscreen_controls/shaded_light/pause.png b/arcade/resources/assets/onscreen_controls/shaded_light/pause.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/pause.png rename to arcade/resources/assets/onscreen_controls/shaded_light/pause.png diff --git a/arcade/resources/onscreen_controls/shaded_light/pause_square.png b/arcade/resources/assets/onscreen_controls/shaded_light/pause_square.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/pause_square.png rename to arcade/resources/assets/onscreen_controls/shaded_light/pause_square.png diff --git a/arcade/resources/onscreen_controls/shaded_light/play.png b/arcade/resources/assets/onscreen_controls/shaded_light/play.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/play.png rename to arcade/resources/assets/onscreen_controls/shaded_light/play.png diff --git a/arcade/resources/onscreen_controls/shaded_light/r.png b/arcade/resources/assets/onscreen_controls/shaded_light/r.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/r.png rename to arcade/resources/assets/onscreen_controls/shaded_light/r.png diff --git a/arcade/resources/onscreen_controls/shaded_light/right.png b/arcade/resources/assets/onscreen_controls/shaded_light/right.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/right.png rename to arcade/resources/assets/onscreen_controls/shaded_light/right.png diff --git a/arcade/resources/onscreen_controls/shaded_light/save.png b/arcade/resources/assets/onscreen_controls/shaded_light/save.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/save.png rename to arcade/resources/assets/onscreen_controls/shaded_light/save.png diff --git a/arcade/resources/onscreen_controls/shaded_light/search.png b/arcade/resources/assets/onscreen_controls/shaded_light/search.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/search.png rename to arcade/resources/assets/onscreen_controls/shaded_light/search.png diff --git a/arcade/resources/onscreen_controls/shaded_light/select.png b/arcade/resources/assets/onscreen_controls/shaded_light/select.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/select.png rename to arcade/resources/assets/onscreen_controls/shaded_light/select.png diff --git a/arcade/resources/onscreen_controls/shaded_light/sound_off.png b/arcade/resources/assets/onscreen_controls/shaded_light/sound_off.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/sound_off.png rename to arcade/resources/assets/onscreen_controls/shaded_light/sound_off.png diff --git a/arcade/resources/onscreen_controls/shaded_light/sound_on.png b/arcade/resources/assets/onscreen_controls/shaded_light/sound_on.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/sound_on.png rename to arcade/resources/assets/onscreen_controls/shaded_light/sound_on.png diff --git a/arcade/resources/onscreen_controls/shaded_light/star_round.png b/arcade/resources/assets/onscreen_controls/shaded_light/star_round.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/star_round.png rename to arcade/resources/assets/onscreen_controls/shaded_light/star_round.png diff --git a/arcade/resources/onscreen_controls/shaded_light/star_square.png b/arcade/resources/assets/onscreen_controls/shaded_light/star_square.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/star_square.png rename to arcade/resources/assets/onscreen_controls/shaded_light/star_square.png diff --git a/arcade/resources/onscreen_controls/shaded_light/start.png b/arcade/resources/assets/onscreen_controls/shaded_light/start.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/start.png rename to arcade/resources/assets/onscreen_controls/shaded_light/start.png diff --git a/arcade/resources/onscreen_controls/shaded_light/unchecked.png b/arcade/resources/assets/onscreen_controls/shaded_light/unchecked.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/unchecked.png rename to arcade/resources/assets/onscreen_controls/shaded_light/unchecked.png diff --git a/arcade/resources/onscreen_controls/shaded_light/up.png b/arcade/resources/assets/onscreen_controls/shaded_light/up.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/up.png rename to arcade/resources/assets/onscreen_controls/shaded_light/up.png diff --git a/arcade/resources/onscreen_controls/shaded_light/wrench.png b/arcade/resources/assets/onscreen_controls/shaded_light/wrench.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/wrench.png rename to arcade/resources/assets/onscreen_controls/shaded_light/wrench.png diff --git a/arcade/resources/onscreen_controls/shaded_light/x.png b/arcade/resources/assets/onscreen_controls/shaded_light/x.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/x.png rename to arcade/resources/assets/onscreen_controls/shaded_light/x.png diff --git a/arcade/resources/onscreen_controls/shaded_light/y.png b/arcade/resources/assets/onscreen_controls/shaded_light/y.png similarity index 100% rename from arcade/resources/onscreen_controls/shaded_light/y.png rename to arcade/resources/assets/onscreen_controls/shaded_light/y.png diff --git a/arcade/resources/sounds/Kenney Donate.url b/arcade/resources/assets/sounds/Kenney Donate.url similarity index 100% rename from arcade/resources/sounds/Kenney Donate.url rename to arcade/resources/assets/sounds/Kenney Donate.url diff --git a/arcade/resources/sounds/Kenney Facebook.url b/arcade/resources/assets/sounds/Kenney Facebook.url similarity index 100% rename from arcade/resources/sounds/Kenney Facebook.url rename to arcade/resources/assets/sounds/Kenney Facebook.url diff --git a/arcade/resources/sounds/Kenney Twitter.url b/arcade/resources/assets/sounds/Kenney Twitter.url similarity index 100% rename from arcade/resources/sounds/Kenney Twitter.url rename to arcade/resources/assets/sounds/Kenney Twitter.url diff --git a/arcade/resources/sounds/Kenney Website.url b/arcade/resources/assets/sounds/Kenney Website.url similarity index 100% rename from arcade/resources/sounds/Kenney Website.url rename to arcade/resources/assets/sounds/Kenney Website.url diff --git a/arcade/resources/sounds/License.txt b/arcade/resources/assets/sounds/License.txt similarity index 100% rename from arcade/resources/sounds/License.txt rename to arcade/resources/assets/sounds/License.txt diff --git a/arcade/resources/sounds/coin1.wav b/arcade/resources/assets/sounds/coin1.wav similarity index 100% rename from arcade/resources/sounds/coin1.wav rename to arcade/resources/assets/sounds/coin1.wav diff --git a/arcade/resources/sounds/coin2.wav b/arcade/resources/assets/sounds/coin2.wav similarity index 100% rename from arcade/resources/sounds/coin2.wav rename to arcade/resources/assets/sounds/coin2.wav diff --git a/arcade/resources/sounds/coin3.wav b/arcade/resources/assets/sounds/coin3.wav similarity index 100% rename from arcade/resources/sounds/coin3.wav rename to arcade/resources/assets/sounds/coin3.wav diff --git a/arcade/resources/sounds/coin4.wav b/arcade/resources/assets/sounds/coin4.wav similarity index 100% rename from arcade/resources/sounds/coin4.wav rename to arcade/resources/assets/sounds/coin4.wav diff --git a/arcade/resources/sounds/coin5.wav b/arcade/resources/assets/sounds/coin5.wav similarity index 100% rename from arcade/resources/sounds/coin5.wav rename to arcade/resources/assets/sounds/coin5.wav diff --git a/arcade/resources/sounds/error1.wav b/arcade/resources/assets/sounds/error1.wav similarity index 100% rename from arcade/resources/sounds/error1.wav rename to arcade/resources/assets/sounds/error1.wav diff --git a/arcade/resources/sounds/error2.wav b/arcade/resources/assets/sounds/error2.wav similarity index 100% rename from arcade/resources/sounds/error2.wav rename to arcade/resources/assets/sounds/error2.wav diff --git a/arcade/resources/sounds/error3.wav b/arcade/resources/assets/sounds/error3.wav similarity index 100% rename from arcade/resources/sounds/error3.wav rename to arcade/resources/assets/sounds/error3.wav diff --git a/arcade/resources/sounds/error4.wav b/arcade/resources/assets/sounds/error4.wav similarity index 100% rename from arcade/resources/sounds/error4.wav rename to arcade/resources/assets/sounds/error4.wav diff --git a/arcade/resources/sounds/error5.wav b/arcade/resources/assets/sounds/error5.wav similarity index 100% rename from arcade/resources/sounds/error5.wav rename to arcade/resources/assets/sounds/error5.wav diff --git a/arcade/resources/sounds/explosion1.wav b/arcade/resources/assets/sounds/explosion1.wav similarity index 100% rename from arcade/resources/sounds/explosion1.wav rename to arcade/resources/assets/sounds/explosion1.wav diff --git a/arcade/resources/sounds/explosion2.wav b/arcade/resources/assets/sounds/explosion2.wav similarity index 100% rename from arcade/resources/sounds/explosion2.wav rename to arcade/resources/assets/sounds/explosion2.wav diff --git a/arcade/resources/sounds/fall1.wav b/arcade/resources/assets/sounds/fall1.wav similarity index 100% rename from arcade/resources/sounds/fall1.wav rename to arcade/resources/assets/sounds/fall1.wav diff --git a/arcade/resources/sounds/fall2.wav b/arcade/resources/assets/sounds/fall2.wav similarity index 100% rename from arcade/resources/sounds/fall2.wav rename to arcade/resources/assets/sounds/fall2.wav diff --git a/arcade/resources/sounds/fall3.wav b/arcade/resources/assets/sounds/fall3.wav similarity index 100% rename from arcade/resources/sounds/fall3.wav rename to arcade/resources/assets/sounds/fall3.wav diff --git a/arcade/resources/sounds/fall4.wav b/arcade/resources/assets/sounds/fall4.wav similarity index 100% rename from arcade/resources/sounds/fall4.wav rename to arcade/resources/assets/sounds/fall4.wav diff --git a/arcade/resources/sounds/gameover1.wav b/arcade/resources/assets/sounds/gameover1.wav similarity index 100% rename from arcade/resources/sounds/gameover1.wav rename to arcade/resources/assets/sounds/gameover1.wav diff --git a/arcade/resources/sounds/gameover2.wav b/arcade/resources/assets/sounds/gameover2.wav similarity index 100% rename from arcade/resources/sounds/gameover2.wav rename to arcade/resources/assets/sounds/gameover2.wav diff --git a/arcade/resources/sounds/gameover3.wav b/arcade/resources/assets/sounds/gameover3.wav similarity index 100% rename from arcade/resources/sounds/gameover3.wav rename to arcade/resources/assets/sounds/gameover3.wav diff --git a/arcade/resources/sounds/gameover4.wav b/arcade/resources/assets/sounds/gameover4.wav similarity index 100% rename from arcade/resources/sounds/gameover4.wav rename to arcade/resources/assets/sounds/gameover4.wav diff --git a/arcade/resources/sounds/gameover5.wav b/arcade/resources/assets/sounds/gameover5.wav similarity index 100% rename from arcade/resources/sounds/gameover5.wav rename to arcade/resources/assets/sounds/gameover5.wav diff --git a/arcade/resources/sounds/hit1.wav b/arcade/resources/assets/sounds/hit1.wav similarity index 100% rename from arcade/resources/sounds/hit1.wav rename to arcade/resources/assets/sounds/hit1.wav diff --git a/arcade/resources/sounds/hit2.wav b/arcade/resources/assets/sounds/hit2.wav similarity index 100% rename from arcade/resources/sounds/hit2.wav rename to arcade/resources/assets/sounds/hit2.wav diff --git a/arcade/resources/sounds/hit3.wav b/arcade/resources/assets/sounds/hit3.wav similarity index 100% rename from arcade/resources/sounds/hit3.wav rename to arcade/resources/assets/sounds/hit3.wav diff --git a/arcade/resources/sounds/hit4.wav b/arcade/resources/assets/sounds/hit4.wav similarity index 100% rename from arcade/resources/sounds/hit4.wav rename to arcade/resources/assets/sounds/hit4.wav diff --git a/arcade/resources/sounds/hit5.wav b/arcade/resources/assets/sounds/hit5.wav similarity index 100% rename from arcade/resources/sounds/hit5.wav rename to arcade/resources/assets/sounds/hit5.wav diff --git a/arcade/resources/sounds/hurt1.wav b/arcade/resources/assets/sounds/hurt1.wav similarity index 100% rename from arcade/resources/sounds/hurt1.wav rename to arcade/resources/assets/sounds/hurt1.wav diff --git a/arcade/resources/sounds/hurt2.wav b/arcade/resources/assets/sounds/hurt2.wav similarity index 100% rename from arcade/resources/sounds/hurt2.wav rename to arcade/resources/assets/sounds/hurt2.wav diff --git a/arcade/resources/sounds/hurt3.wav b/arcade/resources/assets/sounds/hurt3.wav similarity index 100% rename from arcade/resources/sounds/hurt3.wav rename to arcade/resources/assets/sounds/hurt3.wav diff --git a/arcade/resources/sounds/hurt4.wav b/arcade/resources/assets/sounds/hurt4.wav similarity index 100% rename from arcade/resources/sounds/hurt4.wav rename to arcade/resources/assets/sounds/hurt4.wav diff --git a/arcade/resources/sounds/hurt5.wav b/arcade/resources/assets/sounds/hurt5.wav similarity index 100% rename from arcade/resources/sounds/hurt5.wav rename to arcade/resources/assets/sounds/hurt5.wav diff --git a/arcade/resources/sounds/jump1.wav b/arcade/resources/assets/sounds/jump1.wav similarity index 100% rename from arcade/resources/sounds/jump1.wav rename to arcade/resources/assets/sounds/jump1.wav diff --git a/arcade/resources/sounds/jump2.wav b/arcade/resources/assets/sounds/jump2.wav similarity index 100% rename from arcade/resources/sounds/jump2.wav rename to arcade/resources/assets/sounds/jump2.wav diff --git a/arcade/resources/sounds/jump3.wav b/arcade/resources/assets/sounds/jump3.wav similarity index 100% rename from arcade/resources/sounds/jump3.wav rename to arcade/resources/assets/sounds/jump3.wav diff --git a/arcade/resources/sounds/jump4.wav b/arcade/resources/assets/sounds/jump4.wav similarity index 100% rename from arcade/resources/sounds/jump4.wav rename to arcade/resources/assets/sounds/jump4.wav diff --git a/arcade/resources/sounds/jump5.wav b/arcade/resources/assets/sounds/jump5.wav similarity index 100% rename from arcade/resources/sounds/jump5.wav rename to arcade/resources/assets/sounds/jump5.wav diff --git a/arcade/resources/sounds/laser1.mp3 b/arcade/resources/assets/sounds/laser1.mp3 similarity index 100% rename from arcade/resources/sounds/laser1.mp3 rename to arcade/resources/assets/sounds/laser1.mp3 diff --git a/arcade/resources/sounds/laser1.ogg b/arcade/resources/assets/sounds/laser1.ogg similarity index 100% rename from arcade/resources/sounds/laser1.ogg rename to arcade/resources/assets/sounds/laser1.ogg diff --git a/arcade/resources/sounds/laser1.wav b/arcade/resources/assets/sounds/laser1.wav similarity index 100% rename from arcade/resources/sounds/laser1.wav rename to arcade/resources/assets/sounds/laser1.wav diff --git a/arcade/resources/sounds/laser2.wav b/arcade/resources/assets/sounds/laser2.wav similarity index 100% rename from arcade/resources/sounds/laser2.wav rename to arcade/resources/assets/sounds/laser2.wav diff --git a/arcade/resources/sounds/laser3.wav b/arcade/resources/assets/sounds/laser3.wav similarity index 100% rename from arcade/resources/sounds/laser3.wav rename to arcade/resources/assets/sounds/laser3.wav diff --git a/arcade/resources/sounds/laser4.wav b/arcade/resources/assets/sounds/laser4.wav similarity index 100% rename from arcade/resources/sounds/laser4.wav rename to arcade/resources/assets/sounds/laser4.wav diff --git a/arcade/resources/sounds/laser5.wav b/arcade/resources/assets/sounds/laser5.wav similarity index 100% rename from arcade/resources/sounds/laser5.wav rename to arcade/resources/assets/sounds/laser5.wav diff --git a/arcade/resources/sounds/lose1.wav b/arcade/resources/assets/sounds/lose1.wav similarity index 100% rename from arcade/resources/sounds/lose1.wav rename to arcade/resources/assets/sounds/lose1.wav diff --git a/arcade/resources/sounds/lose2.wav b/arcade/resources/assets/sounds/lose2.wav similarity index 100% rename from arcade/resources/sounds/lose2.wav rename to arcade/resources/assets/sounds/lose2.wav diff --git a/arcade/resources/sounds/lose3.wav b/arcade/resources/assets/sounds/lose3.wav similarity index 100% rename from arcade/resources/sounds/lose3.wav rename to arcade/resources/assets/sounds/lose3.wav diff --git a/arcade/resources/sounds/lose4.wav b/arcade/resources/assets/sounds/lose4.wav similarity index 100% rename from arcade/resources/sounds/lose4.wav rename to arcade/resources/assets/sounds/lose4.wav diff --git a/arcade/resources/sounds/lose5.wav b/arcade/resources/assets/sounds/lose5.wav similarity index 100% rename from arcade/resources/sounds/lose5.wav rename to arcade/resources/assets/sounds/lose5.wav diff --git a/arcade/resources/sounds/phaseJump1.ogg b/arcade/resources/assets/sounds/phaseJump1.ogg similarity index 100% rename from arcade/resources/sounds/phaseJump1.ogg rename to arcade/resources/assets/sounds/phaseJump1.ogg diff --git a/arcade/resources/sounds/phaseJump1.wav b/arcade/resources/assets/sounds/phaseJump1.wav similarity index 100% rename from arcade/resources/sounds/phaseJump1.wav rename to arcade/resources/assets/sounds/phaseJump1.wav diff --git a/arcade/resources/sounds/readme.txt b/arcade/resources/assets/sounds/readme.txt similarity index 100% rename from arcade/resources/sounds/readme.txt rename to arcade/resources/assets/sounds/readme.txt diff --git a/arcade/resources/sounds/rockHit2.ogg b/arcade/resources/assets/sounds/rockHit2.ogg similarity index 100% rename from arcade/resources/sounds/rockHit2.ogg rename to arcade/resources/assets/sounds/rockHit2.ogg diff --git a/arcade/resources/sounds/rockHit2.wav b/arcade/resources/assets/sounds/rockHit2.wav similarity index 100% rename from arcade/resources/sounds/rockHit2.wav rename to arcade/resources/assets/sounds/rockHit2.wav diff --git a/arcade/resources/sounds/secret2.wav b/arcade/resources/assets/sounds/secret2.wav similarity index 100% rename from arcade/resources/sounds/secret2.wav rename to arcade/resources/assets/sounds/secret2.wav diff --git a/arcade/resources/sounds/secret4.wav b/arcade/resources/assets/sounds/secret4.wav similarity index 100% rename from arcade/resources/sounds/secret4.wav rename to arcade/resources/assets/sounds/secret4.wav diff --git a/arcade/resources/sounds/upgrade1.wav b/arcade/resources/assets/sounds/upgrade1.wav similarity index 100% rename from arcade/resources/sounds/upgrade1.wav rename to arcade/resources/assets/sounds/upgrade1.wav diff --git a/arcade/resources/sounds/upgrade2.wav b/arcade/resources/assets/sounds/upgrade2.wav similarity index 100% rename from arcade/resources/sounds/upgrade2.wav rename to arcade/resources/assets/sounds/upgrade2.wav diff --git a/arcade/resources/sounds/upgrade3.wav b/arcade/resources/assets/sounds/upgrade3.wav similarity index 100% rename from arcade/resources/sounds/upgrade3.wav rename to arcade/resources/assets/sounds/upgrade3.wav diff --git a/arcade/resources/sounds/upgrade4.wav b/arcade/resources/assets/sounds/upgrade4.wav similarity index 100% rename from arcade/resources/sounds/upgrade4.wav rename to arcade/resources/assets/sounds/upgrade4.wav diff --git a/arcade/resources/sounds/upgrade5.wav b/arcade/resources/assets/sounds/upgrade5.wav similarity index 100% rename from arcade/resources/sounds/upgrade5.wav rename to arcade/resources/assets/sounds/upgrade5.wav diff --git a/arcade/resources/tiled_maps/dirt.json b/arcade/resources/assets/tiled_maps/dirt.json similarity index 100% rename from arcade/resources/tiled_maps/dirt.json rename to arcade/resources/assets/tiled_maps/dirt.json diff --git a/arcade/resources/tiled_maps/grass.json b/arcade/resources/assets/tiled_maps/grass.json similarity index 100% rename from arcade/resources/tiled_maps/grass.json rename to arcade/resources/assets/tiled_maps/grass.json diff --git a/arcade/resources/tiled_maps/items.json b/arcade/resources/assets/tiled_maps/items.json similarity index 100% rename from arcade/resources/tiled_maps/items.json rename to arcade/resources/assets/tiled_maps/items.json diff --git a/arcade/resources/tiled_maps/level_1.json b/arcade/resources/assets/tiled_maps/level_1.json similarity index 100% rename from arcade/resources/tiled_maps/level_1.json rename to arcade/resources/assets/tiled_maps/level_1.json diff --git a/arcade/resources/tiled_maps/level_2.json b/arcade/resources/assets/tiled_maps/level_2.json similarity index 100% rename from arcade/resources/tiled_maps/level_2.json rename to arcade/resources/assets/tiled_maps/level_2.json diff --git a/arcade/resources/tiled_maps/map.json b/arcade/resources/assets/tiled_maps/map.json similarity index 100% rename from arcade/resources/tiled_maps/map.json rename to arcade/resources/assets/tiled_maps/map.json diff --git a/arcade/resources/tiled_maps/map2_level_1.json b/arcade/resources/assets/tiled_maps/map2_level_1.json similarity index 100% rename from arcade/resources/tiled_maps/map2_level_1.json rename to arcade/resources/assets/tiled_maps/map2_level_1.json diff --git a/arcade/resources/tiled_maps/map2_level_2.json b/arcade/resources/assets/tiled_maps/map2_level_2.json similarity index 100% rename from arcade/resources/tiled_maps/map2_level_2.json rename to arcade/resources/assets/tiled_maps/map2_level_2.json diff --git a/arcade/resources/tiled_maps/map_with_ladders.json b/arcade/resources/assets/tiled_maps/map_with_ladders.json similarity index 100% rename from arcade/resources/tiled_maps/map_with_ladders.json rename to arcade/resources/assets/tiled_maps/map_with_ladders.json diff --git a/arcade/resources/tiled_maps/maps.tiled-project b/arcade/resources/assets/tiled_maps/maps.tiled-project similarity index 100% rename from arcade/resources/tiled_maps/maps.tiled-project rename to arcade/resources/assets/tiled_maps/maps.tiled-project diff --git a/arcade/resources/tiled_maps/more_tiles.json b/arcade/resources/assets/tiled_maps/more_tiles.json similarity index 100% rename from arcade/resources/tiled_maps/more_tiles.json rename to arcade/resources/assets/tiled_maps/more_tiles.json diff --git a/arcade/resources/tiled_maps/pymunk_test_map.json b/arcade/resources/assets/tiled_maps/pymunk_test_map.json similarity index 100% rename from arcade/resources/tiled_maps/pymunk_test_map.json rename to arcade/resources/assets/tiled_maps/pymunk_test_map.json diff --git a/arcade/resources/tiled_maps/spritesheet.json b/arcade/resources/assets/tiled_maps/spritesheet.json similarity index 100% rename from arcade/resources/tiled_maps/spritesheet.json rename to arcade/resources/assets/tiled_maps/spritesheet.json diff --git a/arcade/resources/tiled_maps/standard_tileset.json b/arcade/resources/assets/tiled_maps/standard_tileset.json similarity index 100% rename from arcade/resources/tiled_maps/standard_tileset.json rename to arcade/resources/assets/tiled_maps/standard_tileset.json diff --git a/arcade/resources/tiled_maps/test_map_1.json b/arcade/resources/assets/tiled_maps/test_map_1.json similarity index 100% rename from arcade/resources/tiled_maps/test_map_1.json rename to arcade/resources/assets/tiled_maps/test_map_1.json diff --git a/arcade/resources/tiled_maps/test_map_2.json b/arcade/resources/assets/tiled_maps/test_map_2.json similarity index 100% rename from arcade/resources/tiled_maps/test_map_2.json rename to arcade/resources/assets/tiled_maps/test_map_2.json diff --git a/arcade/resources/tiled_maps/test_map_3.json b/arcade/resources/assets/tiled_maps/test_map_3.json similarity index 100% rename from arcade/resources/tiled_maps/test_map_3.json rename to arcade/resources/assets/tiled_maps/test_map_3.json diff --git a/arcade/resources/tiled_maps/test_map_5.json b/arcade/resources/assets/tiled_maps/test_map_5.json similarity index 100% rename from arcade/resources/tiled_maps/test_map_5.json rename to arcade/resources/assets/tiled_maps/test_map_5.json diff --git a/arcade/resources/tiled_maps/test_map_6.json b/arcade/resources/assets/tiled_maps/test_map_6.json similarity index 100% rename from arcade/resources/tiled_maps/test_map_6.json rename to arcade/resources/assets/tiled_maps/test_map_6.json diff --git a/arcade/resources/tiled_maps/test_map_7.json b/arcade/resources/assets/tiled_maps/test_map_7.json similarity index 100% rename from arcade/resources/tiled_maps/test_map_7.json rename to arcade/resources/assets/tiled_maps/test_map_7.json diff --git a/arcade/resources/tiled_maps/test_objects.json b/arcade/resources/assets/tiled_maps/test_objects.json similarity index 100% rename from arcade/resources/tiled_maps/test_objects.json rename to arcade/resources/assets/tiled_maps/test_objects.json diff --git a/arcade/resources/gamecontrollerdb.txt b/arcade/resources/system/gamecontrollerdb.txt similarity index 100% rename from arcade/resources/gamecontrollerdb.txt rename to arcade/resources/system/gamecontrollerdb.txt diff --git a/arcade/resources/gui_basic_assets/button_square_blue.png b/arcade/resources/system/gui_basic_assets/button_square_blue.png similarity index 100% rename from arcade/resources/gui_basic_assets/button_square_blue.png rename to arcade/resources/system/gui_basic_assets/button_square_blue.png diff --git a/arcade/resources/gui_basic_assets/button_square_blue_pressed.png b/arcade/resources/system/gui_basic_assets/button_square_blue_pressed.png similarity index 100% rename from arcade/resources/gui_basic_assets/button_square_blue_pressed.png rename to arcade/resources/system/gui_basic_assets/button_square_blue_pressed.png diff --git a/arcade/resources/gui_basic_assets/icons/larger.png b/arcade/resources/system/gui_basic_assets/icons/larger.png similarity index 100% rename from arcade/resources/gui_basic_assets/icons/larger.png rename to arcade/resources/system/gui_basic_assets/icons/larger.png diff --git a/arcade/resources/gui_basic_assets/icons/smaller.png b/arcade/resources/system/gui_basic_assets/icons/smaller.png similarity index 100% rename from arcade/resources/gui_basic_assets/icons/smaller.png rename to arcade/resources/system/gui_basic_assets/icons/smaller.png diff --git a/arcade/resources/gui_basic_assets/items/shield_gold.png b/arcade/resources/system/gui_basic_assets/items/shield_gold.png similarity index 100% rename from arcade/resources/gui_basic_assets/items/shield_gold.png rename to arcade/resources/system/gui_basic_assets/items/shield_gold.png diff --git a/arcade/resources/gui_basic_assets/items/sword_gold.png b/arcade/resources/system/gui_basic_assets/items/sword_gold.png similarity index 100% rename from arcade/resources/gui_basic_assets/items/sword_gold.png rename to arcade/resources/system/gui_basic_assets/items/sword_gold.png diff --git a/arcade/resources/gui_basic_assets/red_button_hover.png b/arcade/resources/system/gui_basic_assets/red_button_hover.png similarity index 100% rename from arcade/resources/gui_basic_assets/red_button_hover.png rename to arcade/resources/system/gui_basic_assets/red_button_hover.png diff --git a/arcade/resources/gui_basic_assets/red_button_normal.png b/arcade/resources/system/gui_basic_assets/red_button_normal.png similarity index 100% rename from arcade/resources/gui_basic_assets/red_button_normal.png rename to arcade/resources/system/gui_basic_assets/red_button_normal.png diff --git a/arcade/resources/gui_basic_assets/red_button_press.png b/arcade/resources/system/gui_basic_assets/red_button_press.png similarity index 100% rename from arcade/resources/gui_basic_assets/red_button_press.png rename to arcade/resources/system/gui_basic_assets/red_button_press.png diff --git a/arcade/resources/gui_basic_assets/slider_bar.png b/arcade/resources/system/gui_basic_assets/slider_bar.png similarity index 100% rename from arcade/resources/gui_basic_assets/slider_bar.png rename to arcade/resources/system/gui_basic_assets/slider_bar.png diff --git a/arcade/resources/gui_basic_assets/slider_thumb.png b/arcade/resources/system/gui_basic_assets/slider_thumb.png similarity index 100% rename from arcade/resources/gui_basic_assets/slider_thumb.png rename to arcade/resources/system/gui_basic_assets/slider_thumb.png diff --git a/arcade/resources/gui_basic_assets/toggle/switch_green.png b/arcade/resources/system/gui_basic_assets/toggle/switch_green.png old mode 100755 new mode 100644 similarity index 100% rename from arcade/resources/gui_basic_assets/toggle/switch_green.png rename to arcade/resources/system/gui_basic_assets/toggle/switch_green.png diff --git a/arcade/resources/gui_basic_assets/toggle/switch_red.png b/arcade/resources/system/gui_basic_assets/toggle/switch_red.png old mode 100755 new mode 100644 similarity index 100% rename from arcade/resources/gui_basic_assets/toggle/switch_red.png rename to arcade/resources/system/gui_basic_assets/toggle/switch_red.png diff --git a/arcade/resources/gui_basic_assets/window/grey_panel.png b/arcade/resources/system/gui_basic_assets/window/grey_panel.png similarity index 100% rename from arcade/resources/gui_basic_assets/window/grey_panel.png rename to arcade/resources/system/gui_basic_assets/window/grey_panel.png diff --git a/arcade/resources/shaders/__init__.py b/arcade/resources/system/shaders/__init__.py similarity index 100% rename from arcade/resources/shaders/__init__.py rename to arcade/resources/system/shaders/__init__.py diff --git a/arcade/resources/shaders/atlas/blit_fs.glsl b/arcade/resources/system/shaders/atlas/blit_fs.glsl similarity index 100% rename from arcade/resources/shaders/atlas/blit_fs.glsl rename to arcade/resources/system/shaders/atlas/blit_fs.glsl diff --git a/arcade/resources/shaders/atlas/blit_vs.glsl b/arcade/resources/system/shaders/atlas/blit_vs.glsl similarity index 100% rename from arcade/resources/shaders/atlas/blit_vs.glsl rename to arcade/resources/system/shaders/atlas/blit_vs.glsl diff --git a/arcade/resources/shaders/atlas/resize_fs.glsl b/arcade/resources/system/shaders/atlas/resize_fs.glsl similarity index 100% rename from arcade/resources/shaders/atlas/resize_fs.glsl rename to arcade/resources/system/shaders/atlas/resize_fs.glsl diff --git a/arcade/resources/shaders/atlas/resize_gs.glsl b/arcade/resources/system/shaders/atlas/resize_gs.glsl similarity index 100% rename from arcade/resources/shaders/atlas/resize_gs.glsl rename to arcade/resources/system/shaders/atlas/resize_gs.glsl diff --git a/arcade/resources/shaders/atlas/resize_vs.glsl b/arcade/resources/system/shaders/atlas/resize_vs.glsl similarity index 100% rename from arcade/resources/shaders/atlas/resize_vs.glsl rename to arcade/resources/system/shaders/atlas/resize_vs.glsl diff --git a/arcade/resources/shaders/background_fs.glsl b/arcade/resources/system/shaders/background_fs.glsl similarity index 100% rename from arcade/resources/shaders/background_fs.glsl rename to arcade/resources/system/shaders/background_fs.glsl diff --git a/arcade/resources/shaders/background_vs.glsl b/arcade/resources/system/shaders/background_vs.glsl similarity index 100% rename from arcade/resources/shaders/background_vs.glsl rename to arcade/resources/system/shaders/background_vs.glsl diff --git a/arcade/resources/shaders/bloom/bloom_filter_a.glsl b/arcade/resources/system/shaders/bloom/bloom_filter_a.glsl similarity index 100% rename from arcade/resources/shaders/bloom/bloom_filter_a.glsl rename to arcade/resources/system/shaders/bloom/bloom_filter_a.glsl diff --git a/arcade/resources/shaders/bloom/bloom_filter_b.glsl b/arcade/resources/system/shaders/bloom/bloom_filter_b.glsl similarity index 100% rename from arcade/resources/shaders/bloom/bloom_filter_b.glsl rename to arcade/resources/system/shaders/bloom/bloom_filter_b.glsl diff --git a/arcade/resources/shaders/bloom/bloom_filter_image.glsl b/arcade/resources/system/shaders/bloom/bloom_filter_image.glsl similarity index 100% rename from arcade/resources/shaders/bloom/bloom_filter_image.glsl rename to arcade/resources/system/shaders/bloom/bloom_filter_image.glsl diff --git a/arcade/resources/shaders/collision/col_trans_gs.glsl b/arcade/resources/system/shaders/collision/col_trans_gs.glsl similarity index 100% rename from arcade/resources/shaders/collision/col_trans_gs.glsl rename to arcade/resources/system/shaders/collision/col_trans_gs.glsl diff --git a/arcade/resources/shaders/collision/col_trans_vs.glsl b/arcade/resources/system/shaders/collision/col_trans_vs.glsl similarity index 100% rename from arcade/resources/shaders/collision/col_trans_vs.glsl rename to arcade/resources/system/shaders/collision/col_trans_vs.glsl diff --git a/arcade/resources/shaders/gui/nine_patch_fs.glsl b/arcade/resources/system/shaders/gui/nine_patch_fs.glsl similarity index 100% rename from arcade/resources/shaders/gui/nine_patch_fs.glsl rename to arcade/resources/system/shaders/gui/nine_patch_fs.glsl diff --git a/arcade/resources/shaders/gui/nine_patch_gs.glsl b/arcade/resources/system/shaders/gui/nine_patch_gs.glsl similarity index 100% rename from arcade/resources/shaders/gui/nine_patch_gs.glsl rename to arcade/resources/system/shaders/gui/nine_patch_gs.glsl diff --git a/arcade/resources/shaders/gui/nine_patch_vs.glsl b/arcade/resources/system/shaders/gui/nine_patch_vs.glsl similarity index 100% rename from arcade/resources/shaders/gui/nine_patch_vs.glsl rename to arcade/resources/system/shaders/gui/nine_patch_vs.glsl diff --git a/arcade/resources/shaders/gui/surface_fs.glsl b/arcade/resources/system/shaders/gui/surface_fs.glsl similarity index 100% rename from arcade/resources/shaders/gui/surface_fs.glsl rename to arcade/resources/system/shaders/gui/surface_fs.glsl diff --git a/arcade/resources/shaders/gui/surface_gs.glsl b/arcade/resources/system/shaders/gui/surface_gs.glsl similarity index 100% rename from arcade/resources/shaders/gui/surface_gs.glsl rename to arcade/resources/system/shaders/gui/surface_gs.glsl diff --git a/arcade/resources/shaders/gui/surface_vs.glsl b/arcade/resources/system/shaders/gui/surface_vs.glsl similarity index 100% rename from arcade/resources/shaders/gui/surface_vs.glsl rename to arcade/resources/system/shaders/gui/surface_vs.glsl diff --git a/arcade/resources/shaders/lib/random.glsl b/arcade/resources/system/shaders/lib/random.glsl similarity index 100% rename from arcade/resources/shaders/lib/random.glsl rename to arcade/resources/system/shaders/lib/random.glsl diff --git a/arcade/resources/shaders/lib/sprite.glsl b/arcade/resources/system/shaders/lib/sprite.glsl similarity index 100% rename from arcade/resources/shaders/lib/sprite.glsl rename to arcade/resources/system/shaders/lib/sprite.glsl diff --git a/arcade/resources/shaders/lights/combine_fs.glsl b/arcade/resources/system/shaders/lights/combine_fs.glsl similarity index 100% rename from arcade/resources/shaders/lights/combine_fs.glsl rename to arcade/resources/system/shaders/lights/combine_fs.glsl diff --git a/arcade/resources/shaders/lights/combine_vs.glsl b/arcade/resources/system/shaders/lights/combine_vs.glsl similarity index 100% rename from arcade/resources/shaders/lights/combine_vs.glsl rename to arcade/resources/system/shaders/lights/combine_vs.glsl diff --git a/arcade/resources/shaders/lights/point_lights_fs.glsl b/arcade/resources/system/shaders/lights/point_lights_fs.glsl similarity index 100% rename from arcade/resources/shaders/lights/point_lights_fs.glsl rename to arcade/resources/system/shaders/lights/point_lights_fs.glsl diff --git a/arcade/resources/shaders/lights/point_lights_geo.glsl b/arcade/resources/system/shaders/lights/point_lights_geo.glsl similarity index 100% rename from arcade/resources/shaders/lights/point_lights_geo.glsl rename to arcade/resources/system/shaders/lights/point_lights_geo.glsl diff --git a/arcade/resources/shaders/lights/point_lights_vs.glsl b/arcade/resources/system/shaders/lights/point_lights_vs.glsl similarity index 100% rename from arcade/resources/shaders/lights/point_lights_vs.glsl rename to arcade/resources/system/shaders/lights/point_lights_vs.glsl diff --git a/arcade/resources/shaders/postprocessing/gaussian_blur_x_fs.glsl b/arcade/resources/system/shaders/postprocessing/gaussian_blur_x_fs.glsl similarity index 100% rename from arcade/resources/shaders/postprocessing/gaussian_blur_x_fs.glsl rename to arcade/resources/system/shaders/postprocessing/gaussian_blur_x_fs.glsl diff --git a/arcade/resources/shaders/postprocessing/gaussian_blur_y_fs.glsl b/arcade/resources/system/shaders/postprocessing/gaussian_blur_y_fs.glsl similarity index 100% rename from arcade/resources/shaders/postprocessing/gaussian_blur_y_fs.glsl rename to arcade/resources/system/shaders/postprocessing/gaussian_blur_y_fs.glsl diff --git a/arcade/resources/shaders/postprocessing/gaussian_combine_fs.glsl b/arcade/resources/system/shaders/postprocessing/gaussian_combine_fs.glsl similarity index 100% rename from arcade/resources/shaders/postprocessing/gaussian_combine_fs.glsl rename to arcade/resources/system/shaders/postprocessing/gaussian_combine_fs.glsl diff --git a/arcade/resources/shaders/postprocessing/glow_filter_fs.glsl b/arcade/resources/system/shaders/postprocessing/glow_filter_fs.glsl similarity index 100% rename from arcade/resources/shaders/postprocessing/glow_filter_fs.glsl rename to arcade/resources/system/shaders/postprocessing/glow_filter_fs.glsl diff --git a/arcade/resources/shaders/postprocessing/glow_filter_vs.glsl b/arcade/resources/system/shaders/postprocessing/glow_filter_vs.glsl similarity index 100% rename from arcade/resources/shaders/postprocessing/glow_filter_vs.glsl rename to arcade/resources/system/shaders/postprocessing/glow_filter_vs.glsl diff --git a/arcade/resources/shaders/shadertoy/base_fs.glsl b/arcade/resources/system/shaders/shadertoy/base_fs.glsl similarity index 100% rename from arcade/resources/shaders/shadertoy/base_fs.glsl rename to arcade/resources/system/shaders/shadertoy/base_fs.glsl diff --git a/arcade/resources/shaders/shadertoy/base_vs.glsl b/arcade/resources/system/shaders/shadertoy/base_vs.glsl similarity index 100% rename from arcade/resources/shaders/shadertoy/base_vs.glsl rename to arcade/resources/system/shaders/shadertoy/base_vs.glsl diff --git a/arcade/resources/shaders/shadertoy/crt_monitor_filter.glsl b/arcade/resources/system/shaders/shadertoy/crt_monitor_filter.glsl similarity index 100% rename from arcade/resources/shaders/shadertoy/crt_monitor_filter.glsl rename to arcade/resources/system/shaders/shadertoy/crt_monitor_filter.glsl diff --git a/arcade/resources/shaders/shape_element_list_fs.glsl b/arcade/resources/system/shaders/shape_element_list_fs.glsl similarity index 100% rename from arcade/resources/shaders/shape_element_list_fs.glsl rename to arcade/resources/system/shaders/shape_element_list_fs.glsl diff --git a/arcade/resources/shaders/shape_element_list_vs.glsl b/arcade/resources/system/shaders/shape_element_list_vs.glsl similarity index 100% rename from arcade/resources/shaders/shape_element_list_vs.glsl rename to arcade/resources/system/shaders/shape_element_list_vs.glsl diff --git a/arcade/resources/shaders/shapes/README.md b/arcade/resources/system/shaders/shapes/README.md similarity index 100% rename from arcade/resources/shaders/shapes/README.md rename to arcade/resources/system/shaders/shapes/README.md diff --git a/arcade/resources/shaders/shapes/ellipse/filled_unbuffered_fs.glsl b/arcade/resources/system/shaders/shapes/ellipse/filled_unbuffered_fs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/ellipse/filled_unbuffered_fs.glsl rename to arcade/resources/system/shaders/shapes/ellipse/filled_unbuffered_fs.glsl diff --git a/arcade/resources/shaders/shapes/ellipse/filled_unbuffered_geo.glsl b/arcade/resources/system/shaders/shapes/ellipse/filled_unbuffered_geo.glsl similarity index 100% rename from arcade/resources/shaders/shapes/ellipse/filled_unbuffered_geo.glsl rename to arcade/resources/system/shaders/shapes/ellipse/filled_unbuffered_geo.glsl diff --git a/arcade/resources/shaders/shapes/ellipse/filled_unbuffered_vs.glsl b/arcade/resources/system/shaders/shapes/ellipse/filled_unbuffered_vs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/ellipse/filled_unbuffered_vs.glsl rename to arcade/resources/system/shaders/shapes/ellipse/filled_unbuffered_vs.glsl diff --git a/arcade/resources/shaders/shapes/ellipse/outline_unbuffered_fs.glsl b/arcade/resources/system/shaders/shapes/ellipse/outline_unbuffered_fs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/ellipse/outline_unbuffered_fs.glsl rename to arcade/resources/system/shaders/shapes/ellipse/outline_unbuffered_fs.glsl diff --git a/arcade/resources/shaders/shapes/ellipse/outline_unbuffered_geo.glsl b/arcade/resources/system/shaders/shapes/ellipse/outline_unbuffered_geo.glsl similarity index 100% rename from arcade/resources/shaders/shapes/ellipse/outline_unbuffered_geo.glsl rename to arcade/resources/system/shaders/shapes/ellipse/outline_unbuffered_geo.glsl diff --git a/arcade/resources/shaders/shapes/ellipse/outline_unbuffered_vs.glsl b/arcade/resources/system/shaders/shapes/ellipse/outline_unbuffered_vs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/ellipse/outline_unbuffered_vs.glsl rename to arcade/resources/system/shaders/shapes/ellipse/outline_unbuffered_vs.glsl diff --git a/arcade/resources/shaders/shapes/line/buffered_fs.glsl b/arcade/resources/system/shaders/shapes/line/buffered_fs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/line/buffered_fs.glsl rename to arcade/resources/system/shaders/shapes/line/buffered_fs.glsl diff --git a/arcade/resources/shaders/shapes/line/buffered_geo.glsl b/arcade/resources/system/shaders/shapes/line/buffered_geo.glsl similarity index 100% rename from arcade/resources/shaders/shapes/line/buffered_geo.glsl rename to arcade/resources/system/shaders/shapes/line/buffered_geo.glsl diff --git a/arcade/resources/shaders/shapes/line/buffered_vs.glsl b/arcade/resources/system/shaders/shapes/line/buffered_vs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/line/buffered_vs.glsl rename to arcade/resources/system/shaders/shapes/line/buffered_vs.glsl diff --git a/arcade/resources/shaders/shapes/line/line_generic_with_colors_fs.glsl b/arcade/resources/system/shaders/shapes/line/line_generic_with_colors_fs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/line/line_generic_with_colors_fs.glsl rename to arcade/resources/system/shaders/shapes/line/line_generic_with_colors_fs.glsl diff --git a/arcade/resources/shaders/shapes/line/line_generic_with_colors_vs.glsl b/arcade/resources/system/shaders/shapes/line/line_generic_with_colors_vs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/line/line_generic_with_colors_vs.glsl rename to arcade/resources/system/shaders/shapes/line/line_generic_with_colors_vs.glsl diff --git a/arcade/resources/shaders/shapes/line/line_vertex_shader_fs.glsl b/arcade/resources/system/shaders/shapes/line/line_vertex_shader_fs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/line/line_vertex_shader_fs.glsl rename to arcade/resources/system/shaders/shapes/line/line_vertex_shader_fs.glsl diff --git a/arcade/resources/shaders/shapes/line/line_vertex_shader_vs.glsl b/arcade/resources/system/shaders/shapes/line/line_vertex_shader_vs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/line/line_vertex_shader_vs.glsl rename to arcade/resources/system/shaders/shapes/line/line_vertex_shader_vs.glsl diff --git a/arcade/resources/shaders/shapes/line/unbuffered_fs.glsl b/arcade/resources/system/shaders/shapes/line/unbuffered_fs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/line/unbuffered_fs.glsl rename to arcade/resources/system/shaders/shapes/line/unbuffered_fs.glsl diff --git a/arcade/resources/shaders/shapes/line/unbuffered_geo.glsl b/arcade/resources/system/shaders/shapes/line/unbuffered_geo.glsl similarity index 100% rename from arcade/resources/shaders/shapes/line/unbuffered_geo.glsl rename to arcade/resources/system/shaders/shapes/line/unbuffered_geo.glsl diff --git a/arcade/resources/shaders/shapes/line/unbuffered_vs.glsl b/arcade/resources/system/shaders/shapes/line/unbuffered_vs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/line/unbuffered_vs.glsl rename to arcade/resources/system/shaders/shapes/line/unbuffered_vs.glsl diff --git a/arcade/resources/shaders/shapes/rectangle/filled_unbuffered_fs.glsl b/arcade/resources/system/shaders/shapes/rectangle/filled_unbuffered_fs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/rectangle/filled_unbuffered_fs.glsl rename to arcade/resources/system/shaders/shapes/rectangle/filled_unbuffered_fs.glsl diff --git a/arcade/resources/shaders/shapes/rectangle/filled_unbuffered_geo.glsl b/arcade/resources/system/shaders/shapes/rectangle/filled_unbuffered_geo.glsl similarity index 100% rename from arcade/resources/shaders/shapes/rectangle/filled_unbuffered_geo.glsl rename to arcade/resources/system/shaders/shapes/rectangle/filled_unbuffered_geo.glsl diff --git a/arcade/resources/shaders/shapes/rectangle/filled_unbuffered_vs.glsl b/arcade/resources/system/shaders/shapes/rectangle/filled_unbuffered_vs.glsl similarity index 100% rename from arcade/resources/shaders/shapes/rectangle/filled_unbuffered_vs.glsl rename to arcade/resources/system/shaders/shapes/rectangle/filled_unbuffered_vs.glsl diff --git a/arcade/resources/shaders/sprites/sprite_list_geometry_cull_geo.glsl b/arcade/resources/system/shaders/sprites/sprite_list_geometry_cull_geo.glsl similarity index 100% rename from arcade/resources/shaders/sprites/sprite_list_geometry_cull_geo.glsl rename to arcade/resources/system/shaders/sprites/sprite_list_geometry_cull_geo.glsl diff --git a/arcade/resources/shaders/sprites/sprite_list_geometry_fs.glsl b/arcade/resources/system/shaders/sprites/sprite_list_geometry_fs.glsl similarity index 100% rename from arcade/resources/shaders/sprites/sprite_list_geometry_fs.glsl rename to arcade/resources/system/shaders/sprites/sprite_list_geometry_fs.glsl diff --git a/arcade/resources/shaders/sprites/sprite_list_geometry_no_cull_geo.glsl b/arcade/resources/system/shaders/sprites/sprite_list_geometry_no_cull_geo.glsl similarity index 100% rename from arcade/resources/shaders/sprites/sprite_list_geometry_no_cull_geo.glsl rename to arcade/resources/system/shaders/sprites/sprite_list_geometry_no_cull_geo.glsl diff --git a/arcade/resources/shaders/sprites/sprite_list_geometry_vs.glsl b/arcade/resources/system/shaders/sprites/sprite_list_geometry_vs.glsl similarity index 100% rename from arcade/resources/shaders/sprites/sprite_list_geometry_vs.glsl rename to arcade/resources/system/shaders/sprites/sprite_list_geometry_vs.glsl diff --git a/arcade/resources/shaders/texture_default_projection_vs.glsl b/arcade/resources/system/shaders/texture_default_projection_vs.glsl similarity index 100% rename from arcade/resources/shaders/texture_default_projection_vs.glsl rename to arcade/resources/system/shaders/texture_default_projection_vs.glsl diff --git a/arcade/resources/shaders/texture_fs.glsl b/arcade/resources/system/shaders/texture_fs.glsl similarity index 100% rename from arcade/resources/shaders/texture_fs.glsl rename to arcade/resources/system/shaders/texture_fs.glsl From 811a2b449b74355ed23916770717acb80a1ffa9e Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Sun, 26 Mar 2023 21:42:06 +0200 Subject: [PATCH 02/23] resolve_resource_path -> resolve --- arcade/__init__.py | 2 +- arcade/background/__init__.py | 4 +- arcade/background/background_texture.py | 4 +- arcade/cache/hit_box.py | 4 +- arcade/context.py | 28 +- arcade/experimental/shadertoy.py | 8 +- arcade/resources/__init__.py | 76 +++-- arcade/sound.py | 4 +- arcade/sprite/__init__.py | 4 +- arcade/text.py | 6 +- arcade/texture/loading.py | 10 +- arcade/tilemap/tilemap.py | 4 +- doc/programming_guide/how_to_get_help.rst | 4 +- .../tilemaps/csv_left_up_embedded.json | 6 +- tests/fixtures/tilemaps/tileset.json | 298 +++++++++--------- tests/unit/atlas/test_gc.py | 2 +- 16 files changed, 248 insertions(+), 216 deletions(-) diff --git a/arcade/__init__.py b/arcade/__init__.py index fa73148ed..10940fc8f 100644 --- a/arcade/__init__.py +++ b/arcade/__init__.py @@ -412,7 +412,7 @@ def configure_logging(level: Optional[int] = None): # Load additional game controller mappings to Pyglet if not pyglet.options['headless']: try: - mappings_file = resources.resolve_resource_path(":resources:gamecontrollerdb.txt") + mappings_file = resources.resolve(":resources:gamecontrollerdb.txt") pyglet.input.controller.add_mappings_from_file(mappings_file) except AssertionError: pass diff --git a/arcade/background/__init__.py b/arcade/background/__init__.py index 58e42986d..121ee2693 100644 --- a/arcade/background/__init__.py +++ b/arcade/background/__init__.py @@ -4,7 +4,7 @@ import arcade.gl as gl from arcade import get_window -from arcade.resources import resolve_resource_path +from arcade.resources import resolve from arcade.background.background_texture import BackgroundTexture from arcade.background.background import Background @@ -29,7 +29,7 @@ def texture_from_file( ) -> BackgroundTexture: _context = get_window().ctx - with Image.open(resolve_resource_path(tex_src)).convert("RGBA") as img: + with Image.open(resolve(tex_src)).convert("RGBA") as img: texture = _context.texture( img.size, data=img.transpose(Image.Transpose.FLIP_TOP_BOTTOM).tobytes(), diff --git a/arcade/background/background_texture.py b/arcade/background/background_texture.py index 8ef05c646..6e3c23035 100644 --- a/arcade/background/background_texture.py +++ b/arcade/background/background_texture.py @@ -3,7 +3,7 @@ from PIL import Image import arcade.gl as gl -from arcade.resources import resolve_resource_path +from arcade.resources import resolve from arcade.window_commands import get_window from pyglet.math import Mat3 from arcade import ArcadeContext @@ -143,7 +143,7 @@ def from_file( ): _context = get_window().ctx - with Image.open(resolve_resource_path(tex_src)).convert("RGBA") as img: + with Image.open(resolve(tex_src)).convert("RGBA") as img: texture = _context.texture( img.size, data=img.transpose(Image.Transpose.FLIP_TOP_BOTTOM).tobytes(), diff --git a/arcade/cache/hit_box.py b/arcade/cache/hit_box.py index c1ca5b68c..7c3abaab4 100644 --- a/arcade/cache/hit_box.py +++ b/arcade/cache/hit_box.py @@ -15,7 +15,7 @@ from collections import OrderedDict from arcade.types import PointList -from arcade.resources import resolve_resource_path +from arcade.resources import resolve if TYPE_CHECKING: from arcade import Texture @@ -102,7 +102,7 @@ def load(self, path: Union[str, Path]) -> None: if the file extension is ".gz" the file will be compressed. """ - path = resolve_resource_path(path) + path = resolve(path) if path.suffix == ".gz": with gzip.open(path, mode="rb") as fd: data = json.loads(fd.read()) diff --git a/arcade/context.py b/arcade/context.py index 07beee86e..038bbfe51 100644 --- a/arcade/context.py +++ b/arcade/context.py @@ -380,27 +380,27 @@ def load_program( Based on these settings the `transform()` method will accept a single buffer or a list of buffer. """ - from arcade.resources import resolve_resource_path + from arcade.resources import resolve - vertex_shader_src = resolve_resource_path(vertex_shader).read_text() + vertex_shader_src = resolve(vertex_shader).read_text() fragment_shader_src = None geometry_shader_src = None tess_control_src = None tess_evaluation_src = None - common_src = [resolve_resource_path(c).read_text() for c in common] + common_src = [resolve(c).read_text() for c in common] if fragment_shader: - fragment_shader_src = resolve_resource_path(fragment_shader).read_text() + fragment_shader_src = resolve(fragment_shader).read_text() fragment_shader_src = self.shader_inc(fragment_shader_src) if geometry_shader: - geometry_shader_src = resolve_resource_path(geometry_shader).read_text() + geometry_shader_src = resolve(geometry_shader).read_text() geometry_shader_src = self.shader_inc(geometry_shader_src) if tess_control_shader and tess_evaluation_shader: - tess_control_src = resolve_resource_path(tess_control_shader).read_text() - tess_evaluation_src = resolve_resource_path( + tess_control_src = resolve(tess_control_shader).read_text() + tess_evaluation_src = resolve( tess_evaluation_shader ).read_text() tess_control_src = self.shader_inc(tess_control_src) @@ -430,9 +430,9 @@ def load_compute_shader(self, path: Union[str, Path], common: Iterable[Union[str :param Union[str,pathlib.Path] path: Path to texture :param Iterable[Union[str,pathlib.Path]] common: Common source injected into compute shader """ - from arcade.resources import resolve_resource_path - path = resolve_resource_path(path) - common_src = [resolve_resource_path(c).read_text() for c in common] + from arcade.resources import resolve + path = resolve(path) + common_src = [resolve(c).read_text() for c in common] return self.compute_shader( source=self.shader_inc(path.read_text()), common=common_src, @@ -460,9 +460,9 @@ def load_texture( :param bool flip: Flips the image upside down :param bool build_mipmaps: Build mipmaps for the texture """ - from arcade.resources import resolve_resource_path + from arcade.resources import resolve - path = resolve_resource_path(path) + path = resolve(path) image = Image.open(str(path)) @@ -493,12 +493,12 @@ def shader_inc(self, source: str) -> str: :param str source: Shader """ - from arcade.resources import resolve_resource_path + from arcade.resources import resolve lines = source.splitlines() for i, line in enumerate(lines): line = line.strip() if line.startswith("#include"): - path = resolve_resource_path(line.split()[1].replace('"', "")) + path = resolve(line.split()[1].replace('"', "")) lines[i] = path.read_text() return "\n".join(lines) diff --git a/arcade/experimental/shadertoy.py b/arcade/experimental/shadertoy.py index 199c1e690..c6ef71649 100644 --- a/arcade/experimental/shadertoy.py +++ b/arcade/experimental/shadertoy.py @@ -319,8 +319,8 @@ def _set_source(self, source: str): Load shader templates, injects main function, create program and configures the program. """ - vs_path = arcade.resources.resolve_resource_path(":resources:shaders/shadertoy/base_vs.glsl") - fs_path = arcade.resources.resolve_resource_path(":resources:shaders/shadertoy/base_fs.glsl") + vs_path = arcade.resources.resolve(":resources:shaders/shadertoy/base_vs.glsl") + fs_path = arcade.resources.resolve(":resources:shaders/shadertoy/base_fs.glsl") with open(vs_path) as fd: vs_source = fd.read() with open(fs_path) as fd: @@ -480,7 +480,7 @@ def create_from_file(cls, size: Tuple[int, int], path: Union[str, Path]) -> "Sha :param Tuple[int,int] size: Size of shadertoy in pixels :param str path: Path to mainImage shader file """ - path = arcade.resources.resolve_resource_path(path) + path = arcade.resources.resolve(path) with open(path) as fd: source = fd.read() return cls(size, source) @@ -501,7 +501,7 @@ def create_buffer_from_file(self, path: Union[str, Path]) -> ShadertoyBuffer: :param str path: Path to shader source """ - path = arcade.resources.resolve_resource_path(path) + path = arcade.resources.resolve(path) with open(path) as fd: source = fd.read() return ShadertoyBuffer(self._size, source) diff --git a/arcade/resources/__init__.py b/arcade/resources/__init__.py index 11fcd49b6..c508dabb1 100644 --- a/arcade/resources/__init__.py +++ b/arcade/resources/__init__.py @@ -1,47 +1,65 @@ from pathlib import Path -from typing import Dict, Union -from arcade.resources import shaders # noqa +from typing import Dict, List,Union +# from arcade.resources import shaders # noqa #: The absolute path to this directory -RESOURCE_PATH = Path(__file__).parent.resolve() +SYSTEM_PATH = Path(__file__).parent.resolve() / "system" +ASSET_PATH = Path(__file__).parent.resolve() / "assets" -resource_handles: Dict[str, Path] = { - "resources": RESOURCE_PATH +resource_handles: Dict[str, List[Path]] = { + "resources": [SYSTEM_PATH, ASSET_PATH], + "system": [SYSTEM_PATH], } -def resolve_resource_path(path: Union[str, Path]) -> Path: - """Resolves a resource path and returns a Path object. +def resolve(path: Union[str, Path]) -> Path: + """ + Resolves a resource path and returns a Path object. :param Union[str, Path] path: A Path or string """ - # Convert to a Path object and resolve :resources: + # Convert to a Path object and resolve resource handle if isinstance(path, str): path = path.strip() # Allow for silly mistakes with extra spaces + + # If the path starts with a colon, it's a resource handle if path.startswith(':'): path = path[1:] handle, resource = path.split(":") while resource.startswith('/') or resource.startswith('\\'): resource = resource[1:] - try: - handle_path = resource_handles[handle] - except KeyError: - raise KeyError(f"Unknown resource handle \"{handle}\"") + # Iterate through the paths in reverse order to find the first + # match. This allows for overriding of resources. + paths = get_resource_handle(handle) + for handle_path in reversed(paths): + path = handle_path / resource + if path.exists(): + break + else: + searched_paths = '\n'.join(f"-> {p}" for p in reversed(paths)) + raise FileNotFoundError(( + f"Cannot locate resource '{resource}' using handle " + f"'{handle}' in any of the following paths:\n" + f"{searched_paths}" + )) # Always convert into a Path object path = Path(handle_path / resource) else: path = Path(path) + # Always return absolute paths # Check for the existence of the file and provide useful feedback to # avoid deep stack trace into pathlib - if not path.exists(): + try: + # If the path is absolute, just return it. We assume it's valid and resolved. + if path.is_absolute(): + return path + return path.resolve(strict=True) + except FileNotFoundError: raise FileNotFoundError(f"Cannot locate resource : {path}") - # Always return absolute paths - return path.resolve() - def add_resource_handle(handle: str, path: Union[str, Path]) -> None: """Adds a new handle to built-in resources @@ -56,16 +74,30 @@ def add_resource_handle(handle: str, path: Union[str, Path]) -> None: else: raise TypeError("Path for resource handle must be a string or Path object") - if not path.is_absolute(): - raise RuntimeError( - "Path for resource handle must be absolute. " - "See https://docs.python.org/3/library/pathlib.html#pathlib.Path.resolve" - ) + # NOTE: This have no effect + # if not path.is_absolute(): + # raise RuntimeError( + # "Path for resource handle must be absolute. " + # "See https://docs.python.org/3/library/pathlib.html#pathlib.Path.resolve" + # ) if not path.exists(): raise FileNotFoundError(f"Cannot locate location for handle: {path}") - resource_handles[handle] = path + resource_handles.setdefault(handle, []).append(path) + + +def get_resource_handle(handle: str) -> List[Path]: + """ + Returns the paths for a resource handle. + This list an be modified to add or remove paths. + + :param List[Path] paths: The list of paths for this handle + """ + try: + return resource_handles[handle] + except KeyError: + raise KeyError(f"Unknown resource handle \"{handle}\"") # RESOURCE LIST : (Truncate file from here if auto generating resource list) diff --git a/arcade/sound.py b/arcade/sound.py index 1d1b9bf8c..4af3a9649 100644 --- a/arcade/sound.py +++ b/arcade/sound.py @@ -7,7 +7,7 @@ from pathlib import Path from typing import Optional, Union -from arcade.resources import resolve_resource_path +from arcade.resources import resolve import pyglet if os.environ.get("ARCADE_SOUND_BACKENDS"): @@ -25,7 +25,7 @@ class Sound: def __init__(self, file_name: Union[str, Path], streaming: bool = False): self.file_name: str = "" - file_name = resolve_resource_path(file_name) + file_name = resolve(file_name) if not Path(file_name).is_file(): raise FileNotFoundError( diff --git a/arcade/sprite/__init__.py b/arcade/sprite/__init__.py index 83e7ee3ae..ab8624b7c 100644 --- a/arcade/sprite/__init__.py +++ b/arcade/sprite/__init__.py @@ -1,7 +1,7 @@ import PIL.Image from arcade.texture import Texture -from arcade.resources import resolve_resource_path +from arcade.resources import resolve from .base import BasicSprite, SpriteType # from .simple import SimpleSprite from .sprite import Sprite @@ -31,7 +31,7 @@ def load_animated_gif(resource_name) -> AnimatedTimeBasedSprite: as PNGs, either as sprite sheets or a frame per file. """ - file_name = resolve_resource_path(resource_name) + file_name = resolve(resource_name) image_object = PIL.Image.open(file_name) if not image_object.is_animated: raise TypeError(f"The file {resource_name} is not an animated gif.") diff --git a/arcade/text.py b/arcade/text.py index 4aa7c1f83..2b801e850 100644 --- a/arcade/text.py +++ b/arcade/text.py @@ -9,7 +9,7 @@ import arcade from arcade.types import Color, Point from arcade.draw_commands import get_four_byte_color -from arcade.resources import resolve_resource_path +from arcade.resources import resolve from arcade.utils import PerformanceWarning, warning @@ -33,7 +33,7 @@ def load_font(path: Union[str, Path]) -> None: :raises FileNotFoundError: if the font specified wasn't found :return: """ - file_path = resolve_resource_path(path) + file_path = resolve(path) pyglet.font.add_file(str(file_path)) @@ -67,7 +67,7 @@ def _attempt_font_name_resolution(font_name: FontNameOrNames) -> FontNameOrNames for font in font_list: try: - path = resolve_resource_path(font) + path = resolve(font) # print(f"Font path: {path=}") # found a font successfully! diff --git a/arcade/texture/loading.py b/arcade/texture/loading.py index 6326d3d27..012c2b075 100644 --- a/arcade/texture/loading.py +++ b/arcade/texture/loading.py @@ -7,7 +7,7 @@ import PIL.ImageDraw from arcade.types import RectList -from arcade.resources import resolve_resource_path +from arcade.resources import resolve from arcade.hitbox import HitBoxAlgorithm from arcade import cache as _cache from arcade import hitbox @@ -42,7 +42,7 @@ def load_texture( :raises: ValueError """ LOG.info("load_texture: %s ", file_path) - file_path = resolve_resource_path(file_path) + file_path = resolve(file_path) crop = (x, y, width, height) return _load_or_get_texture( file_path, @@ -206,7 +206,7 @@ def load_textures( :raises: ValueError """ LOG.info("load_textures: %s ", file_name) - file_name = resolve_resource_path(file_name) + file_name = resolve(file_name) file_name_str = str(file_name) hit_box_algorithm = hit_box_algorithm or hitbox.algo_default image_cache_name = Texture.create_image_cache_name(file_name_str) @@ -214,7 +214,7 @@ def load_textures( # Do we have the image in the cache? image_data = _cache.image_data_cache.get(image_cache_name) if not image_data: - image_data = ImageData(PIL.Image.open(resolve_resource_path(file_name))) + image_data = ImageData(PIL.Image.open(resolve(file_name))) _cache.image_data_cache.put(image_cache_name, image_data) image = image_data.image @@ -272,7 +272,7 @@ def load_spritesheet( texture_list = [] # TODO: Support caching? - file_name = resolve_resource_path(file_name) + file_name = resolve(file_name) source_image = PIL.Image.open(file_name).convert("RGBA") for sprite_no in range(count): diff --git a/arcade/tilemap/tilemap.py b/arcade/tilemap/tilemap.py index 273b535c8..d7c235e9f 100644 --- a/arcade/tilemap/tilemap.py +++ b/arcade/tilemap/tilemap.py @@ -33,7 +33,7 @@ from pyglet.math import Vec2 from arcade.math import rotate_point -from arcade.resources import resolve_resource_path +from arcade.resources import resolve from arcade.types import Point, TiledObject _FLIPPED_HORIZONTALLY_FLAG = 0x80000000 @@ -189,7 +189,7 @@ def __init__( self.tiled_map = tiled_map else: # If we should pull from local resources, replace with proper path - map_file = resolve_resource_path(map_file) + map_file = resolve(map_file) # This attribute stores the pytiled-parser map object self.tiled_map = pytiled_parser.parse_map(map_file) diff --git a/doc/programming_guide/how_to_get_help.rst b/doc/programming_guide/how_to_get_help.rst index 815e0458e..fd87a13a5 100644 --- a/doc/programming_guide/how_to_get_help.rst +++ b/doc/programming_guide/how_to_get_help.rst @@ -126,8 +126,8 @@ the three backticks on the first line: File "/home/user/src/arcade/arcade/sprite.py", line 243, in __init__ self._texture = load_texture( File "/home/user/src/arcade/arcade/texture.py", line 543, in load_texture - file_name = resolve_resource_path(file_name) - File "/home/user/src/arcade/arcade/resources/__init__.py", line 40, in resolve_resource_path + file_name = resolve(file_name) + File "/home/user/src/arcade/arcade/resources/__init__.py", line 40, in resolve raise FileNotFoundError(f"Cannot locate resource : {path}") FileNotFoundError: Cannot locate resource : my_player_image.png ``` diff --git a/tests/fixtures/tilemaps/csv_left_up_embedded.json b/tests/fixtures/tilemaps/csv_left_up_embedded.json index d49d15799..4c002112f 100644 --- a/tests/fixtures/tilemaps/csv_left_up_embedded.json +++ b/tests/fixtures/tilemaps/csv_left_up_embedded.json @@ -38,19 +38,19 @@ "tiles":[ { "id":0, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/boxCrate.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/boxCrate.png", "imageheight":128, "imagewidth":128 }, { "id":1, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtCenter.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtCenter.png", "imageheight":128, "imagewidth":128 }, { "id":2, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassCenter.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassCenter.png", "imageheight":128, "imagewidth":128 }], diff --git a/tests/fixtures/tilemaps/tileset.json b/tests/fixtures/tilemaps/tileset.json index 3d70f5ab4..fe67ab8fc 100644 --- a/tests/fixtures/tilemaps/tileset.json +++ b/tests/fixtures/tilemaps/tileset.json @@ -14,109 +14,109 @@ "tiles":[ { "id":0, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/boxCrate.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/boxCrate.png", "imageheight":128, "imagewidth":128 }, { "id":1, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/boxCrate_double.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/boxCrate_double.png", "imageheight":128, "imagewidth":128 }, { "id":2, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/boxCrate_single.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/boxCrate_single.png", "imageheight":128, "imagewidth":128 }, { "id":3, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/brickBrown.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/brickBrown.png", "imageheight":128, "imagewidth":128 }, { "id":4, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/brickGrey.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/brickGrey.png", "imageheight":128, "imagewidth":128 }, { "id":5, - "image":"..\/..\/..\/arcade\/resources\/images\/test_textures\/test_texture.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/test_textures\/test_texture.png", "imageheight":128, "imagewidth":128 }, { "id":6, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/bridgeA.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/bridgeA.png", "imageheight":128, "imagewidth":128 }, { "id":7, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/bridgeB.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/bridgeB.png", "imageheight":128, "imagewidth":128 }, { "id":8, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/bush.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/bush.png", "imageheight":128, "imagewidth":128 }, { "id":9, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/cactus.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/cactus.png", "imageheight":128, "imagewidth":128 }, { "id":10, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirt.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirt.png", "imageheight":128, "imagewidth":128 }, { "id":11, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtCenter.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtCenter.png", "imageheight":128, "imagewidth":128 }, { "id":12, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtCenter_rounded.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtCenter_rounded.png", "imageheight":128, "imagewidth":128 }, { "id":13, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtCliff_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtCliff_left.png", "imageheight":128, "imagewidth":128 }, { "id":14, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtCliff_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtCliff_right.png", "imageheight":128, "imagewidth":128 }, { "id":15, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtCliffAlt_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtCliffAlt_left.png", "imageheight":128, "imagewidth":128 }, { "id":16, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtCliffAlt_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtCliffAlt_right.png", "imageheight":128, "imagewidth":128 }, { "id":17, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtCorner_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtCorner_left.png", "imageheight":128, "imagewidth":128 }, @@ -131,757 +131,757 @@ "tileid":144 }], "id":18, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtCorner_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtCorner_right.png", "imageheight":128, "imagewidth":128 }, { "id":19, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtHalf.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtHalf.png", "imageheight":128, "imagewidth":128 }, { "id":20, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtHalf_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtHalf_left.png", "imageheight":128, "imagewidth":128 }, { "id":21, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtHalf_mid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtHalf_mid.png", "imageheight":128, "imagewidth":128 }, { "id":22, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtHalf_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtHalf_right.png", "imageheight":128, "imagewidth":128 }, { "id":23, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtHill_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtHill_left.png", "imageheight":128, "imagewidth":128 }, { "id":24, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtHill_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtHill_right.png", "imageheight":128, "imagewidth":128 }, { "id":25, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtLeft.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtLeft.png", "imageheight":128, "imagewidth":128 }, { "id":26, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtMid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtMid.png", "imageheight":128, "imagewidth":128 }, { "id":27, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/dirtRight.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/dirtRight.png", "imageheight":128, "imagewidth":128 }, { "id":28, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/doorClosed_mid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/doorClosed_mid.png", "imageheight":128, "imagewidth":128 }, { "id":29, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/doorClosed_top.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/doorClosed_top.png", "imageheight":128, "imagewidth":128 }, { "id":30, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grass.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grass.png", "imageheight":128, "imagewidth":128 }, { "id":31, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grass_sprout.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grass_sprout.png", "imageheight":128, "imagewidth":128 }, { "id":32, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassCenter.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassCenter.png", "imageheight":128, "imagewidth":128 }, { "id":33, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassCenter_round.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassCenter_round.png", "imageheight":128, "imagewidth":128 }, { "id":34, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassCliff_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassCliff_left.png", "imageheight":128, "imagewidth":128 }, { "id":35, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassCliff_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassCliff_right.png", "imageheight":128, "imagewidth":128 }, { "id":36, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassCliffAlt_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassCliffAlt_left.png", "imageheight":128, "imagewidth":128 }, { "id":37, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassCliffAlt_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassCliffAlt_right.png", "imageheight":128, "imagewidth":128 }, { "id":38, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassCorner_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassCorner_left.png", "imageheight":128, "imagewidth":128 }, { "id":39, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassCorner_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassCorner_right.png", "imageheight":128, "imagewidth":128 }, { "id":40, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassHalf.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassHalf.png", "imageheight":128, "imagewidth":128 }, { "id":41, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassHalf_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassHalf_left.png", "imageheight":128, "imagewidth":128 }, { "id":42, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassHalf_mid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassHalf_mid.png", "imageheight":128, "imagewidth":128 }, { "id":43, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassHalf_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassHalf_right.png", "imageheight":128, "imagewidth":128 }, { "id":44, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassHill_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassHill_left.png", "imageheight":128, "imagewidth":128 }, { "id":45, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassHill_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassHill_right.png", "imageheight":128, "imagewidth":128 }, { "id":46, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassLeft.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassLeft.png", "imageheight":128, "imagewidth":128 }, { "id":47, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassMid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassMid.png", "imageheight":128, "imagewidth":128 }, { "id":48, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/grassRight.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/grassRight.png", "imageheight":128, "imagewidth":128 }, { "id":49, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/ladderMid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/ladderMid.png", "imageheight":128, "imagewidth":128 }, { "id":50, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/ladderTop.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/ladderTop.png", "imageheight":128, "imagewidth":128 }, { "id":51, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/lava.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/lava.png", "imageheight":128, "imagewidth":128 }, { "id":52, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/lavaTop_high.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/lavaTop_high.png", "imageheight":128, "imagewidth":128 }, { "id":53, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/lavaTop_low.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/lavaTop_low.png", "imageheight":128, "imagewidth":128 }, { "id":54, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/leverLeft.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/leverLeft.png", "imageheight":128, "imagewidth":128 }, { "id":55, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/leverMid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/leverMid.png", "imageheight":128, "imagewidth":128 }, { "id":56, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/leverRight.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/leverRight.png", "imageheight":128, "imagewidth":128 }, { "id":57, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/lockRed.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/lockRed.png", "imageheight":128, "imagewidth":128 }, { "id":58, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/lockYellow.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/lockYellow.png", "imageheight":128, "imagewidth":128 }, { "id":59, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/mushroomRed.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/mushroomRed.png", "imageheight":128, "imagewidth":128 }, { "id":60, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planet.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planet.png", "imageheight":128, "imagewidth":128 }, { "id":61, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetCenter.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetCenter.png", "imageheight":128, "imagewidth":128 }, { "id":62, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetCenter_rounded.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetCenter_rounded.png", "imageheight":128, "imagewidth":128 }, { "id":63, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetCliff_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetCliff_left.png", "imageheight":128, "imagewidth":128 }, { "id":64, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetCliff_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetCliff_right.png", "imageheight":128, "imagewidth":128 }, { "id":65, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetCliffAlt_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetCliffAlt_left.png", "imageheight":128, "imagewidth":128 }, { "id":66, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetCliffAlt_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetCliffAlt_right.png", "imageheight":128, "imagewidth":128 }, { "id":67, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetCorner_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetCorner_left.png", "imageheight":128, "imagewidth":128 }, { "id":68, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetCorner_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetCorner_right.png", "imageheight":128, "imagewidth":128 }, { "id":69, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetHalf.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetHalf.png", "imageheight":128, "imagewidth":128 }, { "id":70, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetHalf_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetHalf_left.png", "imageheight":128, "imagewidth":128 }, { "id":71, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetHalf_mid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetHalf_mid.png", "imageheight":128, "imagewidth":128 }, { "id":72, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetHalf_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetHalf_right.png", "imageheight":128, "imagewidth":128 }, { "id":73, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetHill_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetHill_left.png", "imageheight":128, "imagewidth":128 }, { "id":74, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetHill_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetHill_right.png", "imageheight":128, "imagewidth":128 }, { "id":75, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetLeft.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetLeft.png", "imageheight":128, "imagewidth":128 }, { "id":76, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetMid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetMid.png", "imageheight":128, "imagewidth":128 }, { "id":77, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/planetRight.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/planetRight.png", "imageheight":128, "imagewidth":128 }, { "id":78, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/plantPurple.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/plantPurple.png", "imageheight":128, "imagewidth":128 }, { "id":79, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/rock.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/rock.png", "imageheight":128, "imagewidth":128 }, { "id":80, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sand.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sand.png", "imageheight":128, "imagewidth":128 }, { "id":81, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandCenter.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandCenter.png", "imageheight":128, "imagewidth":128 }, { "id":82, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandCenter_rounded.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandCenter_rounded.png", "imageheight":128, "imagewidth":128 }, { "id":83, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandCliff_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandCliff_left.png", "imageheight":128, "imagewidth":128 }, { "id":84, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandCliff_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandCliff_right.png", "imageheight":128, "imagewidth":128 }, { "id":85, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandCliffAlt_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandCliffAlt_left.png", "imageheight":128, "imagewidth":128 }, { "id":86, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandCliffAlt_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandCliffAlt_right.png", "imageheight":128, "imagewidth":128 }, { "id":87, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandCorner_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandCorner_left.png", "imageheight":128, "imagewidth":128 }, { "id":88, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandCorner_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandCorner_right.png", "imageheight":128, "imagewidth":128 }, { "id":89, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandHalf.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandHalf.png", "imageheight":128, "imagewidth":128 }, { "id":90, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandHalf_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandHalf_left.png", "imageheight":128, "imagewidth":128 }, { "id":91, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandHalf_mid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandHalf_mid.png", "imageheight":128, "imagewidth":128 }, { "id":92, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandHalf_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandHalf_right.png", "imageheight":128, "imagewidth":128 }, { "id":93, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandHill_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandHill_left.png", "imageheight":128, "imagewidth":128 }, { "id":94, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandHill_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandHill_right.png", "imageheight":128, "imagewidth":128 }, { "id":95, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandLeft.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandLeft.png", "imageheight":128, "imagewidth":128 }, { "id":96, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandMid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandMid.png", "imageheight":128, "imagewidth":128 }, { "id":97, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/sandRight.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/sandRight.png", "imageheight":128, "imagewidth":128 }, { "id":98, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/signExit.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/signExit.png", "imageheight":128, "imagewidth":128 }, { "id":99, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/signLeft.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/signLeft.png", "imageheight":128, "imagewidth":128 }, { "id":100, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/signRight.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/signRight.png", "imageheight":128, "imagewidth":128 }, { "id":101, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snow.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snow.png", "imageheight":128, "imagewidth":128 }, { "id":102, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snow_pile.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snow_pile.png", "imageheight":128, "imagewidth":128 }, { "id":103, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowCenter.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowCenter.png", "imageheight":128, "imagewidth":128 }, { "id":104, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowCenter_rounded.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowCenter_rounded.png", "imageheight":128, "imagewidth":128 }, { "id":105, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowCliff_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowCliff_left.png", "imageheight":128, "imagewidth":128 }, { "id":106, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowCliff_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowCliff_right.png", "imageheight":128, "imagewidth":128 }, { "id":107, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowCliffAlt_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowCliffAlt_left.png", "imageheight":128, "imagewidth":128 }, { "id":108, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowCliffAlt_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowCliffAlt_right.png", "imageheight":128, "imagewidth":128 }, { "id":109, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowCorner_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowCorner_left.png", "imageheight":128, "imagewidth":128 }, { "id":110, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowCorner_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowCorner_right.png", "imageheight":128, "imagewidth":128 }, { "id":111, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowHalf.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowHalf.png", "imageheight":128, "imagewidth":128 }, { "id":112, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowHalf_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowHalf_left.png", "imageheight":128, "imagewidth":128 }, { "id":113, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowHalf_mid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowHalf_mid.png", "imageheight":128, "imagewidth":128 }, { "id":114, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowHalf_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowHalf_right.png", "imageheight":128, "imagewidth":128 }, { "id":115, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowHill_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowHill_left.png", "imageheight":128, "imagewidth":128 }, { "id":116, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowHill_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowHill_right.png", "imageheight":128, "imagewidth":128 }, { "id":117, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowLeft.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowLeft.png", "imageheight":128, "imagewidth":128 }, { "id":118, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowMid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowMid.png", "imageheight":128, "imagewidth":128 }, { "id":119, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/snowRight.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/snowRight.png", "imageheight":128, "imagewidth":128 }, { "id":120, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/spikes.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/spikes.png", "imageheight":128, "imagewidth":128 }, { "id":121, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stone.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stone.png", "imageheight":128, "imagewidth":128 }, { "id":122, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneCenter.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneCenter.png", "imageheight":128, "imagewidth":128 }, { "id":123, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneCenter_rounded.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneCenter_rounded.png", "imageheight":128, "imagewidth":128 }, { "id":124, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneCliff_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneCliff_left.png", "imageheight":128, "imagewidth":128 }, { "id":125, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneCliff_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneCliff_right.png", "imageheight":128, "imagewidth":128 }, { "id":126, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneCliffAlt_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneCliffAlt_left.png", "imageheight":128, "imagewidth":128 }, { "id":127, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneCliffAlt_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneCliffAlt_right.png", "imageheight":128, "imagewidth":128 }, { "id":128, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneCorner_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneCorner_left.png", "imageheight":128, "imagewidth":128 }, { "id":129, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneCorner_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneCorner_right.png", "imageheight":128, "imagewidth":128 }, { "id":130, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneHalf.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneHalf.png", "imageheight":128, "imagewidth":128 }, { "id":131, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneHalf_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneHalf_left.png", "imageheight":128, "imagewidth":128 }, { "id":132, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneHalf_mid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneHalf_mid.png", "imageheight":128, "imagewidth":128 }, { "id":133, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneHalf_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneHalf_right.png", "imageheight":128, "imagewidth":128 }, { "id":134, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneHill_left.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneHill_left.png", "imageheight":128, "imagewidth":128 }, { "id":135, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneHill_right.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneHill_right.png", "imageheight":128, "imagewidth":128 }, { "id":136, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneLeft.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneLeft.png", "imageheight":128, "imagewidth":128 }, { "id":137, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneMid.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneMid.png", "imageheight":128, "imagewidth":128 }, { "id":138, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/stoneRight.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/stoneRight.png", "imageheight":128, "imagewidth":128 }, { "id":139, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/switchGreen.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/switchGreen.png", "imageheight":128, "imagewidth":128 }, { "id":140, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/switchGreen_pressed.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/switchGreen_pressed.png", "imageheight":128, "imagewidth":128 }, { "id":141, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/switchRed.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/switchRed.png", "imageheight":128, "imagewidth":128 }, { "id":142, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/switchRed_pressed.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/switchRed_pressed.png", "imageheight":128, "imagewidth":128 }, { "id":143, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/torch1.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/torch1.png", "imageheight":128, "imagewidth":128 }, @@ -896,31 +896,31 @@ "tileid":144 }], "id":144, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/torch2.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/torch2.png", "imageheight":128, "imagewidth":128 }, { "id":145, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/torchOff.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/torchOff.png", "imageheight":128, "imagewidth":128 }, { "id":146, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/water.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/water.png", "imageheight":128, "imagewidth":128 }, { "id":147, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/waterTop_high.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/waterTop_high.png", "imageheight":128, "imagewidth":128 }, { "id":148, - "image":"..\/..\/..\/arcade\/resources\/images\/tiles\/waterTop_low.png", + "image":"..\/..\/..\/arcade\/resources\/assets\/images\/tiles\/waterTop_low.png", "imageheight":128, "imagewidth":128 }], diff --git a/tests/unit/atlas/test_gc.py b/tests/unit/atlas/test_gc.py index 53dcc2ccb..1b5cfc7b0 100644 --- a/tests/unit/atlas/test_gc.py +++ b/tests/unit/atlas/test_gc.py @@ -7,7 +7,7 @@ def test_gc_image_multi_ref(ctx, common): atlas = arcade.TextureAtlas((256, 256)) # Load an image manually to bypass the cache (until this is changed) - path = arcade.resources.resolve_resource_path(":resources:images/topdown_tanks/tank_sand.png") + path = arcade.resources.resolve(":resources:images/topdown_tanks/tank_sand.png") image_data = arcade.texture.ImageData(PIL.Image.open(path).convert("RGBA")) texture_1 = arcade.Texture(image_data) From de09a6acea6eb28fca48ec54e4cd49cf23de9b63 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Sun, 26 Mar 2023 21:42:41 +0200 Subject: [PATCH 03/23] Move make_spritesheet.bat to util folder --- arcade/resources/make_spritesheet.bat | 1 - util/make_resources_init.py | 41 +++++++++++++-------------- 2 files changed, 20 insertions(+), 22 deletions(-) delete mode 100644 arcade/resources/make_spritesheet.bat diff --git a/arcade/resources/make_spritesheet.bat b/arcade/resources/make_spritesheet.bat deleted file mode 100644 index b105630e8..000000000 --- a/arcade/resources/make_spritesheet.bat +++ /dev/null @@ -1 +0,0 @@ -magick montage *.png -geometry +0+0 -background none spritesheet.png \ No newline at end of file diff --git a/util/make_resources_init.py b/util/make_resources_init.py index fa0541e08..ffc3267f0 100644 --- a/util/make_resources_init.py +++ b/util/make_resources_init.py @@ -2,41 +2,40 @@ Generates arcade/resources/__init__.py by looking for media types in arcade/resources. """ - -import pathlib +from pathlib import Path from typing import List -MEDIA_TYPES = ['.png', '.wav', '.tmx', '.tsx', '.wav', '.mp3', '.ogg', '.json'] +MEDIA_TYPES = {'.png', '.wav', '.tmx', '.tsx', '.wav', '.mp3', '.ogg', '.json'} +RESOURCE_ROOT = Path(__file__).parent.parent / "arcade/resources" def main() -> None: """Creates __init__.py in the arcade/resources directory.""" - parent = pathlib.Path(__file__).parent.parent.resolve() / "arcade/resources" - used_variable_names: List[str] = [] - with open(parent.as_posix() + "/__init__.py", 'w') as f: - for item in parent.glob('**/*'): - if item.suffix in MEDIA_TYPES: + with open(RESOURCE_ROOT / "/__init__.py", 'w') as f: + for item in RESOURCE_ROOT.glob('**/*'): + if item.suffix not in MEDIA_TYPES: + continue - relative_path = item.relative_to(parent) - stem = item.stem - pythonic_stem = make_camel_case_pythonic(stem) + relative_path = item.relative_to(RESOURCE_ROOT) + stem = item.stem + pythonic_stem = make_camel_case_pythonic(stem) - prefix = get_prefix(relative_path) + prefix = get_prefix(relative_path) - variable_name = f"{prefix}_{pythonic_stem}" + variable_name = f"{prefix}_{pythonic_stem}" - if variable_name in used_variable_names: - print(f"Warning: There is a duplicate resource variable name ({variable_name}).") - used_variable_names.append(variable_name) + if variable_name in used_variable_names: + print(f"Warning: There is a duplicate resource variable name ({variable_name}).") + used_variable_names.append(variable_name) - resource_path = ":resources:/" + relative_path.as_posix() + resource_path = ":resources:" + relative_path.as_posix() - f.write(f"{variable_name} = '{resource_path}'\n") + f.write(f"{variable_name} = '{resource_path}'\n") -def get_prefix(path: pathlib.Path) -> str: +def get_prefix(path: Path) -> str: path_str = path.as_posix() if "gui" in path_str: return "gui" @@ -66,9 +65,9 @@ def test_functions(): assert make_camel_case_pythonic("Stone_E_") == "stone_e_" assert make_camel_case_pythonic("Stone1") == "stone1" - path = pathlib.Path('/testing/gui/abc') + path = Path('/testing/gui/abc') assert get_prefix(path) == "gui" - path = pathlib.Path('sounds/123') + path = Path('sounds/123') assert get_prefix(path) == "sound" From 670176e750288af0e43e992fb0d688af57ebea36 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Sun, 26 Mar 2023 21:43:18 +0200 Subject: [PATCH 04/23] Move make_spritesheet.bat to util folder --- util/make_spritesheet.bat | 1 + 1 file changed, 1 insertion(+) create mode 100644 util/make_spritesheet.bat diff --git a/util/make_spritesheet.bat b/util/make_spritesheet.bat new file mode 100644 index 000000000..b105630e8 --- /dev/null +++ b/util/make_spritesheet.bat @@ -0,0 +1 @@ +magick montage *.png -geometry +0+0 -background none spritesheet.png \ No newline at end of file From c88af8f4220edcbbc8d4e55cba6241d56ef0a792 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Sun, 26 Mar 2023 21:43:55 +0200 Subject: [PATCH 05/23] Basic resource handle testing --- tests/unit/resources/test_handles.py | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 tests/unit/resources/test_handles.py diff --git a/tests/unit/resources/test_handles.py b/tests/unit/resources/test_handles.py new file mode 100644 index 000000000..e5193dd9f --- /dev/null +++ b/tests/unit/resources/test_handles.py @@ -0,0 +1,7 @@ +import arcade + + +def test_default_handles(): + """Test if we can find resources through system and resources handles""" + arcade.resources.resolve(":system:gamecontrollerdb.txt") + arcade.resources.resolve(":resources:gamecontrollerdb.txt") From c17b54c2ad5348b52e43097bf674309e176f6b66 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Sun, 26 Mar 2023 21:44:17 +0200 Subject: [PATCH 06/23] Skeleton for resource tests --- tests/unit/resources/test_resources.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 tests/unit/resources/test_resources.py diff --git a/tests/unit/resources/test_resources.py b/tests/unit/resources/test_resources.py new file mode 100644 index 000000000..6256502f0 --- /dev/null +++ b/tests/unit/resources/test_resources.py @@ -0,0 +1,14 @@ +""" +Validate the resources module. +* Check that all resources are listed in the __init__.py file +* Check that all resources listed actually exists +""" +import arcade + + +def test_resource_listing_exists(): + pass + + +def test_resource_listing_is_complete(): + pass From 713da05eb39855c591bb835ed85b274682e551d4 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Sun, 26 Mar 2023 22:26:49 +0200 Subject: [PATCH 07/23] Make resource handle for fixtures in unit tests --- tests/conftest.py | 16 +--------------- tests/unit/tilemap/test_animation.py | 4 ++-- tests/unit/tilemap/test_file_formats.py | 16 ++++++++-------- tests/unit/tilemap/test_rotation_flip.py | 5 ++--- tests/unit/tilemap/test_show_tiled_map.py | 4 ++-- 5 files changed, 15 insertions(+), 30 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 62a1d10e1..595264ea0 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -11,6 +11,7 @@ PROJECT_ROOT = (Path(__file__).parent.parent).resolve() FIXTURE_ROOT = PROJECT_ROOT / "tests" / "fixtures" +arcade.resources.add_resource_handle("fixtures", FIXTURE_ROOT) WINDOW = None @@ -87,18 +88,3 @@ def window(): arcade.set_window(window) prepare_window(window) return window - - -class Fixtures: - def __init__(self): - self.project_root = PROJECT_ROOT - self.fixtures_root = FIXTURE_ROOT - - def path(self, path): - """Get absolute path to a fixture""" - return self.fixtures_root / Path(path) - - -@pytest.fixture(scope="session") -def fixtures(): - return Fixtures() \ No newline at end of file diff --git a/tests/unit/tilemap/test_animation.py b/tests/unit/tilemap/test_animation.py index 544d274c7..528769895 100644 --- a/tests/unit/tilemap/test_animation.py +++ b/tests/unit/tilemap/test_animation.py @@ -1,9 +1,9 @@ import arcade -def test_rotation_mirror(fixtures): +def test_rotation_mirror(): # Read in the tiled map - tile_map = arcade.load_tilemap(fixtures.path("tilemaps/animation.json")) + tile_map = arcade.load_tilemap(":fixtures:tilemaps/animation.json") # --- Platforms --- assert "Blocking Sprites" in tile_map.sprite_lists diff --git a/tests/unit/tilemap/test_file_formats.py b/tests/unit/tilemap/test_file_formats.py index 7ab63b6e0..33fb0c845 100644 --- a/tests/unit/tilemap/test_file_formats.py +++ b/tests/unit/tilemap/test_file_formats.py @@ -3,9 +3,9 @@ TILE_SCALING = 1.0 -def test_csv_left_up(fixtures): +def test_csv_left_up(): # Read in the tiled map - my_map = arcade.load_tilemap(fixtures.path("tilemaps/csv_left_up_embedded.json")) + my_map = arcade.load_tilemap(":fixtures:tilemaps/csv_left_up_embedded.json") assert my_map.tile_width == 128 assert my_map.tile_height == 128 @@ -26,9 +26,9 @@ def test_csv_left_up(fixtures): assert wall_list[2].texture.file_path.name == "boxCrate.png" -def test_csv_right_down(fixtures): +def test_csv_right_down(): # Read in the tiled map - my_map = arcade.load_tilemap(fixtures.path("tilemaps/csv_right_down_external.json")) + my_map = arcade.load_tilemap(":fixtures:tilemaps/csv_right_down_external.json") assert my_map.tile_width == 128 assert my_map.tile_height == 128 @@ -49,9 +49,9 @@ def test_csv_right_down(fixtures): assert wall_list[2].texture.file_path.name == "boxCrate.png" -def test_base_64_zlib(fixtures): +def test_base_64_zlib(): # Read in the tiled map - my_map = arcade.load_tilemap(fixtures.path("tilemaps/base_64_zlib.json")) + my_map = arcade.load_tilemap(":fixtures:tilemaps/base_64_zlib.json") assert my_map.tile_width == 128 assert my_map.tile_height == 128 @@ -72,9 +72,9 @@ def test_base_64_zlib(fixtures): assert wall_list[2].texture.file_path.name == "boxCrate.png" -def test_base_64_gzip(fixtures): +def test_base_64_gzip(): # Read in the tiled map - my_map = arcade.load_tilemap(fixtures.path("tilemaps/base_64_gzip.json")) + my_map = arcade.load_tilemap(":fixtures:tilemaps/base_64_gzip.json") assert my_map.tile_width == 128 assert my_map.tile_height == 128 diff --git a/tests/unit/tilemap/test_rotation_flip.py b/tests/unit/tilemap/test_rotation_flip.py index 1ddca63b8..0e92098f2 100644 --- a/tests/unit/tilemap/test_rotation_flip.py +++ b/tests/unit/tilemap/test_rotation_flip.py @@ -11,10 +11,9 @@ def _transform(*transforms): return order -def test_rotation_mirror(window, fixtures): +def test_rotation_mirror(window): # Read in the tiled map - print(fixtures) - my_map = arcade.load_tilemap(fixtures.path("tilemaps/rotation.json")) + my_map = arcade.load_tilemap(":fixtures:tilemaps/rotation.json") assert my_map.tile_width == 128 assert my_map.tile_height == 128 diff --git a/tests/unit/tilemap/test_show_tiled_map.py b/tests/unit/tilemap/test_show_tiled_map.py index 16403bb8b..9e67cef36 100644 --- a/tests/unit/tilemap/test_show_tiled_map.py +++ b/tests/unit/tilemap/test_show_tiled_map.py @@ -3,9 +3,9 @@ TILE_SCALING = 0.5 -def test_show_tilemap(window: arcade.Window, fixtures): +def test_show_tilemap(window: arcade.Window): my_map = arcade.load_tilemap( - fixtures.path("tilemaps/animation.json"), + ":fixtures:tilemaps/animation.json", scaling=TILE_SCALING, ) From 351191ad313c5fd172cadadec429b456b91c3932 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Sun, 26 Mar 2023 22:34:39 +0200 Subject: [PATCH 08/23] RESOURCE_ROOT not longer exists --- arcade/experimental/atlas_load_save.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arcade/experimental/atlas_load_save.py b/arcade/experimental/atlas_load_save.py index 17bc2ed7a..520adee7c 100644 --- a/arcade/experimental/atlas_load_save.py +++ b/arcade/experimental/atlas_load_save.py @@ -18,7 +18,7 @@ from arcade.texture_atlas.helpers import save_atlas, load_atlas MODE = 'load' -RESOURCE_ROOT = arcade.resources.RESOURCE_PATH +RESOURCE_ROOT = arcade.resources.ASSET_PATH DESTINATION = Path.cwd() texture_paths: List[Path] = [] From 3db0a5dcd22982b371662dd0a4cb54c90b7b1f12 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Sun, 26 Mar 2023 23:54:46 +0200 Subject: [PATCH 09/23] Test resource handles --- arcade/resources/__init__.py | 43 ++++++++++++++++------------ tests/unit/resources/test_handles.py | 38 ++++++++++++++++++++++-- 2 files changed, 61 insertions(+), 20 deletions(-) diff --git a/arcade/resources/__init__.py b/arcade/resources/__init__.py index c508dabb1..fcd3c9405 100644 --- a/arcade/resources/__init__.py +++ b/arcade/resources/__init__.py @@ -6,7 +6,7 @@ SYSTEM_PATH = Path(__file__).parent.resolve() / "system" ASSET_PATH = Path(__file__).parent.resolve() / "assets" -resource_handles: Dict[str, List[Path]] = { +handles: Dict[str, List[Path]] = { "resources": [SYSTEM_PATH, ASSET_PATH], "system": [SYSTEM_PATH], } @@ -14,8 +14,13 @@ def resolve(path: Union[str, Path]) -> Path: """ - Resolves a resource path and returns a Path object. + Attempts to resolve a path to a resource including resource handles. + Example:: + + resolve(":resources:images/cards/cardBack_blue1.png") + resolve(":my_handle:music/combat.wav") + :param Union[str, Path] path: A Path or string """ # Convert to a Path object and resolve resource handle @@ -31,7 +36,7 @@ def resolve(path: Union[str, Path]) -> Path: # Iterate through the paths in reverse order to find the first # match. This allows for overriding of resources. - paths = get_resource_handle(handle) + paths = get_resource_handle_paths(handle) for handle_path in reversed(paths): path = handle_path / resource if path.exists(): @@ -62,40 +67,42 @@ def resolve(path: Union[str, Path]) -> Path: def add_resource_handle(handle: str, path: Union[str, Path]) -> None: - """Adds a new handle to built-in resources + """ + Adds a new handle to built-in resources :param str handle: The name of the handle :param Union[str, Path] path: The location the handle points to """ if isinstance(path, str): - path = Path(path).resolve() + path = Path(path) elif isinstance(path, Path): - path = path.resolve() + path = path else: raise TypeError("Path for resource handle must be a string or Path object") - # NOTE: This have no effect - # if not path.is_absolute(): - # raise RuntimeError( - # "Path for resource handle must be absolute. " - # "See https://docs.python.org/3/library/pathlib.html#pathlib.Path.resolve" - # ) + if not path.is_absolute(): + raise RuntimeError( + f"Path for resource handle must be absolute, not relative ('{path}'). " + "See https://docs.python.org/3/library/pathlib.html#pathlib.Path.resolve" + ) if not path.exists(): - raise FileNotFoundError(f"Cannot locate location for handle: {path}") + raise FileNotFoundError(f"Directory '{path}' for handle '{handle}' does not exist") - resource_handles.setdefault(handle, []).append(path) + paths = handles.setdefault(handle, []) + # Don't allow duplicate paths + if path not in paths: + paths.append(path) -def get_resource_handle(handle: str) -> List[Path]: +def get_resource_handle_paths(handle: str) -> List[Path]: """ Returns the paths for a resource handle. - This list an be modified to add or remove paths. - :param List[Path] paths: The list of paths for this handle + :param str handle: The name of the handle """ try: - return resource_handles[handle] + return handles[handle] except KeyError: raise KeyError(f"Unknown resource handle \"{handle}\"") diff --git a/tests/unit/resources/test_handles.py b/tests/unit/resources/test_handles.py index e5193dd9f..d36bd53cc 100644 --- a/tests/unit/resources/test_handles.py +++ b/tests/unit/resources/test_handles.py @@ -1,7 +1,41 @@ +from pathlib import Path +import pytest import arcade +from arcade import resources + +MODULE_DIR = Path(__file__).parent.parent.resolve() def test_default_handles(): """Test if we can find resources through system and resources handles""" - arcade.resources.resolve(":system:gamecontrollerdb.txt") - arcade.resources.resolve(":resources:gamecontrollerdb.txt") + assert len(resources.handles) >= 2 + resources.resolve(":system:gamecontrollerdb.txt") + resources.resolve(":resources:gamecontrollerdb.txt") + + # Ww can't find an asset using a system handle + resources.resolve(":resources:images/cards/cardBack_blue1.png") + with pytest.raises(FileNotFoundError): + resources.resolve(":system:images/cards/cardBack_blue1.png") + + +def test_add_handles(monkeypatch): + monkeypatch.setattr(resources, "handles", {}) + + # Ensure no duplicate paths in the same handler + resources.add_resource_handle("test", MODULE_DIR) + resources.add_resource_handle("test", MODULE_DIR) + assert len(resources.get_resource_handle_paths("test")) == 1 + + # We don't allow relative paths in handles + with pytest.raises(RuntimeError, match="must be absolute"): + resources.add_resource_handle("test", "moo") + + # We don't allow non-existent paths in handles + with pytest.raises(FileNotFoundError, match="does not exist"): + resources.add_resource_handle("test", MODULE_DIR / "moo") + + +def test_misc(): + path = resources.resolve(":resources:images/cards/cardBack_blue1.png") + assert resources.resolve(path) == path + From 1b723ffaf55768335a038aa14a3b6db6be0b3cfc Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Mon, 27 Mar 2023 01:12:01 +0200 Subject: [PATCH 10/23] Move fonts to system folder --- .../{assets => system}/fonts/ttf/Kenney_Blocks.ttf | Bin .../{assets => system}/fonts/ttf/Kenney_Future.ttf | Bin .../fonts/ttf/Kenney_Future_Narrow.ttf | Bin .../{assets => system}/fonts/ttf/Kenney_High.ttf | Bin .../fonts/ttf/Kenney_High_Square.ttf | Bin .../{assets => system}/fonts/ttf/Kenney_Mini.ttf | Bin .../fonts/ttf/Kenney_Mini_Square.ttf | Bin .../{assets => system}/fonts/ttf/Kenney_Pixel.ttf | Bin .../fonts/ttf/Kenney_Pixel_Square.ttf | Bin .../{assets => system}/fonts/ttf/Kenney_Rocket.ttf | Bin .../fonts/ttf/Kenney_Rocket_Square.ttf | Bin arcade/texture_atlas/base.py | 2 ++ 12 files changed, 2 insertions(+) rename arcade/resources/{assets => system}/fonts/ttf/Kenney_Blocks.ttf (100%) rename arcade/resources/{assets => system}/fonts/ttf/Kenney_Future.ttf (100%) rename arcade/resources/{assets => system}/fonts/ttf/Kenney_Future_Narrow.ttf (100%) rename arcade/resources/{assets => system}/fonts/ttf/Kenney_High.ttf (100%) rename arcade/resources/{assets => system}/fonts/ttf/Kenney_High_Square.ttf (100%) rename arcade/resources/{assets => system}/fonts/ttf/Kenney_Mini.ttf (100%) rename arcade/resources/{assets => system}/fonts/ttf/Kenney_Mini_Square.ttf (100%) rename arcade/resources/{assets => system}/fonts/ttf/Kenney_Pixel.ttf (100%) rename arcade/resources/{assets => system}/fonts/ttf/Kenney_Pixel_Square.ttf (100%) rename arcade/resources/{assets => system}/fonts/ttf/Kenney_Rocket.ttf (100%) rename arcade/resources/{assets => system}/fonts/ttf/Kenney_Rocket_Square.ttf (100%) diff --git a/arcade/resources/assets/fonts/ttf/Kenney_Blocks.ttf b/arcade/resources/system/fonts/ttf/Kenney_Blocks.ttf similarity index 100% rename from arcade/resources/assets/fonts/ttf/Kenney_Blocks.ttf rename to arcade/resources/system/fonts/ttf/Kenney_Blocks.ttf diff --git a/arcade/resources/assets/fonts/ttf/Kenney_Future.ttf b/arcade/resources/system/fonts/ttf/Kenney_Future.ttf similarity index 100% rename from arcade/resources/assets/fonts/ttf/Kenney_Future.ttf rename to arcade/resources/system/fonts/ttf/Kenney_Future.ttf diff --git a/arcade/resources/assets/fonts/ttf/Kenney_Future_Narrow.ttf b/arcade/resources/system/fonts/ttf/Kenney_Future_Narrow.ttf similarity index 100% rename from arcade/resources/assets/fonts/ttf/Kenney_Future_Narrow.ttf rename to arcade/resources/system/fonts/ttf/Kenney_Future_Narrow.ttf diff --git a/arcade/resources/assets/fonts/ttf/Kenney_High.ttf b/arcade/resources/system/fonts/ttf/Kenney_High.ttf similarity index 100% rename from arcade/resources/assets/fonts/ttf/Kenney_High.ttf rename to arcade/resources/system/fonts/ttf/Kenney_High.ttf diff --git a/arcade/resources/assets/fonts/ttf/Kenney_High_Square.ttf b/arcade/resources/system/fonts/ttf/Kenney_High_Square.ttf similarity index 100% rename from arcade/resources/assets/fonts/ttf/Kenney_High_Square.ttf rename to arcade/resources/system/fonts/ttf/Kenney_High_Square.ttf diff --git a/arcade/resources/assets/fonts/ttf/Kenney_Mini.ttf b/arcade/resources/system/fonts/ttf/Kenney_Mini.ttf similarity index 100% rename from arcade/resources/assets/fonts/ttf/Kenney_Mini.ttf rename to arcade/resources/system/fonts/ttf/Kenney_Mini.ttf diff --git a/arcade/resources/assets/fonts/ttf/Kenney_Mini_Square.ttf b/arcade/resources/system/fonts/ttf/Kenney_Mini_Square.ttf similarity index 100% rename from arcade/resources/assets/fonts/ttf/Kenney_Mini_Square.ttf rename to arcade/resources/system/fonts/ttf/Kenney_Mini_Square.ttf diff --git a/arcade/resources/assets/fonts/ttf/Kenney_Pixel.ttf b/arcade/resources/system/fonts/ttf/Kenney_Pixel.ttf similarity index 100% rename from arcade/resources/assets/fonts/ttf/Kenney_Pixel.ttf rename to arcade/resources/system/fonts/ttf/Kenney_Pixel.ttf diff --git a/arcade/resources/assets/fonts/ttf/Kenney_Pixel_Square.ttf b/arcade/resources/system/fonts/ttf/Kenney_Pixel_Square.ttf similarity index 100% rename from arcade/resources/assets/fonts/ttf/Kenney_Pixel_Square.ttf rename to arcade/resources/system/fonts/ttf/Kenney_Pixel_Square.ttf diff --git a/arcade/resources/assets/fonts/ttf/Kenney_Rocket.ttf b/arcade/resources/system/fonts/ttf/Kenney_Rocket.ttf similarity index 100% rename from arcade/resources/assets/fonts/ttf/Kenney_Rocket.ttf rename to arcade/resources/system/fonts/ttf/Kenney_Rocket.ttf diff --git a/arcade/resources/assets/fonts/ttf/Kenney_Rocket_Square.ttf b/arcade/resources/system/fonts/ttf/Kenney_Rocket_Square.ttf similarity index 100% rename from arcade/resources/assets/fonts/ttf/Kenney_Rocket_Square.ttf rename to arcade/resources/system/fonts/ttf/Kenney_Rocket_Square.ttf diff --git a/arcade/texture_atlas/base.py b/arcade/texture_atlas/base.py index 8440f57af..681e4a3a1 100644 --- a/arcade/texture_atlas/base.py +++ b/arcade/texture_atlas/base.py @@ -652,6 +652,7 @@ def remove(self, texture: "Texture") -> None: # Decrement the reference count for the image self._image_ref_count.dec_ref(texture.image_data) + # print("Dec ref", texture.image_data.hash, self._image_ref_count.get_refs(texture.image_data)) # Reclaim the image in the atlas if it's not used by any other texture if self._image_ref_count.get_refs(texture.image_data) == 0: @@ -660,6 +661,7 @@ def remove(self, texture: "Texture") -> None: slot = self._image_uv_slots[texture.image_data.hash] del self._image_uv_slots[texture.image_data.hash] self._image_uv_slots_free.appendleft(slot) + # print("Reclaimed image", texture.image_data.hash) def update_texture_image(self, texture: "Texture"): """ From 8dc68954d4c6cef5e7d510fcbadcd3189a304dae Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Mon, 27 Mar 2023 01:13:25 +0200 Subject: [PATCH 11/23] Load fonts from system --- arcade/__init__.py | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/arcade/__init__.py b/arcade/__init__.py index 10940fc8f..7ae5a1931 100644 --- a/arcade/__init__.py +++ b/arcade/__init__.py @@ -397,17 +397,17 @@ def configure_logging(level: Optional[int] = None): # Piggyback on pyglet's doc run detection if not getattr(sys, 'is_pyglet_doc_run', False): # Auto load fonts - load_font(":resources:fonts/ttf/Kenney_Blocks.ttf") - load_font(":resources:fonts/ttf/Kenney_Future.ttf") - load_font(":resources:fonts/ttf/Kenney_Future_Narrow.ttf") - load_font(":resources:fonts/ttf/Kenney_High.ttf") - load_font(":resources:fonts/ttf/Kenney_High_Square.ttf") - load_font(":resources:fonts/ttf/Kenney_Mini.ttf") - load_font(":resources:fonts/ttf/Kenney_Mini_Square.ttf") - load_font(":resources:fonts/ttf/Kenney_Pixel.ttf") - load_font(":resources:fonts/ttf/Kenney_Pixel_Square.ttf") - load_font(":resources:fonts/ttf/Kenney_Rocket.ttf") - load_font(":resources:fonts/ttf/Kenney_Rocket_Square.ttf") + load_font(":system:fonts/ttf/Kenney_Blocks.ttf") + load_font(":system:fonts/ttf/Kenney_Future.ttf") + load_font(":system:fonts/ttf/Kenney_Future_Narrow.ttf") + load_font(":system:fonts/ttf/Kenney_High.ttf") + load_font(":system:fonts/ttf/Kenney_High_Square.ttf") + load_font(":system:fonts/ttf/Kenney_Mini.ttf") + load_font(":system:fonts/ttf/Kenney_Mini_Square.ttf") + load_font(":system:fonts/ttf/Kenney_Pixel.ttf") + load_font(":system:fonts/ttf/Kenney_Pixel_Square.ttf") + load_font(":system:fonts/ttf/Kenney_Rocket.ttf") + load_font(":system:fonts/ttf/Kenney_Rocket_Square.ttf") # Load additional game controller mappings to Pyglet if not pyglet.options['headless']: From 3d5abade097fac54cb0409e2d904fecb419ecd5c Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Mon, 27 Mar 2023 01:16:19 +0200 Subject: [PATCH 12/23] Load core shaders using system handle --- arcade/context.py | 64 +++++++++++++++++++++++------------------------ 1 file changed, 32 insertions(+), 32 deletions(-) diff --git a/arcade/context.py b/arcade/context.py index 038bbfe51..3fed60541 100644 --- a/arcade/context.py +++ b/arcade/context.py @@ -64,59 +64,59 @@ def __init__(self, window: pyglet.window.Window, gc_mode: str = "context_gc", gl # FIXME: These pre-created resources needs to be packaged nicely # Just having them globally in the context is probably not a good idea self.line_vertex_shader: Program = self.load_program( - vertex_shader=":resources:shaders/shapes/line/line_vertex_shader_vs.glsl", - fragment_shader=":resources:shaders/shapes/line/line_vertex_shader_fs.glsl", + vertex_shader=":system:shaders/shapes/line/line_vertex_shader_vs.glsl", + fragment_shader=":system:shaders/shapes/line/line_vertex_shader_fs.glsl", ) self.line_generic_with_colors_program: Program = self.load_program( - vertex_shader=":resources:shaders/shapes/line/line_generic_with_colors_vs.glsl", - fragment_shader=":resources:shaders/shapes/line/line_generic_with_colors_fs.glsl", + vertex_shader=":system:shaders/shapes/line/line_generic_with_colors_vs.glsl", + fragment_shader=":system:shaders/shapes/line/line_generic_with_colors_fs.glsl", ) self.shape_element_list_program: Program = self.load_program( - vertex_shader=":resources:shaders/shape_element_list_vs.glsl", - fragment_shader=":resources:shaders/shape_element_list_fs.glsl", + vertex_shader=":system:shaders/shape_element_list_vs.glsl", + fragment_shader=":system:shaders/shape_element_list_fs.glsl", ) self.sprite_list_program_no_cull: Program = self.load_program( - vertex_shader=":resources:shaders/sprites/sprite_list_geometry_vs.glsl", - geometry_shader=":resources:shaders/sprites/sprite_list_geometry_no_cull_geo.glsl", - fragment_shader=":resources:shaders/sprites/sprite_list_geometry_fs.glsl", + vertex_shader=":system:shaders/sprites/sprite_list_geometry_vs.glsl", + geometry_shader=":system:shaders/sprites/sprite_list_geometry_no_cull_geo.glsl", + fragment_shader=":system:shaders/sprites/sprite_list_geometry_fs.glsl", ) self.sprite_list_program_no_cull["sprite_texture"] = 0 self.sprite_list_program_no_cull["uv_texture"] = 1 self.sprite_list_program_cull: Program = self.load_program( - vertex_shader=":resources:shaders/sprites/sprite_list_geometry_vs.glsl", - geometry_shader=":resources:shaders/sprites/sprite_list_geometry_cull_geo.glsl", - fragment_shader=":resources:shaders/sprites/sprite_list_geometry_fs.glsl", + vertex_shader=":system:shaders/sprites/sprite_list_geometry_vs.glsl", + geometry_shader=":system:shaders/sprites/sprite_list_geometry_cull_geo.glsl", + fragment_shader=":system:shaders/sprites/sprite_list_geometry_fs.glsl", ) self.sprite_list_program_cull["sprite_texture"] = 0 self.sprite_list_program_cull["uv_texture"] = 1 # Shapes self.shape_line_program: Program = self.load_program( - vertex_shader=":resources:shaders/shapes/line/unbuffered_vs.glsl", - fragment_shader=":resources:shaders/shapes/line/unbuffered_fs.glsl", - geometry_shader=":resources:shaders/shapes/line/unbuffered_geo.glsl", + vertex_shader=":system:shaders/shapes/line/unbuffered_vs.glsl", + fragment_shader=":system:shaders/shapes/line/unbuffered_fs.glsl", + geometry_shader=":system:shaders/shapes/line/unbuffered_geo.glsl", ) self.shape_ellipse_filled_unbuffered_program: Program = self.load_program( - vertex_shader=":resources:shaders/shapes/ellipse/filled_unbuffered_vs.glsl", - fragment_shader=":resources:shaders/shapes/ellipse/filled_unbuffered_fs.glsl", - geometry_shader=":resources:shaders/shapes/ellipse/filled_unbuffered_geo.glsl", + vertex_shader=":system:shaders/shapes/ellipse/filled_unbuffered_vs.glsl", + fragment_shader=":system:shaders/shapes/ellipse/filled_unbuffered_fs.glsl", + geometry_shader=":system:shaders/shapes/ellipse/filled_unbuffered_geo.glsl", ) self.shape_ellipse_outline_unbuffered_program: Program = self.load_program( - vertex_shader=":resources:shaders/shapes/ellipse/outline_unbuffered_vs.glsl", - fragment_shader=":resources:shaders/shapes/ellipse/outline_unbuffered_fs.glsl", - geometry_shader=":resources:shaders/shapes/ellipse/outline_unbuffered_geo.glsl", + vertex_shader=":system:shaders/shapes/ellipse/outline_unbuffered_vs.glsl", + fragment_shader=":system:shaders/shapes/ellipse/outline_unbuffered_fs.glsl", + geometry_shader=":system:shaders/shapes/ellipse/outline_unbuffered_geo.glsl", ) self.shape_rectangle_filled_unbuffered_program = self.load_program( - vertex_shader=":resources:shaders/shapes/rectangle/filled_unbuffered_vs.glsl", - fragment_shader=":resources:shaders/shapes/rectangle/filled_unbuffered_fs.glsl", - geometry_shader=":resources:shaders/shapes/rectangle/filled_unbuffered_geo.glsl", + vertex_shader=":system:shaders/shapes/rectangle/filled_unbuffered_vs.glsl", + fragment_shader=":system:shaders/shapes/rectangle/filled_unbuffered_fs.glsl", + geometry_shader=":system:shaders/shapes/rectangle/filled_unbuffered_geo.glsl", ) # Atlas shaders self.atlas_resize_program: Program = self.load_program( - vertex_shader=":resources:shaders/atlas/resize_vs.glsl", - geometry_shader=":resources:shaders/atlas/resize_gs.glsl", - fragment_shader=":resources:shaders/atlas/resize_fs.glsl", + vertex_shader=":system:shaders/atlas/resize_vs.glsl", + geometry_shader=":system:shaders/atlas/resize_gs.glsl", + fragment_shader=":system:shaders/atlas/resize_fs.glsl", ) self.atlas_resize_program["atlas_old"] = 0 # Configure texture channels self.atlas_resize_program["atlas_new"] = 1 @@ -125,8 +125,8 @@ def __init__(self, window: pyglet.window.Window, gc_mode: str = "context_gc", gl # SpriteList collision resources self.collision_detection_program = self.load_program( - vertex_shader=":resources:shaders/collision/col_trans_vs.glsl", - geometry_shader=":resources:shaders/collision/col_trans_gs.glsl", + vertex_shader=":system:shaders/collision/col_trans_vs.glsl", + geometry_shader=":system:shaders/collision/col_trans_gs.glsl", ) self.collision_buffer = self.buffer(reserve=1024 * 4) self.collision_query = self.query(samples=False, time=False, primitives=True) @@ -349,12 +349,12 @@ def load_program( varyings: Optional[Sequence[str]] = None, varyings_capture_mode: str = "interleaved", ) -> Program: - """Create a new program given a file names that contain the vertex shader and + """ + Create a new program given a file names that contain the vertex shader and fragment shader. Note that fragment and geometry shader are optional for when transform shaders are loaded. - This method also supports the ``:resources:`` prefix. - It's recommended to use absolute paths, but not required. + This method also supports the resource handles. Example:: From 01a6abbe1bd415bfdd17f2d5d7012c076b8524d2 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Mon, 27 Mar 2023 01:17:27 +0200 Subject: [PATCH 13/23] Load controllersdb with system handle --- arcade/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arcade/__init__.py b/arcade/__init__.py index 7ae5a1931..ac200c581 100644 --- a/arcade/__init__.py +++ b/arcade/__init__.py @@ -412,7 +412,7 @@ def configure_logging(level: Optional[int] = None): # Load additional game controller mappings to Pyglet if not pyglet.options['headless']: try: - mappings_file = resources.resolve(":resources:gamecontrollerdb.txt") + mappings_file = resources.resolve(":system:gamecontrollerdb.txt") pyglet.input.controller.add_mappings_from_file(mappings_file) except AssertionError: pass From 88af64135affdb7f5291e326fa307de1d8459034 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Mon, 27 Mar 2023 01:23:30 +0200 Subject: [PATCH 14/23] Update various shaders to load using system handle --- arcade/background/background.py | 4 ++-- arcade/experimental/bloom_filter.py | 6 +++--- arcade/experimental/lights.py | 10 +++++----- arcade/experimental/postprocessing.py | 16 ++++++++-------- arcade/experimental/shadertoy.py | 4 ++-- arcade/gui/nine_patch.py | 6 +++--- arcade/gui/surface.py | 6 +++--- arcade/resources/system/shaders/__init__.py | 4 ++-- .../system/shaders/atlas/resize_gs.glsl | 2 +- .../system/shaders/gui/nine_patch_gs.glsl | 2 +- .../sprites/sprite_list_geometry_cull_geo.glsl | 2 +- .../sprite_list_geometry_no_cull_geo.glsl | 2 +- 12 files changed, 32 insertions(+), 32 deletions(-) diff --git a/arcade/background/background.py b/arcade/background/background.py index 890c0d06d..01c43da40 100644 --- a/arcade/background/background.py +++ b/arcade/background/background.py @@ -30,8 +30,8 @@ def __init__( if shader is None: shader = get_window().ctx.load_program( - vertex_shader=":resources:/shaders/background_vs.glsl", - fragment_shader=":resources:/shaders/background_fs.glsl", + vertex_shader=":system:/shaders/background_vs.glsl", + fragment_shader=":system:/shaders/background_fs.glsl", ) self.shader = shader diff --git a/arcade/experimental/bloom_filter.py b/arcade/experimental/bloom_filter.py index 3b2821435..a30bcffca 100644 --- a/arcade/experimental/bloom_filter.py +++ b/arcade/experimental/bloom_filter.py @@ -19,17 +19,17 @@ def __init__( ): self.shadertoy = Shadertoy.create_from_file( (width, height), - ":resources:shaders/bloom/bloom_filter_image.glsl" + ":system:shaders/bloom/bloom_filter_image.glsl" ) self.fbo = self.shadertoy.ctx.framebuffer( color_attachments=[self.shadertoy.ctx.texture((width, height), components=4)] ) - self.shadertoy.buffer_a = self.shadertoy.create_buffer_from_file(":resources:shaders/bloom/bloom_filter_a.glsl") + self.shadertoy.buffer_a = self.shadertoy.create_buffer_from_file(":system:shaders/bloom/bloom_filter_a.glsl") self.shadertoy.buffer_a.program['intensity'] = intensity self.shadertoy.buffer_a.channel_0 = self.fbo.color_attachments[0] - self.shadertoy.buffer_b = self.shadertoy.create_buffer_from_file(":resources:shaders/bloom/bloom_filter_b.glsl") + self.shadertoy.buffer_b = self.shadertoy.create_buffer_from_file(":system:shaders/bloom/bloom_filter_b.glsl") self.shadertoy.buffer_b.channel_0 = self.shadertoy.buffer_a.texture self.shadertoy.channel_0 = self.shadertoy.buffer_a.texture diff --git a/arcade/experimental/lights.py b/arcade/experimental/lights.py index b249c333e..f4ad57b8e 100644 --- a/arcade/experimental/lights.py +++ b/arcade/experimental/lights.py @@ -95,13 +95,13 @@ def __init__(self, width: int, height: int): ), ]) self._light_program = self.ctx.load_program( - vertex_shader=":resources:shaders/lights/point_lights_vs.glsl", - geometry_shader=":resources:shaders/lights/point_lights_geo.glsl", - fragment_shader=":resources:shaders/lights/point_lights_fs.glsl", + vertex_shader=":system:shaders/lights/point_lights_vs.glsl", + geometry_shader=":system:shaders/lights/point_lights_geo.glsl", + fragment_shader=":system:shaders/lights/point_lights_fs.glsl", ) self._combine_program = self.ctx.load_program( - vertex_shader=":resources:shaders/lights/combine_vs.glsl", - fragment_shader=":resources:shaders/lights/combine_fs.glsl", + vertex_shader=":system:shaders/lights/combine_vs.glsl", + fragment_shader=":system:shaders/lights/combine_fs.glsl", ) # NOTE: Diffuse buffer created in parent self._light_buffer = self.ctx.framebuffer(color_attachments=self.ctx.texture((width, height), components=3)) diff --git a/arcade/experimental/postprocessing.py b/arcade/experimental/postprocessing.py index 2b7cbfbf5..d62927539 100644 --- a/arcade/experimental/postprocessing.py +++ b/arcade/experimental/postprocessing.py @@ -87,8 +87,8 @@ def __init__(self, size: Tuple[int, int], kernel_size=5, sigma=2, multiplier=1, self._fbo = self.ctx.framebuffer(color_attachments=color_attachment) self._program = self.ctx.load_program( # defines=self._create_kernel(), - vertex_shader=':resources:shaders/texture_default_projection_vs.glsl', - fragment_shader=':resources:shaders/postprocessing/gaussian_blur_x_fs.glsl', + vertex_shader=':system:shaders/texture_default_projection_vs.glsl', + fragment_shader=':system:shaders/postprocessing/gaussian_blur_x_fs.glsl', ) self._quad_fs = geometry.quad_2d_fs() @@ -113,8 +113,8 @@ def __init__(self, size: Tuple[int, int], kernel_size=5, sigma=2, multiplier=1, wrap_y=self.ctx.CLAMP_TO_EDGE)) self._program = self.ctx.load_program( # defines=self._create_kernel(), - vertex_shader=':resources:shaders/texture_default_projection_vs.glsl', - fragment_shader=':resources:shaders/postprocessing/gaussian_blur_y_fs.glsl', + vertex_shader=':system:shaders/texture_default_projection_vs.glsl', + fragment_shader=':system:shaders/postprocessing/gaussian_blur_y_fs.glsl', ) self._quad_fs = geometry.quad_2d_fs() @@ -182,14 +182,14 @@ def __init__(self, self._cb_luma_buffer = self.ctx.framebuffer(color_attachments=[luma_tex]) # Buffer for the converted luma values self._cb_luma_program = self.ctx.load_program( - vertex_shader=':resources:shaders/postprocessing/glow_filter_vs.glsl', - fragment_shader=':resources:shaders/postprocessing/glow_filter_fs.glsl' + vertex_shader=':system:shaders/postprocessing/glow_filter_vs.glsl', + fragment_shader=':system:shaders/postprocessing/glow_filter_fs.glsl' ) # Program for combining the original buffer and the blurred buffer self._combine_program = self.ctx.load_program( - vertex_shader=':resources:shaders/texture_default_projection_vs.glsl', - fragment_shader=':resources:shaders/postprocessing/gaussian_combine_fs.glsl' + vertex_shader=':system:shaders/texture_default_projection_vs.glsl', + fragment_shader=':system:shaders/postprocessing/gaussian_combine_fs.glsl' ) self._quad_fs = geometry.quad_2d_fs() diff --git a/arcade/experimental/shadertoy.py b/arcade/experimental/shadertoy.py index c6ef71649..a1c39f79c 100644 --- a/arcade/experimental/shadertoy.py +++ b/arcade/experimental/shadertoy.py @@ -319,8 +319,8 @@ def _set_source(self, source: str): Load shader templates, injects main function, create program and configures the program. """ - vs_path = arcade.resources.resolve(":resources:shaders/shadertoy/base_vs.glsl") - fs_path = arcade.resources.resolve(":resources:shaders/shadertoy/base_fs.glsl") + vs_path = arcade.resources.resolve(":system:shaders/shadertoy/base_vs.glsl") + fs_path = arcade.resources.resolve(":system:shaders/shadertoy/base_fs.glsl") with open(vs_path) as fd: vs_source = fd.read() with open(fs_path) as fd: diff --git a/arcade/gui/nine_patch.py b/arcade/gui/nine_patch.py index 99dca8112..4f1e25497 100644 --- a/arcade/gui/nine_patch.py +++ b/arcade/gui/nine_patch.py @@ -57,9 +57,9 @@ def __init__( # TODO: Cache in context? self._program = self.ctx.load_program( - vertex_shader=":resources:shaders/gui/nine_patch_vs.glsl", - geometry_shader=":resources:shaders/gui/nine_patch_gs.glsl", - fragment_shader=":resources:shaders/gui/nine_patch_fs.glsl", + vertex_shader=":system:shaders/gui/nine_patch_vs.glsl", + geometry_shader=":system:shaders/gui/nine_patch_gs.glsl", + fragment_shader=":system:shaders/gui/nine_patch_fs.glsl", ) # Configure texture channels self.program.set_uniform_safe("uv_texture", 0) diff --git a/arcade/gui/surface.py b/arcade/gui/surface.py index 078e6cf3a..c1b1aeb97 100644 --- a/arcade/gui/surface.py +++ b/arcade/gui/surface.py @@ -44,9 +44,9 @@ def __init__( self._geometry = self.ctx.geometry() self._program = self.ctx.load_program( - vertex_shader=":resources:shaders/gui/surface_vs.glsl", - geometry_shader=":resources:shaders/gui/surface_gs.glsl", - fragment_shader=":resources:shaders/gui/surface_fs.glsl", + vertex_shader=":system:shaders/gui/surface_vs.glsl", + geometry_shader=":system:shaders/gui/surface_gs.glsl", + fragment_shader=":system:shaders/gui/surface_fs.glsl", ) @property diff --git a/arcade/resources/system/shaders/__init__.py b/arcade/resources/system/shaders/__init__.py index 9b5d59bb3..d7a1613bf 100644 --- a/arcade/resources/system/shaders/__init__.py +++ b/arcade/resources/system/shaders/__init__.py @@ -1,7 +1,7 @@ class vertex: - default_projection = ":resources:shaders/texture_default_projection_vs.glsl" + default_projection = ":system:shaders/texture_default_projection_vs.glsl" class fragment: - texture = ":resources:shaders/texture_fs.glsl" + texture = ":system:shaders/texture_fs.glsl" diff --git a/arcade/resources/system/shaders/atlas/resize_gs.glsl b/arcade/resources/system/shaders/atlas/resize_gs.glsl index 7a3b839f9..a1bf6d77f 100644 --- a/arcade/resources/system/shaders/atlas/resize_gs.glsl +++ b/arcade/resources/system/shaders/atlas/resize_gs.glsl @@ -2,7 +2,7 @@ // The render target for this program is the new // texture atlas texture -#include :resources:shaders/lib/sprite.glsl +#include :system:shaders/lib/sprite.glsl // Old and new texture coordiantes uniform sampler2D atlas_old; diff --git a/arcade/resources/system/shaders/gui/nine_patch_gs.glsl b/arcade/resources/system/shaders/gui/nine_patch_gs.glsl index b9b1ef259..79cf1d98d 100644 --- a/arcade/resources/system/shaders/gui/nine_patch_gs.glsl +++ b/arcade/resources/system/shaders/gui/nine_patch_gs.glsl @@ -2,7 +2,7 @@ // Geometry shader emitting 9 patch from point // This can be simplified somewhat, but the verbose version are easier to maintain -#include :resources:shaders/lib/sprite.glsl +#include :system:shaders/lib/sprite.glsl uniform WindowBlock { mat4 projection; diff --git a/arcade/resources/system/shaders/sprites/sprite_list_geometry_cull_geo.glsl b/arcade/resources/system/shaders/sprites/sprite_list_geometry_cull_geo.glsl index 8b9230c02..b7e7eb58b 100644 --- a/arcade/resources/system/shaders/sprites/sprite_list_geometry_cull_geo.glsl +++ b/arcade/resources/system/shaders/sprites/sprite_list_geometry_cull_geo.glsl @@ -1,6 +1,6 @@ #version 330 -#include :resources:shaders/lib/sprite.glsl +#include :system:shaders/lib/sprite.glsl layout (points) in; layout (triangle_strip, max_vertices = 4) out; diff --git a/arcade/resources/system/shaders/sprites/sprite_list_geometry_no_cull_geo.glsl b/arcade/resources/system/shaders/sprites/sprite_list_geometry_no_cull_geo.glsl index df651e17d..31f2ea83e 100644 --- a/arcade/resources/system/shaders/sprites/sprite_list_geometry_no_cull_geo.glsl +++ b/arcade/resources/system/shaders/sprites/sprite_list_geometry_no_cull_geo.glsl @@ -1,6 +1,6 @@ #version 330 -#include :resources:shaders/lib/sprite.glsl +#include :system:shaders/lib/sprite.glsl layout (points) in; layout (triangle_strip, max_vertices = 4) out; From 17005273b824e04f88dd982534242a9033c44067 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Mon, 27 Mar 2023 01:29:51 +0200 Subject: [PATCH 15/23] Update hook-arcade.py to only include system resources --- arcade/__pyinstaller/hook-arcade.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/arcade/__pyinstaller/hook-arcade.py b/arcade/__pyinstaller/hook-arcade.py index 6fbd3289e..ffe397ab2 100644 --- a/arcade/__pyinstaller/hook-arcade.py +++ b/arcade/__pyinstaller/hook-arcade.py @@ -20,8 +20,8 @@ datas = [ ( - arcade_path / "resources", - "./arcade/resources", + arcade_path / "resources" / "system", + "./arcade/resources/system", ), ] From 54e34cd2f8dfb3c3daaa6ab560203ec39483f4f1 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Mon, 27 Mar 2023 18:03:53 +0200 Subject: [PATCH 16/23] Remove shaders.__init__ --- arcade/resources/__init__.py | 1 - arcade/resources/system/shaders/__init__.py | 7 ------- 2 files changed, 8 deletions(-) delete mode 100644 arcade/resources/system/shaders/__init__.py diff --git a/arcade/resources/__init__.py b/arcade/resources/__init__.py index fcd3c9405..5a7e411ab 100644 --- a/arcade/resources/__init__.py +++ b/arcade/resources/__init__.py @@ -1,6 +1,5 @@ from pathlib import Path from typing import Dict, List,Union -# from arcade.resources import shaders # noqa #: The absolute path to this directory SYSTEM_PATH = Path(__file__).parent.resolve() / "system" diff --git a/arcade/resources/system/shaders/__init__.py b/arcade/resources/system/shaders/__init__.py deleted file mode 100644 index d7a1613bf..000000000 --- a/arcade/resources/system/shaders/__init__.py +++ /dev/null @@ -1,7 +0,0 @@ - -class vertex: - default_projection = ":system:shaders/texture_default_projection_vs.glsl" - - -class fragment: - texture = ":system:shaders/texture_fs.glsl" From b94d8967c80d8fdcd2902a78e171a78d6b263425 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Mon, 27 Mar 2023 18:05:46 +0200 Subject: [PATCH 17/23] Add assets resource handle --- arcade/resources/__init__.py | 1 + 1 file changed, 1 insertion(+) diff --git a/arcade/resources/__init__.py b/arcade/resources/__init__.py index 5a7e411ab..d303436aa 100644 --- a/arcade/resources/__init__.py +++ b/arcade/resources/__init__.py @@ -7,6 +7,7 @@ handles: Dict[str, List[Path]] = { "resources": [SYSTEM_PATH, ASSET_PATH], + "assets": [ASSET_PATH], "system": [SYSTEM_PATH], } From e2f511e9839076ee0a9869b99e1e3697439344d4 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Mon, 27 Mar 2023 18:33:45 +0200 Subject: [PATCH 18/23] Resource handle docstrings --- arcade/resources/__init__.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/arcade/resources/__init__.py b/arcade/resources/__init__.py index d303436aa..1fe2a783a 100644 --- a/arcade/resources/__init__.py +++ b/arcade/resources/__init__.py @@ -16,6 +16,12 @@ def resolve(path: Union[str, Path]) -> Path: """ Attempts to resolve a path to a resource including resource handles. + If the path is a string it tries to resolve it as a resource handle + or convert it to a Path object. + + If the path is a Path object it will ``Path.resolve()`` it + unless it's not absolute and return it. + Example:: resolve(":resources:images/cards/cardBack_blue1.png") @@ -68,10 +74,14 @@ def resolve(path: Union[str, Path]) -> Path: def add_resource_handle(handle: str, path: Union[str, Path]) -> None: """ - Adds a new handle to built-in resources + Add a resource handle or path to an existing handle. + + A handle can point to multiple paths. If a resource is not found in + the first path, it will look in the next path, and so on. The search + is done in reverse order, so the last path added is searched first. :param str handle: The name of the handle - :param Union[str, Path] path: The location the handle points to + :param Union[str, Path] path: The absolute path to a directory """ if isinstance(path, str): path = Path(path) From c33302d4466c99d06d4c852698ff1fbc6daa54ea Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Tue, 28 Mar 2023 20:00:53 +0200 Subject: [PATCH 19/23] Attempt to salvage resources.__init__ --- arcade/resources/__init__.py | 1007 ++++++++++++++++++++-------------- util/make_resources_init.py | 107 +++- 2 files changed, 673 insertions(+), 441 deletions(-) diff --git a/arcade/resources/__init__.py b/arcade/resources/__init__.py index 1fe2a783a..920bb6806 100644 --- a/arcade/resources/__init__.py +++ b/arcade/resources/__init__.py @@ -26,7 +26,7 @@ def resolve(path: Union[str, Path]) -> Path: resolve(":resources:images/cards/cardBack_blue1.png") resolve(":my_handle:music/combat.wav") - + :param Union[str, Path] path: A Path or string """ # Convert to a Path object and resolve resource handle @@ -118,418 +118,593 @@ def get_resource_handle_paths(handle: str) -> List[Path]: # RESOURCE LIST : (Truncate file from here if auto generating resource list) -gui_clicked = ':resources:/gui_themes/Fantasy/Buttons/Clicked.png' -gui_hover = ':resources:/gui_themes/Fantasy/Buttons/Hover.png' -gui_locked = ':resources:/gui_themes/Fantasy/Buttons/Locked.png' -gui_normal = ':resources:/gui_themes/Fantasy/Buttons/Normal.png' -gui_dialogue_box = ':resources:/gui_themes/Fantasy/DialogueBox/DialogueBox.png' -gui_menu = ':resources:/gui_themes/Fantasy/Menu/Menu.png' -gui_brown = ':resources:/gui_themes/Fantasy/TextBox/Brown.png' -gui_light_brown = ':resources:/gui_themes/Fantasy/TextBox/LightBrown.png' -gui_window = ':resources:/gui_themes/Fantasy/Window/Window.png' -image_alien_blue_climb1 = ':resources:/images/alien/alienBlue_climb1.png' -image_alien_blue_climb2 = ':resources:/images/alien/alienBlue_climb2.png' -image_alien_blue_front = ':resources:/images/alien/alienBlue_front.png' -image_alien_blue_jump = ':resources:/images/alien/alienBlue_jump.png' -image_alien_blue_walk1 = ':resources:/images/alien/alienBlue_walk1.png' -image_alien_blue_walk2 = ':resources:/images/alien/alienBlue_walk2.png' -image_female_adventurer_climb0 = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_climb0.png' -image_female_adventurer_climb1 = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_climb1.png' -image_female_adventurer_fall = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_fall.png' -image_female_adventurer_idle = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_idle.png' -image_female_adventurer_jump = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_jump.png' -image_female_adventurer_walk0 = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_walk0.png' -image_female_adventurer_walk1 = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_walk1.png' -image_female_adventurer_walk2 = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_walk2.png' -image_female_adventurer_walk3 = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_walk3.png' -image_female_adventurer_walk4 = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_walk4.png' -image_female_adventurer_walk5 = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_walk5.png' -image_female_adventurer_walk6 = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_walk6.png' -image_female_adventurer_walk7 = ':resources:/images/animated_characters/female_adventurer/femaleAdventurer_walk7.png' -image_female_person_climb0 = ':resources:/images/animated_characters/female_person/femalePerson_climb0.png' -image_female_person_climb1 = ':resources:/images/animated_characters/female_person/femalePerson_climb1.png' -image_female_person_fall = ':resources:/images/animated_characters/female_person/femalePerson_fall.png' -image_female_person_idle = ':resources:/images/animated_characters/female_person/femalePerson_idle.png' -image_female_person_jump = ':resources:/images/animated_characters/female_person/femalePerson_jump.png' -image_female_person_walk0 = ':resources:/images/animated_characters/female_person/femalePerson_walk0.png' -image_female_person_walk1 = ':resources:/images/animated_characters/female_person/femalePerson_walk1.png' -image_female_person_walk2 = ':resources:/images/animated_characters/female_person/femalePerson_walk2.png' -image_female_person_walk3 = ':resources:/images/animated_characters/female_person/femalePerson_walk3.png' -image_female_person_walk4 = ':resources:/images/animated_characters/female_person/femalePerson_walk4.png' -image_female_person_walk5 = ':resources:/images/animated_characters/female_person/femalePerson_walk5.png' -image_female_person_walk6 = ':resources:/images/animated_characters/female_person/femalePerson_walk6.png' -image_female_person_walk7 = ':resources:/images/animated_characters/female_person/femalePerson_walk7.png' -image_male_adventurer_climb0 = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_climb0.png' -image_male_adventurer_climb1 = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_climb1.png' -image_male_adventurer_fall = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_fall.png' -image_male_adventurer_idle = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_idle.png' -image_male_adventurer_jump = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_jump.png' -image_male_adventurer_walk0 = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_walk0.png' -image_male_adventurer_walk1 = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_walk1.png' -image_male_adventurer_walk2 = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_walk2.png' -image_male_adventurer_walk3 = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_walk3.png' -image_male_adventurer_walk4 = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_walk4.png' -image_male_adventurer_walk5 = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_walk5.png' -image_male_adventurer_walk6 = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_walk6.png' -image_male_adventurer_walk7 = ':resources:/images/animated_characters/male_adventurer/maleAdventurer_walk7.png' -image_male_person_climb0 = ':resources:/images/animated_characters/male_person/malePerson_climb0.png' -image_male_person_climb1 = ':resources:/images/animated_characters/male_person/malePerson_climb1.png' -image_male_person_fall = ':resources:/images/animated_characters/male_person/malePerson_fall.png' -image_male_person_idle = ':resources:/images/animated_characters/male_person/malePerson_idle.png' -image_male_person_jump = ':resources:/images/animated_characters/male_person/malePerson_jump.png' -image_male_person_walk0 = ':resources:/images/animated_characters/male_person/malePerson_walk0.png' -image_male_person_walk1 = ':resources:/images/animated_characters/male_person/malePerson_walk1.png' -image_male_person_walk2 = ':resources:/images/animated_characters/male_person/malePerson_walk2.png' -image_male_person_walk3 = ':resources:/images/animated_characters/male_person/malePerson_walk3.png' -image_male_person_walk4 = ':resources:/images/animated_characters/male_person/malePerson_walk4.png' -image_male_person_walk5 = ':resources:/images/animated_characters/male_person/malePerson_walk5.png' -image_male_person_walk6 = ':resources:/images/animated_characters/male_person/malePerson_walk6.png' -image_male_person_walk7 = ':resources:/images/animated_characters/male_person/malePerson_walk7.png' -image_robot_climb0 = ':resources:/images/animated_characters/robot/robot_climb0.png' -image_robot_climb1 = ':resources:/images/animated_characters/robot/robot_climb1.png' -image_robot_fall = ':resources:/images/animated_characters/robot/robot_fall.png' -image_robot_idle = ':resources:/images/animated_characters/robot/robot_idle.png' -image_robot_jump = ':resources:/images/animated_characters/robot/robot_jump.png' -image_robot_walk0 = ':resources:/images/animated_characters/robot/robot_walk0.png' -image_robot_walk1 = ':resources:/images/animated_characters/robot/robot_walk1.png' -image_robot_walk2 = ':resources:/images/animated_characters/robot/robot_walk2.png' -image_robot_walk3 = ':resources:/images/animated_characters/robot/robot_walk3.png' -image_robot_walk4 = ':resources:/images/animated_characters/robot/robot_walk4.png' -image_robot_walk5 = ':resources:/images/animated_characters/robot/robot_walk5.png' -image_robot_walk6 = ':resources:/images/animated_characters/robot/robot_walk6.png' -image_robot_walk7 = ':resources:/images/animated_characters/robot/robot_walk7.png' -image_zombie_climb0 = ':resources:/images/animated_characters/zombie/zombie_climb0.png' -image_zombie_climb1 = ':resources:/images/animated_characters/zombie/zombie_climb1.png' -image_zombie_fall = ':resources:/images/animated_characters/zombie/zombie_fall.png' -image_zombie_idle = ':resources:/images/animated_characters/zombie/zombie_idle.png' -image_zombie_jump = ':resources:/images/animated_characters/zombie/zombie_jump.png' -image_zombie_walk0 = ':resources:/images/animated_characters/zombie/zombie_walk0.png' -image_zombie_walk1 = ':resources:/images/animated_characters/zombie/zombie_walk1.png' -image_zombie_walk2 = ':resources:/images/animated_characters/zombie/zombie_walk2.png' -image_zombie_walk3 = ':resources:/images/animated_characters/zombie/zombie_walk3.png' -image_zombie_walk4 = ':resources:/images/animated_characters/zombie/zombie_walk4.png' -image_zombie_walk5 = ':resources:/images/animated_characters/zombie/zombie_walk5.png' -image_zombie_walk6 = ':resources:/images/animated_characters/zombie/zombie_walk6.png' -image_zombie_walk7 = ':resources:/images/animated_characters/zombie/zombie_walk7.png' -image_instructions_0 = ':resources:/images/backgrounds/instructions_0.png' -image_instructions_1 = ':resources:/images/backgrounds/instructions_1.png' -image_bee = ':resources:/images/enemies/bee.png' -image_fish_green = ':resources:/images/enemies/fishGreen.png' -image_fish_pink = ':resources:/images/enemies/fishPink.png' -image_fly = ':resources:/images/enemies/fly.png' -image_frog = ':resources:/images/enemies/frog.png' -image_frog_move = ':resources:/images/enemies/frog_move.png' -image_ladybug = ':resources:/images/enemies/ladybug.png' -image_mouse = ':resources:/images/enemies/mouse.png' -image_saw = ':resources:/images/enemies/saw.png' -image_saw_half = ':resources:/images/enemies/sawHalf.png' -image_slime_block = ':resources:/images/enemies/slimeBlock.png' -image_slime_blue = ':resources:/images/enemies/slimeBlue.png' -image_slime_blue_move = ':resources:/images/enemies/slimeBlue_move.png' -image_slime_green = ':resources:/images/enemies/slimeGreen.png' -image_slime_purple = ':resources:/images/enemies/slimePurple.png' -image_worm_green = ':resources:/images/enemies/wormGreen.png' -image_worm_green_dead = ':resources:/images/enemies/wormGreen_dead.png' -image_worm_green_move = ':resources:/images/enemies/wormGreen_move.png' -image_worm_pink = ':resources:/images/enemies/wormPink.png' -image_dirt_tiles_s = ':resources:/images/isometric_dungeon/dirtTiles_S.png' -image_dirt_s = ':resources:/images/isometric_dungeon/dirt_S.png' -image_stone_left_n = ':resources:/images/isometric_dungeon/stoneLeft_N.png' -image_stone_missing_tiles_e = ':resources:/images/isometric_dungeon/stoneMissingTiles_E.png' -image_stone_missing_tiles_n = ':resources:/images/isometric_dungeon/stoneMissingTiles_N.png' -image_stone_missing_tiles_s = ':resources:/images/isometric_dungeon/stoneMissingTiles_S.png' -image_stone_missing_tiles_w = ':resources:/images/isometric_dungeon/stoneMissingTiles_W.png' -image_stone_side_uneven_n = ':resources:/images/isometric_dungeon/stoneSideUneven_N.png' -image_stone_side_e = ':resources:/images/isometric_dungeon/stoneSide_E.png' -image_stone_tile_n = ':resources:/images/isometric_dungeon/stoneTile_N.png' -image_stone_tile_s = ':resources:/images/isometric_dungeon/stoneTile_S.png' -image_stone_tile_w = ':resources:/images/isometric_dungeon/stoneTile_W.png' -image_stone_uneven_e = ':resources:/images/isometric_dungeon/stoneUneven_E.png' -image_stone_uneven_n = ':resources:/images/isometric_dungeon/stoneUneven_N.png' -image_stone_uneven_s = ':resources:/images/isometric_dungeon/stoneUneven_S.png' -image_stone_uneven_w = ':resources:/images/isometric_dungeon/stoneUneven_W.png' -image_stone_wall_aged_e = ':resources:/images/isometric_dungeon/stoneWallAged_E.png' -image_stone_wall_aged_s = ':resources:/images/isometric_dungeon/stoneWallAged_S.png' -image_stone_wall_archway_s = ':resources:/images/isometric_dungeon/stoneWallArchway_S.png' -image_stone_wall_column_e = ':resources:/images/isometric_dungeon/stoneWallColumn_E.png' -image_stone_wall_corner_e = ':resources:/images/isometric_dungeon/stoneWallCorner_E.png' -image_stone_wall_corner_n = ':resources:/images/isometric_dungeon/stoneWallCorner_N.png' -image_stone_wall_corner_s = ':resources:/images/isometric_dungeon/stoneWallCorner_S.png' -image_stone_wall_corner_w = ':resources:/images/isometric_dungeon/stoneWallCorner_W.png' -image_stone_wall_gate_closed_e = ':resources:/images/isometric_dungeon/stoneWallGateClosed_E.png' -image_stone_wall_gate_closed_s = ':resources:/images/isometric_dungeon/stoneWallGateClosed_S.png' -image_stone_wall_gate_open_e = ':resources:/images/isometric_dungeon/stoneWallGateOpen_E.png' -image_stone_wall_n = ':resources:/images/isometric_dungeon/stoneWall_N.png' -image_stone_wall_s = ':resources:/images/isometric_dungeon/stoneWall_S.png' -image_stone_wall_w = ':resources:/images/isometric_dungeon/stoneWall_W.png' -image_stone_e = ':resources:/images/isometric_dungeon/stone_E.png' -image_stone_n = ':resources:/images/isometric_dungeon/stone_N.png' -image_stone_s = ':resources:/images/isometric_dungeon/stone_S.png' -image_stone_w = ':resources:/images/isometric_dungeon/stone_W.png' -image_table_chairs_broken_e = ':resources:/images/isometric_dungeon/tableChairsBroken_E.png' -image_table_chairs_broken_s = ':resources:/images/isometric_dungeon/tableChairsBroken_S.png' -image_table_short_chairs_w = ':resources:/images/isometric_dungeon/tableShortChairs_W.png' -image_wooden_crates_w = ':resources:/images/isometric_dungeon/woodenCrates_W.png' -image_wooden_support_beams_s = ':resources:/images/isometric_dungeon/woodenSupportBeams_S.png' -image_wooden_supports_beam_s = ':resources:/images/isometric_dungeon/woodenSupportsBeam_S.png' -image_coin_bronze = ':resources:/images/items/coinBronze.png' -image_coin_gold = ':resources:/images/items/coinGold.png' -image_coin_gold_ll = ':resources:/images/items/coinGold_ll.png' -image_coin_gold_lr = ':resources:/images/items/coinGold_lr.png' -image_coin_gold_ul = ':resources:/images/items/coinGold_ul.png' -image_coin_gold_ur = ':resources:/images/items/coinGold_ur.png' -image_coin_silver = ':resources:/images/items/coinSilver.png' -image_coin_silver_test = ':resources:/images/items/coinSilver_test.png' -image_flag_green1 = ':resources:/images/items/flagGreen1.png' -image_flag_green2 = ':resources:/images/items/flagGreen2.png' -image_flag_green_down = ':resources:/images/items/flagGreen_down.png' -image_flag_red1 = ':resources:/images/items/flagRed1.png' -image_flag_red2 = ':resources:/images/items/flagRed2.png' -image_flag_red_down = ':resources:/images/items/flagRed_down.png' -image_flag_yellow1 = ':resources:/images/items/flagYellow1.png' -image_flag_yellow2 = ':resources:/images/items/flagYellow2.png' -image_flag_yellow_down = ':resources:/images/items/flagYellow_down.png' -image_gem_blue = ':resources:/images/items/gemBlue.png' -image_gem_green = ':resources:/images/items/gemGreen.png' -image_gem_red = ':resources:/images/items/gemRed.png' -image_gem_yellow = ':resources:/images/items/gemYellow.png' -image_gold_1 = ':resources:/images/items/gold_1.png' -image_gold_2 = ':resources:/images/items/gold_2.png' -image_gold_3 = ':resources:/images/items/gold_3.png' -image_gold_4 = ':resources:/images/items/gold_4.png' -image_key_blue = ':resources:/images/items/keyBlue.png' -image_key_green = ':resources:/images/items/keyGreen.png' -image_key_red = ':resources:/images/items/keyRed.png' -image_key_yellow = ':resources:/images/items/keyYellow.png' -image_ladder_mid = ':resources:/images/items/ladderMid.png' -image_ladder_top = ':resources:/images/items/ladderTop.png' -image_star = ':resources:/images/items/star.png' -image_bumper = ':resources:/images/pinball/bumper.png' -image_pool_cue_ball = ':resources:/images/pinball/pool_cue_ball.png' -image_laser_blue01 = ':resources:/images/space_shooter/laserBlue01.png' -image_laser_red01 = ':resources:/images/space_shooter/laserRed01.png' -image_meteor_grey_big1 = ':resources:/images/space_shooter/meteorGrey_big1.png' -image_meteor_grey_big2 = ':resources:/images/space_shooter/meteorGrey_big2.png' -image_meteor_grey_big3 = ':resources:/images/space_shooter/meteorGrey_big3.png' -image_meteor_grey_big4 = ':resources:/images/space_shooter/meteorGrey_big4.png' -image_meteor_grey_med1 = ':resources:/images/space_shooter/meteorGrey_med1.png' -image_meteor_grey_med2 = ':resources:/images/space_shooter/meteorGrey_med2.png' -image_meteor_grey_small1 = ':resources:/images/space_shooter/meteorGrey_small1.png' -image_meteor_grey_small2 = ':resources:/images/space_shooter/meteorGrey_small2.png' -image_meteor_grey_tiny1 = ':resources:/images/space_shooter/meteorGrey_tiny1.png' -image_meteor_grey_tiny2 = ':resources:/images/space_shooter/meteorGrey_tiny2.png' -image_player_life1_orange = ':resources:/images/space_shooter/playerLife1_orange.png' -image_player_ship1_green = ':resources:/images/space_shooter/playerShip1_green.png' -image_player_ship1_orange = ':resources:/images/space_shooter/playerShip1_orange.png' -image_player_ship2_orange = ':resources:/images/space_shooter/playerShip2_orange.png' -image_player_ship3_orange = ':resources:/images/space_shooter/playerShip3_orange.png' -image_explosion = ':resources:/images/spritesheets/explosion.png' -image_number_sheet = ':resources:/images/spritesheets/number_sheet.png' -image_tiles = ':resources:/images/spritesheets/tiles.png' -image_box_crate = ':resources:/images/tiles/boxCrate.png' -image_box_crate_double = ':resources:/images/tiles/boxCrate_double.png' -image_box_crate_single = ':resources:/images/tiles/boxCrate_single.png' -image_brick_brown = ':resources:/images/tiles/brickBrown.png' -image_brick_grey = ':resources:/images/tiles/brickGrey.png' -image_bridge_a = ':resources:/images/tiles/bridgeA.png' -image_bridge_b = ':resources:/images/tiles/bridgeB.png' -image_bush = ':resources:/images/tiles/bush.png' -image_cactus = ':resources:/images/tiles/cactus.png' -image_dirt = ':resources:/images/tiles/dirt.png' -image_dirt_center = ':resources:/images/tiles/dirtCenter.png' -image_dirt_center_rounded = ':resources:/images/tiles/dirtCenter_rounded.png' -image_dirt_cliff_alt_left = ':resources:/images/tiles/dirtCliffAlt_left.png' -image_dirt_cliff_alt_right = ':resources:/images/tiles/dirtCliffAlt_right.png' -image_dirt_cliff_left = ':resources:/images/tiles/dirtCliff_left.png' -image_dirt_cliff_right = ':resources:/images/tiles/dirtCliff_right.png' -image_dirt_corner_left = ':resources:/images/tiles/dirtCorner_left.png' -image_dirt_corner_right = ':resources:/images/tiles/dirtCorner_right.png' -image_dirt_half = ':resources:/images/tiles/dirtHalf.png' -image_dirt_half_left = ':resources:/images/tiles/dirtHalf_left.png' -image_dirt_half_mid = ':resources:/images/tiles/dirtHalf_mid.png' -image_dirt_half_right = ':resources:/images/tiles/dirtHalf_right.png' -image_dirt_hill_left = ':resources:/images/tiles/dirtHill_left.png' -image_dirt_hill_right = ':resources:/images/tiles/dirtHill_right.png' -image_dirt_left = ':resources:/images/tiles/dirtLeft.png' -image_dirt_mid = ':resources:/images/tiles/dirtMid.png' -image_dirt_right = ':resources:/images/tiles/dirtRight.png' -image_door_closed_mid = ':resources:/images/tiles/doorClosed_mid.png' -image_door_closed_top = ':resources:/images/tiles/doorClosed_top.png' -image_grass = ':resources:/images/tiles/grass.png' -image_grass_center = ':resources:/images/tiles/grassCenter.png' -image_grass_center_round = ':resources:/images/tiles/grassCenter_round.png' -image_grass_cliff_alt_left = ':resources:/images/tiles/grassCliffAlt_left.png' -image_grass_cliff_alt_right = ':resources:/images/tiles/grassCliffAlt_right.png' -image_grass_cliff_left = ':resources:/images/tiles/grassCliff_left.png' -image_grass_cliff_right = ':resources:/images/tiles/grassCliff_right.png' -image_grass_corner_left = ':resources:/images/tiles/grassCorner_left.png' -image_grass_corner_right = ':resources:/images/tiles/grassCorner_right.png' -image_grass_half = ':resources:/images/tiles/grassHalf.png' -image_grass_half_left = ':resources:/images/tiles/grassHalf_left.png' -image_grass_half_mid = ':resources:/images/tiles/grassHalf_mid.png' -image_grass_half_right = ':resources:/images/tiles/grassHalf_right.png' -image_grass_hill_left = ':resources:/images/tiles/grassHill_left.png' -image_grass_hill_right = ':resources:/images/tiles/grassHill_right.png' -image_grass_left = ':resources:/images/tiles/grassLeft.png' -image_grass_mid = ':resources:/images/tiles/grassMid.png' -image_grass_right = ':resources:/images/tiles/grassRight.png' -image_grass_sprout = ':resources:/images/tiles/grass_sprout.png' -image_ladder_mid = ':resources:/images/tiles/ladderMid.png' -image_ladder_top = ':resources:/images/tiles/ladderTop.png' -image_lava = ':resources:/images/tiles/lava.png' -image_lava_top_high = ':resources:/images/tiles/lavaTop_high.png' -image_lava_top_low = ':resources:/images/tiles/lavaTop_low.png' -image_lever_left = ':resources:/images/tiles/leverLeft.png' -image_lever_mid = ':resources:/images/tiles/leverMid.png' -image_lever_right = ':resources:/images/tiles/leverRight.png' -image_lock_red = ':resources:/images/tiles/lockRed.png' -image_lock_yellow = ':resources:/images/tiles/lockYellow.png' -image_mushroom_red = ':resources:/images/tiles/mushroomRed.png' -image_planet = ':resources:/images/tiles/planet.png' -image_planet_center = ':resources:/images/tiles/planetCenter.png' -image_planet_center_rounded = ':resources:/images/tiles/planetCenter_rounded.png' -image_planet_cliff_alt_left = ':resources:/images/tiles/planetCliffAlt_left.png' -image_planet_cliff_alt_right = ':resources:/images/tiles/planetCliffAlt_right.png' -image_planet_cliff_left = ':resources:/images/tiles/planetCliff_left.png' -image_planet_cliff_right = ':resources:/images/tiles/planetCliff_right.png' -image_planet_corner_left = ':resources:/images/tiles/planetCorner_left.png' -image_planet_corner_right = ':resources:/images/tiles/planetCorner_right.png' -image_planet_half = ':resources:/images/tiles/planetHalf.png' -image_planet_half_left = ':resources:/images/tiles/planetHalf_left.png' -image_planet_half_mid = ':resources:/images/tiles/planetHalf_mid.png' -image_planet_half_right = ':resources:/images/tiles/planetHalf_right.png' -image_planet_hill_left = ':resources:/images/tiles/planetHill_left.png' -image_planet_hill_right = ':resources:/images/tiles/planetHill_right.png' -image_planet_left = ':resources:/images/tiles/planetLeft.png' -image_planet_mid = ':resources:/images/tiles/planetMid.png' -image_planet_right = ':resources:/images/tiles/planetRight.png' -image_plant_purple = ':resources:/images/tiles/plantPurple.png' -image_rock = ':resources:/images/tiles/rock.png' -image_sand = ':resources:/images/tiles/sand.png' -image_sand_center = ':resources:/images/tiles/sandCenter.png' -image_sand_center_rounded = ':resources:/images/tiles/sandCenter_rounded.png' -image_sand_cliff_alt_left = ':resources:/images/tiles/sandCliffAlt_left.png' -image_sand_cliff_alt_right = ':resources:/images/tiles/sandCliffAlt_right.png' -image_sand_cliff_left = ':resources:/images/tiles/sandCliff_left.png' -image_sand_cliff_right = ':resources:/images/tiles/sandCliff_right.png' -image_sand_corner_left = ':resources:/images/tiles/sandCorner_left.png' -image_sand_corner_right = ':resources:/images/tiles/sandCorner_right.png' -image_sand_half = ':resources:/images/tiles/sandHalf.png' -image_sand_half_left = ':resources:/images/tiles/sandHalf_left.png' -image_sand_half_mid = ':resources:/images/tiles/sandHalf_mid.png' -image_sand_half_right = ':resources:/images/tiles/sandHalf_right.png' -image_sand_hill_left = ':resources:/images/tiles/sandHill_left.png' -image_sand_hill_right = ':resources:/images/tiles/sandHill_right.png' -image_sand_left = ':resources:/images/tiles/sandLeft.png' -image_sand_mid = ':resources:/images/tiles/sandMid.png' -image_sand_right = ':resources:/images/tiles/sandRight.png' -image_sign_exit = ':resources:/images/tiles/signExit.png' -image_sign_left = ':resources:/images/tiles/signLeft.png' -image_sign_right = ':resources:/images/tiles/signRight.png' -image_snow = ':resources:/images/tiles/snow.png' -image_snow_center = ':resources:/images/tiles/snowCenter.png' -image_snow_center_rounded = ':resources:/images/tiles/snowCenter_rounded.png' -image_snow_cliff_alt_left = ':resources:/images/tiles/snowCliffAlt_left.png' -image_snow_cliff_alt_right = ':resources:/images/tiles/snowCliffAlt_right.png' -image_snow_cliff_left = ':resources:/images/tiles/snowCliff_left.png' -image_snow_cliff_right = ':resources:/images/tiles/snowCliff_right.png' -image_snow_corner_left = ':resources:/images/tiles/snowCorner_left.png' -image_snow_corner_right = ':resources:/images/tiles/snowCorner_right.png' -image_snow_half = ':resources:/images/tiles/snowHalf.png' -image_snow_half_left = ':resources:/images/tiles/snowHalf_left.png' -image_snow_half_mid = ':resources:/images/tiles/snowHalf_mid.png' -image_snow_half_right = ':resources:/images/tiles/snowHalf_right.png' -image_snow_hill_left = ':resources:/images/tiles/snowHill_left.png' -image_snow_hill_right = ':resources:/images/tiles/snowHill_right.png' -image_snow_left = ':resources:/images/tiles/snowLeft.png' -image_snow_mid = ':resources:/images/tiles/snowMid.png' -image_snow_right = ':resources:/images/tiles/snowRight.png' -image_snow_pile = ':resources:/images/tiles/snow_pile.png' -image_spikes = ':resources:/images/tiles/spikes.png' -image_stone = ':resources:/images/tiles/stone.png' -image_stone_center = ':resources:/images/tiles/stoneCenter.png' -image_stone_center_rounded = ':resources:/images/tiles/stoneCenter_rounded.png' -image_stone_cliff_alt_left = ':resources:/images/tiles/stoneCliffAlt_left.png' -image_stone_cliff_alt_right = ':resources:/images/tiles/stoneCliffAlt_right.png' -image_stone_cliff_left = ':resources:/images/tiles/stoneCliff_left.png' -image_stone_cliff_right = ':resources:/images/tiles/stoneCliff_right.png' -image_stone_corner_left = ':resources:/images/tiles/stoneCorner_left.png' -image_stone_corner_right = ':resources:/images/tiles/stoneCorner_right.png' -image_stone_half = ':resources:/images/tiles/stoneHalf.png' -image_stone_half_left = ':resources:/images/tiles/stoneHalf_left.png' -image_stone_half_mid = ':resources:/images/tiles/stoneHalf_mid.png' -image_stone_half_right = ':resources:/images/tiles/stoneHalf_right.png' -image_stone_hill_left = ':resources:/images/tiles/stoneHill_left.png' -image_stone_hill_right = ':resources:/images/tiles/stoneHill_right.png' -image_stone_left = ':resources:/images/tiles/stoneLeft.png' -image_stone_mid = ':resources:/images/tiles/stoneMid.png' -image_stone_right = ':resources:/images/tiles/stoneRight.png' -image_switch_green = ':resources:/images/tiles/switchGreen.png' -image_switch_green_pressed = ':resources:/images/tiles/switchGreen_pressed.png' -image_switch_red = ':resources:/images/tiles/switchRed.png' -image_switch_red_pressed = ':resources:/images/tiles/switchRed_pressed.png' -image_torch1 = ':resources:/images/tiles/torch1.png' -image_torch2 = ':resources:/images/tiles/torch2.png' -image_torch_off = ':resources:/images/tiles/torchOff.png' -image_water = ':resources:/images/tiles/water.png' -image_water_top_high = ':resources:/images/tiles/waterTop_high.png' -image_water_top_low = ':resources:/images/tiles/waterTop_low.png' -sound_coin1 = ':resources:/sounds/coin1.wav' -sound_coin2 = ':resources:/sounds/coin2.wav' -sound_coin3 = ':resources:/sounds/coin3.wav' -sound_coin4 = ':resources:/sounds/coin4.wav' -sound_coin5 = ':resources:/sounds/coin5.wav' -sound_error1 = ':resources:/sounds/error1.wav' -sound_error2 = ':resources:/sounds/error2.wav' -sound_error3 = ':resources:/sounds/error3.wav' -sound_error4 = ':resources:/sounds/error4.wav' -sound_error5 = ':resources:/sounds/error5.wav' -sound_explosion1 = ':resources:/sounds/explosion1.wav' -sound_explosion2 = ':resources:/sounds/explosion2.wav' -sound_fall1 = ':resources:/sounds/fall1.wav' -sound_fall2 = ':resources:/sounds/fall2.wav' -sound_fall3 = ':resources:/sounds/fall3.wav' -sound_fall4 = ':resources:/sounds/fall4.wav' -sound_gameover1 = ':resources:/sounds/gameover1.wav' -sound_gameover2 = ':resources:/sounds/gameover2.wav' -sound_gameover3 = ':resources:/sounds/gameover3.wav' -sound_gameover4 = ':resources:/sounds/gameover4.wav' -sound_gameover5 = ':resources:/sounds/gameover5.wav' -sound_hit1 = ':resources:/sounds/hit1.wav' -sound_hit2 = ':resources:/sounds/hit2.wav' -sound_hit3 = ':resources:/sounds/hit3.wav' -sound_hit4 = ':resources:/sounds/hit4.wav' -sound_hit5 = ':resources:/sounds/hit5.wav' -sound_hurt1 = ':resources:/sounds/hurt1.wav' -sound_hurt2 = ':resources:/sounds/hurt2.wav' -sound_hurt3 = ':resources:/sounds/hurt3.wav' -sound_hurt4 = ':resources:/sounds/hurt4.wav' -sound_hurt5 = ':resources:/sounds/hurt5.wav' -sound_jump1 = ':resources:/sounds/jump1.wav' -sound_jump2 = ':resources:/sounds/jump2.wav' -sound_jump3 = ':resources:/sounds/jump3.wav' -sound_jump4 = ':resources:/sounds/jump4.wav' -sound_jump5 = ':resources:/sounds/jump5.wav' -sound_laser1 = ':resources:/sounds/laser1.mp3' -sound_laser1 = ':resources:/sounds/laser1.ogg' -sound_laser1 = ':resources:/sounds/laser1.wav' -sound_laser2 = ':resources:/sounds/laser2.wav' -sound_laser3 = ':resources:/sounds/laser3.wav' -sound_laser4 = ':resources:/sounds/laser4.wav' -sound_laser5 = ':resources:/sounds/laser5.wav' -sound_lose1 = ':resources:/sounds/lose1.wav' -sound_lose2 = ':resources:/sounds/lose2.wav' -sound_lose3 = ':resources:/sounds/lose3.wav' -sound_lose4 = ':resources:/sounds/lose4.wav' -sound_lose5 = ':resources:/sounds/lose5.wav' -sound_phase_jump1 = ':resources:/sounds/phaseJump1.ogg' -sound_phase_jump1 = ':resources:/sounds/phaseJump1.wav' -sound_rock_hit2 = ':resources:/sounds/rockHit2.ogg' -sound_rock_hit2 = ':resources:/sounds/rockHit2.wav' -sound_secret2 = ':resources:/sounds/secret2.wav' -sound_secret4 = ':resources:/sounds/secret4.wav' -sound_upgrade1 = ':resources:/sounds/upgrade1.wav' -sound_upgrade2 = ':resources:/sounds/upgrade2.wav' -sound_upgrade3 = ':resources:/sounds/upgrade3.wav' -sound_upgrade4 = ':resources:/sounds/upgrade4.wav' -sound_upgrade5 = ':resources:/sounds/upgrade5.wav' +image_alien_blue_climb1 = ':assets:images/alien/alienBlue_climb1.png' +image_alien_blue_climb2 = ':assets:images/alien/alienBlue_climb2.png' +image_alien_blue_front = ':assets:images/alien/alienBlue_front.png' +image_alien_blue_jump = ':assets:images/alien/alienBlue_jump.png' +image_alien_blue_walk1 = ':assets:images/alien/alienBlue_walk1.png' +image_alien_blue_walk2 = ':assets:images/alien/alienBlue_walk2.png' +image_female_adventurer_climb0 = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_climb0.png' +image_female_adventurer_climb1 = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_climb1.png' +image_female_adventurer_fall = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_fall.png' +image_female_adventurer_idle = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_idle.png' +image_female_adventurer_jump = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_jump.png' +image_female_adventurer_walk0 = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_walk0.png' +image_female_adventurer_walk1 = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_walk1.png' +image_female_adventurer_walk2 = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_walk2.png' +image_female_adventurer_walk3 = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_walk3.png' +image_female_adventurer_walk4 = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_walk4.png' +image_female_adventurer_walk5 = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_walk5.png' +image_female_adventurer_walk6 = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_walk6.png' +image_female_adventurer_walk7 = ':assets:images/animated_characters/female_adventurer/femaleAdventurer_walk7.png' +image_female_person_climb0 = ':assets:images/animated_characters/female_person/femalePerson_climb0.png' +image_female_person_climb1 = ':assets:images/animated_characters/female_person/femalePerson_climb1.png' +image_female_person_fall = ':assets:images/animated_characters/female_person/femalePerson_fall.png' +image_female_person_idle = ':assets:images/animated_characters/female_person/femalePerson_idle.png' +image_female_person_jump = ':assets:images/animated_characters/female_person/femalePerson_jump.png' +image_female_person_walk0 = ':assets:images/animated_characters/female_person/femalePerson_walk0.png' +image_female_person_walk1 = ':assets:images/animated_characters/female_person/femalePerson_walk1.png' +image_female_person_walk2 = ':assets:images/animated_characters/female_person/femalePerson_walk2.png' +image_female_person_walk3 = ':assets:images/animated_characters/female_person/femalePerson_walk3.png' +image_female_person_walk4 = ':assets:images/animated_characters/female_person/femalePerson_walk4.png' +image_female_person_walk5 = ':assets:images/animated_characters/female_person/femalePerson_walk5.png' +image_female_person_walk6 = ':assets:images/animated_characters/female_person/femalePerson_walk6.png' +image_female_person_walk7 = ':assets:images/animated_characters/female_person/femalePerson_walk7.png' +image_male_adventurer_climb0 = ':assets:images/animated_characters/male_adventurer/maleAdventurer_climb0.png' +image_male_adventurer_climb1 = ':assets:images/animated_characters/male_adventurer/maleAdventurer_climb1.png' +image_male_adventurer_fall = ':assets:images/animated_characters/male_adventurer/maleAdventurer_fall.png' +image_male_adventurer_idle = ':assets:images/animated_characters/male_adventurer/maleAdventurer_idle.png' +image_male_adventurer_jump = ':assets:images/animated_characters/male_adventurer/maleAdventurer_jump.png' +image_male_adventurer_walk0 = ':assets:images/animated_characters/male_adventurer/maleAdventurer_walk0.png' +image_male_adventurer_walk1 = ':assets:images/animated_characters/male_adventurer/maleAdventurer_walk1.png' +image_male_adventurer_walk2 = ':assets:images/animated_characters/male_adventurer/maleAdventurer_walk2.png' +image_male_adventurer_walk3 = ':assets:images/animated_characters/male_adventurer/maleAdventurer_walk3.png' +image_male_adventurer_walk4 = ':assets:images/animated_characters/male_adventurer/maleAdventurer_walk4.png' +image_male_adventurer_walk5 = ':assets:images/animated_characters/male_adventurer/maleAdventurer_walk5.png' +image_male_adventurer_walk6 = ':assets:images/animated_characters/male_adventurer/maleAdventurer_walk6.png' +image_male_adventurer_walk7 = ':assets:images/animated_characters/male_adventurer/maleAdventurer_walk7.png' +image_male_person_climb0 = ':assets:images/animated_characters/male_person/malePerson_climb0.png' +image_male_person_climb1 = ':assets:images/animated_characters/male_person/malePerson_climb1.png' +image_male_person_fall = ':assets:images/animated_characters/male_person/malePerson_fall.png' +image_male_person_idle = ':assets:images/animated_characters/male_person/malePerson_idle.png' +image_male_person_jump = ':assets:images/animated_characters/male_person/malePerson_jump.png' +image_male_person_walk0 = ':assets:images/animated_characters/male_person/malePerson_walk0.png' +image_male_person_walk1 = ':assets:images/animated_characters/male_person/malePerson_walk1.png' +image_male_person_walk2 = ':assets:images/animated_characters/male_person/malePerson_walk2.png' +image_male_person_walk3 = ':assets:images/animated_characters/male_person/malePerson_walk3.png' +image_male_person_walk4 = ':assets:images/animated_characters/male_person/malePerson_walk4.png' +image_male_person_walk5 = ':assets:images/animated_characters/male_person/malePerson_walk5.png' +image_male_person_walk6 = ':assets:images/animated_characters/male_person/malePerson_walk6.png' +image_male_person_walk7 = ':assets:images/animated_characters/male_person/malePerson_walk7.png' +image_robot_climb0 = ':assets:images/animated_characters/robot/robot_climb0.png' +image_robot_climb1 = ':assets:images/animated_characters/robot/robot_climb1.png' +image_robot_fall = ':assets:images/animated_characters/robot/robot_fall.png' +image_robot_idle = ':assets:images/animated_characters/robot/robot_idle.png' +image_robot_jump = ':assets:images/animated_characters/robot/robot_jump.png' +image_robot_walk0 = ':assets:images/animated_characters/robot/robot_walk0.png' +image_robot_walk1 = ':assets:images/animated_characters/robot/robot_walk1.png' +image_robot_walk2 = ':assets:images/animated_characters/robot/robot_walk2.png' +image_robot_walk3 = ':assets:images/animated_characters/robot/robot_walk3.png' +image_robot_walk4 = ':assets:images/animated_characters/robot/robot_walk4.png' +image_robot_walk5 = ':assets:images/animated_characters/robot/robot_walk5.png' +image_robot_walk6 = ':assets:images/animated_characters/robot/robot_walk6.png' +image_robot_walk7 = ':assets:images/animated_characters/robot/robot_walk7.png' +image_zombie_climb0 = ':assets:images/animated_characters/zombie/zombie_climb0.png' +image_zombie_climb1 = ':assets:images/animated_characters/zombie/zombie_climb1.png' +image_zombie_fall = ':assets:images/animated_characters/zombie/zombie_fall.png' +image_zombie_idle = ':assets:images/animated_characters/zombie/zombie_idle.png' +image_zombie_jump = ':assets:images/animated_characters/zombie/zombie_jump.png' +image_zombie_walk0 = ':assets:images/animated_characters/zombie/zombie_walk0.png' +image_zombie_walk1 = ':assets:images/animated_characters/zombie/zombie_walk1.png' +image_zombie_walk2 = ':assets:images/animated_characters/zombie/zombie_walk2.png' +image_zombie_walk3 = ':assets:images/animated_characters/zombie/zombie_walk3.png' +image_zombie_walk4 = ':assets:images/animated_characters/zombie/zombie_walk4.png' +image_zombie_walk5 = ':assets:images/animated_characters/zombie/zombie_walk5.png' +image_zombie_walk6 = ':assets:images/animated_characters/zombie/zombie_walk6.png' +image_zombie_walk7 = ':assets:images/animated_characters/zombie/zombie_walk7.png' +image_instructions_0 = ':assets:images/backgrounds/instructions_0.png' +image_instructions_1 = ':assets:images/backgrounds/instructions_1.png' +image_stars = ':assets:images/backgrounds/stars.png' +image_card_back_blue1 = ':assets:images/cards/cardBack_blue1.png' +image_card_back_blue2 = ':assets:images/cards/cardBack_blue2.png' +image_card_back_blue3 = ':assets:images/cards/cardBack_blue3.png' +image_card_back_blue4 = ':assets:images/cards/cardBack_blue4.png' +image_card_back_blue5 = ':assets:images/cards/cardBack_blue5.png' +image_card_back_green1 = ':assets:images/cards/cardBack_green1.png' +image_card_back_green2 = ':assets:images/cards/cardBack_green2.png' +image_card_back_green3 = ':assets:images/cards/cardBack_green3.png' +image_card_back_green4 = ':assets:images/cards/cardBack_green4.png' +image_card_back_green5 = ':assets:images/cards/cardBack_green5.png' +image_card_back_red1 = ':assets:images/cards/cardBack_red1.png' +image_card_back_red2 = ':assets:images/cards/cardBack_red2.png' +image_card_back_red3 = ':assets:images/cards/cardBack_red3.png' +image_card_back_red4 = ':assets:images/cards/cardBack_red4.png' +image_card_back_red5 = ':assets:images/cards/cardBack_red5.png' +image_card_clubs10 = ':assets:images/cards/cardClubs10.png' +image_card_clubs2 = ':assets:images/cards/cardClubs2.png' +image_card_clubs3 = ':assets:images/cards/cardClubs3.png' +image_card_clubs4 = ':assets:images/cards/cardClubs4.png' +image_card_clubs5 = ':assets:images/cards/cardClubs5.png' +image_card_clubs6 = ':assets:images/cards/cardClubs6.png' +image_card_clubs7 = ':assets:images/cards/cardClubs7.png' +image_card_clubs8 = ':assets:images/cards/cardClubs8.png' +image_card_clubs9 = ':assets:images/cards/cardClubs9.png' +image_card_clubs_a = ':assets:images/cards/cardClubsA.png' +image_card_clubs_j = ':assets:images/cards/cardClubsJ.png' +image_card_clubs_k = ':assets:images/cards/cardClubsK.png' +image_card_clubs_q = ':assets:images/cards/cardClubsQ.png' +image_card_diamonds10 = ':assets:images/cards/cardDiamonds10.png' +image_card_diamonds2 = ':assets:images/cards/cardDiamonds2.png' +image_card_diamonds3 = ':assets:images/cards/cardDiamonds3.png' +image_card_diamonds4 = ':assets:images/cards/cardDiamonds4.png' +image_card_diamonds5 = ':assets:images/cards/cardDiamonds5.png' +image_card_diamonds6 = ':assets:images/cards/cardDiamonds6.png' +image_card_diamonds7 = ':assets:images/cards/cardDiamonds7.png' +image_card_diamonds8 = ':assets:images/cards/cardDiamonds8.png' +image_card_diamonds9 = ':assets:images/cards/cardDiamonds9.png' +image_card_diamonds_a = ':assets:images/cards/cardDiamondsA.png' +image_card_diamonds_j = ':assets:images/cards/cardDiamondsJ.png' +image_card_diamonds_k = ':assets:images/cards/cardDiamondsK.png' +image_card_diamonds_q = ':assets:images/cards/cardDiamondsQ.png' +image_card_hearts10 = ':assets:images/cards/cardHearts10.png' +image_card_hearts2 = ':assets:images/cards/cardHearts2.png' +image_card_hearts3 = ':assets:images/cards/cardHearts3.png' +image_card_hearts4 = ':assets:images/cards/cardHearts4.png' +image_card_hearts5 = ':assets:images/cards/cardHearts5.png' +image_card_hearts6 = ':assets:images/cards/cardHearts6.png' +image_card_hearts7 = ':assets:images/cards/cardHearts7.png' +image_card_hearts8 = ':assets:images/cards/cardHearts8.png' +image_card_hearts9 = ':assets:images/cards/cardHearts9.png' +image_card_hearts_a = ':assets:images/cards/cardHeartsA.png' +image_card_hearts_j = ':assets:images/cards/cardHeartsJ.png' +image_card_hearts_k = ':assets:images/cards/cardHeartsK.png' +image_card_hearts_q = ':assets:images/cards/cardHeartsQ.png' +image_card_joker = ':assets:images/cards/cardJoker.png' +image_card_spades10 = ':assets:images/cards/cardSpades10.png' +image_card_spades2 = ':assets:images/cards/cardSpades2.png' +image_card_spades3 = ':assets:images/cards/cardSpades3.png' +image_card_spades4 = ':assets:images/cards/cardSpades4.png' +image_card_spades5 = ':assets:images/cards/cardSpades5.png' +image_card_spades6 = ':assets:images/cards/cardSpades6.png' +image_card_spades7 = ':assets:images/cards/cardSpades7.png' +image_card_spades8 = ':assets:images/cards/cardSpades8.png' +image_card_spades9 = ':assets:images/cards/cardSpades9.png' +image_card_spades_a = ':assets:images/cards/cardSpadesA.png' +image_card_spades_j = ':assets:images/cards/cardSpadesJ.png' +image_card_spades_k = ':assets:images/cards/cardSpadesK.png' +image_card_spades_q = ':assets:images/cards/cardSpadesQ.png' +image_back_buildings = ':assets:images/cybercity_background/back-buildings.png' +image_far_buildings = ':assets:images/cybercity_background/far-buildings.png' +image_foreground = ':assets:images/cybercity_background/foreground.png' +image_bee = ':assets:images/enemies/bee.png' +image_fish_green = ':assets:images/enemies/fishGreen.png' +image_fish_pink = ':assets:images/enemies/fishPink.png' +image_fly = ':assets:images/enemies/fly.png' +image_frog = ':assets:images/enemies/frog.png' +image_frog_move = ':assets:images/enemies/frog_move.png' +image_ladybug = ':assets:images/enemies/ladybug.png' +image_mouse = ':assets:images/enemies/mouse.png' +image_saw = ':assets:images/enemies/saw.png' +image_saw_half = ':assets:images/enemies/sawHalf.png' +image_slime_block = ':assets:images/enemies/slimeBlock.png' +image_slime_blue = ':assets:images/enemies/slimeBlue.png' +image_slime_blue_move = ':assets:images/enemies/slimeBlue_move.png' +image_slime_green = ':assets:images/enemies/slimeGreen.png' +image_slime_purple = ':assets:images/enemies/slimePurple.png' +image_worm_green = ':assets:images/enemies/wormGreen.png' +image_worm_green_dead = ':assets:images/enemies/wormGreen_dead.png' +image_worm_green_move = ':assets:images/enemies/wormGreen_move.png' +image_worm_pink = ':assets:images/enemies/wormPink.png' +image_coin_bronze = ':assets:images/items/coinBronze.png' +image_coin_gold = ':assets:images/items/coinGold.png' +image_coin_gold_ll = ':assets:images/items/coinGold_ll.png' +image_coin_gold_lr = ':assets:images/items/coinGold_lr.png' +image_coin_gold_ul = ':assets:images/items/coinGold_ul.png' +image_coin_gold_ur = ':assets:images/items/coinGold_ur.png' +image_coin_silver = ':assets:images/items/coinSilver.png' +image_coin_silver_test = ':assets:images/items/coinSilver_test.png' +image_flag_green1 = ':assets:images/items/flagGreen1.png' +image_flag_green2 = ':assets:images/items/flagGreen2.png' +image_flag_green_down = ':assets:images/items/flagGreen_down.png' +image_flag_red1 = ':assets:images/items/flagRed1.png' +image_flag_red2 = ':assets:images/items/flagRed2.png' +image_flag_red_down = ':assets:images/items/flagRed_down.png' +image_flag_yellow1 = ':assets:images/items/flagYellow1.png' +image_flag_yellow2 = ':assets:images/items/flagYellow2.png' +image_flag_yellow_down = ':assets:images/items/flagYellow_down.png' +image_gem_blue = ':assets:images/items/gemBlue.png' +image_gem_green = ':assets:images/items/gemGreen.png' +image_gem_red = ':assets:images/items/gemRed.png' +image_gem_yellow = ':assets:images/items/gemYellow.png' +image_gold_1 = ':assets:images/items/gold_1.png' +image_gold_2 = ':assets:images/items/gold_2.png' +image_gold_3 = ':assets:images/items/gold_3.png' +image_gold_4 = ':assets:images/items/gold_4.png' +image_key_blue = ':assets:images/items/keyBlue.png' +image_key_green = ':assets:images/items/keyGreen.png' +image_key_red = ':assets:images/items/keyRed.png' +image_key_yellow = ':assets:images/items/keyYellow.png' +image_ladder_mid = ':assets:images/items/ladderMid.png' +image_ladder_top = ':assets:images/items/ladderTop.png' +image_star = ':assets:images/items/star.png' +image_car_idle = ':assets:images/miami_synth_parallax/car/car-idle.png' +image_car_running0 = ':assets:images/miami_synth_parallax/car/car-running0.png' +image_car_running1 = ':assets:images/miami_synth_parallax/car/car-running1.png' +image_car_running2 = ':assets:images/miami_synth_parallax/car/car-running2.png' +image_car_running3 = ':assets:images/miami_synth_parallax/car/car-running3.png' +image_back = ':assets:images/miami_synth_parallax/layers/back.png' +image_buildings = ':assets:images/miami_synth_parallax/layers/buildings.png' +image_highway = ':assets:images/miami_synth_parallax/layers/highway.png' +image_palms = ':assets:images/miami_synth_parallax/layers/palms.png' +image_sun = ':assets:images/miami_synth_parallax/layers/sun.png' +image_bumper = ':assets:images/pinball/bumper.png' +image_pool_cue_ball = ':assets:images/pinball/pool_cue_ball.png' +image_laser_blue01 = ':assets:images/space_shooter/laserBlue01.png' +image_laser_red01 = ':assets:images/space_shooter/laserRed01.png' +image_meteor_grey_big1 = ':assets:images/space_shooter/meteorGrey_big1.png' +image_meteor_grey_big2 = ':assets:images/space_shooter/meteorGrey_big2.png' +image_meteor_grey_big3 = ':assets:images/space_shooter/meteorGrey_big3.png' +image_meteor_grey_big4 = ':assets:images/space_shooter/meteorGrey_big4.png' +image_meteor_grey_med1 = ':assets:images/space_shooter/meteorGrey_med1.png' +image_meteor_grey_med2 = ':assets:images/space_shooter/meteorGrey_med2.png' +image_meteor_grey_small1 = ':assets:images/space_shooter/meteorGrey_small1.png' +image_meteor_grey_small2 = ':assets:images/space_shooter/meteorGrey_small2.png' +image_meteor_grey_tiny1 = ':assets:images/space_shooter/meteorGrey_tiny1.png' +image_meteor_grey_tiny2 = ':assets:images/space_shooter/meteorGrey_tiny2.png' +image_player_life1_blue = ':assets:images/space_shooter/playerLife1_blue.png' +image_player_life1_green = ':assets:images/space_shooter/playerLife1_green.png' +image_player_life1_orange = ':assets:images/space_shooter/playerLife1_orange.png' +image_player_ship1_blue = ':assets:images/space_shooter/playerShip1_blue.png' +image_player_ship1_green = ':assets:images/space_shooter/playerShip1_green.png' +image_player_ship1_orange = ':assets:images/space_shooter/playerShip1_orange.png' +image_player_ship2_orange = ':assets:images/space_shooter/playerShip2_orange.png' +image_player_ship3_orange = ':assets:images/space_shooter/playerShip3_orange.png' +image_codepage_437 = ':assets:images/spritesheets/codepage_437.png' +image_explosion = ':assets:images/spritesheets/explosion.png' +image_number_sheet = ':assets:images/spritesheets/number_sheet.png' +image_tiles = ':assets:images/spritesheets/tiles.png' +image_test_texture = ':assets:images/test_textures/test_texture.png' +image_xy_square = ':assets:images/test_textures/xy_square.png' +image_bomb = ':assets:images/tiles/bomb.png' +image_box_crate = ':assets:images/tiles/boxCrate.png' +image_box_crate_double = ':assets:images/tiles/boxCrate_double.png' +image_box_crate_single = ':assets:images/tiles/boxCrate_single.png' +image_brick_brown = ':assets:images/tiles/brickBrown.png' +image_brick_grey = ':assets:images/tiles/brickGrey.png' +image_brick_texture_white = ':assets:images/tiles/brickTextureWhite.png' +image_bridge_a = ':assets:images/tiles/bridgeA.png' +image_bridge_b = ':assets:images/tiles/bridgeB.png' +image_bush = ':assets:images/tiles/bush.png' +image_cactus = ':assets:images/tiles/cactus.png' +image_dirt = ':assets:images/tiles/dirt.png' +image_dirt_center = ':assets:images/tiles/dirtCenter.png' +image_dirt_center_rounded = ':assets:images/tiles/dirtCenter_rounded.png' +image_dirt_cliff_alt_left = ':assets:images/tiles/dirtCliffAlt_left.png' +image_dirt_cliff_alt_right = ':assets:images/tiles/dirtCliffAlt_right.png' +image_dirt_cliff_left = ':assets:images/tiles/dirtCliff_left.png' +image_dirt_cliff_right = ':assets:images/tiles/dirtCliff_right.png' +image_dirt_corner_left = ':assets:images/tiles/dirtCorner_left.png' +image_dirt_corner_right = ':assets:images/tiles/dirtCorner_right.png' +image_dirt_half = ':assets:images/tiles/dirtHalf.png' +image_dirt_half_left = ':assets:images/tiles/dirtHalf_left.png' +image_dirt_half_mid = ':assets:images/tiles/dirtHalf_mid.png' +image_dirt_half_right = ':assets:images/tiles/dirtHalf_right.png' +image_dirt_hill_left = ':assets:images/tiles/dirtHill_left.png' +image_dirt_hill_right = ':assets:images/tiles/dirtHill_right.png' +image_dirt_left = ':assets:images/tiles/dirtLeft.png' +image_dirt_mid = ':assets:images/tiles/dirtMid.png' +image_dirt_right = ':assets:images/tiles/dirtRight.png' +image_door_closed_mid = ':assets:images/tiles/doorClosed_mid.png' +image_door_closed_top = ':assets:images/tiles/doorClosed_top.png' +image_grass = ':assets:images/tiles/grass.png' +image_grass_center = ':assets:images/tiles/grassCenter.png' +image_grass_center_round = ':assets:images/tiles/grassCenter_round.png' +image_grass_cliff_alt_left = ':assets:images/tiles/grassCliffAlt_left.png' +image_grass_cliff_alt_right = ':assets:images/tiles/grassCliffAlt_right.png' +image_grass_cliff_left = ':assets:images/tiles/grassCliff_left.png' +image_grass_cliff_right = ':assets:images/tiles/grassCliff_right.png' +image_grass_corner_left = ':assets:images/tiles/grassCorner_left.png' +image_grass_corner_right = ':assets:images/tiles/grassCorner_right.png' +image_grass_half = ':assets:images/tiles/grassHalf.png' +image_grass_half_left = ':assets:images/tiles/grassHalf_left.png' +image_grass_half_mid = ':assets:images/tiles/grassHalf_mid.png' +image_grass_half_right = ':assets:images/tiles/grassHalf_right.png' +image_grass_hill_left = ':assets:images/tiles/grassHill_left.png' +image_grass_hill_right = ':assets:images/tiles/grassHill_right.png' +image_grass_left = ':assets:images/tiles/grassLeft.png' +image_grass_mid = ':assets:images/tiles/grassMid.png' +image_grass_right = ':assets:images/tiles/grassRight.png' +image_grass_sprout = ':assets:images/tiles/grass_sprout.png' +image_ladder_mid = ':assets:images/tiles/ladderMid.png' +image_ladder_top = ':assets:images/tiles/ladderTop.png' +image_lava = ':assets:images/tiles/lava.png' +image_lava_top_high = ':assets:images/tiles/lavaTop_high.png' +image_lava_top_low = ':assets:images/tiles/lavaTop_low.png' +image_lever_left = ':assets:images/tiles/leverLeft.png' +image_lever_mid = ':assets:images/tiles/leverMid.png' +image_lever_right = ':assets:images/tiles/leverRight.png' +image_lock_red = ':assets:images/tiles/lockRed.png' +image_lock_yellow = ':assets:images/tiles/lockYellow.png' +image_mushroom_red = ':assets:images/tiles/mushroomRed.png' +image_planet = ':assets:images/tiles/planet.png' +image_planet_center = ':assets:images/tiles/planetCenter.png' +image_planet_center_rounded = ':assets:images/tiles/planetCenter_rounded.png' +image_planet_cliff_alt_left = ':assets:images/tiles/planetCliffAlt_left.png' +image_planet_cliff_alt_right = ':assets:images/tiles/planetCliffAlt_right.png' +image_planet_cliff_left = ':assets:images/tiles/planetCliff_left.png' +image_planet_cliff_right = ':assets:images/tiles/planetCliff_right.png' +image_planet_corner_left = ':assets:images/tiles/planetCorner_left.png' +image_planet_corner_right = ':assets:images/tiles/planetCorner_right.png' +image_planet_half = ':assets:images/tiles/planetHalf.png' +image_planet_half_left = ':assets:images/tiles/planetHalf_left.png' +image_planet_half_mid = ':assets:images/tiles/planetHalf_mid.png' +image_planet_half_right = ':assets:images/tiles/planetHalf_right.png' +image_planet_hill_left = ':assets:images/tiles/planetHill_left.png' +image_planet_hill_right = ':assets:images/tiles/planetHill_right.png' +image_planet_left = ':assets:images/tiles/planetLeft.png' +image_planet_mid = ':assets:images/tiles/planetMid.png' +image_planet_right = ':assets:images/tiles/planetRight.png' +image_plant_purple = ':assets:images/tiles/plantPurple.png' +image_rock = ':assets:images/tiles/rock.png' +image_sand = ':assets:images/tiles/sand.png' +image_sand_center = ':assets:images/tiles/sandCenter.png' +image_sand_center_rounded = ':assets:images/tiles/sandCenter_rounded.png' +image_sand_cliff_alt_left = ':assets:images/tiles/sandCliffAlt_left.png' +image_sand_cliff_alt_right = ':assets:images/tiles/sandCliffAlt_right.png' +image_sand_cliff_left = ':assets:images/tiles/sandCliff_left.png' +image_sand_cliff_right = ':assets:images/tiles/sandCliff_right.png' +image_sand_corner_left = ':assets:images/tiles/sandCorner_left.png' +image_sand_corner_right = ':assets:images/tiles/sandCorner_right.png' +image_sand_half = ':assets:images/tiles/sandHalf.png' +image_sand_half_left = ':assets:images/tiles/sandHalf_left.png' +image_sand_half_mid = ':assets:images/tiles/sandHalf_mid.png' +image_sand_half_right = ':assets:images/tiles/sandHalf_right.png' +image_sand_hill_left = ':assets:images/tiles/sandHill_left.png' +image_sand_hill_right = ':assets:images/tiles/sandHill_right.png' +image_sand_left = ':assets:images/tiles/sandLeft.png' +image_sand_mid = ':assets:images/tiles/sandMid.png' +image_sand_right = ':assets:images/tiles/sandRight.png' +image_sign_exit = ':assets:images/tiles/signExit.png' +image_sign_left = ':assets:images/tiles/signLeft.png' +image_sign_right = ':assets:images/tiles/signRight.png' +image_snow = ':assets:images/tiles/snow.png' +image_snow_center = ':assets:images/tiles/snowCenter.png' +image_snow_center_rounded = ':assets:images/tiles/snowCenter_rounded.png' +image_snow_cliff_alt_left = ':assets:images/tiles/snowCliffAlt_left.png' +image_snow_cliff_alt_right = ':assets:images/tiles/snowCliffAlt_right.png' +image_snow_cliff_left = ':assets:images/tiles/snowCliff_left.png' +image_snow_cliff_right = ':assets:images/tiles/snowCliff_right.png' +image_snow_corner_left = ':assets:images/tiles/snowCorner_left.png' +image_snow_corner_right = ':assets:images/tiles/snowCorner_right.png' +image_snow_half = ':assets:images/tiles/snowHalf.png' +image_snow_half_left = ':assets:images/tiles/snowHalf_left.png' +image_snow_half_mid = ':assets:images/tiles/snowHalf_mid.png' +image_snow_half_right = ':assets:images/tiles/snowHalf_right.png' +image_snow_hill_left = ':assets:images/tiles/snowHill_left.png' +image_snow_hill_right = ':assets:images/tiles/snowHill_right.png' +image_snow_left = ':assets:images/tiles/snowLeft.png' +image_snow_mid = ':assets:images/tiles/snowMid.png' +image_snow_right = ':assets:images/tiles/snowRight.png' +image_snow_pile = ':assets:images/tiles/snow_pile.png' +image_spikes = ':assets:images/tiles/spikes.png' +image_stone = ':assets:images/tiles/stone.png' +image_stone_center = ':assets:images/tiles/stoneCenter.png' +image_stone_center_rounded = ':assets:images/tiles/stoneCenter_rounded.png' +image_stone_cliff_alt_left = ':assets:images/tiles/stoneCliffAlt_left.png' +image_stone_cliff_alt_right = ':assets:images/tiles/stoneCliffAlt_right.png' +image_stone_cliff_left = ':assets:images/tiles/stoneCliff_left.png' +image_stone_cliff_right = ':assets:images/tiles/stoneCliff_right.png' +image_stone_corner_left = ':assets:images/tiles/stoneCorner_left.png' +image_stone_corner_right = ':assets:images/tiles/stoneCorner_right.png' +image_stone_half = ':assets:images/tiles/stoneHalf.png' +image_stone_half_left = ':assets:images/tiles/stoneHalf_left.png' +image_stone_half_mid = ':assets:images/tiles/stoneHalf_mid.png' +image_stone_half_right = ':assets:images/tiles/stoneHalf_right.png' +image_stone_hill_left = ':assets:images/tiles/stoneHill_left.png' +image_stone_hill_right = ':assets:images/tiles/stoneHill_right.png' +image_stone_left = ':assets:images/tiles/stoneLeft.png' +image_stone_mid = ':assets:images/tiles/stoneMid.png' +image_stone_right = ':assets:images/tiles/stoneRight.png' +image_switch_green = ':assets:images/tiles/switchGreen.png' +image_switch_green_pressed = ':assets:images/tiles/switchGreen_pressed.png' +image_switch_red = ':assets:images/tiles/switchRed.png' +image_switch_red_pressed = ':assets:images/tiles/switchRed_pressed.png' +image_torch1 = ':assets:images/tiles/torch1.png' +image_torch2 = ':assets:images/tiles/torch2.png' +image_torch_off = ':assets:images/tiles/torchOff.png' +image_water = ':assets:images/tiles/water.png' +image_water_top_high = ':assets:images/tiles/waterTop_high.png' +image_water_top_low = ':assets:images/tiles/waterTop_low.png' +image_tank_blue_barrel1 = ':assets:images/topdown_tanks/tankBlue_barrel1.png' +image_tank_blue_barrel1_outline = ':assets:images/topdown_tanks/tankBlue_barrel1_outline.png' +image_tank_blue_barrel2 = ':assets:images/topdown_tanks/tankBlue_barrel2.png' +image_tank_blue_barrel2_outline = ':assets:images/topdown_tanks/tankBlue_barrel2_outline.png' +image_tank_blue_barrel3 = ':assets:images/topdown_tanks/tankBlue_barrel3.png' +image_tank_blue_barrel3_outline = ':assets:images/topdown_tanks/tankBlue_barrel3_outline.png' +image_tank_body_big_red = ':assets:images/topdown_tanks/tankBody_bigRed.png' +image_tank_body_big_red_outline = ':assets:images/topdown_tanks/tankBody_bigRed_outline.png' +image_tank_body_blue = ':assets:images/topdown_tanks/tankBody_blue.png' +image_tank_body_blue_outline = ':assets:images/topdown_tanks/tankBody_blue_outline.png' +image_tank_body_dark = ':assets:images/topdown_tanks/tankBody_dark.png' +image_tank_body_dark_large = ':assets:images/topdown_tanks/tankBody_darkLarge.png' +image_tank_body_dark_large_outline = ':assets:images/topdown_tanks/tankBody_darkLarge_outline.png' +image_tank_body_dark_outline = ':assets:images/topdown_tanks/tankBody_dark_outline.png' +image_tank_body_green = ':assets:images/topdown_tanks/tankBody_green.png' +image_tank_body_green_outline = ':assets:images/topdown_tanks/tankBody_green_outline.png' +image_tank_body_huge = ':assets:images/topdown_tanks/tankBody_huge.png' +image_tank_body_huge_outline = ':assets:images/topdown_tanks/tankBody_huge_outline.png' +image_tank_body_red = ':assets:images/topdown_tanks/tankBody_red.png' +image_tank_body_red_outline = ':assets:images/topdown_tanks/tankBody_red_outline.png' +image_tank_body_sand = ':assets:images/topdown_tanks/tankBody_sand.png' +image_tank_body_sand_outline = ':assets:images/topdown_tanks/tankBody_sand_outline.png' +image_tank_dark_barrel1 = ':assets:images/topdown_tanks/tankDark_barrel1.png' +image_tank_dark_barrel1_outline = ':assets:images/topdown_tanks/tankDark_barrel1_outline.png' +image_tank_dark_barrel2 = ':assets:images/topdown_tanks/tankDark_barrel2.png' +image_tank_dark_barrel2_outline = ':assets:images/topdown_tanks/tankDark_barrel2_outline.png' +image_tank_dark_barrel3 = ':assets:images/topdown_tanks/tankDark_barrel3.png' +image_tank_dark_barrel3_outline = ':assets:images/topdown_tanks/tankDark_barrel3_outline.png' +image_tank_green_barrel1 = ':assets:images/topdown_tanks/tankGreen_barrel1.png' +image_tank_green_barrel1_outline = ':assets:images/topdown_tanks/tankGreen_barrel1_outline.png' +image_tank_green_barrel2 = ':assets:images/topdown_tanks/tankGreen_barrel2.png' +image_tank_green_barrel2_outline = ':assets:images/topdown_tanks/tankGreen_barrel2_outline.png' +image_tank_green_barrel3 = ':assets:images/topdown_tanks/tankGreen_barrel3.png' +image_tank_green_barrel3_outline = ':assets:images/topdown_tanks/tankGreen_barrel3_outline.png' +image_tank_red_barrel1 = ':assets:images/topdown_tanks/tankRed_barrel1.png' +image_tank_red_barrel1_outline = ':assets:images/topdown_tanks/tankRed_barrel1_outline.png' +image_tank_red_barrel2 = ':assets:images/topdown_tanks/tankRed_barrel2.png' +image_tank_red_barrel2_outline = ':assets:images/topdown_tanks/tankRed_barrel2_outline.png' +image_tank_red_barrel3 = ':assets:images/topdown_tanks/tankRed_barrel3.png' +image_tank_red_barrel3_outline = ':assets:images/topdown_tanks/tankRed_barrel3_outline.png' +image_tank_sand_barrel1 = ':assets:images/topdown_tanks/tankSand_barrel1.png' +image_tank_sand_barrel1_outline = ':assets:images/topdown_tanks/tankSand_barrel1_outline.png' +image_tank_sand_barrel2 = ':assets:images/topdown_tanks/tankSand_barrel2.png' +image_tank_sand_barrel2_outline = ':assets:images/topdown_tanks/tankSand_barrel2_outline.png' +image_tank_sand_barrel3 = ':assets:images/topdown_tanks/tankSand_barrel3.png' +image_tank_sand_barrel3_outline = ':assets:images/topdown_tanks/tankSand_barrel3_outline.png' +image_tank_blue = ':assets:images/topdown_tanks/tank_blue.png' +image_tank_dark = ':assets:images/topdown_tanks/tank_dark.png' +image_tank_green = ':assets:images/topdown_tanks/tank_green.png' +image_tank_red = ':assets:images/topdown_tanks/tank_red.png' +image_tank_sand = ':assets:images/topdown_tanks/tank_sand.png' +image_tile_grass1 = ':assets:images/topdown_tanks/tileGrass1.png' +image_tile_grass2 = ':assets:images/topdown_tanks/tileGrass2.png' +image_tile_grass_road_corner_l_l = ':assets:images/topdown_tanks/tileGrass_roadCornerLL.png' +image_tile_grass_road_corner_l_r = ':assets:images/topdown_tanks/tileGrass_roadCornerLR.png' +image_tile_grass_road_corner_u_l = ':assets:images/topdown_tanks/tileGrass_roadCornerUL.png' +image_tile_grass_road_corner_u_r = ':assets:images/topdown_tanks/tileGrass_roadCornerUR.png' +image_tile_grass_road_crossing = ':assets:images/topdown_tanks/tileGrass_roadCrossing.png' +image_tile_grass_road_crossing_round = ':assets:images/topdown_tanks/tileGrass_roadCrossingRound.png' +image_tile_grass_road_east = ':assets:images/topdown_tanks/tileGrass_roadEast.png' +image_tile_grass_road_north = ':assets:images/topdown_tanks/tileGrass_roadNorth.png' +image_tile_grass_road_split_e = ':assets:images/topdown_tanks/tileGrass_roadSplitE.png' +image_tile_grass_road_split_n = ':assets:images/topdown_tanks/tileGrass_roadSplitN.png' +image_tile_grass_road_split_s = ':assets:images/topdown_tanks/tileGrass_roadSplitS.png' +image_tile_grass_road_split_w = ':assets:images/topdown_tanks/tileGrass_roadSplitW.png' +image_tile_grass_road_transition_e = ':assets:images/topdown_tanks/tileGrass_roadTransitionE.png' +image_tile_grass_road_transition_e_dirt = ':assets:images/topdown_tanks/tileGrass_roadTransitionE_dirt.png' +image_tile_grass_road_transition_n = ':assets:images/topdown_tanks/tileGrass_roadTransitionN.png' +image_tile_grass_road_transition_n_dirt = ':assets:images/topdown_tanks/tileGrass_roadTransitionN_dirt.png' +image_tile_grass_road_transition_s = ':assets:images/topdown_tanks/tileGrass_roadTransitionS.png' +image_tile_grass_road_transition_s_dirt = ':assets:images/topdown_tanks/tileGrass_roadTransitionS_dirt.png' +image_tile_grass_road_transition_w = ':assets:images/topdown_tanks/tileGrass_roadTransitionW.png' +image_tile_grass_road_transition_w_dirt = ':assets:images/topdown_tanks/tileGrass_roadTransitionW_dirt.png' +image_tile_grass_transition_e = ':assets:images/topdown_tanks/tileGrass_transitionE.png' +image_tile_grass_transition_n = ':assets:images/topdown_tanks/tileGrass_transitionN.png' +image_tile_grass_transition_s = ':assets:images/topdown_tanks/tileGrass_transitionS.png' +image_tile_grass_transition_w = ':assets:images/topdown_tanks/tileGrass_transitionW.png' +image_tile_sand1 = ':assets:images/topdown_tanks/tileSand1.png' +image_tile_sand2 = ':assets:images/topdown_tanks/tileSand2.png' +image_tile_sand_road_corner_l_l = ':assets:images/topdown_tanks/tileSand_roadCornerLL.png' +image_tile_sand_road_corner_l_r = ':assets:images/topdown_tanks/tileSand_roadCornerLR.png' +image_tile_sand_road_corner_u_l = ':assets:images/topdown_tanks/tileSand_roadCornerUL.png' +image_tile_sand_road_corner_u_r = ':assets:images/topdown_tanks/tileSand_roadCornerUR.png' +image_tile_sand_road_crossing = ':assets:images/topdown_tanks/tileSand_roadCrossing.png' +image_tile_sand_road_crossing_round = ':assets:images/topdown_tanks/tileSand_roadCrossingRound.png' +image_tile_sand_road_east = ':assets:images/topdown_tanks/tileSand_roadEast.png' +image_tile_sand_road_north = ':assets:images/topdown_tanks/tileSand_roadNorth.png' +image_tile_sand_road_split_e = ':assets:images/topdown_tanks/tileSand_roadSplitE.png' +image_tile_sand_road_split_n = ':assets:images/topdown_tanks/tileSand_roadSplitN.png' +image_tile_sand_road_split_s = ':assets:images/topdown_tanks/tileSand_roadSplitS.png' +image_tile_sand_road_split_w = ':assets:images/topdown_tanks/tileSand_roadSplitW.png' +image_tracks_double = ':assets:images/topdown_tanks/tracksDouble.png' +image_tracks_large = ':assets:images/topdown_tanks/tracksLarge.png' +image_tracks_small = ':assets:images/topdown_tanks/tracksSmall.png' +image_tree_brown_large = ':assets:images/topdown_tanks/treeBrown_large.png' +image_tree_brown_small = ':assets:images/topdown_tanks/treeBrown_small.png' +image_tree_green_large = ':assets:images/topdown_tanks/treeGreen_large.png' +image_tree_green_small = ':assets:images/topdown_tanks/treeGreen_small.png' +music_1918 = ':assets:music/1918.mp3' +music_funkyrobot = ':assets:music/funkyrobot.mp3' +sound_coin1 = ':assets:sounds/coin1.wav' +sound_coin2 = ':assets:sounds/coin2.wav' +sound_coin3 = ':assets:sounds/coin3.wav' +sound_coin4 = ':assets:sounds/coin4.wav' +sound_coin5 = ':assets:sounds/coin5.wav' +sound_error1 = ':assets:sounds/error1.wav' +sound_error2 = ':assets:sounds/error2.wav' +sound_error3 = ':assets:sounds/error3.wav' +sound_error4 = ':assets:sounds/error4.wav' +sound_error5 = ':assets:sounds/error5.wav' +sound_explosion1 = ':assets:sounds/explosion1.wav' +sound_explosion2 = ':assets:sounds/explosion2.wav' +sound_fall1 = ':assets:sounds/fall1.wav' +sound_fall2 = ':assets:sounds/fall2.wav' +sound_fall3 = ':assets:sounds/fall3.wav' +sound_fall4 = ':assets:sounds/fall4.wav' +sound_gameover1 = ':assets:sounds/gameover1.wav' +sound_gameover2 = ':assets:sounds/gameover2.wav' +sound_gameover3 = ':assets:sounds/gameover3.wav' +sound_gameover4 = ':assets:sounds/gameover4.wav' +sound_gameover5 = ':assets:sounds/gameover5.wav' +sound_hit1 = ':assets:sounds/hit1.wav' +sound_hit2 = ':assets:sounds/hit2.wav' +sound_hit3 = ':assets:sounds/hit3.wav' +sound_hit4 = ':assets:sounds/hit4.wav' +sound_hit5 = ':assets:sounds/hit5.wav' +sound_hurt1 = ':assets:sounds/hurt1.wav' +sound_hurt2 = ':assets:sounds/hurt2.wav' +sound_hurt3 = ':assets:sounds/hurt3.wav' +sound_hurt4 = ':assets:sounds/hurt4.wav' +sound_hurt5 = ':assets:sounds/hurt5.wav' +sound_jump1 = ':assets:sounds/jump1.wav' +sound_jump2 = ':assets:sounds/jump2.wav' +sound_jump3 = ':assets:sounds/jump3.wav' +sound_jump4 = ':assets:sounds/jump4.wav' +sound_jump5 = ':assets:sounds/jump5.wav' +sound_laser1 = ':assets:sounds/laser1.mp3' +sound_laser1 = ':assets:sounds/laser1.ogg' +sound_laser1 = ':assets:sounds/laser1.wav' +sound_laser2 = ':assets:sounds/laser2.wav' +sound_laser3 = ':assets:sounds/laser3.wav' +sound_laser4 = ':assets:sounds/laser4.wav' +sound_laser5 = ':assets:sounds/laser5.wav' +sound_lose1 = ':assets:sounds/lose1.wav' +sound_lose2 = ':assets:sounds/lose2.wav' +sound_lose3 = ':assets:sounds/lose3.wav' +sound_lose4 = ':assets:sounds/lose4.wav' +sound_lose5 = ':assets:sounds/lose5.wav' +sound_phase_jump1 = ':assets:sounds/phaseJump1.ogg' +sound_phase_jump1 = ':assets:sounds/phaseJump1.wav' +sound_rock_hit2 = ':assets:sounds/rockHit2.ogg' +sound_rock_hit2 = ':assets:sounds/rockHit2.wav' +sound_secret2 = ':assets:sounds/secret2.wav' +sound_secret4 = ':assets:sounds/secret4.wav' +sound_upgrade1 = ':assets:sounds/upgrade1.wav' +sound_upgrade2 = ':assets:sounds/upgrade2.wav' +sound_upgrade3 = ':assets:sounds/upgrade3.wav' +sound_upgrade4 = ':assets:sounds/upgrade4.wav' +sound_upgrade5 = ':assets:sounds/upgrade5.wav' +map_dirt = ':assets:tiled_maps/dirt.json' +map_grass = ':assets:tiled_maps/grass.json' +map_items = ':assets:tiled_maps/items.json' +map_level_1 = ':assets:tiled_maps/level_1.json' +map_level_2 = ':assets:tiled_maps/level_2.json' +map_map = ':assets:tiled_maps/map.json' +map_map2_level_1 = ':assets:tiled_maps/map2_level_1.json' +map_map2_level_2 = ':assets:tiled_maps/map2_level_2.json' +map_map_with_ladders = ':assets:tiled_maps/map_with_ladders.json' +map_more_tiles = ':assets:tiled_maps/more_tiles.json' +map_pymunk_test_map = ':assets:tiled_maps/pymunk_test_map.json' +map_spritesheet = ':assets:tiled_maps/spritesheet.json' +map_standard_tileset = ':assets:tiled_maps/standard_tileset.json' +map_test_map_1 = ':assets:tiled_maps/test_map_1.json' +map_test_map_2 = ':assets:tiled_maps/test_map_2.json' +map_test_map_3 = ':assets:tiled_maps/test_map_3.json' +map_test_map_5 = ':assets:tiled_maps/test_map_5.json' +map_test_map_6 = ':assets:tiled_maps/test_map_6.json' +map_test_map_7 = ':assets:tiled_maps/test_map_7.json' +map_test_objects = ':assets:tiled_maps/test_objects.json' +gui_button_square_blue = ':system:gui_basic_assets/button_square_blue.png' +gui_button_square_blue_pressed = ':system:gui_basic_assets/button_square_blue_pressed.png' +gui_red_button_hover = ':system:gui_basic_assets/red_button_hover.png' +gui_red_button_normal = ':system:gui_basic_assets/red_button_normal.png' +gui_red_button_press = ':system:gui_basic_assets/red_button_press.png' +gui_slider_bar = ':system:gui_basic_assets/slider_bar.png' +gui_slider_thumb = ':system:gui_basic_assets/slider_thumb.png' +gui_larger = ':system:gui_basic_assets/icons/larger.png' +gui_smaller = ':system:gui_basic_assets/icons/smaller.png' +gui_shield_gold = ':system:gui_basic_assets/items/shield_gold.png' +gui_sword_gold = ':system:gui_basic_assets/items/sword_gold.png' +gui_switch_green = ':system:gui_basic_assets/toggle/switch_green.png' +gui_switch_red = ':system:gui_basic_assets/toggle/switch_red.png' +gui_grey_panel = ':system:gui_basic_assets/window/grey_panel.png' \ No newline at end of file diff --git a/util/make_resources_init.py b/util/make_resources_init.py index ffc3267f0..0033c757a 100644 --- a/util/make_resources_init.py +++ b/util/make_resources_init.py @@ -7,35 +7,65 @@ MEDIA_TYPES = {'.png', '.wav', '.tmx', '.tsx', '.wav', '.mp3', '.ogg', '.json'} RESOURCE_ROOT = Path(__file__).parent.parent / "arcade/resources" +IGNORE_PATHS = { + RESOURCE_ROOT / "assets" / "cache", + RESOURCE_ROOT / "assets" / "onscreen_controls" +} def main() -> None: """Creates __init__.py in the arcade/resources directory.""" + ignore_count = 0 + skip_count = 0 used_variable_names: List[str] = [] - with open(RESOURCE_ROOT / "/__init__.py", 'w') as f: - for item in RESOURCE_ROOT.glob('**/*'): - if item.suffix not in MEDIA_TYPES: - continue + lines = get_module_lines() - relative_path = item.relative_to(RESOURCE_ROOT) - stem = item.stem - pythonic_stem = make_camel_case_pythonic(stem) + for item in RESOURCE_ROOT.glob('**/*'): + if item.is_dir(): + continue + if item.suffix not in MEDIA_TYPES: + skip_count += 1 + # print("Skipping (extension)", item) + continue + if is_path_ignored(item): + ignore_count += 1 + print("Ignoring", item) + continue - prefix = get_prefix(relative_path) + relative_path = item.relative_to(RESOURCE_ROOT) + stem = item.stem + pythonic_stem = pythonic_name(stem) + prefix = get_prefix(relative_path) + variable_name = f"{prefix}_{pythonic_stem}" - variable_name = f"{prefix}_{pythonic_stem}" + if variable_name in used_variable_names: + print(f"Warning: There is a duplicate resource variable name ({variable_name}).") + used_variable_names.append(variable_name) - if variable_name in used_variable_names: - print(f"Warning: There is a duplicate resource variable name ({variable_name}).") - used_variable_names.append(variable_name) + # Optimize paths for assets and system + if relative_path.parts[0] == "assets": + handle = "assets" + relative_path = relative_path.relative_to("assets") + elif relative_path.parts[0] == "system": + handle = "system" + relative_path = relative_path.relative_to("system") + else: + raise ValueError(f"Cannot determine handle for: {relative_path}") - resource_path = ":resources:" + relative_path.as_posix() + resource_path = f":{handle}:{relative_path.as_posix()}" - f.write(f"{variable_name} = '{resource_path}'\n") + lines.append(f"{variable_name} = '{resource_path}'") + + with open(RESOURCE_ROOT / "__init__.py", 'w') as f: + f.write("\n".join(lines)) + + print(f"Skipped {skip_count} files.") + print(f"Ignored {ignore_count} files.") def get_prefix(path: Path) -> str: + """Get the python variable prefix for a given path.""" path_str = path.as_posix() if "gui" in path_str: return "gui" @@ -43,27 +73,54 @@ def get_prefix(path: Path) -> str: return "sound" elif "image" in path_str: return "image" - elif "tmx_map" in path_str: + elif "tmx_map" in path_str or "tiled_map" in path_str: return "map" - return "" + elif "music" in path_str: + return "music" + else: + raise ValueError(f"No prefix configured for: {path}") + + +def is_path_ignored(path: Path) -> bool: + """Return True if the path should be ignored.""" + for ignore_path in IGNORE_PATHS: + if path.is_relative_to(ignore_path): + return True + return False -def make_camel_case_pythonic(name: str) -> str: +def pythonic_name(name: str) -> str: pythonic_name = "" for i, c in enumerate(name): - if i != 0 and c.isalpha() and c == c.upper() and name[i-1] != "_": + if i != 0 and c.isalpha() and c == c.upper() and name[i-1].isalpha(): pythonic_name += "_" pythonic_name += c.lower() - return pythonic_name + return pythonic_name.replace("-", "_") + + +def get_module_lines() -> List[str]: + """Get initial lines of the module up to the resource listing""" + lines = [] + with open(RESOURCE_ROOT / "__init__.py", 'r') as f: + content = f.readlines() + for line in content: + line = line.rstrip() + if line.startswith("# RESOURCE LIST"): + lines.append(line) + return lines + lines.append(line) + + raise ValueError("No resource list found in __init__.py") def test_functions(): - assert make_camel_case_pythonic("dirtCliffAlt_left") == "dirt_cliff_alt_left" - assert make_camel_case_pythonic("playerShip1_orange") == "player_ship1_orange" - assert make_camel_case_pythonic("Clicked") == "clicked" - assert make_camel_case_pythonic("stone_E") == "stone_e" - assert make_camel_case_pythonic("Stone_E_") == "stone_e_" - assert make_camel_case_pythonic("Stone1") == "stone1" + assert pythonic_name("dirtCliffAlt_left") == "dirt_cliff_alt_left" + assert pythonic_name("playerShip1_orange") == "player_ship1_orange" + assert pythonic_name("Clicked") == "clicked" + assert pythonic_name("stone_E") == "stone_e" + assert pythonic_name("Stone_E_") == "stone_e_" + assert pythonic_name("Stone1") == "stone1" + assert pythonic_name("Stone-Blue") == "stone_blue" path = Path('/testing/gui/abc') assert get_prefix(path) == "gui" From 661949d0ae0badf5306ea0dd6acd8dec7d31e17c Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Tue, 28 Mar 2023 22:02:38 +0200 Subject: [PATCH 20/23] create_resources_listing initial cleanup --- util/create_resources_listing.py | 128 ++++++++++++++----------------- 1 file changed, 56 insertions(+), 72 deletions(-) diff --git a/util/create_resources_listing.py b/util/create_resources_listing.py index 096acc580..719e3df82 100644 --- a/util/create_resources_listing.py +++ b/util/create_resources_listing.py @@ -3,47 +3,41 @@ Generate quick API indexes in Restructured Text Format for Sphinx documentation. """ - -import re -import os -import shutil from pathlib import Path +from typing import List -COLUMNS = 3 - +MODULE_DIR = Path(__file__).parent.resolve() +ARCADE_ROOT = MODULE_DIR.parent +RESOURCE_DIR = ARCADE_ROOT / "arcade" / "resources" +OUT_FILE = ARCADE_ROOT / "doc" / "api_docs" / "resources.rst" +RESOURCE_URL = "https://github.com/pythonarcade/arcade/blob/development/arcade/{}?raw=true" +COLUMNS = 3 skip_extensions = ['.glsl', '.md', '.py', '.yml', '.url', '.txt'] -def skipped_file(path): - filename = path.name - for extension in skip_extensions: - if filename.endswith(extension): - return True - return False - +def skipped_file(file_path: Path): + """Return True if file should be skipped.""" + return file_path.suffix in skip_extensions -def process_resource_directory(out, my_path: Path): - for cur_node in my_path.iterdir(): +def process_resource_directory(out, dir: Path): - curr_node_rel = cur_node.relative_to('../arcade/') - if cur_node.is_dir(): + for path in dir.iterdir(): - if cur_node.name.endswith("__"): + if path.is_dir(): + if path.name.endswith("__"): continue - os.makedirs(Path("build/html", *curr_node_rel.parts), exist_ok=True) - + # os.makedirs(Path("build/html", *curr_node_rel.parts), exist_ok=True) # out.write(f"\n{cur_node.name}\n") # out.write("-" * len(cur_node.name) + "\n\n") - process_resource_directory.cell_count = 0 - only_file_list = [item for item in cur_node.iterdir() if not (item.is_dir() or skipped_file(item))] - if len(only_file_list) > 0: - header_title = f":resources:{curr_node_rel.relative_to('resources').as_posix()}/" + file_list = [item for item in path.iterdir() if not (item.is_dir() or skipped_file(item))] + if len(file_list) > 0: + header_title = f":resources:{path.relative_to(RESOURCE_DIR).as_posix()}/" if header_title == ":resources:images/": - for f in only_file_list: + for f in file_list: print(f.name) # out.write(f"\n{header_title}\n") # out.write("-" * (len(header_title)) + "\n\n") @@ -54,71 +48,59 @@ def process_resource_directory(out, my_path: Path): out.write(f" :header-rows: 0\n") out.write(f" :class: resource-table\n\n") - process_resource_files(out, only_file_list) + process_resource_files(out, file_list) out.write("\n\n") - process_resource_directory(out, cur_node) + process_resource_directory(out, path) -def process_resource_files(out, file_list): - +def process_resource_files(out, file_list: List[Path]): start_row = True - for cur_node in file_list: - cur_node_rel = cur_node.relative_to('../arcade') - r1 = cur_node.relative_to('.') - r3 = 'resources/' + str(r1)[20:].replace('\\', '/') + cell_count = 0 + + for path in file_list: + resource_path = path.relative_to(ARCADE_ROOT).as_posix() - # r2 = f":resources:{cur_node_rel.relative_to('resources').as_posix()}" - if process_resource_directory.cell_count % COLUMNS == 0: + if cell_count % COLUMNS == 0: start_row = "*" - if cur_node.suffix in [".png", ".jpg", ".gif", ".svg"]: - out.write(f" {start_row} - .. image:: ../../arcade/{r3}\n\n") - out.write(f" {cur_node.name}\n") - process_resource_directory.cell_count += 1 - elif cur_node.suffix == ".wav": - file_path = f"https://github.com/pythonarcade/arcade/blob/development/arcade/{r3}?raw=true" + if path.suffix in [".png", ".jpg", ".gif", ".svg"]: + out.write(f" {start_row} - .. image:: ../../{resource_path}\n\n") + out.write(f" {path.name}\n") + cell_count += 1 + elif path.suffix == ".wav": + file_path = RESOURCE_URL.format(resource_path) out.write(f" {start_row} - .. raw:: html\n\n") - out.write(f"
{cur_node.name}\n") - process_resource_directory.cell_count += 1 - elif cur_node.suffix == ".mp3": - file_path = f"https://github.com/pythonarcade/arcade/blob/development/arcade/{r3}?raw=true" + out.write(f"
{path.name}\n") + cell_count += 1 + elif path.suffix == ".mp3": + file_path = RESOURCE_URL.format(resource_path) out.write(f" {start_row} - .. raw:: html\n\n") - out.write(f"
{cur_node.name}\n") - process_resource_directory.cell_count += 1 - elif cur_node.suffix == ".ogg": - file_path = f"https://github.com/pythonarcade/arcade/blob/development/arcade/{r3}?raw=true" + out.write(f"
{path.name}\n") + cell_count += 1 + elif path.suffix == ".ogg": + file_path = RESOURCE_URL.format(resource_path) out.write(f" {start_row} - .. raw:: html\n\n") - out.write(f"
{cur_node.name}\n") - process_resource_directory.cell_count += 1 - elif cur_node.suffix == ".glsl": - file_path = f"https://github.com/pythonarcade/arcade/blob/development/arcade/{r3}" - out.write(f" {start_row} - `{cur_node.name} <{file_path}>`_\n") + out.write(f"
{path.name}\n") + cell_count += 1 + elif path.suffix == ".glsl": + file_path = RESOURCE_URL.format(resource_path) + out.write(f" {start_row} - `{path.name} <{file_path}>`_\n") # out.write(f" {start_row} - .. raw:: html\n\n") - # out.write(f"
{cur_node.name}\n") - process_resource_directory.cell_count += 1 + # out.write(f"
{path.name}\n") + cell_count += 1 else: - out.write(f" {start_row} - {cur_node.name}\n") - process_resource_directory.cell_count += 1 + out.write(f" {start_row} - {path.name}\n") + cell_count += 1 start_row = " " - while process_resource_directory.cell_count % COLUMNS > 0: + while cell_count % COLUMNS > 0: out.write(f" -\n") - process_resource_directory.cell_count += 1 - - -process_resource_directory.cell_count = 0 + cell_count += 1 def resources(): - file_path = os.path.dirname(os.path.abspath(__file__)) - os.chdir(file_path) - try: - os.makedirs("build/html/resources") - except FileExistsError: - pass - - out = open("../doc/api_docs/resources.rst", "w") + out = OUT_FILE.open("w") out.write(".. _resources:\n") out.write("\n") @@ -136,7 +118,9 @@ def resources(): out.write("check out his web page for a much wider selection of assets.") out.write("\n") - process_resource_directory(out, Path('../arcade/resources/')) + process_resource_directory(out, RESOURCE_DIR) + + out.close() print("Done creating resources.rst") From da8d31fba65ebf2ef2d280166034eec054ec4503 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Wed, 29 Mar 2023 00:43:47 +0200 Subject: [PATCH 21/23] More create_resources_listing.py improvements --- util/create_resources_listing.py | 80 ++++++++++++++++++++------------ 1 file changed, 50 insertions(+), 30 deletions(-) diff --git a/util/create_resources_listing.py b/util/create_resources_listing.py index 719e3df82..093d66107 100644 --- a/util/create_resources_listing.py +++ b/util/create_resources_listing.py @@ -4,7 +4,7 @@ Generate quick API indexes in Restructured Text Format for Sphinx documentation. """ from pathlib import Path -from typing import List +from typing import List, Optional MODULE_DIR = Path(__file__).parent.resolve() ARCADE_ROOT = MODULE_DIR.parent @@ -21,37 +21,57 @@ def skipped_file(file_path: Path): return file_path.suffix in skip_extensions -def process_resource_directory(out, dir: Path): +def create_resource_path( + path: Path, + prefix: str = "", + suffix: str = "", +) -> str: + """ + Create a resource path. We will use the resources handle + and will need to the "assets" and "system" directory + from the path. + """ + path = path.relative_to(RESOURCE_DIR) + if path.parts[0] == "system": + path = path.relative_to("system") + elif path.parts[0] == "assets": + path = path.relative_to("assets") + else: + raise ValueError(f"Unexpected path: {path}") + + return f"{prefix}:resources:{path.as_posix()}{suffix}" - for path in dir.iterdir(): - if path.is_dir(): - if path.name.endswith("__"): - continue - - # os.makedirs(Path("build/html", *curr_node_rel.parts), exist_ok=True) - # out.write(f"\n{cur_node.name}\n") - # out.write("-" * len(cur_node.name) + "\n\n") - - file_list = [item for item in path.iterdir() if not (item.is_dir() or skipped_file(item))] - if len(file_list) > 0: - header_title = f":resources:{path.relative_to(RESOURCE_DIR).as_posix()}/" - if header_title == ":resources:images/": - for f in file_list: - print(f.name) - # out.write(f"\n{header_title}\n") - # out.write("-" * (len(header_title)) + "\n\n") - - out.write(f"\n") - out.write(f".. list-table:: {header_title}\n") - out.write(f" :widths: 33 33 33\n") - out.write(f" :header-rows: 0\n") - out.write(f" :class: resource-table\n\n") - - process_resource_files(out, file_list) - out.write("\n\n") - - process_resource_directory(out, path) +def process_resource_directory(out, dir: Path): + """ + Go through resources in a directory. + """ + for path in dir.iterdir(): + if not path.is_dir() or path.name.endswith("__"): + continue + # out.write(f"\n{cur_node.name}\n") + # out.write("-" * len(cur_node.name) + "\n\n") + + file_list = [item for item in path.iterdir() if not (item.is_dir() or skipped_file(item))] + if len(file_list) > 0: + # header_title = f":resources:{path.relative_to(RESOURCE_DIR).as_posix()}/" + header_title = create_resource_path(path, suffix="/") + if header_title == ":resources:images/": + for f in file_list: + print(f.name) + # out.write(f"\n{header_title}\n") + # out.write("-" * (len(header_title)) + "\n\n") + + out.write(f"\n") + out.write(f".. list-table:: {header_title}\n") + out.write(f" :widths: 33 33 33\n") + out.write(f" :header-rows: 0\n") + out.write(f" :class: resource-table\n\n") + + process_resource_files(out, file_list) + out.write("\n\n") + + process_resource_directory(out, path) def process_resource_files(out, file_list: List[Path]): From ff3657b5121eeb314298f942a30ed26de339028a Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Wed, 29 Mar 2023 00:48:23 +0200 Subject: [PATCH 22/23] Deprecate resolve_resource_path --- arcade/resources/__init__.py | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/arcade/resources/__init__.py b/arcade/resources/__init__.py index 920bb6806..912669147 100644 --- a/arcade/resources/__init__.py +++ b/arcade/resources/__init__.py @@ -1,5 +1,6 @@ from pathlib import Path -from typing import Dict, List,Union +from typing import Dict, List, Union +from arcade.utils import warning, ReplacementWarning #: The absolute path to this directory SYSTEM_PATH = Path(__file__).parent.resolve() / "system" @@ -12,6 +13,30 @@ } +@warning( + warning_type=ReplacementWarning, + new_name="resolve" +) +def resolve_resource_path(path: Union[str, Path]) -> Path: + """ + Attempts to resolve a path to a resource including resource handles. + + If the path is a string it tries to resolve it as a resource handle + or convert it to a Path object. + + If the path is a Path object it will ``Path.resolve()`` it + unless it's not absolute and return it. + + Example:: + + resolve(":resources:images/cards/cardBack_blue1.png") + resolve(":my_handle:music/combat.wav") + + :param Union[str, Path] path: A Path or string + """ + return resolve(path) + + def resolve(path: Union[str, Path]) -> Path: """ Attempts to resolve a path to a resource including resource handles. From b1db200c2d9429504ce982cd94736891b4ee9928 Mon Sep 17 00:00:00 2001 From: Einar Forselv Date: Wed, 29 Mar 2023 01:35:54 +0200 Subject: [PATCH 23/23] Test resources + fixes --- arcade/resources/__init__.py | 27 ++++++++++++- tests/unit/resources/test_resources.py | 54 +++++++++++++++++++++++++- util/create_resources_listing.py | 5 ++- util/make_resources_init.py | 10 ++--- 4 files changed, 84 insertions(+), 12 deletions(-) diff --git a/arcade/resources/__init__.py b/arcade/resources/__init__.py index 912669147..0c341ddb1 100644 --- a/arcade/resources/__init__.py +++ b/arcade/resources/__init__.py @@ -3,8 +3,9 @@ from arcade.utils import warning, ReplacementWarning #: The absolute path to this directory -SYSTEM_PATH = Path(__file__).parent.resolve() / "system" -ASSET_PATH = Path(__file__).parent.resolve() / "assets" +RESOURCE_DIR = Path(__file__).parent.resolve() +SYSTEM_PATH = RESOURCE_DIR / "system" +ASSET_PATH = RESOURCE_DIR / "assets" handles: Dict[str, List[Path]] = { "resources": [SYSTEM_PATH, ASSET_PATH], @@ -142,6 +143,23 @@ def get_resource_handle_paths(handle: str) -> List[Path]: raise KeyError(f"Unknown resource handle \"{handle}\"") +# Metadata for the resource list: utils\create_resource_list.py +_resource_list_skip_extensions = [ + '.glsl', + '.md', + '.py', + '.yml', + '.url', + '.txt', + '.tiled-project', + '.ttf', + '.pyc', +] +_resource_list_ignore_paths = { + RESOURCE_DIR / "assets" / "cache", + RESOURCE_DIR / "assets" / "onscreen_controls" +} + # RESOURCE LIST : (Truncate file from here if auto generating resource list) image_alien_blue_climb1 = ':assets:images/alien/alienBlue_climb1.png' image_alien_blue_climb2 = ':assets:images/alien/alienBlue_climb2.png' @@ -227,6 +245,8 @@ def get_resource_handle_paths(handle: str) -> List[Path]: image_zombie_walk5 = ':assets:images/animated_characters/zombie/zombie_walk5.png' image_zombie_walk6 = ':assets:images/animated_characters/zombie/zombie_walk6.png' image_zombie_walk7 = ':assets:images/animated_characters/zombie/zombie_walk7.png' +image_abstract_1 = ':assets:images/backgrounds/abstract_1.jpg' +image_abstract_2 = ':assets:images/backgrounds/abstract_2.jpg' image_instructions_0 = ':assets:images/backgrounds/instructions_0.png' image_instructions_1 = ':assets:images/backgrounds/instructions_1.png' image_stars = ':assets:images/backgrounds/stars.png' @@ -388,8 +408,11 @@ def get_resource_handle_paths(handle: str) -> List[Path]: image_explosion = ':assets:images/spritesheets/explosion.png' image_number_sheet = ':assets:images/spritesheets/number_sheet.png' image_tiles = ':assets:images/spritesheets/tiles.png' +image_anim = ':assets:images/test_textures/anim.gif' image_test_texture = ':assets:images/test_textures/test_texture.png' image_xy_square = ':assets:images/test_textures/xy_square.png' +image_diffuse = ':assets:images/test_textures/normal_mapping/diffuse.jpg' +image_normal = ':assets:images/test_textures/normal_mapping/normal.jpg' image_bomb = ':assets:images/tiles/bomb.png' image_box_crate = ':assets:images/tiles/boxCrate.png' image_box_crate_double = ':assets:images/tiles/boxCrate_double.png' diff --git a/tests/unit/resources/test_resources.py b/tests/unit/resources/test_resources.py index 6256502f0..92da15860 100644 --- a/tests/unit/resources/test_resources.py +++ b/tests/unit/resources/test_resources.py @@ -6,9 +6,59 @@ import arcade +def get_referenced_resources(): + """ + Find all the resources listed in the __init__.py file. + """ + resources = [] + for name in dir(arcade.resources): + member = getattr(arcade.resources, name) + if isinstance(member, str) and member.startswith(":"): + resources.append(arcade.resources.resolve(member)) + return resources + + + def test_resource_listing_exists(): - pass + """ + Find all the resources listed in the __init__.py file and check for their existence. + """ + paths = get_referenced_resources() + assert len(paths) > 100, "Not enough resources listed in __init__.py?" + # This is probably not needed, but the behavior of resolve() might change + for path in paths: + assert path.exists(), f"Resource not found: {path}" def test_resource_listing_is_complete(): - pass + """ + Have the resource listing been updated? + """ + paths_in_module = set(get_referenced_resources()) + + skip_extensions = arcade.resources._resource_list_skip_extensions + skip_paths = arcade.resources._resource_list_ignore_paths + + paths_in_resources = set() + # Check that all files in the resources directory are listed + for path in arcade.resources.RESOURCE_DIR.rglob("*"): + if path.is_dir(): + continue + if path.suffix in skip_extensions: + continue + if any(path.is_relative_to(skip_path) for skip_path in skip_paths): + continue + paths_in_resources.add(path) + + # Temporarily ignore the following files. This is a problem with duplicate variable names + # created by the make_resources_init.py script and should be resolved in the future. + # - sounds: These exist in several formats + paths_in_resources.remove(arcade.resources.RESOURCE_DIR / "assets" / "sounds" / "laser1.mp3") + paths_in_resources.remove(arcade.resources.RESOURCE_DIR / "assets" / "sounds" / "laser1.ogg") + paths_in_resources.remove(arcade.resources.RESOURCE_DIR / "assets" / "sounds" / "rockHit2.ogg") + paths_in_resources.remove(arcade.resources.RESOURCE_DIR / "assets" / "sounds" / "phaseJump1.ogg") + # - images: These exist in two locations + paths_in_resources.remove(arcade.resources.RESOURCE_DIR / "assets" / "images" / "items" / "ladderTop.png") + paths_in_resources.remove(arcade.resources.RESOURCE_DIR / "assets" / "images" / "items" / "ladderMid.png") + + assert paths_in_resources == paths_in_module, "Resources listed in __init__.py does not match the resources directory" diff --git a/util/create_resources_listing.py b/util/create_resources_listing.py index 093d66107..996f47dbd 100644 --- a/util/create_resources_listing.py +++ b/util/create_resources_listing.py @@ -3,8 +3,9 @@ Generate quick API indexes in Restructured Text Format for Sphinx documentation. """ +import arcade from pathlib import Path -from typing import List, Optional +from typing import List MODULE_DIR = Path(__file__).parent.resolve() ARCADE_ROOT = MODULE_DIR.parent @@ -13,7 +14,7 @@ RESOURCE_URL = "https://github.com/pythonarcade/arcade/blob/development/arcade/{}?raw=true" COLUMNS = 3 -skip_extensions = ['.glsl', '.md', '.py', '.yml', '.url', '.txt'] +skip_extensions = arcade.resources._resource_list_skip_extensions def skipped_file(file_path: Path): diff --git a/util/make_resources_init.py b/util/make_resources_init.py index 0033c757a..bc5fb4844 100644 --- a/util/make_resources_init.py +++ b/util/make_resources_init.py @@ -2,15 +2,13 @@ Generates arcade/resources/__init__.py by looking for media types in arcade/resources. """ +import arcade from pathlib import Path from typing import List -MEDIA_TYPES = {'.png', '.wav', '.tmx', '.tsx', '.wav', '.mp3', '.ogg', '.json'} +IGNORE_MEDIA_TYPES = arcade.resources._resource_list_skip_extensions +IGNORE_PATHS = arcade.resources._resource_list_ignore_paths RESOURCE_ROOT = Path(__file__).parent.parent / "arcade/resources" -IGNORE_PATHS = { - RESOURCE_ROOT / "assets" / "cache", - RESOURCE_ROOT / "assets" / "onscreen_controls" -} def main() -> None: @@ -24,7 +22,7 @@ def main() -> None: for item in RESOURCE_ROOT.glob('**/*'): if item.is_dir(): continue - if item.suffix not in MEDIA_TYPES: + if item.suffix in IGNORE_MEDIA_TYPES: skip_count += 1 # print("Skipping (extension)", item) continue