diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..dfe0770 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Auto detect text files and perform LF normalization +* text=auto diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..524f096 --- /dev/null +++ b/.gitignore @@ -0,0 +1,24 @@ +# Compiled class file +*.class + +# Log file +*.log + +# BlueJ files +*.ctxt + +# Mobile Tools for Java (J2ME) +.mtj.tmp/ + +# Package Files # +*.jar +*.war +*.nar +*.ear +*.zip +*.tar.gz +*.rar + +# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml +hs_err_pid* +replay_pid* diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/ant.xml b/.idea/ant.xml new file mode 100644 index 0000000..a2a4769 --- /dev/null +++ b/.idea/ant.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/libraries/lib.xml b/.idea/libraries/lib.xml new file mode 100644 index 0000000..98c01b9 --- /dev/null +++ b/.idea/libraries/lib.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..54fc2d4 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..05ad841 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..797acea --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..7bc5bcc --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2023 Tingsters + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/META-INF/MANIFEST.MF b/META-INF/MANIFEST.MF new file mode 100644 index 0000000..59499bc --- /dev/null +++ b/META-INF/MANIFEST.MF @@ -0,0 +1,2 @@ +Manifest-Version: 1.0 + diff --git a/PhippyRescue.iml b/PhippyRescue.iml new file mode 100644 index 0000000..1960e3c --- /dev/null +++ b/PhippyRescue.iml @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/PokemonProject.fxml b/PokemonProject.fxml new file mode 100644 index 0000000..7770b4f --- /dev/null +++ b/PokemonProject.fxml @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..ca4d9af --- /dev/null +++ b/README.md @@ -0,0 +1,6 @@ +PokeTime +==================== + +Workshop built using JavaFX and the very finest retro 8-bit graphics for teaching kids programming. + +http://bit.ly/pokemonworkshop \ No newline at end of file diff --git a/build.properties b/build.properties new file mode 100644 index 0000000..9607949 --- /dev/null +++ b/build.properties @@ -0,0 +1,2 @@ +path.variable.maven_repository=C\:\\Users\\Cassandra\\.m2\\repository +jdk.home.1.8=C\:/Program Files/Java/jdk1.8.0_31 \ No newline at end of file diff --git a/build.xml b/build.xml new file mode 100644 index 0000000..ad68579 --- /dev/null +++ b/build.xml @@ -0,0 +1,274 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/build/built-jar.properties b/build/built-jar.properties new file mode 100644 index 0000000..e756105 --- /dev/null +++ b/build/built-jar.properties @@ -0,0 +1,4 @@ +#Sat, 05 Oct 2013 22:57:22 -0700 + + +/Users/sjc/dev/MaryHadALittleLambda= diff --git a/build/classes/sample/images/barn.png b/build/classes/sample/images/barn.png new file mode 100644 index 0000000..2385652 Binary files /dev/null and b/build/classes/sample/images/barn.png differ diff --git a/build/classes/sample/images/chicken-coop.png b/build/classes/sample/images/chicken-coop.png new file mode 100644 index 0000000..021de18 Binary files /dev/null and b/build/classes/sample/images/chicken-coop.png differ diff --git a/build/classes/sample/images/chicken.png b/build/classes/sample/images/chicken.png new file mode 100644 index 0000000..8e954f0 Binary files /dev/null and b/build/classes/sample/images/chicken.png differ diff --git a/build/classes/sample/images/church.png b/build/classes/sample/images/church.png new file mode 100644 index 0000000..d01a885 Binary files /dev/null and b/build/classes/sample/images/church.png differ diff --git a/build/classes/sample/images/eggs.png b/build/classes/sample/images/eggs.png new file mode 100644 index 0000000..79a9f04 Binary files /dev/null and b/build/classes/sample/images/eggs.png differ diff --git a/build/classes/sample/images/field.jpg b/build/classes/sample/images/field.jpg new file mode 100644 index 0000000..1a031b6 Binary files /dev/null and b/build/classes/sample/images/field.jpg differ diff --git a/build/classes/sample/images/fox.png b/build/classes/sample/images/fox.png new file mode 100644 index 0000000..a042ad9 Binary files /dev/null and b/build/classes/sample/images/fox.png differ diff --git a/build/classes/sample/images/lamb.png b/build/classes/sample/images/lamb.png new file mode 100644 index 0000000..6dfd908 Binary files /dev/null and b/build/classes/sample/images/lamb.png differ diff --git a/build/classes/sample/images/mary.png b/build/classes/sample/images/mary.png new file mode 100644 index 0000000..ec8ae33 Binary files /dev/null and b/build/classes/sample/images/mary.png differ diff --git a/build/classes/sample/images/nest.png b/build/classes/sample/images/nest.png new file mode 100644 index 0000000..f04f1c0 Binary files /dev/null and b/build/classes/sample/images/nest.png differ diff --git a/build/classes/sample/images/rainbow.png b/build/classes/sample/images/rainbow.png new file mode 100644 index 0000000..5782fe3 Binary files /dev/null and b/build/classes/sample/images/rainbow.png differ diff --git a/out/production/PhippyRescue/sample/fonts/license.txt b/out/production/PhippyRescue/sample/fonts/license.txt new file mode 100644 index 0000000..d253ebf --- /dev/null +++ b/out/production/PhippyRescue/sample/fonts/license.txt @@ -0,0 +1,4 @@ +The FontStruction “Pixelated” +(http://fontstruct.com/fontstructions/show/426637) by “Greenma201” is +licensed under a Creative Commons Attribution Share Alike license +(http://creativecommons.org/licenses/by-sa/3.0/). diff --git a/out/production/PhippyRescue/sample/fonts/pixelated.ttf b/out/production/PhippyRescue/sample/fonts/pixelated.ttf new file mode 100644 index 0000000..29c265a Binary files /dev/null and b/out/production/PhippyRescue/sample/fonts/pixelated.ttf differ diff --git a/out/production/PhippyRescue/sample/fonts/read me.txt b/out/production/PhippyRescue/sample/fonts/read me.txt new file mode 100644 index 0000000..c04b01d --- /dev/null +++ b/out/production/PhippyRescue/sample/fonts/read me.txt @@ -0,0 +1,26 @@ +The font file in this archive was created using Fontstruct the free, online +font-building tool. +This font was created by “Greenma201”. +This font has a homepage where this archive and other versions may be found: +http://fontstruct.com/fontstructions/show/426637 + +Try Fontstruct at http://fontstruct.com +It’s easy and it’s fun. + +NOTE FOR FLASH USERS: Fontstruct fonts (fontstructions) are optimized for +Flash. If the font in this archive is a pixel font, it is best displayed at a +font-size of 8. + +Fontstruct is sponsored by FontShop. +Visit them at http://www.fontshop.com +FontShop is the original independent font retailer. We’ve been around since +the dawn of digital type. Whether you need the right font or need to create the +right font from scratch, let our 20 years of experience work for you. + +Fontstruct is copyright ©2011 Rob Meek + +LEGAL NOTICE: +In using this font you must comply with the licensing terms described in the +file “license.txt” included with this archive. +If you redistribute the font file in this archive, it must be accompanied by +all the other files from this archive, including this one. diff --git a/out/production/PhippyRescue/sample/images/Animal.png b/out/production/PhippyRescue/sample/images/Animal.png new file mode 100644 index 0000000..3401b27 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/Animal.png differ diff --git a/out/production/PhippyRescue/sample/images/FieldGrass.png b/out/production/PhippyRescue/sample/images/FieldGrass.png new file mode 100644 index 0000000..d84d2e1 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/FieldGrass.png differ diff --git a/out/production/PhippyRescue/sample/images/ZombieSheet.png b/out/production/PhippyRescue/sample/images/ZombieSheet.png new file mode 100644 index 0000000..e9e3171 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/ZombieSheet.png differ diff --git a/out/production/PhippyRescue/sample/images/aipom-back.png b/out/production/PhippyRescue/sample/images/aipom-back.png new file mode 100644 index 0000000..4b43912 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/aipom-back.png differ diff --git a/out/production/PhippyRescue/sample/images/aipom-front.png b/out/production/PhippyRescue/sample/images/aipom-front.png new file mode 100644 index 0000000..f5874c3 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/aipom-front.png differ diff --git a/out/production/PhippyRescue/sample/images/aipom.png b/out/production/PhippyRescue/sample/images/aipom.png new file mode 100644 index 0000000..efb3a99 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/aipom.png differ diff --git a/out/production/PhippyRescue/sample/images/barn.png b/out/production/PhippyRescue/sample/images/barn.png new file mode 100644 index 0000000..2385652 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/barn.png differ diff --git a/out/production/PhippyRescue/sample/images/battle_background.png b/out/production/PhippyRescue/sample/images/battle_background.png new file mode 100644 index 0000000..d9c4891 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/battle_background.png differ diff --git a/out/production/PhippyRescue/sample/images/bidoof-back.png b/out/production/PhippyRescue/sample/images/bidoof-back.png new file mode 100644 index 0000000..d503413 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/bidoof-back.png differ diff --git a/out/production/PhippyRescue/sample/images/bidoof-front.png b/out/production/PhippyRescue/sample/images/bidoof-front.png new file mode 100644 index 0000000..3fe6c66 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/bidoof-front.png differ diff --git a/out/production/PhippyRescue/sample/images/bidoof.png b/out/production/PhippyRescue/sample/images/bidoof.png new file mode 100644 index 0000000..20809e9 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/bidoof.png differ diff --git a/out/production/PhippyRescue/sample/images/black-boy.png b/out/production/PhippyRescue/sample/images/black-boy.png new file mode 100644 index 0000000..ca93594 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/black-boy.png differ diff --git a/out/production/PhippyRescue/sample/images/black-girl.png b/out/production/PhippyRescue/sample/images/black-girl.png new file mode 100644 index 0000000..b8454a6 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/black-girl.png differ diff --git a/out/production/PhippyRescue/sample/images/blue-boy.png b/out/production/PhippyRescue/sample/images/blue-boy.png new file mode 100644 index 0000000..c42c074 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/blue-boy.png differ diff --git a/out/production/PhippyRescue/sample/images/breloom-back.png b/out/production/PhippyRescue/sample/images/breloom-back.png new file mode 100644 index 0000000..2139357 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/breloom-back.png differ diff --git a/out/production/PhippyRescue/sample/images/breloom-front.png b/out/production/PhippyRescue/sample/images/breloom-front.png new file mode 100644 index 0000000..670b150 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/breloom-front.png differ diff --git a/out/production/PhippyRescue/sample/images/breloom.png b/out/production/PhippyRescue/sample/images/breloom.png new file mode 100644 index 0000000..6659cc6 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/breloom.png differ diff --git a/out/production/PhippyRescue/sample/images/captainkube.png b/out/production/PhippyRescue/sample/images/captainkube.png new file mode 100644 index 0000000..8a81d2b Binary files /dev/null and b/out/production/PhippyRescue/sample/images/captainkube.png differ diff --git a/out/production/PhippyRescue/sample/images/chicken-coop.png b/out/production/PhippyRescue/sample/images/chicken-coop.png new file mode 100644 index 0000000..021de18 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/chicken-coop.png differ diff --git a/out/production/PhippyRescue/sample/images/chicken.png b/out/production/PhippyRescue/sample/images/chicken.png new file mode 100644 index 0000000..8e954f0 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/chicken.png differ diff --git a/out/production/PhippyRescue/sample/images/church.png b/out/production/PhippyRescue/sample/images/church.png new file mode 100644 index 0000000..d01a885 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/church.png differ diff --git a/out/production/PhippyRescue/sample/images/combee-back.png b/out/production/PhippyRescue/sample/images/combee-back.png new file mode 100644 index 0000000..ba779ee Binary files /dev/null and b/out/production/PhippyRescue/sample/images/combee-back.png differ diff --git a/out/production/PhippyRescue/sample/images/combee-front.png b/out/production/PhippyRescue/sample/images/combee-front.png new file mode 100644 index 0000000..38ac6d2 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/combee-front.png differ diff --git a/out/production/PhippyRescue/sample/images/combee.png b/out/production/PhippyRescue/sample/images/combee.png new file mode 100644 index 0000000..1d5ac2b Binary files /dev/null and b/out/production/PhippyRescue/sample/images/combee.png differ diff --git a/out/production/PhippyRescue/sample/images/corphish-back.png b/out/production/PhippyRescue/sample/images/corphish-back.png new file mode 100644 index 0000000..a4bbaa2 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/corphish-back.png differ diff --git a/out/production/PhippyRescue/sample/images/corphish-front.png b/out/production/PhippyRescue/sample/images/corphish-front.png new file mode 100644 index 0000000..d9cd2bf Binary files /dev/null and b/out/production/PhippyRescue/sample/images/corphish-front.png differ diff --git a/out/production/PhippyRescue/sample/images/corphish.png b/out/production/PhippyRescue/sample/images/corphish.png new file mode 100644 index 0000000..f67f53d Binary files /dev/null and b/out/production/PhippyRescue/sample/images/corphish.png differ diff --git a/out/production/PhippyRescue/sample/images/dirt.png b/out/production/PhippyRescue/sample/images/dirt.png new file mode 100644 index 0000000..6a6c214 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/dirt.png differ diff --git a/out/production/PhippyRescue/sample/images/eggs.png b/out/production/PhippyRescue/sample/images/eggs.png new file mode 100644 index 0000000..79a9f04 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/eggs.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/bat.png b/out/production/PhippyRescue/sample/images/extra/bat.png new file mode 100644 index 0000000..ccb52fa Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/bat.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/bee.png b/out/production/PhippyRescue/sample/images/extra/bee.png new file mode 100644 index 0000000..29f746a Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/bee.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/brownbear.png b/out/production/PhippyRescue/sample/images/extra/brownbear.png new file mode 100644 index 0000000..8751693 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/brownbear.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/bunny.png b/out/production/PhippyRescue/sample/images/extra/bunny.png new file mode 100644 index 0000000..8631433 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/bunny.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/camel.png b/out/production/PhippyRescue/sample/images/extra/camel.png new file mode 100644 index 0000000..1f9fa28 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/camel.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/cat.png b/out/production/PhippyRescue/sample/images/extra/cat.png new file mode 100644 index 0000000..50d7fe4 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/cat.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/chick.png b/out/production/PhippyRescue/sample/images/extra/chick.png new file mode 100644 index 0000000..918e914 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/chick.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/cow.png b/out/production/PhippyRescue/sample/images/extra/cow.png new file mode 100644 index 0000000..d882e2d Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/cow.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/dove.png b/out/production/PhippyRescue/sample/images/extra/dove.png new file mode 100644 index 0000000..2005f6c Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/dove.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/frog.png b/out/production/PhippyRescue/sample/images/extra/frog.png new file mode 100644 index 0000000..ebf6a66 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/frog.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/girl1.png b/out/production/PhippyRescue/sample/images/extra/girl1.png new file mode 100644 index 0000000..4c802a7 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/girl1.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/girl2.png b/out/production/PhippyRescue/sample/images/extra/girl2.png new file mode 100644 index 0000000..f324cf1 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/girl2.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/girl3.png b/out/production/PhippyRescue/sample/images/extra/girl3.png new file mode 100644 index 0000000..146f1a9 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/girl3.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/greendragon.png b/out/production/PhippyRescue/sample/images/extra/greendragon.png new file mode 100644 index 0000000..89ccda1 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/greendragon.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/guy1.png b/out/production/PhippyRescue/sample/images/extra/guy1.png new file mode 100644 index 0000000..2c64170 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/guy1.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/guy2.png b/out/production/PhippyRescue/sample/images/extra/guy2.png new file mode 100644 index 0000000..1877aac Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/guy2.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/guy3.png b/out/production/PhippyRescue/sample/images/extra/guy3.png new file mode 100644 index 0000000..3439f5a Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/guy3.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/lion.png b/out/production/PhippyRescue/sample/images/extra/lion.png new file mode 100644 index 0000000..53f74eb Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/lion.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/mouse.png b/out/production/PhippyRescue/sample/images/extra/mouse.png new file mode 100644 index 0000000..3b4374d Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/mouse.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/panther.png b/out/production/PhippyRescue/sample/images/extra/panther.png new file mode 100644 index 0000000..d765b05 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/panther.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/reddragon.png b/out/production/PhippyRescue/sample/images/extra/reddragon.png new file mode 100644 index 0000000..a294800 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/reddragon.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/reindeer.png b/out/production/PhippyRescue/sample/images/extra/reindeer.png new file mode 100644 index 0000000..b3e8827 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/reindeer.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/rooster.png b/out/production/PhippyRescue/sample/images/extra/rooster.png new file mode 100644 index 0000000..d0ea071 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/rooster.png differ diff --git a/out/production/PhippyRescue/sample/images/extra/weasel.png b/out/production/PhippyRescue/sample/images/extra/weasel.png new file mode 100644 index 0000000..05e2196 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/extra/weasel.png differ diff --git a/out/production/PhippyRescue/sample/images/field.jpg b/out/production/PhippyRescue/sample/images/field.jpg new file mode 100644 index 0000000..1a031b6 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/field.jpg differ diff --git a/out/production/PhippyRescue/sample/images/fire.png b/out/production/PhippyRescue/sample/images/fire.png new file mode 100644 index 0000000..52b2590 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/fire.png differ diff --git a/out/production/PhippyRescue/sample/images/forest.png b/out/production/PhippyRescue/sample/images/forest.png new file mode 100644 index 0000000..4cdb703 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/forest.png differ diff --git a/out/production/PhippyRescue/sample/images/fox.png b/out/production/PhippyRescue/sample/images/fox.png new file mode 100644 index 0000000..a042ad9 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/fox.png differ diff --git a/out/production/PhippyRescue/sample/images/ghoul.png b/out/production/PhippyRescue/sample/images/ghoul.png new file mode 100644 index 0000000..5579ece Binary files /dev/null and b/out/production/PhippyRescue/sample/images/ghoul.png differ diff --git a/out/production/PhippyRescue/sample/images/goldie.png b/out/production/PhippyRescue/sample/images/goldie.png new file mode 100644 index 0000000..3001b18 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/goldie.png differ diff --git a/out/production/PhippyRescue/sample/images/hazel.png b/out/production/PhippyRescue/sample/images/hazel.png new file mode 100644 index 0000000..de7936a Binary files /dev/null and b/out/production/PhippyRescue/sample/images/hazel.png differ diff --git a/out/production/PhippyRescue/sample/images/island_background.png b/out/production/PhippyRescue/sample/images/island_background.png new file mode 100644 index 0000000..7e1203f Binary files /dev/null and b/out/production/PhippyRescue/sample/images/island_background.png differ diff --git a/out/production/PhippyRescue/sample/images/lamb.png b/out/production/PhippyRescue/sample/images/lamb.png new file mode 100644 index 0000000..6dfd908 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/lamb.png differ diff --git a/out/production/PhippyRescue/sample/images/larvitar-back.png b/out/production/PhippyRescue/sample/images/larvitar-back.png new file mode 100644 index 0000000..5488b42 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/larvitar-back.png differ diff --git a/out/production/PhippyRescue/sample/images/larvitar-front.png b/out/production/PhippyRescue/sample/images/larvitar-front.png new file mode 100644 index 0000000..55f0de0 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/larvitar-front.png differ diff --git a/out/production/PhippyRescue/sample/images/larvitar.png b/out/production/PhippyRescue/sample/images/larvitar.png new file mode 100644 index 0000000..b41e057 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/larvitar.png differ diff --git a/out/production/PhippyRescue/sample/images/linky.png b/out/production/PhippyRescue/sample/images/linky.png new file mode 100644 index 0000000..edad949 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/linky.png differ diff --git a/out/production/PhippyRescue/sample/images/magnemite-back.png b/out/production/PhippyRescue/sample/images/magnemite-back.png new file mode 100644 index 0000000..f9dfb11 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/magnemite-back.png differ diff --git a/out/production/PhippyRescue/sample/images/magnemite-front.png b/out/production/PhippyRescue/sample/images/magnemite-front.png new file mode 100644 index 0000000..70fe728 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/magnemite-front.png differ diff --git a/out/production/PhippyRescue/sample/images/magnemite.png b/out/production/PhippyRescue/sample/images/magnemite.png new file mode 100644 index 0000000..7c6ec98 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/magnemite.png differ diff --git a/out/production/PhippyRescue/sample/images/mary.png b/out/production/PhippyRescue/sample/images/mary.png new file mode 100644 index 0000000..ec8ae33 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/mary.png differ diff --git a/out/production/PhippyRescue/sample/images/miltank-back.png b/out/production/PhippyRescue/sample/images/miltank-back.png new file mode 100644 index 0000000..cb0c0b7 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/miltank-back.png differ diff --git a/out/production/PhippyRescue/sample/images/miltank-front.png b/out/production/PhippyRescue/sample/images/miltank-front.png new file mode 100644 index 0000000..bbdbfe7 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/miltank-front.png differ diff --git a/out/production/PhippyRescue/sample/images/miltank.png b/out/production/PhippyRescue/sample/images/miltank.png new file mode 100644 index 0000000..ba8b1fa Binary files /dev/null and b/out/production/PhippyRescue/sample/images/miltank.png differ diff --git a/out/production/PhippyRescue/sample/images/munchlax-back.png b/out/production/PhippyRescue/sample/images/munchlax-back.png new file mode 100644 index 0000000..1122f49 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/munchlax-back.png differ diff --git a/out/production/PhippyRescue/sample/images/munchlax-front.png b/out/production/PhippyRescue/sample/images/munchlax-front.png new file mode 100644 index 0000000..debc240 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/munchlax-front.png differ diff --git a/out/production/PhippyRescue/sample/images/munchlax.png b/out/production/PhippyRescue/sample/images/munchlax.png new file mode 100644 index 0000000..b0a9cc5 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/munchlax.png differ diff --git a/out/production/PhippyRescue/sample/images/nest.png b/out/production/PhippyRescue/sample/images/nest.png new file mode 100644 index 0000000..f04f1c0 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/nest.png differ diff --git a/out/production/PhippyRescue/sample/images/numel-back.png b/out/production/PhippyRescue/sample/images/numel-back.png new file mode 100644 index 0000000..6a32346 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/numel-back.png differ diff --git a/out/production/PhippyRescue/sample/images/numel-front.png b/out/production/PhippyRescue/sample/images/numel-front.png new file mode 100644 index 0000000..4844d85 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/numel-front.png differ diff --git a/out/production/PhippyRescue/sample/images/numel.png b/out/production/PhippyRescue/sample/images/numel.png new file mode 100644 index 0000000..02b5dda Binary files /dev/null and b/out/production/PhippyRescue/sample/images/numel.png differ diff --git a/out/production/PhippyRescue/sample/images/owlina.png b/out/production/PhippyRescue/sample/images/owlina.png new file mode 100644 index 0000000..58ab754 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/owlina.png differ diff --git a/out/production/PhippyRescue/sample/images/paras-back.png b/out/production/PhippyRescue/sample/images/paras-back.png new file mode 100644 index 0000000..1c7b732 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/paras-back.png differ diff --git a/out/production/PhippyRescue/sample/images/paras-front.png b/out/production/PhippyRescue/sample/images/paras-front.png new file mode 100644 index 0000000..2ee0495 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/paras-front.png differ diff --git a/out/production/PhippyRescue/sample/images/paras.png b/out/production/PhippyRescue/sample/images/paras.png new file mode 100644 index 0000000..b1bcbb7 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/paras.png differ diff --git a/out/production/PhippyRescue/sample/images/phippy.png b/out/production/PhippyRescue/sample/images/phippy.png new file mode 100644 index 0000000..d87fdd6 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/phippy.png differ diff --git a/out/production/PhippyRescue/sample/images/phippywhistle.png b/out/production/PhippyRescue/sample/images/phippywhistle.png new file mode 100644 index 0000000..c81948e Binary files /dev/null and b/out/production/PhippyRescue/sample/images/phippywhistle.png differ diff --git a/out/production/PhippyRescue/sample/images/pikachu-back.png b/out/production/PhippyRescue/sample/images/pikachu-back.png new file mode 100644 index 0000000..ea3dd1c Binary files /dev/null and b/out/production/PhippyRescue/sample/images/pikachu-back.png differ diff --git a/out/production/PhippyRescue/sample/images/pod.png b/out/production/PhippyRescue/sample/images/pod.png new file mode 100644 index 0000000..7f310c1 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/pod.png differ diff --git a/out/production/PhippyRescue/sample/images/podballoon.png b/out/production/PhippyRescue/sample/images/podballoon.png new file mode 100644 index 0000000..b292ffc Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podballoon.png differ diff --git a/out/production/PhippyRescue/sample/images/podballoon2.png b/out/production/PhippyRescue/sample/images/podballoon2.png new file mode 100644 index 0000000..5fe273b Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podballoon2.png differ diff --git a/out/production/PhippyRescue/sample/images/podballoonpoppurple.png b/out/production/PhippyRescue/sample/images/podballoonpoppurple.png new file mode 100644 index 0000000..c2a3a9e Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podballoonpoppurple.png differ diff --git a/out/production/PhippyRescue/sample/images/podballoonpopteal.png b/out/production/PhippyRescue/sample/images/podballoonpopteal.png new file mode 100644 index 0000000..269700e Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podballoonpopteal.png differ diff --git a/out/production/PhippyRescue/sample/images/podboxdrop.png b/out/production/PhippyRescue/sample/images/podboxdrop.png new file mode 100644 index 0000000..36a649c Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podboxdrop.png differ diff --git a/out/production/PhippyRescue/sample/images/podboxdroppink.png b/out/production/PhippyRescue/sample/images/podboxdroppink.png new file mode 100644 index 0000000..f166ec2 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podboxdroppink.png differ diff --git a/out/production/PhippyRescue/sample/images/podboxdroppurple.png b/out/production/PhippyRescue/sample/images/podboxdroppurple.png new file mode 100644 index 0000000..d5ac841 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podboxdroppurple.png differ diff --git a/out/production/PhippyRescue/sample/images/podboxdropteal.png b/out/production/PhippyRescue/sample/images/podboxdropteal.png new file mode 100644 index 0000000..6018adb Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podboxdropteal.png differ diff --git a/out/production/PhippyRescue/sample/images/podcarrier.png b/out/production/PhippyRescue/sample/images/podcarrier.png new file mode 100644 index 0000000..537aad4 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podcarrier.png differ diff --git a/out/production/PhippyRescue/sample/images/podcarrier2.png b/out/production/PhippyRescue/sample/images/podcarrier2.png new file mode 100644 index 0000000..f524c9b Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podcarrier2.png differ diff --git a/out/production/PhippyRescue/sample/images/podonfloor.png b/out/production/PhippyRescue/sample/images/podonfloor.png new file mode 100644 index 0000000..86b34b9 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podonfloor.png differ diff --git a/out/production/PhippyRescue/sample/images/podonfloorpink.png b/out/production/PhippyRescue/sample/images/podonfloorpink.png new file mode 100644 index 0000000..889375b Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podonfloorpink.png differ diff --git a/out/production/PhippyRescue/sample/images/podonfloorpurple.png b/out/production/PhippyRescue/sample/images/podonfloorpurple.png new file mode 100644 index 0000000..32e00ff Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podonfloorpurple.png differ diff --git a/out/production/PhippyRescue/sample/images/podonfloorteal.png b/out/production/PhippyRescue/sample/images/podonfloorteal.png new file mode 100644 index 0000000..8c74778 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podonfloorteal.png differ diff --git a/out/production/PhippyRescue/sample/images/podsitter.png b/out/production/PhippyRescue/sample/images/podsitter.png new file mode 100644 index 0000000..5f4f96e Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podsitter.png differ diff --git a/out/production/PhippyRescue/sample/images/podsitter2.png b/out/production/PhippyRescue/sample/images/podsitter2.png new file mode 100644 index 0000000..c0d7080 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podsitter2.png differ diff --git a/out/production/PhippyRescue/sample/images/podv2.png b/out/production/PhippyRescue/sample/images/podv2.png new file mode 100644 index 0000000..f278ab0 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podv2.png differ diff --git a/out/production/PhippyRescue/sample/images/podv3.png b/out/production/PhippyRescue/sample/images/podv3.png new file mode 100644 index 0000000..13d6728 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/podv3.png differ diff --git a/out/production/PhippyRescue/sample/images/pupitar-back.png b/out/production/PhippyRescue/sample/images/pupitar-back.png new file mode 100644 index 0000000..4d88fb1 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/pupitar-back.png differ diff --git a/out/production/PhippyRescue/sample/images/pupitar-front.png b/out/production/PhippyRescue/sample/images/pupitar-front.png new file mode 100644 index 0000000..89f4a12 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/pupitar-front.png differ diff --git a/out/production/PhippyRescue/sample/images/pupitar.png b/out/production/PhippyRescue/sample/images/pupitar.png new file mode 100644 index 0000000..abf266c Binary files /dev/null and b/out/production/PhippyRescue/sample/images/pupitar.png differ diff --git a/out/production/PhippyRescue/sample/images/purple-girl.png b/out/production/PhippyRescue/sample/images/purple-girl.png new file mode 100644 index 0000000..c9c4cac Binary files /dev/null and b/out/production/PhippyRescue/sample/images/purple-girl.png differ diff --git a/out/production/PhippyRescue/sample/images/rainbow.png b/out/production/PhippyRescue/sample/images/rainbow.png new file mode 100644 index 0000000..5782fe3 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/rainbow.png differ diff --git a/out/production/PhippyRescue/sample/images/rattata-back.png b/out/production/PhippyRescue/sample/images/rattata-back.png new file mode 100644 index 0000000..38677b0 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/rattata-back.png differ diff --git a/out/production/PhippyRescue/sample/images/rattata-front.png b/out/production/PhippyRescue/sample/images/rattata-front.png new file mode 100644 index 0000000..5ae705c Binary files /dev/null and b/out/production/PhippyRescue/sample/images/rattata-front.png differ diff --git a/out/production/PhippyRescue/sample/images/rattata.png b/out/production/PhippyRescue/sample/images/rattata.png new file mode 100644 index 0000000..421e517 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/rattata.png differ diff --git a/out/production/PhippyRescue/sample/images/red-girl-zombie.png b/out/production/PhippyRescue/sample/images/red-girl-zombie.png new file mode 100644 index 0000000..d768711 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/red-girl-zombie.png differ diff --git a/out/production/PhippyRescue/sample/images/red-girl.png b/out/production/PhippyRescue/sample/images/red-girl.png new file mode 100644 index 0000000..cb5b709 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/red-girl.png differ diff --git a/out/production/PhippyRescue/sample/images/red_eyed_spirit___rpg_sprites_by_lagoon_sadnes-d5v0nri-tingstered.xcf b/out/production/PhippyRescue/sample/images/red_eyed_spirit___rpg_sprites_by_lagoon_sadnes-d5v0nri-tingstered.xcf new file mode 100644 index 0000000..6b7677b Binary files /dev/null and b/out/production/PhippyRescue/sample/images/red_eyed_spirit___rpg_sprites_by_lagoon_sadnes-d5v0nri-tingstered.xcf differ diff --git a/out/production/PhippyRescue/sample/images/red_eyed_spirit___rpg_sprites_by_lagoon_sadnes-d5v0nri.png b/out/production/PhippyRescue/sample/images/red_eyed_spirit___rpg_sprites_by_lagoon_sadnes-d5v0nri.png new file mode 100644 index 0000000..a3fd996 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/red_eyed_spirit___rpg_sprites_by_lagoon_sadnes-d5v0nri.png differ diff --git a/out/production/PhippyRescue/sample/images/red_girl_zombie_tingstered.xcf b/out/production/PhippyRescue/sample/images/red_girl_zombie_tingstered.xcf new file mode 100644 index 0000000..97be2e4 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/red_girl_zombie_tingstered.xcf differ diff --git a/out/production/PhippyRescue/sample/images/rolling-hills.jpg b/out/production/PhippyRescue/sample/images/rolling-hills.jpg new file mode 100644 index 0000000..d71a66d Binary files /dev/null and b/out/production/PhippyRescue/sample/images/rolling-hills.jpg differ diff --git a/out/production/PhippyRescue/sample/images/sun.png b/out/production/PhippyRescue/sample/images/sun.png new file mode 100644 index 0000000..b136902 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/sun.png differ diff --git a/out/production/PhippyRescue/sample/images/tiago.png b/out/production/PhippyRescue/sample/images/tiago.png new file mode 100644 index 0000000..6d7afbc Binary files /dev/null and b/out/production/PhippyRescue/sample/images/tiago.png differ diff --git a/out/production/PhippyRescue/sample/images/tombstone.png b/out/production/PhippyRescue/sample/images/tombstone.png new file mode 100644 index 0000000..e9bbb81 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/tombstone.png differ diff --git a/out/production/PhippyRescue/sample/images/utau_rpg_vx_sprite_sheet_1_by_kurotard-d5cskob.png b/out/production/PhippyRescue/sample/images/utau_rpg_vx_sprite_sheet_1_by_kurotard-d5cskob.png new file mode 100644 index 0000000..cbdc003 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/utau_rpg_vx_sprite_sheet_1_by_kurotard-d5cskob.png differ diff --git a/out/production/PhippyRescue/sample/images/yellow-boy.png b/out/production/PhippyRescue/sample/images/yellow-boy.png new file mode 100644 index 0000000..b61d927 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/yellow-boy.png differ diff --git a/out/production/PhippyRescue/sample/images/zee.png b/out/production/PhippyRescue/sample/images/zee.png new file mode 100644 index 0000000..ee48e95 Binary files /dev/null and b/out/production/PhippyRescue/sample/images/zee.png differ diff --git a/src/joachimeichborn/sensors/driver/Tsl2561.java b/src/joachimeichborn/sensors/driver/Tsl2561.java new file mode 100644 index 0000000..8938b0c --- /dev/null +++ b/src/joachimeichborn/sensors/driver/Tsl2561.java @@ -0,0 +1,545 @@ +package joachimeichborn.sensors.driver; + +import java.io.IOException; +import java.nio.ByteBuffer; +import java.nio.ByteOrder; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; + +import com.pi4j.io.i2c.I2CDevice; + +/** + * @author Joachim von Eichborn (Java implementation inspired by a C++ implementation from Adafruit Industries) + * + *

+ * LICENSE + *

+ *

+ * Software License Agreement (BSD License) + *

+ *

+ * Copyright (c) 2015, Joachim von Eichborn + *

+ *

+ * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the + * following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided + * with the distribution. 3. Neither the name of the copyright holders nor the names of its contributors may be used + * to endorse or promote products derived from this software without specific prior written permission. + *

+ *

+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT + * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN + * NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *

+ *

+ * License specifications from the Adafruit C++ implementation: + *

+ *

+ * Author: K. Townsend (Adafruit Industries) + *

+ *

+ * LICENSE + *

+ *

+ * Software License Agreement (BSD License) + *

+ *

+ * Copyright (c) 2013, Adafruit Industries All rights reserved. + *

+ *

+ * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the + * following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list + * of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided + * with the distribution. 3. Neither the name of the copyright holders nor the names of its contributors may be used + * to endorse or promote products derived from this software without specific prior written permission. + *

+ *

+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT + * NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN + * NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, + * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *

+ */ +public class Tsl2561 { + /** + * Helper class to store the measured raw brightness values and calculate SI lux from them + */ + static class Luminosity { + private final static int LUX_SCALE = 14; // Scale by 2^14 + private final static int RATIO_SCALE = 9; // Scale ratio by 2^9 + private final static int CHSCALE = 10; // Scale channel values by 2^10 + private final static int INITIAL_SCALE_13MS = 0x7517; // 322/11 *2^CHSCALE + private final static int INITIAL_SCALE_101MS = 0x0FE7; // 322/81 *2^CHSCALE + private final static int INITIAL_SCALE_402MS = (1 << CHSCALE); + + /** + * To calculate lux values from the measured broadband and infrared values, one has to do some computation. They rely + * on several factors that were obtained experimentally. Which factors has to be used depend on the ratio of the + * measured broadband and infrared values + *

+ * The factors used here apply only to the CL, FN and T package. If you use the CS package, please look into the + * TSL2561 documentation for the factors you have to use + *

+ */ + private enum Factors { + LEVEL_1(0x0040, 0x01f2, 0x01be), // 0.125 * 2^RATIO_SCALE, 0.0304 * 2^LUX_SCALE, 0.0272 * 2^LUX_SCALE + LEVEL_2(0x0080, 0x0214, 0x02d1), // 0.250 * 2^RATIO_SCALE, 0.0325 * 2^LUX_SCALE, 0.0440 * 2^LUX_SCALE + LEVEL_3(0x00c0, 0x023f, 0x037b), // 0.375 * 2^RATIO_SCALE, 0.0351 * 2^LUX_SCALE, 0.0544 * 2^LUX_SCALE + LEVEL_4(0x0100, 0x0270, 0x03fe), // 0.50 * 2^RATIO_SCALE, 0.0381 * 2^LUX_SCALE, 0.0624 * 2^LUX_SCALE + LEVEL_5(0x0138, 0x016f, 0x01fc), // 0.61 * 2^RATIO_SCALE, 0.0224 * 2^LUX_SCALE, 0.0310 * 2^LUX_SCALE + LEVEL_6(0x019a, 0x00d2, 0x00fb), // 0.80 * 2^RATIO_SCALE, 0.0128 * 2^LUX_SCALE, 0.0153 * 2^LUX_SCALE + LEVEL_7(0x029a, 0x0018, 0x0012); // 1.3 * 2^RATIO_SCALE, 0.00146 * 2^LUX_SCALE, 0.00112 * 2^LUX_SCALE + + /** + * Threshold of the ratio between broadband value and infrared value up to which the level is used + */ + private final int mRatioThreshold; + /** + * ratio-dependent factor for the broadband value + */ + private final int mBroadbandFactor; + /** + * ration-dependent factor for the infrared value + */ + private final int mInfraredFactor; + + Factors(final int aRatioThreshold, final int aBroadbandFactor, final int aInfraredFactor) { + mRatioThreshold = aRatioThreshold; + mBroadbandFactor = aBroadbandFactor; + mInfraredFactor = aInfraredFactor; + } + + public int getBroadbandFactor() { + return mBroadbandFactor; + } + + public int getInfraredFactor() { + return mInfraredFactor; + } + + /** + * Return the correct factors for the given ratio + * + * @param aRatio + * the ratio between the measured broadband and infrared values + * @return the entry matching the specified ratio + */ + public static Factors getFactorsByRatio(final long aRatio) { + for (final Factors factors : values()) { + if (aRatio < factors.mRatioThreshold) { + return factors; + } + } + + return null; + } + } + + final int mBroadband; + final int mInfrared; + final IntegrationTime mIntegrationTime; + final Gain mGain; + + /** + * Constructor, the measured raw brightness values are given as byte arrays in little endian order + * + * @param aBroadband + * @param aInfrared + * @param mGain + * @param mIntegrationTime + */ + public Luminosity(final byte[] aBroadband, final byte[] aInfrared, final IntegrationTime aIntegrationTime, + final Gain aGain) { + final ByteBuffer broadbandBuffer = ByteBuffer.wrap(aBroadband); + broadbandBuffer.order(ByteOrder.LITTLE_ENDIAN); + mBroadband = broadbandBuffer.getShort() & 0xFFFF; + + final ByteBuffer infraredBuffer = ByteBuffer.wrap(aInfrared); + infraredBuffer.order(ByteOrder.LITTLE_ENDIAN); + mInfrared = infraredBuffer.getShort() & 0xFFFF; + + mIntegrationTime = aIntegrationTime; + mGain = aGain; + } + + public String toString() { + return "Luminosity broadband=" + mBroadband + ", infrared=" + mInfrared + ", gain=" + mGain + ", time=" + + mIntegrationTime; + } + + public int getBroadband() { + return mBroadband; + } + + public int getInfrared() { + return mInfrared; + } + + /** + * Converts the raw sensor values to the standard SI lux equivalent. + * + * @return {@link Long#MAX_VALUE} if the sensor is saturated such that the values are unreliable, 0 if at least one + * of the measured raw values is zero and the calculated lux value otherwise + */ + public double calculateLux() { + long channelScale; + + if (getBroadband() > mIntegrationTime.getClipping() || getInfrared() > mIntegrationTime.getClipping()) { + return Long.MAX_VALUE; + } + else if (getBroadband() == 0 || getInfrared() == 0) { + return 0; + } + + // Initialize scale depending on the integration time + switch (mIntegrationTime) { + case MS_13: + channelScale = INITIAL_SCALE_13MS; + break; + case MS_101: + channelScale = INITIAL_SCALE_101MS; + break; + case MS_402: + channelScale = INITIAL_SCALE_402MS; + break; + default: + throw new IllegalArgumentException("Integration time " + mIntegrationTime + " cannot be handled"); + } + + // Modify scale based on the gain + if (mGain == Gain.X1) { + channelScale = channelScale << 4; + } + + final long scaledBroadband = (getBroadband() * channelScale) >> CHSCALE; + final long scaledInfrared = (getInfrared() * channelScale) >> CHSCALE; + + final long ratio; + if (scaledBroadband == 0) { + ratio = 0; + } + else { + // round during bit shifting + ratio = (((scaledInfrared << (RATIO_SCALE + 1)) / scaledBroadband) + 1) >> 1; + } + + long temp = 0; + + if (ratio > 0) { + final Factors factors = Factors.getFactorsByRatio(ratio); + if (factors != null) { + temp = ((scaledBroadband * factors.getBroadbandFactor()) - (scaledInfrared * factors.getInfraredFactor())); + } + } + + final double lux; + if (temp >= 0) { + lux = (temp >> (LUX_SCALE - 1)) / 10.0; + } + else { + lux = 0; + } + + return lux; + } + } + + /** + * Codes to switch the sensor on or off + */ + enum Power { + ON(0x03), // + OFF(0x00); + + private int mFieldValue; + + Power(final int aFieldValue) { + mFieldValue = aFieldValue; + } + + public int getFieldValue() { + return mFieldValue; + } + } + + /** + * Registers of the light sensor that are used + */ + enum Register { + CONTROL(0x00), // + TIMING(0x01), // + BROADBAND(0x0C), // + INFRARED(0x0E); + + private int mRegister; + + Register(final int aRegister) { + mRegister = aRegister; + } + + public int getRegister() { + return mRegister; + } + } + + /** + * Integration time options that are supported by the sensor + */ + enum IntegrationTime { + MS_13(0x00, 15, 100, 4850, 4900), // + MS_101(0x01, 120, 200, 36000, 37000), // + MS_402(0x02, 450, 500, 63000, 65000); + + /** + * Value to write to the timing register to set the integration time + */ + private int mFieldValue; + /** + * Integration time in milliseconds + */ + private int mTime; + /** + * Lower threshold used in auto gain estimation + */ + private int mLowThreshold; + /** + * Upper threshold used in auto gain estimation + */ + private int mHighThreshold; + /** + * Value that indicates that the sensor is saturated such that we can not trust the values anymore + */ + private int mClipping; + + IntegrationTime(final int aFieldValue, final int aTime, final int aLowThreshold, final int aHighThreshold, + final int aClipping) { + mFieldValue = aFieldValue; + mTime = aTime; + mLowThreshold = aLowThreshold; + mHighThreshold = aHighThreshold; + mClipping = aClipping; + } + + public int getFieldValue() { + return mFieldValue; + } + + public int getTime() { + return mTime; + } + + public int getLowThreshold() { + return mLowThreshold; + } + + public int getHighThreshold() { + return mHighThreshold; + } + + public int getClipping() { + return mClipping; + } + } + + /** + * Enum holding the gain options that are supported by the sensor + */ + enum Gain { + X1(0x00), // + X16(0x10); // + + private int mFieldValue; + + Gain(final int aFieldValue) { + mFieldValue = aFieldValue; + } + + public int getFieldValue() { + return mFieldValue; + } + } + + /** + * Bit indicating command mode to the sensor + */ + private final int COMMAND_BIT = 0x80; + + /** + * Bit indicating that a word should be read/written instead of a byte + */ + private final int WORD_BIT = 0x20; + + /** + * The light sensor + */ + private final I2CDevice mSensor; + + /** + * If this is set, gain is adjusted automatically to improve the measurement + */ + private boolean mAutoGain; + + private IntegrationTime mIntegrationTime; + private Gain mGain; + private final Logger mLogger; + + /** + * Writes an 8 bit value to the specified register + * + * @throws IOException + */ + private void writeByte(final int aReg, final int aValue) throws IOException { + mLogger.trace("Writing to register 0x" + Integer.toHexString(aReg) + " data 0x" + Integer.toHexString(aValue)); + mSensor.write((byte) aReg, (byte) aValue); + } + + /** + * Reads a 16 bit value from the specified register + * + * @throws IOException + */ + private byte[] readWord(final int aReg) throws IOException { + final byte[] result = new byte[2]; + mSensor.read((byte) aReg, result, 0, 2); + + mLogger.trace("Read from register 0x" + Integer.toHexString(aReg) + " data [0x" + + Integer.toHexString(result[0] & 0xFF) + ", 0x" + Integer.toHexString(result[1] & 0xFF) + "]"); + + return result; + } + + /** + * Turn the light sensor on or off + * + * @throws IOException + */ + private void setPower(final Power aPower) throws IOException { + writeByte(COMMAND_BIT | Register.CONTROL.getRegister(), aPower.getFieldValue()); + } + + /** + * @throws IOException + */ + private Luminosity getData() throws IOException { + setPower(Power.ON); + + try { + // wait for measurement + Thread.sleep(mIntegrationTime.getTime()); + } + catch (InterruptedException e) { + mLogger.error("Waiting for integration was interrupted"); + } + + final byte[] broadband = readWord(COMMAND_BIT | WORD_BIT | Register.BROADBAND.getRegister()); + final byte[] infrared = readWord(COMMAND_BIT | WORD_BIT | Register.INFRARED.getRegister()); + + final Luminosity luminosity = new Luminosity(broadband, infrared, mIntegrationTime, mGain); + mLogger.debug("Light sensor measured " + luminosity); + + setPower(Power.OFF); + + return luminosity; + } + + /** + * Constructor, configures the sensor + * + * @throws IOException + */ + public Tsl2561(final I2CDevice aSensorDevice) throws IOException { + mSensor = aSensorDevice; + mLogger = LogManager.getLogger(); + + mAutoGain = true; + mIntegrationTime = IntegrationTime.MS_402; + mGain = Gain.X16; + + setIntegrationTime(mIntegrationTime); + setGain(mGain); + + setPower(Power.OFF); + } + + /** + * Enables or disables trying to automatically improve results by adjusting the gain setting + */ + public void setAutoGain(final boolean aAutoGain) { + mAutoGain = aAutoGain; + } + + public void setIntegrationTime(final IntegrationTime aIntegrationTime) { + mLogger.trace("Setting integration time " + aIntegrationTime); + try { + writeByte(COMMAND_BIT | Register.TIMING.getRegister(), aIntegrationTime.getFieldValue() | mGain.getFieldValue()); + + mIntegrationTime = aIntegrationTime; + } + catch (IOException e) { + mLogger.error("Could not set integration time to " + aIntegrationTime + ": " + e.getMessage()); + } + } + + public void setGain(final Gain aGain) { + mLogger.trace("Setting gain " + aGain); + try { + writeByte(COMMAND_BIT | Register.TIMING.getRegister(), mIntegrationTime.getFieldValue() | aGain.getFieldValue()); + + mGain = aGain; + } + catch (IOException e) { + mLogger.error("Could not set gain to " + aGain + ": " + e.getMessage()); + } + } + + /** + * @throws IOException + */ + private Luminosity getLuminosity() throws IOException { + Luminosity luminosity = getData(); + + if (mAutoGain) { + mLogger.trace("Auto gain is active"); + if ((luminosity.getBroadband() < mIntegrationTime.getLowThreshold()) && (mGain == Gain.X1)) { + mLogger.debug("broadband value too low, increasing gain"); + setGain(Gain.X16); + luminosity = getData(); + } + else if ((luminosity.getBroadband() > mIntegrationTime.getHighThreshold()) && (mGain == Gain.X16)) { + mLogger.debug("broadband value too high, decreasing gain"); + setGain(Gain.X1); + luminosity = getData(); + } + } + else { + mLogger.trace("Auto gain is deactivated"); + } + + return luminosity; + } + + public double getLux() throws IOException { + Luminosity luminosity = getLuminosity(); + + if (luminosity.getBroadband() == 0 && luminosity.getInfrared() == 0) { + luminosity = getLuminosity(); + } + + final double lux = luminosity.calculateLux(); + + mLogger.info("Calculated " + lux + " lux from raw values " + luminosity); + + return lux; + } +} \ No newline at end of file diff --git a/src/sample/Main.java b/src/sample/Main.java new file mode 100644 index 0000000..537bc1f --- /dev/null +++ b/src/sample/Main.java @@ -0,0 +1,360 @@ +package sample; + +import javafx.animation.*; +import javafx.application.Application; +import javafx.application.Platform; +import javafx.beans.property.BooleanProperty; +import javafx.beans.property.SimpleBooleanProperty; +import javafx.scene.Group; +import javafx.scene.Scene; +import javafx.scene.control.*; +import javafx.scene.effect.ColorAdjust; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.input.KeyCode; +import javafx.scene.input.KeyEvent; +import javafx.scene.layout.StackPane; +import javafx.scene.paint.Color; +import javafx.scene.shape.Rectangle; +import javafx.scene.shape.StrokeType; +import javafx.scene.text.Font; +import javafx.stage.Stage; +import javafx.util.Duration; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.IntStream; + +public class Main extends Application { + + static final int SCALE = 2; + static final int SPRITE_SIZE = 32; + static final int CELL_SIZE = SPRITE_SIZE * SCALE; + static final int HORIZONTAL_CELLS = 12; + static final int VERTICAL_CELLS = 7; + static final int BOARD_WIDTH = HORIZONTAL_CELLS * CELL_SIZE; + static final int BOARD_HEIGHT = VERTICAL_CELLS * CELL_SIZE; + public static boolean gameover = false; + private static int anInt; + private static ImageView sun; + private ImageView background; + public static List sprites = new ArrayList<>(); + public static Group root; + public static Font pixelated = Font.loadFont(Main.class.getResourceAsStream("fonts/pixelated.ttf"), Main.CELL_SIZE); + public static Group spriteGroup = new Group(); + public static SpriteView.Phippy phippy; + public static SpriteView.CaptainKube captainKube; + public static BooleanProperty earthquake = new SimpleBooleanProperty(false); + private static Label messageDisplay; + private static Label pokemonCounter; + private static int pokemonCaught = 0; + private static Timeline clearMessageDisplay = new Timeline(new KeyFrame(Duration.seconds(5))); + private static ColorAdjust colorAdjustment; + + @Override + public void start(Stage primaryStage) throws Exception { + primaryStage.setTitle("PokeTime"); + StackPane wrapper = new StackPane(); + root = new Group(); + Scene scene = new Scene(root, BOARD_WIDTH, BOARD_HEIGHT, Color.BLACK); + primaryStage.setScene(scene); + populateBackground(root); + messageDisplay = new Label(); + pokemonCounter = new Label(); + + // Create Phippy + phippy = new SpriteView.Phippy(new Location(0, 3)); + + // Add Captain Kube + captainKube = new SpriteView.CaptainKube(new Location(2, 3)); + spriteGroup.getChildren().add(captainKube); + + // Create Phippy's Friends + SpriteView.Goldie goldie = new SpriteView.Goldie(30, 50); + spriteGroup.getChildren().add(goldie); + SpriteView.Zee zee = new SpriteView.Zee(80, 59); + spriteGroup.getChildren().add(zee); + SpriteView.Linky linky = new SpriteView.Linky(140, 55); + spriteGroup.getChildren().add(linky); + SpriteView.Hazel hazel = new SpriteView.Hazel(44, 80); + spriteGroup.getChildren().add(hazel); + SpriteView.Tiago tiago = new SpriteView.Tiago(106, 92); + spriteGroup.getChildren().add(tiago); + SpriteView.Owlina owlina = new SpriteView.Owlina(155, 85); + spriteGroup.getChildren().add(owlina); + + // Add some pods + spriteGroup.getChildren().add(new SpriteView.PodSitter(new Location(8, 2), goldie,false)); + spriteGroup.getChildren().add(new SpriteView.PodSitter(new Location(6, 6), zee,true)); + spriteGroup.getChildren().add(new SpriteView.PodCarrier(new Location(9, 4), linky,false)); + spriteGroup.getChildren().add(new SpriteView.PodCarrier(new Location(5, 1), hazel,true)); + spriteGroup.getChildren().add(new SpriteView.PodBalloon(new Location(7, 6), tiago, false)); + spriteGroup.getChildren().add(new SpriteView.PodBalloon(new Location(9, 4), owlina, true)); + + // Load the Sun + sun = new ImageView(new Image(Main.class.getResource("images/sun.png").toString(), Main.CELL_SIZE * Main.SCALE, Main.CELL_SIZE * Main.SCALE, true, false)); + + populateCells(root, phippy); + root.getChildren().add(spriteGroup); + spriteGroup.getChildren().add(phippy); + addKeyHandler(scene, phippy); + phippy.idle = true; + + colorAdjustment = new ColorAdjust(); + background.setEffect(colorAdjustment); + root.getChildren().add(messageDisplay); + messageDisplay.setFont(pixelated); + messageDisplay.setLayoutX(CELL_SIZE / 4); + messageDisplay.setLayoutY(BOARD_HEIGHT - CELL_SIZE * 1.7); + messageDisplay.setTextFill(Color.WHITESMOKE); + clearMessageDisplay.setOnFinished((ae) -> messageDisplay.setText("")); + + root.getChildren().add(pokemonCounter); + pokemonCounter.setFont(pixelated); + pokemonCounter.setLayoutX(CELL_SIZE / 4); + pokemonCounter.setLayoutY(CELL_SIZE / 4); + pokemonCounter.setTextFill(Color.DARKGREEN); + + SensorFactory sensorFactory = SensorFactory.create(); + sensorFactory.createButton(); + sensorFactory.createLightSensor(); + sensorFactory.createAccelerometer(); + + primaryStage.show(); + } + + private void populateBackground(Group root) { + background = new ImageView(new Image(getClass().getResource("images/island_background.png").toString(), 768, 448, true, false)); + background.setFitHeight(BOARD_HEIGHT); + background.setFitWidth(BOARD_WIDTH); + root.getChildren().add(background); + } + + private void populateCells(Group root, final SpriteView mainCharacter) { + // Gratuitous use of lambdas to do nested iteration! + Group cells = new Group(); + IntStream.range(0, HORIZONTAL_CELLS).mapToObj(i -> + IntStream.range(0, VERTICAL_CELLS).mapToObj(j -> { + Rectangle rect = new Rectangle(i * CELL_SIZE, j * CELL_SIZE, CELL_SIZE, CELL_SIZE); + rect.setFill(Color.rgb(0, 0, 0, 0)); + rect.setStrokeType(StrokeType.INSIDE); + rect.setStroke(Color.BLACK); + rect.setOnMousePressed(e -> mainCharacter.move(mainCharacter.location.get().directionTo(new Location(i, j)))); + return rect; + }) + ).flatMap(s -> s).forEach(cells.getChildren()::add); + root.getChildren().add(cells); + } + + private void addKeyHandler(Scene scene, SpriteView mary) { + scene.addEventHandler(KeyEvent.KEY_PRESSED, ke -> { + KeyCode keyCode = ke.getCode(); + switch (keyCode) { + case W: + case UP: + mary.move(Direction.UP); + break; + case A: + case LEFT: + mary.move(Direction.LEFT); + break; + case S: + case DOWN: + mary.move(Direction.DOWN); + break; + case D: + case RIGHT: + mary.move(Direction.RIGHT); + break; + case Z: + if (ke.isControlDown() && ke.isShiftDown()) + whistle(); + break; + case X: + if (ke.isControlDown() && ke.isShiftDown()) + sun(); + break; + case C: + if (ke.isControlDown() && ke.isShiftDown()) + earthquake(); + break; + case ESCAPE: + System.exit(0); + } + }); + } + + public static void main(String[] args) { + launch(args); + } + private static SpriteView.Pod enemy; + + public static void whistle() { + Platform.runLater(() -> whistleImpl()); + } + + private static void whistleImpl() { + Main.phippy.playAnimation(); + for (SpriteView sprite : sprites) { + if (sprite instanceof SpriteView.PodSitter) { + SpriteView.PodSitter podSitter = (SpriteView.PodSitter) sprite; + sprite.moveTo(phippy.getLocation()); + if (!phippy.getAnimals().contains(podSitter)) { + phippy.getAnimals().add(podSitter); + } + podSitter.stop(); + podSitter.continuousWalk(); + } + } + } + + public static void sun() { + Main.root.getChildren().add(sun); + Timeline sunTimeline = new Timeline(new KeyFrame[] {new KeyFrame(Duration.seconds(2), new KeyValue(colorAdjustment.brightnessProperty(), 0.6)), + new KeyFrame(Duration.seconds(4), new KeyValue(colorAdjustment.brightnessProperty(), 0))}); + sunTimeline.onFinishedProperty().set(event -> { + Main.root.getChildren().remove(sun); + for (SpriteView sprite : sprites) { + if (sprite instanceof SpriteView.PodBalloon) { + SpriteView.PodBalloon podBalloon = (SpriteView.PodBalloon) sprite; + podBalloon.stop(); + podBalloon.playAnimation(); + } + } + }); + sunTimeline.play(); + } + + public static void earthquake() { + earthquake.setValue(true); + Timeline quakeTimeline = new Timeline(); + for (int i = 1; i < 20; i++) { + quakeTimeline.getKeyFrames().add(new KeyFrame(Duration.seconds(.1 * i), new KeyValue(spriteGroup.translateXProperty(), i % 2 == 0 ? -10 : 10))); + } + quakeTimeline.getKeyFrames().add(new KeyFrame(Duration.seconds(2), new KeyValue(spriteGroup.translateXProperty(), 0))); + quakeTimeline.setOnFinished((o) -> { + earthquake.setValue(false); + for (SpriteView sprite : sprites) { + if (sprite instanceof SpriteView.Pod.PodCarrier || sprite instanceof SpriteView.Pod.PodBalloon) { + SpriteView.Pod pod = (SpriteView.Pod) sprite; + pod.stop(); + pod.playAnimation(); + } + } + }); + quakeTimeline.play(); + } + + public static void display(String message) { + Platform.runLater(() -> { + messageDisplay.setText(message); + clearMessageDisplay.playFromStart(); + }); + } + + public static enum Direction { + DOWN(0), LEFT(1), RIGHT(2), UP(3), ANIMATE1(4), ANIMATE2(5), ANIMATE3(6), ANIMATE4(7); + private final int offset; + Direction(int offset) { + this.offset = offset; + } + public int getOffset() { + return offset; + } + public int getXOffset() { + switch (this) { + case LEFT: + return -1; + case RIGHT: + return 1; + default: + return 0; + } + } + public int getYOffset() { + switch (this) { + case UP: + return -1; + case DOWN: + return 1; + default: + return 0; + } + } + public static Direction random() { + switch ((int)(4 * Math.random())) { + case 0: + return DOWN; + case 1: + return LEFT; + case 2: + return RIGHT; + default: + return UP; + } + } + } + + public static class Location { + int cell_x; + int cell_y; + public Location(int cell_x, int cell_y) { + this.cell_x = cell_x; + this.cell_y = cell_y; + } + public int getX() { + return cell_x; + } + public int getY() { + return cell_y; + } + public Location offset(int x, int y) { + return new Location(cell_x + x, cell_y + y); + } + public Direction directionTo(Location loc) { + if (Math.abs(loc.cell_x - cell_x) > Math.abs(loc.cell_y - cell_y)) { + return (loc.cell_x > cell_x) ? Direction.RIGHT : Direction.LEFT; + } else { + return (loc.cell_y > cell_y) ? Direction.DOWN : Direction.UP; + } + } + public Direction directionFrom(Location loc) { + if (Math.abs(loc.cell_x - cell_x) < Math.abs(loc.cell_y - cell_y)) { + return (loc.cell_x > cell_x) ? Direction.LEFT : Direction.RIGHT; + } else { + return (loc.cell_y > cell_y) ? Direction.UP : Direction.DOWN; + } + } + public int distance(Location loc) { + return (Math.abs(loc.cell_x - cell_x) + Math.abs(loc.cell_y - cell_y)) / 2; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + Location location = (Location) o; + + if (cell_x != location.cell_x) return false; + return cell_y == location.cell_y; + + } + + @Override + public int hashCode() { + int result = cell_x; + result = 31 * result + cell_y; + return result; + } + + @Override + public String toString() { + return "Location{" + + "cell_x=" + cell_x + + ", cell_y=" + cell_y + + '}'; + } + } + +} diff --git a/src/sample/MultiplierClock.java b/src/sample/MultiplierClock.java new file mode 100644 index 0000000..ff552d2 --- /dev/null +++ b/src/sample/MultiplierClock.java @@ -0,0 +1,27 @@ +package sample; + +import java.time.*; + +public class MultiplierClock extends Clock { + private final Instant creationTime; + private Clock base; + private final long multiplier; + public MultiplierClock(Clock base, long multiplier) { + this.base = base; + this.multiplier = multiplier; + creationTime = base.instant(); + } + @Override + public ZoneId getZone() { + return base.getZone(); + } + @Override + public Clock withZone(ZoneId zone) { + return base.withZone(zone); + } + @Override + public Instant instant() { + Instant now = base.instant(); + return creationTime.plus(Duration.between(creationTime, now).multipliedBy(multiplier)); + } +} diff --git a/src/sample/PiSystem.java b/src/sample/PiSystem.java new file mode 100644 index 0000000..0cd5720 --- /dev/null +++ b/src/sample/PiSystem.java @@ -0,0 +1,65 @@ +package sample; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStreamReader; + +/** + * Created by Cassandra on 8/20/2017. + */ +public class PiSystem { + private static boolean isWindows = false; + private static boolean isLinux = false; + private static boolean isHpUnix = false; + public static boolean isPiUnix = false; + private static boolean isSolaris = false; + private static boolean isSunOS = false; + private static boolean archDataModel32 = false; + private static boolean archDataModel64 = false; + + static { + final String os = System.getProperty("os.name").toLowerCase(); + if (os.indexOf("windows") >= 0) { + isWindows = true; + } + if (os.indexOf("linux") >= 0) { + isLinux = true; + } + if (os.indexOf("hp-ux") >= 0) { + isHpUnix = true; + } + if (os.indexOf("hpux") >= 0) { + isHpUnix = true; + } + if (os.indexOf("solaris") >= 0) { + isSolaris = true; + } + if (os.indexOf("sunos") >= 0) { + isSunOS = true; + } + if (System.getProperty("sun.arch.data.model").equals("32")) { + archDataModel32 = true; + } + if (System.getProperty("sun.arch.data.model").equals("64")) { + archDataModel64 = true; + } + if (isLinux) { + final File file = new File("/etc", "os-release"); + try (FileInputStream fis = new FileInputStream(file); + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fis))) { + String string; + while ((string = bufferedReader.readLine()) != null) { + if (string.toLowerCase().contains("raspbian")) { + if (string.toLowerCase().contains("name")) { + isPiUnix = true; + break; + } + } + } + } catch (final Exception e) { + e.printStackTrace(); + } + } + } +} diff --git a/src/sample/SensorFactory.java b/src/sample/SensorFactory.java new file mode 100644 index 0000000..39e0854 --- /dev/null +++ b/src/sample/SensorFactory.java @@ -0,0 +1,114 @@ +package sample; + +import com.pi4j.component.gyroscope.analogdevices.ADXL345; +import com.pi4j.io.gpio.*; +import com.pi4j.io.gpio.event.GpioPinDigitalStateChangeEvent; +import com.pi4j.io.gpio.event.GpioPinListenerDigital; +import com.pi4j.io.i2c.I2CBus; +import com.pi4j.io.i2c.I2CDevice; +import com.pi4j.io.i2c.I2CFactory; +import javafx.animation.KeyFrame; +import javafx.animation.Timeline; +import javafx.beans.property.BooleanProperty; +import javafx.util.Duration; +import joachimeichborn.sensors.driver.Tsl2561; + +import java.io.IOException; + +/** + * Created by Cassandra on 9/9/2016. + */ +public class SensorFactory { + private static SensorFactory factory; + private GpioController gpio; + private I2CBus bus; + private float lastGyroX; + + public static SensorFactory create() throws IOException, I2CFactory.UnsupportedBusNumberException { + if (factory == null) { + factory = new SensorFactory(); + } + return factory; + } + + public SensorFactory() throws IOException, I2CFactory.UnsupportedBusNumberException { + if (PiSystem.isPiUnix) { + gpio = GpioFactory.getInstance(); + bus = I2CFactory.getInstance(I2CBus.BUS_1); + } + } + + public void createButton() { + if (PiSystem.isPiUnix) { + final GpioPinDigitalInput myButton = gpio.provisionDigitalInputPin(RaspiPin.GPIO_07, PinPullResistance.PULL_UP); + myButton.addListener(new GpioPinListenerDigital() { + @Override + public void handleGpioPinDigitalStateChangeEvent(GpioPinDigitalStateChangeEvent event) { + boolean buttonPressed = event.getState().isLow(); + if (buttonPressed) Main.display("Button Pressed"); + // Call the pods to Phippy + } + }); + } + } + + public void createLightSensor() throws IOException { + if (PiSystem.isPiUnix) { + I2CDevice device = bus.getDevice(0x39); + try { + Tsl2561 lightSensor = new Tsl2561(device); + Timeline lightTimeline = new Timeline(new KeyFrame(Duration.seconds(10), actionEvent -> { + try { + double lux = lightSensor.getLux(); + Main.display("lux = " + lux); + // Bring out the sun! + } catch (IOException e) { + e.printStackTrace(); + } + })); + lightTimeline.setCycleCount(Timeline.INDEFINITE); + lightTimeline.play(); + } catch (IOException e) { + System.out.println("Light Sensor is probably not connected... " + e.getMessage()); + } + } + } + + public void createAccelerometer() { + if (PiSystem.isPiUnix) { + try { + ADXL345 gyro = new ADXL345(bus); + gyro.init(gyro.X, 4); + lastGyroX = gyro.X.getRawValue(); + Timeline accelerometerTimeline = new Timeline(new KeyFrame(Duration.seconds(1), actionEvent -> { + try { + float x = gyro.X.getRawValue(); + if (!Main.earthquake.getValue()) { + if (Math.abs(x - lastGyroX) > 2000) { + Main.display("Earthquake!"); + // Make an earthquake! + } + } + lastGyroX = x; + } catch (IOException e) { + e.printStackTrace(); + } + })); + accelerometerTimeline.setCycleCount(Timeline.INDEFINITE); + accelerometerTimeline.play(); + } catch (IOException e) { + System.out.println("Accelerometer is probably not connected... " + e.getMessage()); + } + } + } +} +// Call the pods to Phippy +// Main.whistle(); + +// Bring out the sun! +// if (lux > 100) { +// Main.sun(); +// } + +// Make an earthquake! +// Main.earthquake(); diff --git a/src/sample/SpriteView.java b/src/sample/SpriteView.java new file mode 100644 index 0000000..6590e95 --- /dev/null +++ b/src/sample/SpriteView.java @@ -0,0 +1,451 @@ +package sample; + +import javafx.animation.*; +import javafx.application.Platform; +import javafx.beans.property.*; +import javafx.beans.value.ChangeListener; +import javafx.collections.FXCollections; +import javafx.collections.ListChangeListener; +import javafx.collections.ObservableList; +import javafx.event.ActionEvent; +import javafx.event.EventHandler; +import javafx.geometry.Pos; +import javafx.geometry.Rectangle2D; +import javafx.scene.Group; +import javafx.scene.Node; +import javafx.scene.control.Label; +import javafx.scene.effect.ColorAdjust; +import javafx.scene.image.Image; +import javafx.scene.image.ImageView; +import javafx.scene.layout.StackPane; +import javafx.scene.paint.Color; +import javafx.scene.shape.Rectangle; +import javafx.util.Duration; + +import java.util.ArrayList; + +public class SpriteView extends StackPane { + protected final ImageView imageView; + private Color color; + EventHandler arrivalHandler; + double colorOffset; + private int spritesX; + private boolean continuousWalking = false; + + public void setDirection(Main.Direction direction) { + this.direction.setValue(direction); + } + + public static class Goldie extends HiddenFriend { + public Goldie(int x, int y) { + super("goldie", x, y, 1); + } + } + + public static class Zee extends HiddenFriend { + public Zee(int x, int y) { + super("zee", x, y, 1.4); + } + } + + public static class Linky extends HiddenFriend { + public Linky(int x, int y) { + super("linky", x, y, 1.2); + } + } + + public static class Hazel extends HiddenFriend { + public Hazel(int x, int y) { + super("hazel", x, y, 1.2); + } + } + + public static class Tiago extends HiddenFriend { + public Tiago(int x, int y) { + super("tiago", x, y, 1.2); + } + } + + public static class Owlina extends HiddenFriend { + public Owlina(int x, int y) { + super("owlina", x, y, 1); + } + } + + public static class HiddenFriend extends Friend { + public HiddenFriend(String name, int x, int y, double scale) { + super(name, new Main.Location(0, 0), 1); + setTranslateX(x); + setTranslateY(y); + setVisible(false); + } + } + + public static class CaptainKube extends Friend { + public CaptainKube(Main.Location loc) { + super("captainkube", loc, 1.5); + } + } + + public static class Friend extends SpriteView { + public Friend(String name, Main.Location loc, double scale) { + super(loadImage("images/" + name + ".png", 1, 1, scale), loc, 1, 1, 1); + direction.set(Main.Direction.DOWN); + frame.set(0); + } + } + + public static class PodSitter extends Pod { + public PodSitter(Main.Location loc, Friend friend, boolean alternateColor) { + super("podsitter", loc, friend, alternateColor, 7, 4, 1.4, 1); + } + } + public static class PodCarrier extends Pod { + public PodCarrier(Main.Location loc, Friend friend, boolean alternateColor) { + super("podcarrier", loc, friend, alternateColor, 3, 7, 1.85, 2); + avoid = Main.phippy; + } + } + public static class PodBalloon extends Pod { + public PodBalloon(Main.Location loc, Friend friend, boolean alternateColor) { + super("podballoon", loc, friend, alternateColor, 6, 8,1.8, 1); + avoid = Main.phippy; + } + } + protected boolean inBounds(Main.Direction direction) { + Main.Location loc = location.getValue().offset(direction.getXOffset(), direction.getYOffset()); + return (loc.cell_x >= 0) && (loc.cell_x < Main.HORIZONTAL_CELLS) && (loc.cell_y >= 0) && (loc.cell_y < Main.VERTICAL_CELLS); + } + public static class Pod extends RandomWalker { + private String name; + private Friend friend; + + public Pod(String name, Main.Location loc, Friend friend, boolean alternateColor, int spritesX, int spritesY, double scaleFactor, double speed) { + super(loadImage("images/" + name + (alternateColor ? "2" : "") + ".png", spritesX, spritesY, scaleFactor), loc, spritesX, spritesY, speed); + this.name = Character.toUpperCase(name.charAt(0)) + name.substring(1); + this.friend = friend; + } + + public String getName() { + return name; + } + + public void displayFriend() { + friend.setVisible(true); + } + } + public static class Phippy extends Shepherd { + int animalsReturned = 0; + static final Image PHIPPY = loadImage("images/phippy.png", 3, 8, 2); + public Phippy(Main.Location loc) { + super(PHIPPY, loc, 3, 5); + arrivalHandler = e -> { + if (Main.captainKube.location.get().equals(location.get())) { + System.out.println("Returning pods to the ship"); + for (SpriteView animal : getAnimals()) { + Main.root.getChildren().remove(animal); + Main.spriteGroup.getChildren().remove(animal); + Main.sprites.remove(animal); + ((Pod)animal).displayFriend(); + animalsReturned++; + } + getAnimals().clear(); + }; + if ((!Main.gameover) && (animalsReturned >= 6)) { + win(); + } + for (SpriteView sprite : Main.sprites) { + if (sprite.getLocation().equals(location.get())) { + if (sprite instanceof PodBalloon) { + System.out.println("Picking up a pod balloon"); + if (!getAnimals().contains(sprite)) { + getAnimals().add(sprite); + } + } else if (sprite instanceof PodCarrier) { + System.out.println("Picking up a pod carrier"); + if (!getAnimals().contains(sprite)) { + getAnimals().add(sprite); + } + } + } + } + }; + } + public void die() { + Main.gameover = true; + RotateTransition rotate = new RotateTransition(Duration.seconds(3), Phippy.this); + rotate.byAngleProperty().set(1080); + rotate.setOnFinished(actionEvent -> Main.root.getChildren().remove(Phippy.this)); + rotate.play(); + Main.sprites.remove(this); + Main.root.getChildren().add(new Rectangle(Main.BOARD_WIDTH, Main.BOARD_HEIGHT, Color.color(0, 0, 0, .4))); + Label label = new Label("GAME OVER"); + label.setTextFill(Color.WHITESMOKE); + label.setAlignment(Pos.BASELINE_CENTER); + label.setFont(Main.pixelated); + label.setPrefHeight(Main.BOARD_HEIGHT); + label.setPrefWidth(Main.BOARD_WIDTH); + Main.root.getChildren().add(label); + } + public void win() { + Main.gameover = true; + Main.root.getChildren().add(new Rectangle(Main.BOARD_WIDTH, Main.BOARD_HEIGHT, Color.color(0, 0, 0, .4))); + Label label = new Label("YOU WIN!!!"); + label.setTextFill(Color.LIGHTGREEN); + label.setAlignment(Pos.BASELINE_CENTER); + label.setFont(Main.pixelated); + label.setPrefHeight(Main.BOARD_HEIGHT); + label.setPrefWidth(Main.BOARD_WIDTH); + Main.root.getChildren().add(label); + } + } + + public static class RandomWalker extends SpriteView { + protected Timeline walk; + protected boolean idle = false; + protected Main.Location target; + protected SpriteView avoid; + public RandomWalker(Image spriteSheet, Main.Location loc) { + this(spriteSheet, loc, 3, 4, 1); + } + public RandomWalker(Image spriteSheet, Main.Location loc, int spritesX, int spritesY, double speed) { + super(spriteSheet, loc, spritesX, spritesY, speed); + walk = new Timeline(new KeyFrame(Duration.seconds(.2), actionEvent -> { + if (idle) return; + if (target != null) { + move(getLocation().directionTo(target)); + } else if (avoid != null && (getLocation().distance(avoid.location.get()) < 2)) { + move(getLocation().directionFrom(avoid.location.get())); + } else { + Main.Direction random = Main.Direction.random(); + if (inBounds(random)) { + move(random); + } + } + })); + walk.setCycleCount(Timeline.INDEFINITE); + walk.play(); + Main.earthquake.addListener((observable, oldValue, earthquake) -> { + if (earthquake) { + stop(); + } else { + play(); + } + }); + } + public void stop() { + walk.stop(); + } + public void play() { + walk.play(); + } + } + + public static class Shepherd extends RandomWalker { + private ObservableList animals; + public ObservableList getAnimals() { + return animals; + } + public Shepherd(Image spriteSheet, Main.Location loc) { + this(spriteSheet, loc, 3, 4); + } + public Shepherd(Image spriteSheet, Main.Location loc, int spritesX, int spritesY) { + super(spriteSheet, loc, spritesX, spritesY, 1); + animals = FXCollections.observableArrayList(); + animals.addListener((ListChangeListener) c -> { + ObservableList children = ((Group) getParent()).getChildren(); + while (c.next()) { + if (c.wasAdded() || c.wasRemoved() || c.wasReplaced()) { + SpriteView prev = this; + int number = 0; + for (SpriteView a : animals) { + a.following = prev; + a.number.set(++number); + prev.follower = a; + prev = a; + } + } + } + }); + } + public void move(Main.Direction direction) { + if (walking != null && walking.getStatus().equals(Animation.Status.RUNNING)) + return; + if (!inBounds(direction)) + return; + Main.Location myOldLoc = location.get(); + moveTo(location.getValue().offset(direction.getXOffset(), direction.getYOffset())); + animals.stream().reduce(myOldLoc, + (loc, sprt) -> { + Main.Location oldLoc = sprt.location.get(); + sprt.moveTo(loc); + return oldLoc; + }, (loc1, loc2) -> loc1 + ); + } + } + + public static class Ghoul extends SpriteView { + static final Image GHOUL = loadImage("images/ghoul.png"); + public Ghoul(SpriteView following) { + super(GHOUL, following); + } + } + + private SpriteView following; + IntegerProperty number = new SimpleIntegerProperty(); + public int getNumber() { + return number.get(); + } + public SpriteView(Image spriteSheet, SpriteView following) { + this(spriteSheet, following.getLocation().offset(-following.getDirection().getXOffset(), -following.getDirection().getYOffset())); + number.set(following.number.get() + 1); + this.following = following; + setDirection(following.getDirection()); + following.follower = this; + setMouseTransparent(true); + } + public SpriteView getFollowing() { + return following; + } + + ObjectProperty direction = new SimpleObjectProperty<>(); + ObjectProperty location = new SimpleObjectProperty<>(); + IntegerProperty frame = new SimpleIntegerProperty(1); + int spriteWidth; + int spriteHeight; + Timeline walking; + SpriteView follower; + private int spritesY; + double speed; + + static Image loadImage(String url) { + return loadImage(url, 3, 4); + } + static Image loadImage(String url, int spritesX, int spritesY) { + return loadImage(url, spritesX, spritesY, 1); + } + static Image loadImage(String url, int spritesX, int spritesY, double scale) { + return new Image(SpriteView.class.getResource(url).toString(), Main.SPRITE_SIZE * spritesX * Main.SCALE * scale, Main.SPRITE_SIZE * spritesY * Main.SCALE * scale, true, false); + } + public SpriteView(Image spriteSheet, Main.Location loc) { + this(spriteSheet, loc, 3, 4, 1); + } + public SpriteView(Image spriteSheet, Main.Location loc, int spritesX, int spritesY, double speed) { + this.spritesX = spritesX; + this.spritesY = spritesY; + this.speed = speed; + imageView = new ImageView(spriteSheet); + this.location.set(loc); + Main.sprites.add(this); + spriteWidth = (int) (spriteSheet.getWidth() / spritesX); + spriteHeight = (int) (spriteSheet.getHeight() / spritesY); + setTranslateX(loc.getX() * Main.CELL_SIZE + (Main.CELL_SIZE - spriteWidth) / 2); + setTranslateY(loc.getY() * Main.CELL_SIZE + (Main.CELL_SIZE - spriteHeight)); + // shouldn't need to subtract or add Main.SCALE + ChangeListener updateImage = (ov, o, o2) -> imageView.setViewport( + new Rectangle2D(frame.get() * spriteWidth + Main.SCALE, + direction.get().getOffset() * spriteHeight + Main.SCALE, + spriteWidth-Main.SCALE, spriteHeight-Main.SCALE)); + direction.addListener(updateImage); + frame.addListener(updateImage); + direction.set(Main.Direction.RIGHT); + getChildren().add(imageView); + setPrefSize(Main.SCALE, Main.SCALE); + StackPane.setAlignment(imageView, Pos.TOP_LEFT); + } + public void continuousWalk() { + if (continuousWalking) return; + Timeline timeline = new Timeline(Animation.INDEFINITE); + timeline.getKeyFrames().addAll(getWalkingAnimation()); + timeline.onFinishedProperty().setValue(e -> timeline.play()); + timeline.play(); + continuousWalking = true; + } + public void playAnimation() { + playAnimation(1); + } + public void playAnimation(int line) { + Timeline timeline = new Timeline(Animation.INDEFINITE); + timeline.getKeyFrames().add(new KeyFrame(Duration.seconds(0), event -> { + switch (line) { + case 1: + setDirection(Main.Direction.ANIMATE1); + break; + case 2: + setDirection(Main.Direction.ANIMATE2); + break; + case 3: + setDirection(Main.Direction.ANIMATE3); + break; + case 4: + setDirection(Main.Direction.ANIMATE4); + break; + } + })); + timeline.getKeyFrames().addAll(getWalkingAnimation()); + if (spritesY - 4 > line) { + timeline.onFinishedProperty().set(t -> playAnimation(line + 1)); + } + timeline.play(); + } + public void moveTo(Main.Location loc) { + if (loc.cell_x < 0) + loc.cell_x = Main.HORIZONTAL_CELLS - 1; + if (loc.cell_x >= Main.HORIZONTAL_CELLS) + loc.cell_x = 0; + if (loc.cell_y < 0) + loc.cell_y = Main.VERTICAL_CELLS - 1; + if (loc.cell_y >= Main.VERTICAL_CELLS) { + loc.cell_y = 0; + } + direction.setValue(location.getValue().directionTo(loc)); + location.setValue(loc); + walking = new Timeline(Animation.INDEFINITE, + new KeyFrame(Duration.seconds(1.0 / speed), new KeyValue(translateXProperty(), loc.getX() * Main.CELL_SIZE + (Main.CELL_SIZE - spriteWidth) / 2)), + new KeyFrame(Duration.seconds(1.0 / speed), new KeyValue(translateYProperty(), loc.getY() * Main.CELL_SIZE + (Main.CELL_SIZE - spriteHeight))) + ); + walking.getKeyFrames().addAll(getWalkingAnimation()); + walking.setOnFinished(e -> { + if (arrivalHandler != null) { + arrivalHandler.handle(e); + } + }); + Platform.runLater(walking::play); + } + + private ArrayList getWalkingAnimation() { + ArrayList frames = new ArrayList<>(); + frames.add(new KeyFrame(Duration.seconds(0), new KeyValue(frame, 0))); + if (spritesX == 3) { + frames.add(new KeyFrame(Duration.seconds(.75 * speed), new KeyValue(frame, 2))); + frames.add(new KeyFrame(Duration.seconds(1L / speed), new KeyValue(frame, 1))); + } else { + frames.add(new KeyFrame(Duration.seconds(speed), new KeyValue(frame, spritesX - 1))); + } + return frames; + } + + public void move(Main.Direction direction) { + if (walking != null && walking.getStatus().equals(Animation.Status.RUNNING)) + return; + moveTo(location.getValue().offset(direction.getXOffset(), direction.getYOffset())); + } + public Main.Location getLocation() { + return location.get(); + } + public Main.Direction getDirection() { + return direction.get(); + } + public void setColor(Color color) { + this.color = color; + if (color == null) { + imageView.setEffect(null); + } else { + imageView.setEffect(new ColorAdjust(color.getHue() / 180 - colorOffset, 0.3, 0, 0)); + } + } + public Color getColor() { + return color; + } +} diff --git a/src/sample/fonts/license.txt b/src/sample/fonts/license.txt new file mode 100644 index 0000000..d253ebf --- /dev/null +++ b/src/sample/fonts/license.txt @@ -0,0 +1,4 @@ +The FontStruction “Pixelated” +(http://fontstruct.com/fontstructions/show/426637) by “Greenma201” is +licensed under a Creative Commons Attribution Share Alike license +(http://creativecommons.org/licenses/by-sa/3.0/). diff --git a/src/sample/fonts/pixelated.ttf b/src/sample/fonts/pixelated.ttf new file mode 100644 index 0000000..29c265a Binary files /dev/null and b/src/sample/fonts/pixelated.ttf differ diff --git a/src/sample/fonts/read me.txt b/src/sample/fonts/read me.txt new file mode 100644 index 0000000..c04b01d --- /dev/null +++ b/src/sample/fonts/read me.txt @@ -0,0 +1,26 @@ +The font file in this archive was created using Fontstruct the free, online +font-building tool. +This font was created by “Greenma201”. +This font has a homepage where this archive and other versions may be found: +http://fontstruct.com/fontstructions/show/426637 + +Try Fontstruct at http://fontstruct.com +It’s easy and it’s fun. + +NOTE FOR FLASH USERS: Fontstruct fonts (fontstructions) are optimized for +Flash. If the font in this archive is a pixel font, it is best displayed at a +font-size of 8. + +Fontstruct is sponsored by FontShop. +Visit them at http://www.fontshop.com +FontShop is the original independent font retailer. We’ve been around since +the dawn of digital type. Whether you need the right font or need to create the +right font from scratch, let our 20 years of experience work for you. + +Fontstruct is copyright ©2011 Rob Meek + +LEGAL NOTICE: +In using this font you must comply with the licensing terms described in the +file “license.txt” included with this archive. +If you redistribute the font file in this archive, it must be accompanied by +all the other files from this archive, including this one. diff --git a/src/sample/images/Animal.png b/src/sample/images/Animal.png new file mode 100644 index 0000000..3401b27 Binary files /dev/null and b/src/sample/images/Animal.png differ diff --git a/src/sample/images/FieldGrass.png b/src/sample/images/FieldGrass.png new file mode 100644 index 0000000..d84d2e1 Binary files /dev/null and b/src/sample/images/FieldGrass.png differ diff --git a/src/sample/images/ZombieSheet.png b/src/sample/images/ZombieSheet.png new file mode 100644 index 0000000..e9e3171 Binary files /dev/null and b/src/sample/images/ZombieSheet.png differ diff --git a/src/sample/images/aipom-back.png b/src/sample/images/aipom-back.png new file mode 100644 index 0000000..4b43912 Binary files /dev/null and b/src/sample/images/aipom-back.png differ diff --git a/src/sample/images/aipom-front.png b/src/sample/images/aipom-front.png new file mode 100644 index 0000000..f5874c3 Binary files /dev/null and b/src/sample/images/aipom-front.png differ diff --git a/src/sample/images/aipom.png b/src/sample/images/aipom.png new file mode 100644 index 0000000..efb3a99 Binary files /dev/null and b/src/sample/images/aipom.png differ diff --git a/src/sample/images/barn.png b/src/sample/images/barn.png new file mode 100644 index 0000000..2385652 Binary files /dev/null and b/src/sample/images/barn.png differ diff --git a/src/sample/images/battle_background.png b/src/sample/images/battle_background.png new file mode 100644 index 0000000..d9c4891 Binary files /dev/null and b/src/sample/images/battle_background.png differ diff --git a/src/sample/images/bidoof-back.png b/src/sample/images/bidoof-back.png new file mode 100644 index 0000000..d503413 Binary files /dev/null and b/src/sample/images/bidoof-back.png differ diff --git a/src/sample/images/bidoof-front.png b/src/sample/images/bidoof-front.png new file mode 100644 index 0000000..3fe6c66 Binary files /dev/null and b/src/sample/images/bidoof-front.png differ diff --git a/src/sample/images/bidoof.png b/src/sample/images/bidoof.png new file mode 100644 index 0000000..20809e9 Binary files /dev/null and b/src/sample/images/bidoof.png differ diff --git a/src/sample/images/black-boy.png b/src/sample/images/black-boy.png new file mode 100644 index 0000000..ca93594 Binary files /dev/null and b/src/sample/images/black-boy.png differ diff --git a/src/sample/images/black-girl.png b/src/sample/images/black-girl.png new file mode 100644 index 0000000..b8454a6 Binary files /dev/null and b/src/sample/images/black-girl.png differ diff --git a/src/sample/images/blue-boy.png b/src/sample/images/blue-boy.png new file mode 100644 index 0000000..c42c074 Binary files /dev/null and b/src/sample/images/blue-boy.png differ diff --git a/src/sample/images/breloom-back.png b/src/sample/images/breloom-back.png new file mode 100644 index 0000000..2139357 Binary files /dev/null and b/src/sample/images/breloom-back.png differ diff --git a/src/sample/images/breloom-front.png b/src/sample/images/breloom-front.png new file mode 100644 index 0000000..670b150 Binary files /dev/null and b/src/sample/images/breloom-front.png differ diff --git a/src/sample/images/breloom.png b/src/sample/images/breloom.png new file mode 100644 index 0000000..6659cc6 Binary files /dev/null and b/src/sample/images/breloom.png differ diff --git a/src/sample/images/captainkube.png b/src/sample/images/captainkube.png new file mode 100644 index 0000000..8a81d2b Binary files /dev/null and b/src/sample/images/captainkube.png differ diff --git a/src/sample/images/chicken-coop.png b/src/sample/images/chicken-coop.png new file mode 100644 index 0000000..021de18 Binary files /dev/null and b/src/sample/images/chicken-coop.png differ diff --git a/src/sample/images/chicken.png b/src/sample/images/chicken.png new file mode 100644 index 0000000..8e954f0 Binary files /dev/null and b/src/sample/images/chicken.png differ diff --git a/src/sample/images/church.png b/src/sample/images/church.png new file mode 100644 index 0000000..d01a885 Binary files /dev/null and b/src/sample/images/church.png differ diff --git a/src/sample/images/combee-back.png b/src/sample/images/combee-back.png new file mode 100644 index 0000000..ba779ee Binary files /dev/null and b/src/sample/images/combee-back.png differ diff --git a/src/sample/images/combee-front.png b/src/sample/images/combee-front.png new file mode 100644 index 0000000..38ac6d2 Binary files /dev/null and b/src/sample/images/combee-front.png differ diff --git a/src/sample/images/combee.png b/src/sample/images/combee.png new file mode 100644 index 0000000..1d5ac2b Binary files /dev/null and b/src/sample/images/combee.png differ diff --git a/src/sample/images/corphish-back.png b/src/sample/images/corphish-back.png new file mode 100644 index 0000000..a4bbaa2 Binary files /dev/null and b/src/sample/images/corphish-back.png differ diff --git a/src/sample/images/corphish-front.png b/src/sample/images/corphish-front.png new file mode 100644 index 0000000..d9cd2bf Binary files /dev/null and b/src/sample/images/corphish-front.png differ diff --git a/src/sample/images/corphish.png b/src/sample/images/corphish.png new file mode 100644 index 0000000..f67f53d Binary files /dev/null and b/src/sample/images/corphish.png differ diff --git a/src/sample/images/dirt.png b/src/sample/images/dirt.png new file mode 100644 index 0000000..6a6c214 Binary files /dev/null and b/src/sample/images/dirt.png differ diff --git a/src/sample/images/eggs.png b/src/sample/images/eggs.png new file mode 100644 index 0000000..79a9f04 Binary files /dev/null and b/src/sample/images/eggs.png differ diff --git a/src/sample/images/extra/bat.png b/src/sample/images/extra/bat.png new file mode 100644 index 0000000..ccb52fa Binary files /dev/null and b/src/sample/images/extra/bat.png differ diff --git a/src/sample/images/extra/bee.png b/src/sample/images/extra/bee.png new file mode 100644 index 0000000..29f746a Binary files /dev/null and b/src/sample/images/extra/bee.png differ diff --git a/src/sample/images/extra/brownbear.png b/src/sample/images/extra/brownbear.png new file mode 100644 index 0000000..8751693 Binary files /dev/null and b/src/sample/images/extra/brownbear.png differ diff --git a/src/sample/images/extra/bunny.png b/src/sample/images/extra/bunny.png new file mode 100644 index 0000000..8631433 Binary files /dev/null and b/src/sample/images/extra/bunny.png differ diff --git a/src/sample/images/extra/camel.png b/src/sample/images/extra/camel.png new file mode 100644 index 0000000..1f9fa28 Binary files /dev/null and b/src/sample/images/extra/camel.png differ diff --git a/src/sample/images/extra/cat.png b/src/sample/images/extra/cat.png new file mode 100644 index 0000000..50d7fe4 Binary files /dev/null and b/src/sample/images/extra/cat.png differ diff --git a/src/sample/images/extra/chick.png b/src/sample/images/extra/chick.png new file mode 100644 index 0000000..918e914 Binary files /dev/null and b/src/sample/images/extra/chick.png differ diff --git a/src/sample/images/extra/cow.png b/src/sample/images/extra/cow.png new file mode 100644 index 0000000..d882e2d Binary files /dev/null and b/src/sample/images/extra/cow.png differ diff --git a/src/sample/images/extra/dove.png b/src/sample/images/extra/dove.png new file mode 100644 index 0000000..2005f6c Binary files /dev/null and b/src/sample/images/extra/dove.png differ diff --git a/src/sample/images/extra/frog.png b/src/sample/images/extra/frog.png new file mode 100644 index 0000000..ebf6a66 Binary files /dev/null and b/src/sample/images/extra/frog.png differ diff --git a/src/sample/images/extra/girl1.png b/src/sample/images/extra/girl1.png new file mode 100644 index 0000000..4c802a7 Binary files /dev/null and b/src/sample/images/extra/girl1.png differ diff --git a/src/sample/images/extra/girl2.png b/src/sample/images/extra/girl2.png new file mode 100644 index 0000000..f324cf1 Binary files /dev/null and b/src/sample/images/extra/girl2.png differ diff --git a/src/sample/images/extra/girl3.png b/src/sample/images/extra/girl3.png new file mode 100644 index 0000000..146f1a9 Binary files /dev/null and b/src/sample/images/extra/girl3.png differ diff --git a/src/sample/images/extra/greendragon.png b/src/sample/images/extra/greendragon.png new file mode 100644 index 0000000..89ccda1 Binary files /dev/null and b/src/sample/images/extra/greendragon.png differ diff --git a/src/sample/images/extra/guy1.png b/src/sample/images/extra/guy1.png new file mode 100644 index 0000000..2c64170 Binary files /dev/null and b/src/sample/images/extra/guy1.png differ diff --git a/src/sample/images/extra/guy2.png b/src/sample/images/extra/guy2.png new file mode 100644 index 0000000..1877aac Binary files /dev/null and b/src/sample/images/extra/guy2.png differ diff --git a/src/sample/images/extra/guy3.png b/src/sample/images/extra/guy3.png new file mode 100644 index 0000000..3439f5a Binary files /dev/null and b/src/sample/images/extra/guy3.png differ diff --git a/src/sample/images/extra/lion.png b/src/sample/images/extra/lion.png new file mode 100644 index 0000000..53f74eb Binary files /dev/null and b/src/sample/images/extra/lion.png differ diff --git a/src/sample/images/extra/mouse.png b/src/sample/images/extra/mouse.png new file mode 100644 index 0000000..3b4374d Binary files /dev/null and b/src/sample/images/extra/mouse.png differ diff --git a/src/sample/images/extra/panther.png b/src/sample/images/extra/panther.png new file mode 100644 index 0000000..d765b05 Binary files /dev/null and b/src/sample/images/extra/panther.png differ diff --git a/src/sample/images/extra/reddragon.png b/src/sample/images/extra/reddragon.png new file mode 100644 index 0000000..a294800 Binary files /dev/null and b/src/sample/images/extra/reddragon.png differ diff --git a/src/sample/images/extra/reindeer.png b/src/sample/images/extra/reindeer.png new file mode 100644 index 0000000..b3e8827 Binary files /dev/null and b/src/sample/images/extra/reindeer.png differ diff --git a/src/sample/images/extra/rooster.png b/src/sample/images/extra/rooster.png new file mode 100644 index 0000000..d0ea071 Binary files /dev/null and b/src/sample/images/extra/rooster.png differ diff --git a/src/sample/images/extra/weasel.png b/src/sample/images/extra/weasel.png new file mode 100644 index 0000000..05e2196 Binary files /dev/null and b/src/sample/images/extra/weasel.png differ diff --git a/src/sample/images/field.jpg b/src/sample/images/field.jpg new file mode 100644 index 0000000..1a031b6 Binary files /dev/null and b/src/sample/images/field.jpg differ diff --git a/src/sample/images/fire.png b/src/sample/images/fire.png new file mode 100644 index 0000000..52b2590 Binary files /dev/null and b/src/sample/images/fire.png differ diff --git a/src/sample/images/forest.png b/src/sample/images/forest.png new file mode 100644 index 0000000..4cdb703 Binary files /dev/null and b/src/sample/images/forest.png differ diff --git a/src/sample/images/fox.png b/src/sample/images/fox.png new file mode 100644 index 0000000..a042ad9 Binary files /dev/null and b/src/sample/images/fox.png differ diff --git a/src/sample/images/ghoul.png b/src/sample/images/ghoul.png new file mode 100644 index 0000000..5579ece Binary files /dev/null and b/src/sample/images/ghoul.png differ diff --git a/src/sample/images/goldie.png b/src/sample/images/goldie.png new file mode 100644 index 0000000..3001b18 Binary files /dev/null and b/src/sample/images/goldie.png differ diff --git a/src/sample/images/hazel.png b/src/sample/images/hazel.png new file mode 100644 index 0000000..de7936a Binary files /dev/null and b/src/sample/images/hazel.png differ diff --git a/src/sample/images/island_background.png b/src/sample/images/island_background.png new file mode 100644 index 0000000..7e1203f Binary files /dev/null and b/src/sample/images/island_background.png differ diff --git a/src/sample/images/lamb.png b/src/sample/images/lamb.png new file mode 100644 index 0000000..6dfd908 Binary files /dev/null and b/src/sample/images/lamb.png differ diff --git a/src/sample/images/larvitar-back.png b/src/sample/images/larvitar-back.png new file mode 100644 index 0000000..5488b42 Binary files /dev/null and b/src/sample/images/larvitar-back.png differ diff --git a/src/sample/images/larvitar-front.png b/src/sample/images/larvitar-front.png new file mode 100644 index 0000000..55f0de0 Binary files /dev/null and b/src/sample/images/larvitar-front.png differ diff --git a/src/sample/images/larvitar.png b/src/sample/images/larvitar.png new file mode 100644 index 0000000..b41e057 Binary files /dev/null and b/src/sample/images/larvitar.png differ diff --git a/src/sample/images/linky.png b/src/sample/images/linky.png new file mode 100644 index 0000000..edad949 Binary files /dev/null and b/src/sample/images/linky.png differ diff --git a/src/sample/images/magnemite-back.png b/src/sample/images/magnemite-back.png new file mode 100644 index 0000000..f9dfb11 Binary files /dev/null and b/src/sample/images/magnemite-back.png differ diff --git a/src/sample/images/magnemite-front.png b/src/sample/images/magnemite-front.png new file mode 100644 index 0000000..70fe728 Binary files /dev/null and b/src/sample/images/magnemite-front.png differ diff --git a/src/sample/images/magnemite.png b/src/sample/images/magnemite.png new file mode 100644 index 0000000..7c6ec98 Binary files /dev/null and b/src/sample/images/magnemite.png differ diff --git a/src/sample/images/mary.png b/src/sample/images/mary.png new file mode 100644 index 0000000..ec8ae33 Binary files /dev/null and b/src/sample/images/mary.png differ diff --git a/src/sample/images/miltank-back.png b/src/sample/images/miltank-back.png new file mode 100644 index 0000000..cb0c0b7 Binary files /dev/null and b/src/sample/images/miltank-back.png differ diff --git a/src/sample/images/miltank-front.png b/src/sample/images/miltank-front.png new file mode 100644 index 0000000..bbdbfe7 Binary files /dev/null and b/src/sample/images/miltank-front.png differ diff --git a/src/sample/images/miltank.png b/src/sample/images/miltank.png new file mode 100644 index 0000000..ba8b1fa Binary files /dev/null and b/src/sample/images/miltank.png differ diff --git a/src/sample/images/munchlax-back.png b/src/sample/images/munchlax-back.png new file mode 100644 index 0000000..1122f49 Binary files /dev/null and b/src/sample/images/munchlax-back.png differ diff --git a/src/sample/images/munchlax-front.png b/src/sample/images/munchlax-front.png new file mode 100644 index 0000000..debc240 Binary files /dev/null and b/src/sample/images/munchlax-front.png differ diff --git a/src/sample/images/munchlax.png b/src/sample/images/munchlax.png new file mode 100644 index 0000000..b0a9cc5 Binary files /dev/null and b/src/sample/images/munchlax.png differ diff --git a/src/sample/images/nest.png b/src/sample/images/nest.png new file mode 100644 index 0000000..f04f1c0 Binary files /dev/null and b/src/sample/images/nest.png differ diff --git a/src/sample/images/numel-back.png b/src/sample/images/numel-back.png new file mode 100644 index 0000000..6a32346 Binary files /dev/null and b/src/sample/images/numel-back.png differ diff --git a/src/sample/images/numel-front.png b/src/sample/images/numel-front.png new file mode 100644 index 0000000..4844d85 Binary files /dev/null and b/src/sample/images/numel-front.png differ diff --git a/src/sample/images/numel.png b/src/sample/images/numel.png new file mode 100644 index 0000000..02b5dda Binary files /dev/null and b/src/sample/images/numel.png differ diff --git a/src/sample/images/owlina.png b/src/sample/images/owlina.png new file mode 100644 index 0000000..58ab754 Binary files /dev/null and b/src/sample/images/owlina.png differ diff --git a/src/sample/images/paras-back.png b/src/sample/images/paras-back.png new file mode 100644 index 0000000..1c7b732 Binary files /dev/null and b/src/sample/images/paras-back.png differ diff --git a/src/sample/images/paras-front.png b/src/sample/images/paras-front.png new file mode 100644 index 0000000..2ee0495 Binary files /dev/null and b/src/sample/images/paras-front.png differ diff --git a/src/sample/images/paras.png b/src/sample/images/paras.png new file mode 100644 index 0000000..b1bcbb7 Binary files /dev/null and b/src/sample/images/paras.png differ diff --git a/src/sample/images/phippy.png b/src/sample/images/phippy.png new file mode 100644 index 0000000..d87fdd6 Binary files /dev/null and b/src/sample/images/phippy.png differ diff --git a/src/sample/images/phippywhistle.png b/src/sample/images/phippywhistle.png new file mode 100644 index 0000000..c81948e Binary files /dev/null and b/src/sample/images/phippywhistle.png differ diff --git a/src/sample/images/pikachu-back.png b/src/sample/images/pikachu-back.png new file mode 100644 index 0000000..ea3dd1c Binary files /dev/null and b/src/sample/images/pikachu-back.png differ diff --git a/src/sample/images/pod.png b/src/sample/images/pod.png new file mode 100644 index 0000000..7f310c1 Binary files /dev/null and b/src/sample/images/pod.png differ diff --git a/src/sample/images/podballoon.png b/src/sample/images/podballoon.png new file mode 100644 index 0000000..b292ffc Binary files /dev/null and b/src/sample/images/podballoon.png differ diff --git a/src/sample/images/podballoon2.png b/src/sample/images/podballoon2.png new file mode 100644 index 0000000..5fe273b Binary files /dev/null and b/src/sample/images/podballoon2.png differ diff --git a/src/sample/images/podballoonpoppurple.png b/src/sample/images/podballoonpoppurple.png new file mode 100644 index 0000000..c2a3a9e Binary files /dev/null and b/src/sample/images/podballoonpoppurple.png differ diff --git a/src/sample/images/podballoonpopteal.png b/src/sample/images/podballoonpopteal.png new file mode 100644 index 0000000..269700e Binary files /dev/null and b/src/sample/images/podballoonpopteal.png differ diff --git a/src/sample/images/podboxdrop.png b/src/sample/images/podboxdrop.png new file mode 100644 index 0000000..36a649c Binary files /dev/null and b/src/sample/images/podboxdrop.png differ diff --git a/src/sample/images/podboxdroppink.png b/src/sample/images/podboxdroppink.png new file mode 100644 index 0000000..f166ec2 Binary files /dev/null and b/src/sample/images/podboxdroppink.png differ diff --git a/src/sample/images/podboxdroppurple.png b/src/sample/images/podboxdroppurple.png new file mode 100644 index 0000000..d5ac841 Binary files /dev/null and b/src/sample/images/podboxdroppurple.png differ diff --git a/src/sample/images/podboxdropteal.png b/src/sample/images/podboxdropteal.png new file mode 100644 index 0000000..6018adb Binary files /dev/null and b/src/sample/images/podboxdropteal.png differ diff --git a/src/sample/images/podcarrier.png b/src/sample/images/podcarrier.png new file mode 100644 index 0000000..537aad4 Binary files /dev/null and b/src/sample/images/podcarrier.png differ diff --git a/src/sample/images/podcarrier2.png b/src/sample/images/podcarrier2.png new file mode 100644 index 0000000..f524c9b Binary files /dev/null and b/src/sample/images/podcarrier2.png differ diff --git a/src/sample/images/podonfloor.png b/src/sample/images/podonfloor.png new file mode 100644 index 0000000..86b34b9 Binary files /dev/null and b/src/sample/images/podonfloor.png differ diff --git a/src/sample/images/podonfloorpink.png b/src/sample/images/podonfloorpink.png new file mode 100644 index 0000000..889375b Binary files /dev/null and b/src/sample/images/podonfloorpink.png differ diff --git a/src/sample/images/podonfloorpurple.png b/src/sample/images/podonfloorpurple.png new file mode 100644 index 0000000..32e00ff Binary files /dev/null and b/src/sample/images/podonfloorpurple.png differ diff --git a/src/sample/images/podonfloorteal.png b/src/sample/images/podonfloorteal.png new file mode 100644 index 0000000..8c74778 Binary files /dev/null and b/src/sample/images/podonfloorteal.png differ diff --git a/src/sample/images/podsitter.png b/src/sample/images/podsitter.png new file mode 100644 index 0000000..5f4f96e Binary files /dev/null and b/src/sample/images/podsitter.png differ diff --git a/src/sample/images/podsitter2.png b/src/sample/images/podsitter2.png new file mode 100644 index 0000000..c0d7080 Binary files /dev/null and b/src/sample/images/podsitter2.png differ diff --git a/src/sample/images/podv2.png b/src/sample/images/podv2.png new file mode 100644 index 0000000..f278ab0 Binary files /dev/null and b/src/sample/images/podv2.png differ diff --git a/src/sample/images/podv3.png b/src/sample/images/podv3.png new file mode 100644 index 0000000..13d6728 Binary files /dev/null and b/src/sample/images/podv3.png differ diff --git a/src/sample/images/pupitar-back.png b/src/sample/images/pupitar-back.png new file mode 100644 index 0000000..4d88fb1 Binary files /dev/null and b/src/sample/images/pupitar-back.png differ diff --git a/src/sample/images/pupitar-front.png b/src/sample/images/pupitar-front.png new file mode 100644 index 0000000..89f4a12 Binary files /dev/null and b/src/sample/images/pupitar-front.png differ diff --git a/src/sample/images/pupitar.png b/src/sample/images/pupitar.png new file mode 100644 index 0000000..abf266c Binary files /dev/null and b/src/sample/images/pupitar.png differ diff --git a/src/sample/images/purple-girl.png b/src/sample/images/purple-girl.png new file mode 100644 index 0000000..c9c4cac Binary files /dev/null and b/src/sample/images/purple-girl.png differ diff --git a/src/sample/images/rainbow.png b/src/sample/images/rainbow.png new file mode 100644 index 0000000..5782fe3 Binary files /dev/null and b/src/sample/images/rainbow.png differ diff --git a/src/sample/images/rattata-back.png b/src/sample/images/rattata-back.png new file mode 100644 index 0000000..38677b0 Binary files /dev/null and b/src/sample/images/rattata-back.png differ diff --git a/src/sample/images/rattata-front.png b/src/sample/images/rattata-front.png new file mode 100644 index 0000000..5ae705c Binary files /dev/null and b/src/sample/images/rattata-front.png differ diff --git a/src/sample/images/rattata.png b/src/sample/images/rattata.png new file mode 100644 index 0000000..421e517 Binary files /dev/null and b/src/sample/images/rattata.png differ diff --git a/src/sample/images/red-girl-zombie.png b/src/sample/images/red-girl-zombie.png new file mode 100644 index 0000000..d768711 Binary files /dev/null and b/src/sample/images/red-girl-zombie.png differ diff --git a/src/sample/images/red-girl.png b/src/sample/images/red-girl.png new file mode 100644 index 0000000..cb5b709 Binary files /dev/null and b/src/sample/images/red-girl.png differ diff --git a/src/sample/images/red_eyed_spirit___rpg_sprites_by_lagoon_sadnes-d5v0nri-tingstered.xcf b/src/sample/images/red_eyed_spirit___rpg_sprites_by_lagoon_sadnes-d5v0nri-tingstered.xcf new file mode 100644 index 0000000..6b7677b Binary files /dev/null and b/src/sample/images/red_eyed_spirit___rpg_sprites_by_lagoon_sadnes-d5v0nri-tingstered.xcf differ diff --git a/src/sample/images/red_eyed_spirit___rpg_sprites_by_lagoon_sadnes-d5v0nri.png b/src/sample/images/red_eyed_spirit___rpg_sprites_by_lagoon_sadnes-d5v0nri.png new file mode 100644 index 0000000..a3fd996 Binary files /dev/null and b/src/sample/images/red_eyed_spirit___rpg_sprites_by_lagoon_sadnes-d5v0nri.png differ diff --git a/src/sample/images/red_girl_zombie_tingstered.xcf b/src/sample/images/red_girl_zombie_tingstered.xcf new file mode 100644 index 0000000..97be2e4 Binary files /dev/null and b/src/sample/images/red_girl_zombie_tingstered.xcf differ diff --git a/src/sample/images/rolling-hills.jpg b/src/sample/images/rolling-hills.jpg new file mode 100644 index 0000000..d71a66d Binary files /dev/null and b/src/sample/images/rolling-hills.jpg differ diff --git a/src/sample/images/sun.png b/src/sample/images/sun.png new file mode 100644 index 0000000..b136902 Binary files /dev/null and b/src/sample/images/sun.png differ diff --git a/src/sample/images/tiago.png b/src/sample/images/tiago.png new file mode 100644 index 0000000..6d7afbc Binary files /dev/null and b/src/sample/images/tiago.png differ diff --git a/src/sample/images/tombstone.png b/src/sample/images/tombstone.png new file mode 100644 index 0000000..e9bbb81 Binary files /dev/null and b/src/sample/images/tombstone.png differ diff --git a/src/sample/images/utau_rpg_vx_sprite_sheet_1_by_kurotard-d5cskob.png b/src/sample/images/utau_rpg_vx_sprite_sheet_1_by_kurotard-d5cskob.png new file mode 100644 index 0000000..cbdc003 Binary files /dev/null and b/src/sample/images/utau_rpg_vx_sprite_sheet_1_by_kurotard-d5cskob.png differ diff --git a/src/sample/images/yellow-boy.png b/src/sample/images/yellow-boy.png new file mode 100644 index 0000000..b61d927 Binary files /dev/null and b/src/sample/images/yellow-boy.png differ diff --git a/src/sample/images/zee.png b/src/sample/images/zee.png new file mode 100644 index 0000000..ee48e95 Binary files /dev/null and b/src/sample/images/zee.png differ