diff --git a/.gitignore b/.gitignore new file mode 100644 index 00000000..496ee2ca --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..13566b81 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..639900d1 --- /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 00000000..a326517b --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/sq_2024.iml b/.idea/sq_2024.iml new file mode 100644 index 00000000..d6ebd480 --- /dev/null +++ b/.idea/sq_2024.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/boulder-dash/.classpath b/boulder-dash/.classpath new file mode 100644 index 00000000..3270cfe9 --- /dev/null +++ b/boulder-dash/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/boulder-dash/.gitignore b/boulder-dash/.gitignore new file mode 100644 index 00000000..f6df409a --- /dev/null +++ b/boulder-dash/.gitignore @@ -0,0 +1,2 @@ +/bin/ +/out/ diff --git a/boulder-dash/.project b/boulder-dash/.project new file mode 100644 index 00000000..22e3e111 --- /dev/null +++ b/boulder-dash/.project @@ -0,0 +1,17 @@ + + + Boulder Dash + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/boulder-dash/.settings/org.eclipse.jdt.core.prefs b/boulder-dash/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000..d17b6724 --- /dev/null +++ b/boulder-dash/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,12 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/boulder-dash/.settings/org.eclipse.ltk.core.refactoring.prefs b/boulder-dash/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 00000000..b196c64a --- /dev/null +++ b/boulder-dash/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/boulder-dash/Boulder Dash.iml b/boulder-dash/Boulder Dash.iml new file mode 100644 index 00000000..0f2cfac6 --- /dev/null +++ b/boulder-dash/Boulder Dash.iml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/boulder-dash/LICENSE b/boulder-dash/LICENSE new file mode 100644 index 00000000..c64ed457 --- /dev/null +++ b/boulder-dash/LICENSE @@ -0,0 +1,21 @@ +The MIT License + +Copyright (c) 2015 Valerian Saliou, Colin Leverger + +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/boulder-dash/META-INF/MANIFEST.MF b/boulder-dash/META-INF/MANIFEST.MF new file mode 100644 index 00000000..03d72ab0 --- /dev/null +++ b/boulder-dash/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: fr.enssat.BoulderDash.Game + diff --git a/boulder-dash/README.md b/boulder-dash/README.md new file mode 100644 index 00000000..5fec6ff3 --- /dev/null +++ b/boulder-dash/README.md @@ -0,0 +1,6 @@ +Boulder Dash +===================== + +Boulder Dash game, done in Java. + +Use of the MVC pattern. diff --git a/boulder-dash/UML.ucls b/boulder-dash/UML.ucls new file mode 100644 index 00000000..bc6de0e1 --- /dev/null +++ b/boulder-dash/UML.ucls @@ -0,0 +1,949 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/boulder-dash/doc/allclasses-frame.html b/boulder-dash/doc/allclasses-frame.html new file mode 100644 index 00000000..a48bd3c0 --- /dev/null +++ b/boulder-dash/doc/allclasses-frame.html @@ -0,0 +1,61 @@ + + + + + +All Classes + + + + +

All Classes

+
+ +
+ + diff --git a/boulder-dash/doc/allclasses-noframe.html b/boulder-dash/doc/allclasses-noframe.html new file mode 100644 index 00000000..d4fa60a5 --- /dev/null +++ b/boulder-dash/doc/allclasses-noframe.html @@ -0,0 +1,61 @@ + + + + + +All Classes + + + + +

All Classes

+
+ +
+ + diff --git a/boulder-dash/doc/constant-values.html b/boulder-dash/doc/constant-values.html new file mode 100644 index 00000000..48a37fcd --- /dev/null +++ b/boulder-dash/doc/constant-values.html @@ -0,0 +1,115 @@ + + + + + +Constant Field Values + + + + + + + +
+ + + + + +
+ + +
+

Constant Field Values

+

Contents

+
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/deprecated-list.html b/boulder-dash/doc/deprecated-list.html new file mode 100644 index 00000000..696bc9a4 --- /dev/null +++ b/boulder-dash/doc/deprecated-list.html @@ -0,0 +1,115 @@ + + + + + +Deprecated List + + + + + + + +
+ + + + + +
+ + +
+

Deprecated API

+

Contents

+
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/Game.html b/boulder-dash/doc/fr/enssat/BoulderDash/Game.html new file mode 100644 index 00000000..992197df --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/Game.html @@ -0,0 +1,267 @@ + + + + + +Game + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash
+

Class Game

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/bridges/SoundJLayerBridge.html b/boulder-dash/doc/fr/enssat/BoulderDash/bridges/SoundJLayerBridge.html new file mode 100644 index 00000000..4de67303 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/bridges/SoundJLayerBridge.html @@ -0,0 +1,323 @@ + + + + + +SoundJLayerBridge + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.bridges
+

Class SoundJLayerBridge

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/bridges/class-use/SoundJLayerBridge.html b/boulder-dash/doc/fr/enssat/BoulderDash/bridges/class-use/SoundJLayerBridge.html new file mode 100644 index 00000000..09845b99 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/bridges/class-use/SoundJLayerBridge.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.bridges.SoundJLayerBridge + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.bridges.SoundJLayerBridge

+
+
No usage of fr.enssat.BoulderDash.bridges.SoundJLayerBridge
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/bridges/package-frame.html b/boulder-dash/doc/fr/enssat/BoulderDash/bridges/package-frame.html new file mode 100644 index 00000000..657bd8f7 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/bridges/package-frame.html @@ -0,0 +1,19 @@ + + + + + +fr.enssat.BoulderDash.bridges + + + + +

fr.enssat.BoulderDash.bridges

+
+

Classes

+ +
+ + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/bridges/package-summary.html b/boulder-dash/doc/fr/enssat/BoulderDash/bridges/package-summary.html new file mode 100644 index 00000000..7a24030f --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/bridges/package-summary.html @@ -0,0 +1,137 @@ + + + + + +fr.enssat.BoulderDash.bridges + + + + + + + +
+ + + + + +
+ + +
+

Package fr.enssat.BoulderDash.bridges

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/bridges/package-tree.html b/boulder-dash/doc/fr/enssat/BoulderDash/bridges/package-tree.html new file mode 100644 index 00000000..a9fcc926 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/bridges/package-tree.html @@ -0,0 +1,132 @@ + + + + + +fr.enssat.BoulderDash.bridges Class Hierarchy + + + + + + + +
+ + + + + +
+ + +
+

Hierarchy For Package fr.enssat.BoulderDash.bridges

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/bridges/package-use.html b/boulder-dash/doc/fr/enssat/BoulderDash/bridges/package-use.html new file mode 100644 index 00000000..c9acb74c --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/bridges/package-use.html @@ -0,0 +1,115 @@ + + + + + +Uses of Package fr.enssat.BoulderDash.bridges + + + + + + + +
+ + + + + +
+ + +
+

Uses of Package
fr.enssat.BoulderDash.bridges

+
+
No usage of fr.enssat.BoulderDash.bridges
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/class-use/Game.html b/boulder-dash/doc/fr/enssat/BoulderDash/class-use/Game.html new file mode 100644 index 00000000..0a21c5ec --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/class-use/Game.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.Game + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.Game

+
+
No usage of fr.enssat.BoulderDash.Game
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/BoulderAndDiamondController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/BoulderAndDiamondController.html new file mode 100644 index 00000000..6864ff54 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/BoulderAndDiamondController.html @@ -0,0 +1,283 @@ + + + + + +BoulderAndDiamondController + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.controllers
+

Class BoulderAndDiamondController

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/GameController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/GameController.html new file mode 100644 index 00000000..a60d60c6 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/GameController.html @@ -0,0 +1,335 @@ + + + + + +GameController + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.controllers
+

Class GameController

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/GameKeyController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/GameKeyController.html new file mode 100644 index 00000000..38667828 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/GameKeyController.html @@ -0,0 +1,321 @@ + + + + + +GameKeyController + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.controllers
+

Class GameKeyController

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/LevelEditorController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/LevelEditorController.html new file mode 100644 index 00000000..59b7d689 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/LevelEditorController.html @@ -0,0 +1,332 @@ + + + + + +LevelEditorController + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.controllers
+

Class LevelEditorController

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.html new file mode 100644 index 00000000..560ab089 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.html @@ -0,0 +1,321 @@ + + + + + +LevelEditorKeyController + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.controllers
+

Class LevelEditorKeyController

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/NavigationBetweenViewController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/NavigationBetweenViewController.html new file mode 100644 index 00000000..01e48ceb --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/NavigationBetweenViewController.html @@ -0,0 +1,359 @@ + + + + + +NavigationBetweenViewController + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.controllers
+

Class NavigationBetweenViewController

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/RockfordUpdateController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/RockfordUpdateController.html new file mode 100644 index 00000000..6484df89 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/RockfordUpdateController.html @@ -0,0 +1,300 @@ + + + + + +RockfordUpdateController + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.controllers
+

Class RockfordUpdateController

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/BoulderAndDiamondController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/BoulderAndDiamondController.html new file mode 100644 index 00000000..1f5b6394 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/BoulderAndDiamondController.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.controllers.BoulderAndDiamondController + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.controllers.BoulderAndDiamondController

+
+
No usage of fr.enssat.BoulderDash.controllers.BoulderAndDiamondController
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/GameController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/GameController.html new file mode 100644 index 00000000..55e6bca9 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/GameController.html @@ -0,0 +1,162 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.controllers.GameController + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.controllers.GameController

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/GameKeyController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/GameKeyController.html new file mode 100644 index 00000000..dc43de05 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/GameKeyController.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.controllers.GameKeyController + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.controllers.GameKeyController

+
+
No usage of fr.enssat.BoulderDash.controllers.GameKeyController
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/LevelEditorController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/LevelEditorController.html new file mode 100644 index 00000000..950407c2 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/LevelEditorController.html @@ -0,0 +1,157 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.controllers.LevelEditorController + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.controllers.LevelEditorController

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/LevelEditorKeyController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/LevelEditorKeyController.html new file mode 100644 index 00000000..86cf0321 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/LevelEditorKeyController.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.controllers.LevelEditorKeyController + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.controllers.LevelEditorKeyController

+
+
No usage of fr.enssat.BoulderDash.controllers.LevelEditorKeyController
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/NavigationBetweenViewController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/NavigationBetweenViewController.html new file mode 100644 index 00000000..5c43faca --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/NavigationBetweenViewController.html @@ -0,0 +1,192 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.controllers.NavigationBetweenViewController + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.controllers.NavigationBetweenViewController

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/RockfordUpdateController.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/RockfordUpdateController.html new file mode 100644 index 00000000..976c16a3 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/class-use/RockfordUpdateController.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.controllers.RockfordUpdateController + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.controllers.RockfordUpdateController

+
+
No usage of fr.enssat.BoulderDash.controllers.RockfordUpdateController
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/package-frame.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/package-frame.html new file mode 100644 index 00000000..c6a44b83 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/package-frame.html @@ -0,0 +1,25 @@ + + + + + +fr.enssat.BoulderDash.controllers + + + + +

fr.enssat.BoulderDash.controllers

+
+

Classes

+ +
+ + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/package-summary.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/package-summary.html new file mode 100644 index 00000000..e8028774 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/package-summary.html @@ -0,0 +1,185 @@ + + + + + +fr.enssat.BoulderDash.controllers + + + + + + + +
+ + + + + +
+ + +
+

Package fr.enssat.BoulderDash.controllers

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/package-tree.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/package-tree.html new file mode 100644 index 00000000..8b2aec7c --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/package-tree.html @@ -0,0 +1,134 @@ + + + + + +fr.enssat.BoulderDash.controllers Class Hierarchy + + + + + + + +
+ + + + + +
+ + +
+

Hierarchy For Package fr.enssat.BoulderDash.controllers

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/controllers/package-use.html b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/package-use.html new file mode 100644 index 00000000..80f17127 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/controllers/package-use.html @@ -0,0 +1,185 @@ + + + + + +Uses of Package fr.enssat.BoulderDash.controllers + + + + + + + +
+ + + + + +
+ + +
+

Uses of Package
fr.enssat.BoulderDash.controllers

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/LevelConstraintNotRespectedException.html b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/LevelConstraintNotRespectedException.html new file mode 100644 index 00000000..83c3cffc --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/LevelConstraintNotRespectedException.html @@ -0,0 +1,262 @@ + + + + + +LevelConstraintNotRespectedException + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.exceptions
+

Class LevelConstraintNotRespectedException

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/ModelNotReadyException.html b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/ModelNotReadyException.html new file mode 100644 index 00000000..6726bfcf --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/ModelNotReadyException.html @@ -0,0 +1,262 @@ + + + + + +ModelNotReadyException + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.exceptions
+

Class ModelNotReadyException

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/UnknownModelException.html b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/UnknownModelException.html new file mode 100644 index 00000000..a5339596 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/UnknownModelException.html @@ -0,0 +1,262 @@ + + + + + +UnknownModelException + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.exceptions
+

Class UnknownModelException

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/class-use/LevelConstraintNotRespectedException.html b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/class-use/LevelConstraintNotRespectedException.html new file mode 100644 index 00000000..0f56ebba --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/class-use/LevelConstraintNotRespectedException.html @@ -0,0 +1,157 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.exceptions.LevelConstraintNotRespectedException + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.exceptions.LevelConstraintNotRespectedException

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/class-use/ModelNotReadyException.html b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/class-use/ModelNotReadyException.html new file mode 100644 index 00000000..01fb547f --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/class-use/ModelNotReadyException.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.exceptions.ModelNotReadyException + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.exceptions.ModelNotReadyException

+
+
No usage of fr.enssat.BoulderDash.exceptions.ModelNotReadyException
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/class-use/UnknownModelException.html b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/class-use/UnknownModelException.html new file mode 100644 index 00000000..b241575f --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/class-use/UnknownModelException.html @@ -0,0 +1,158 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.exceptions.UnknownModelException + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.exceptions.UnknownModelException

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/package-frame.html b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/package-frame.html new file mode 100644 index 00000000..e5a9bd8e --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/package-frame.html @@ -0,0 +1,21 @@ + + + + + +fr.enssat.BoulderDash.exceptions + + + + +

fr.enssat.BoulderDash.exceptions

+
+

Exceptions

+ +
+ + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/package-summary.html b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/package-summary.html new file mode 100644 index 00000000..e691b0b2 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/package-summary.html @@ -0,0 +1,153 @@ + + + + + +fr.enssat.BoulderDash.exceptions + + + + + + + +
+ + + + + +
+ + +
+

Package fr.enssat.BoulderDash.exceptions

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/package-tree.html b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/package-tree.html new file mode 100644 index 00000000..726abbd3 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/package-tree.html @@ -0,0 +1,138 @@ + + + + + +fr.enssat.BoulderDash.exceptions Class Hierarchy + + + + + + + +
+ + + + + +
+ + +
+

Hierarchy For Package fr.enssat.BoulderDash.exceptions

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/package-use.html b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/package-use.html new file mode 100644 index 00000000..610bf781 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/exceptions/package-use.html @@ -0,0 +1,175 @@ + + + + + +Uses of Package fr.enssat.BoulderDash.exceptions + + + + + + + +
+ + + + + +
+ + +
+

Uses of Package
fr.enssat.BoulderDash.exceptions

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/AudioLoadHelper.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/AudioLoadHelper.html new file mode 100644 index 00000000..b1419747 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/AudioLoadHelper.html @@ -0,0 +1,303 @@ + + + + + +AudioLoadHelper + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.helpers
+

Class AudioLoadHelper

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/LevelLoadHelper.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/LevelLoadHelper.html new file mode 100644 index 00000000..f80e8ab9 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/LevelLoadHelper.html @@ -0,0 +1,512 @@ + + + + + +LevelLoadHelper + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.helpers
+

Class LevelLoadHelper

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/LevelRemoveHelper.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/LevelRemoveHelper.html new file mode 100644 index 00000000..7a7fcd7b --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/LevelRemoveHelper.html @@ -0,0 +1,240 @@ + + + + + +LevelRemoveHelper + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.helpers
+

Class LevelRemoveHelper

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/LevelSaveHelper.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/LevelSaveHelper.html new file mode 100644 index 00000000..c86e1541 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/LevelSaveHelper.html @@ -0,0 +1,307 @@ + + + + + +LevelSaveHelper + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.helpers
+

Class LevelSaveHelper

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/LevelSelectorHelper.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/LevelSelectorHelper.html new file mode 100644 index 00000000..95be9ad0 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/LevelSelectorHelper.html @@ -0,0 +1,284 @@ + + + + + +LevelSelectorHelper + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.helpers
+

Class LevelSelectorHelper

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/ModelConvertHelper.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/ModelConvertHelper.html new file mode 100644 index 00000000..927ef4be --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/ModelConvertHelper.html @@ -0,0 +1,293 @@ + + + + + +ModelConvertHelper + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.helpers
+

Class ModelConvertHelper

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/AudioLoadHelper.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/AudioLoadHelper.html new file mode 100644 index 00000000..ad0947c3 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/AudioLoadHelper.html @@ -0,0 +1,225 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.helpers.AudioLoadHelper + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.helpers.AudioLoadHelper

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/LevelLoadHelper.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/LevelLoadHelper.html new file mode 100644 index 00000000..36ec7dd6 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/LevelLoadHelper.html @@ -0,0 +1,157 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.helpers.LevelLoadHelper + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.helpers.LevelLoadHelper

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/LevelRemoveHelper.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/LevelRemoveHelper.html new file mode 100644 index 00000000..2f15bc24 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/LevelRemoveHelper.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.helpers.LevelRemoveHelper + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.helpers.LevelRemoveHelper

+
+
No usage of fr.enssat.BoulderDash.helpers.LevelRemoveHelper
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/LevelSaveHelper.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/LevelSaveHelper.html new file mode 100644 index 00000000..c265611c --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/LevelSaveHelper.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.helpers.LevelSaveHelper + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.helpers.LevelSaveHelper

+
+
No usage of fr.enssat.BoulderDash.helpers.LevelSaveHelper
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/LevelSelectorHelper.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/LevelSelectorHelper.html new file mode 100644 index 00000000..20df0c00 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/LevelSelectorHelper.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.helpers.LevelSelectorHelper + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.helpers.LevelSelectorHelper

+
+
No usage of fr.enssat.BoulderDash.helpers.LevelSelectorHelper
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/ModelConvertHelper.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/ModelConvertHelper.html new file mode 100644 index 00000000..de3e261c --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/class-use/ModelConvertHelper.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.helpers.ModelConvertHelper + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.helpers.ModelConvertHelper

+
+
No usage of fr.enssat.BoulderDash.helpers.ModelConvertHelper
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/package-frame.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/package-frame.html new file mode 100644 index 00000000..95ba3e81 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/package-frame.html @@ -0,0 +1,24 @@ + + + + + +fr.enssat.BoulderDash.helpers + + + + +

fr.enssat.BoulderDash.helpers

+
+

Classes

+ +
+ + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/package-summary.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/package-summary.html new file mode 100644 index 00000000..e46b27cf --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/package-summary.html @@ -0,0 +1,182 @@ + + + + + +fr.enssat.BoulderDash.helpers + + + + + + + +
+ + + + + +
+ + +
+

Package fr.enssat.BoulderDash.helpers

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/package-tree.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/package-tree.html new file mode 100644 index 00000000..a3f2e17f --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/package-tree.html @@ -0,0 +1,133 @@ + + + + + +fr.enssat.BoulderDash.helpers Class Hierarchy + + + + + + + +
+ + + + + +
+ + +
+

Hierarchy For Package fr.enssat.BoulderDash.helpers

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/helpers/package-use.html b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/package-use.html new file mode 100644 index 00000000..a38822fa --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/helpers/package-use.html @@ -0,0 +1,185 @@ + + + + + +Uses of Package fr.enssat.BoulderDash.helpers + + + + + + + +
+ + + + + +
+ + +
+

Uses of Package
fr.enssat.BoulderDash.helpers

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/BoulderModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/BoulderModel.html new file mode 100644 index 00000000..41e9ac51 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/BoulderModel.html @@ -0,0 +1,262 @@ + + + + + +BoulderModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class BoulderModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/BrickWallModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/BrickWallModel.html new file mode 100644 index 00000000..2649f6cb --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/BrickWallModel.html @@ -0,0 +1,250 @@ + + + + + +BrickWallModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class BrickWallModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/CursorModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/CursorModel.html new file mode 100644 index 00000000..bb884c47 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/CursorModel.html @@ -0,0 +1,250 @@ + + + + + +CursorModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class CursorModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/DiamondModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/DiamondModel.html new file mode 100644 index 00000000..1aeeaaf0 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/DiamondModel.html @@ -0,0 +1,285 @@ + + + + + +DiamondModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class DiamondModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/DirtModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/DirtModel.html new file mode 100644 index 00000000..309a2ef6 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/DirtModel.html @@ -0,0 +1,250 @@ + + + + + +DirtModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class DirtModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/DisplayableElementModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/DisplayableElementModel.html new file mode 100644 index 00000000..12575dae --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/DisplayableElementModel.html @@ -0,0 +1,699 @@ + + + + + +DisplayableElementModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class DisplayableElementModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/DoorModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/DoorModel.html new file mode 100644 index 00000000..facee079 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/DoorModel.html @@ -0,0 +1,250 @@ + + + + + +DoorModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class DoorModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/EmptyModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/EmptyModel.html new file mode 100644 index 00000000..de454226 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/EmptyModel.html @@ -0,0 +1,250 @@ + + + + + +EmptyModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class EmptyModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/ExpandingWallModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/ExpandingWallModel.html new file mode 100644 index 00000000..03679ca1 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/ExpandingWallModel.html @@ -0,0 +1,250 @@ + + + + + +ExpandingWallModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class ExpandingWallModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/GameInformationModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/GameInformationModel.html new file mode 100644 index 00000000..a61d0251 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/GameInformationModel.html @@ -0,0 +1,411 @@ + + + + + +GameInformationModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class GameInformationModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/LevelModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/LevelModel.html new file mode 100644 index 00000000..cc8afd2b --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/LevelModel.html @@ -0,0 +1,1162 @@ + + + + + +LevelModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class LevelModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/MagicWallModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/MagicWallModel.html new file mode 100644 index 00000000..33f6874d --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/MagicWallModel.html @@ -0,0 +1,285 @@ + + + + + +MagicWallModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class MagicWallModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/RockfordModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/RockfordModel.html new file mode 100644 index 00000000..c627944c --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/RockfordModel.html @@ -0,0 +1,550 @@ + + + + + +RockfordModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class RockfordModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/SteelWallModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/SteelWallModel.html new file mode 100644 index 00000000..62e5ca9a --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/SteelWallModel.html @@ -0,0 +1,250 @@ + + + + + +SteelWallModel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.models
+

Class SteelWallModel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/BoulderModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/BoulderModel.html new file mode 100644 index 00000000..499af4a7 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/BoulderModel.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.BoulderModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.BoulderModel

+
+
No usage of fr.enssat.BoulderDash.models.BoulderModel
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/BrickWallModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/BrickWallModel.html new file mode 100644 index 00000000..11f8e528 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/BrickWallModel.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.BrickWallModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.BrickWallModel

+
+
No usage of fr.enssat.BoulderDash.models.BrickWallModel
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/CursorModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/CursorModel.html new file mode 100644 index 00000000..126e749f --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/CursorModel.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.CursorModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.CursorModel

+
+
No usage of fr.enssat.BoulderDash.models.CursorModel
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/DiamondModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/DiamondModel.html new file mode 100644 index 00000000..030d632b --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/DiamondModel.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.DiamondModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.DiamondModel

+
+
No usage of fr.enssat.BoulderDash.models.DiamondModel
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/DirtModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/DirtModel.html new file mode 100644 index 00000000..08f45f1f --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/DirtModel.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.DirtModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.DirtModel

+
+
No usage of fr.enssat.BoulderDash.models.DirtModel
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/DisplayableElementModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/DisplayableElementModel.html new file mode 100644 index 00000000..ec897919 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/DisplayableElementModel.html @@ -0,0 +1,332 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.DisplayableElementModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.DisplayableElementModel

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/DoorModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/DoorModel.html new file mode 100644 index 00000000..735b8c3e --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/DoorModel.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.DoorModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.DoorModel

+
+
No usage of fr.enssat.BoulderDash.models.DoorModel
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/EmptyModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/EmptyModel.html new file mode 100644 index 00000000..b5b20dc6 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/EmptyModel.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.EmptyModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.EmptyModel

+
+
No usage of fr.enssat.BoulderDash.models.EmptyModel
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/ExpandingWallModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/ExpandingWallModel.html new file mode 100644 index 00000000..e81be222 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/ExpandingWallModel.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.ExpandingWallModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.ExpandingWallModel

+
+
No usage of fr.enssat.BoulderDash.models.ExpandingWallModel
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/GameInformationModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/GameInformationModel.html new file mode 100644 index 00000000..94a09990 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/GameInformationModel.html @@ -0,0 +1,157 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.GameInformationModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.GameInformationModel

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/LevelModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/LevelModel.html new file mode 100644 index 00000000..daaef2c6 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/LevelModel.html @@ -0,0 +1,253 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.LevelModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.LevelModel

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/MagicWallModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/MagicWallModel.html new file mode 100644 index 00000000..3e9224d6 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/MagicWallModel.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.MagicWallModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.MagicWallModel

+
+
No usage of fr.enssat.BoulderDash.models.MagicWallModel
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/RockfordModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/RockfordModel.html new file mode 100644 index 00000000..8ceae731 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/RockfordModel.html @@ -0,0 +1,196 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.RockfordModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.RockfordModel

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/SteelWallModel.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/SteelWallModel.html new file mode 100644 index 00000000..117d60cb --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/class-use/SteelWallModel.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.models.SteelWallModel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.models.SteelWallModel

+
+
No usage of fr.enssat.BoulderDash.models.SteelWallModel
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/package-frame.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/package-frame.html new file mode 100644 index 00000000..a845a7e2 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/package-frame.html @@ -0,0 +1,32 @@ + + + + + +fr.enssat.BoulderDash.models + + + + +

fr.enssat.BoulderDash.models

+
+

Classes

+ +
+ + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/package-summary.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/package-summary.html new file mode 100644 index 00000000..084d49ee --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/package-summary.html @@ -0,0 +1,240 @@ + + + + + +fr.enssat.BoulderDash.models + + + + + + + +
+ + + + + +
+ + +
+

Package fr.enssat.BoulderDash.models

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/package-tree.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/package-tree.html new file mode 100644 index 00000000..a7e46cc8 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/package-tree.html @@ -0,0 +1,148 @@ + + + + + +fr.enssat.BoulderDash.models Class Hierarchy + + + + + + + +
+ + + + + +
+ + +
+

Hierarchy For Package fr.enssat.BoulderDash.models

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/models/package-use.html b/boulder-dash/doc/fr/enssat/BoulderDash/models/package-use.html new file mode 100644 index 00000000..4ed7c92c --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/models/package-use.html @@ -0,0 +1,241 @@ + + + + + +Uses of Package fr.enssat.BoulderDash.models + + + + + + + +
+ + + + + +
+ + +
+

Uses of Package
fr.enssat.BoulderDash.models

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/package-frame.html b/boulder-dash/doc/fr/enssat/BoulderDash/package-frame.html new file mode 100644 index 00000000..08018503 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/package-frame.html @@ -0,0 +1,19 @@ + + + + + +fr.enssat.BoulderDash + + + + +

fr.enssat.BoulderDash

+
+

Classes

+ +
+ + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/package-summary.html b/boulder-dash/doc/fr/enssat/BoulderDash/package-summary.html new file mode 100644 index 00000000..5d688f91 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/package-summary.html @@ -0,0 +1,137 @@ + + + + + +fr.enssat.BoulderDash + + + + + + + +
+ + + + + +
+ + +
+

Package fr.enssat.BoulderDash

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/package-tree.html b/boulder-dash/doc/fr/enssat/BoulderDash/package-tree.html new file mode 100644 index 00000000..f328b1a3 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/package-tree.html @@ -0,0 +1,128 @@ + + + + + +fr.enssat.BoulderDash Class Hierarchy + + + + + + + +
+ + + + + +
+ + +
+

Hierarchy For Package fr.enssat.BoulderDash

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/package-use.html b/boulder-dash/doc/fr/enssat/BoulderDash/package-use.html new file mode 100644 index 00000000..ec8da8e3 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/package-use.html @@ -0,0 +1,115 @@ + + + + + +Uses of Package fr.enssat.BoulderDash + + + + + + + +
+ + + + + +
+ + +
+

Uses of Package
fr.enssat.BoulderDash

+
+
No usage of fr.enssat.BoulderDash
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/AssetsLevelEditorComponent.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/AssetsLevelEditorComponent.html new file mode 100644 index 00000000..c7ce9cac --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/AssetsLevelEditorComponent.html @@ -0,0 +1,379 @@ + + + + + +AssetsLevelEditorComponent + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.views
+

Class AssetsLevelEditorComponent

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/GameGroundView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/GameGroundView.html new file mode 100644 index 00000000..bff8d4b5 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/GameGroundView.html @@ -0,0 +1,357 @@ + + + + + +GameGroundView + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.views
+

Class GameGroundView

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/GameView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/GameView.html new file mode 100644 index 00000000..4fc8b3c6 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/GameView.html @@ -0,0 +1,453 @@ + + + + + +GameView + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.views
+

Class GameView

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/GroundView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/GroundView.html new file mode 100644 index 00000000..d95019f2 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/GroundView.html @@ -0,0 +1,430 @@ + + + + + +GroundView + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.views
+

Class GroundView

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/HelpView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/HelpView.html new file mode 100644 index 00000000..7dadd1b7 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/HelpView.html @@ -0,0 +1,368 @@ + + + + + +HelpView + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.views
+

Class HelpView

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/InformationPanel.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/InformationPanel.html new file mode 100644 index 00000000..d5ac1acf --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/InformationPanel.html @@ -0,0 +1,380 @@ + + + + + +InformationPanel + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.views
+

Class InformationPanel

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/LevelEditorGroundView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/LevelEditorGroundView.html new file mode 100644 index 00000000..1bb183dc --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/LevelEditorGroundView.html @@ -0,0 +1,357 @@ + + + + + +LevelEditorGroundView + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.views
+

Class LevelEditorGroundView

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/LevelEditorView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/LevelEditorView.html new file mode 100644 index 00000000..c6559fdb --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/LevelEditorView.html @@ -0,0 +1,556 @@ + + + + + +LevelEditorView + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.views
+

Class LevelEditorView

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/MenuImage.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/MenuImage.html new file mode 100644 index 00000000..94d115d5 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/MenuImage.html @@ -0,0 +1,342 @@ + + + + + +MenuImage + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.views
+

Class MenuImage

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/MenuLevelSelector.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/MenuLevelSelector.html new file mode 100644 index 00000000..46b9f7d4 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/MenuLevelSelector.html @@ -0,0 +1,451 @@ + + + + + +MenuLevelSelector + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.views
+

Class MenuLevelSelector

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/MenuView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/MenuView.html new file mode 100644 index 00000000..ae7e5004 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/MenuView.html @@ -0,0 +1,427 @@ + + + + + +MenuView + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.views
+

Class MenuView

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/WinLoseView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/WinLoseView.html new file mode 100644 index 00000000..40bffb75 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/WinLoseView.html @@ -0,0 +1,368 @@ + + + + + +WinLoseView + + + + + + + +
+ + + + + +
+ + + +
+
fr.enssat.BoulderDash.views
+

Class WinLoseView

+
+
+ +
+ +
+
+ +
+
+ +
+
+ + +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/AssetsLevelEditorComponent.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/AssetsLevelEditorComponent.html new file mode 100644 index 00000000..6651f013 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/AssetsLevelEditorComponent.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.views.AssetsLevelEditorComponent + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.views.AssetsLevelEditorComponent

+
+
No usage of fr.enssat.BoulderDash.views.AssetsLevelEditorComponent
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/GameGroundView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/GameGroundView.html new file mode 100644 index 00000000..ac5d89b5 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/GameGroundView.html @@ -0,0 +1,157 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.views.GameGroundView + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.views.GameGroundView

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/GameView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/GameView.html new file mode 100644 index 00000000..07354bb6 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/GameView.html @@ -0,0 +1,172 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.views.GameView + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.views.GameView

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/GroundView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/GroundView.html new file mode 100644 index 00000000..67becffe --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/GroundView.html @@ -0,0 +1,167 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.views.GroundView + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.views.GroundView

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/HelpView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/HelpView.html new file mode 100644 index 00000000..f37d10a9 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/HelpView.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.views.HelpView + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.views.HelpView

+
+
No usage of fr.enssat.BoulderDash.views.HelpView
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/InformationPanel.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/InformationPanel.html new file mode 100644 index 00000000..af7611db --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/InformationPanel.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.views.InformationPanel + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.views.InformationPanel

+
+
No usage of fr.enssat.BoulderDash.views.InformationPanel
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/LevelEditorGroundView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/LevelEditorGroundView.html new file mode 100644 index 00000000..48fc5b7d --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/LevelEditorGroundView.html @@ -0,0 +1,157 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.views.LevelEditorGroundView + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.views.LevelEditorGroundView

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/LevelEditorView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/LevelEditorView.html new file mode 100644 index 00000000..e20cab2b --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/LevelEditorView.html @@ -0,0 +1,239 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.views.LevelEditorView + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.views.LevelEditorView

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/MenuImage.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/MenuImage.html new file mode 100644 index 00000000..9cb446b3 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/MenuImage.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.views.MenuImage + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.views.MenuImage

+
+
No usage of fr.enssat.BoulderDash.views.MenuImage
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/MenuLevelSelector.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/MenuLevelSelector.html new file mode 100644 index 00000000..75e88266 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/MenuLevelSelector.html @@ -0,0 +1,181 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.views.MenuLevelSelector + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.views.MenuLevelSelector

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/MenuView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/MenuView.html new file mode 100644 index 00000000..0208cac2 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/MenuView.html @@ -0,0 +1,163 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.views.MenuView + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.views.MenuView

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/WinLoseView.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/WinLoseView.html new file mode 100644 index 00000000..76441b21 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/class-use/WinLoseView.html @@ -0,0 +1,115 @@ + + + + + +Uses of Class fr.enssat.BoulderDash.views.WinLoseView + + + + + + + +
+ + + + + +
+ + +
+

Uses of Class
fr.enssat.BoulderDash.views.WinLoseView

+
+
No usage of fr.enssat.BoulderDash.views.WinLoseView
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/package-frame.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/package-frame.html new file mode 100644 index 00000000..fcaa3e5a --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/package-frame.html @@ -0,0 +1,30 @@ + + + + + +fr.enssat.BoulderDash.views + + + + +

fr.enssat.BoulderDash.views

+
+

Classes

+ +
+ + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/package-summary.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/package-summary.html new file mode 100644 index 00000000..5ef45c5f --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/package-summary.html @@ -0,0 +1,219 @@ + + + + + +fr.enssat.BoulderDash.views + + + + + + + +
+ + + + + +
+ + +
+

Package fr.enssat.BoulderDash.views

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/package-tree.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/package-tree.html new file mode 100644 index 00000000..abc63aae --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/package-tree.html @@ -0,0 +1,174 @@ + + + + + +fr.enssat.BoulderDash.views Class Hierarchy + + + + + + + +
+ + + + + +
+ + +
+

Hierarchy For Package fr.enssat.BoulderDash.views

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/fr/enssat/BoulderDash/views/package-use.html b/boulder-dash/doc/fr/enssat/BoulderDash/views/package-use.html new file mode 100644 index 00000000..68332bd7 --- /dev/null +++ b/boulder-dash/doc/fr/enssat/BoulderDash/views/package-use.html @@ -0,0 +1,249 @@ + + + + + +Uses of Package fr.enssat.BoulderDash.views + + + + + + + +
+ + + + + +
+ + +
+

Uses of Package
fr.enssat.BoulderDash.views

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/help-doc.html b/boulder-dash/doc/help-doc.html new file mode 100644 index 00000000..be8f9b05 --- /dev/null +++ b/boulder-dash/doc/help-doc.html @@ -0,0 +1,220 @@ + + + + + +API Help + + + + + + + +
+ + + + + +
+ + +
+

How This API Document Is Organized

+
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+ +This help file applies to API documentation generated using the standard doclet.
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-1.html b/boulder-dash/doc/index-files/index-1.html new file mode 100644 index 00000000..e2aca7d9 --- /dev/null +++ b/boulder-dash/doc/index-files/index-1.html @@ -0,0 +1,158 @@ + + + + + +A-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

A

+
+
actionPerformed(ActionEvent) - Method in class fr.enssat.BoulderDash.controllers.GameController
+
+
Handles the 'action performed' event
+
+
actionPerformed(ActionEvent) - Method in class fr.enssat.BoulderDash.controllers.LevelEditorController
+
+
Handles the 'action performed' event
+
+
actionPerformed(ActionEvent) - Method in class fr.enssat.BoulderDash.controllers.NavigationBetweenViewController
+
+
Action performed event handler
+
+
actionPerformed(ActionEvent) - Method in class fr.enssat.BoulderDash.views.AssetsLevelEditorComponent
+
+
Listens for action events
+
+
actionPerformed(ActionEvent) - Method in class fr.enssat.BoulderDash.views.MenuLevelSelector
+
+
Called when an action is performed
+
+
AssetsLevelEditorComponent - Class in fr.enssat.BoulderDash.views
+
+
AssetsLevelEditorComponent + + Information panel element.
+
+
AssetsLevelEditorComponent(LevelEditorView) - Constructor for class fr.enssat.BoulderDash.views.AssetsLevelEditorComponent
+
+
Class constructor
+
+
AudioLoadHelper - Class in fr.enssat.BoulderDash.helpers
+
+
AudioLoadHelper + + Manages audio
+
+
AudioLoadHelper() - Constructor for class fr.enssat.BoulderDash.helpers.AudioLoadHelper
+
+
Class constructor
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-10.html b/boulder-dash/doc/index-files/index-10.html new file mode 100644 index 00000000..f08b6af0 --- /dev/null +++ b/boulder-dash/doc/index-files/index-10.html @@ -0,0 +1,142 @@ + + + + + +K-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

K

+
+
keyPressed(KeyEvent) - Method in class fr.enssat.BoulderDash.controllers.GameKeyController
+
+
Handles the 'key pressed' event
+
+
keyPressed(KeyEvent) - Method in class fr.enssat.BoulderDash.controllers.LevelEditorKeyController
+
+
Handles the 'key pressed' event
+
+
keyReleased(KeyEvent) - Method in class fr.enssat.BoulderDash.controllers.GameKeyController
+
+
Handles the 'key released' event
+
+
keyReleased(KeyEvent) - Method in class fr.enssat.BoulderDash.controllers.LevelEditorKeyController
+
+
Handles the 'key released' event
+
+
keyTyped(KeyEvent) - Method in class fr.enssat.BoulderDash.controllers.GameKeyController
+
+
Handles the 'key typed' event
+
+
keyTyped(KeyEvent) - Method in class fr.enssat.BoulderDash.controllers.LevelEditorKeyController
+
+
Handles the 'key typed' event
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-11.html b/boulder-dash/doc/index-files/index-11.html new file mode 100644 index 00000000..27b3085c --- /dev/null +++ b/boulder-dash/doc/index-files/index-11.html @@ -0,0 +1,241 @@ + + + + + +L-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

L

+
+
LevelConstraintNotRespectedException - Exception in fr.enssat.BoulderDash.exceptions
+
+
LevelConstraintNotRespectedException + + Raises an 'LevelConstraintNotRespectedException' exception.
+
+
LevelConstraintNotRespectedException(String) - Constructor for exception fr.enssat.BoulderDash.exceptions.LevelConstraintNotRespectedException
+
+
Class constructor
+
+
LevelEditorController - Class in fr.enssat.BoulderDash.controllers
+
+
LevelEditorController + + Manages the level editor controller.
+
+
LevelEditorController(LevelModel, NavigationBetweenViewController) - Constructor for class fr.enssat.BoulderDash.controllers.LevelEditorController
+
+
Class constructor'
+
+
LevelEditorGroundView - Class in fr.enssat.BoulderDash.views
+
+
LevelEditorFieldView + + Game field view for the level editor.
+
+
LevelEditorGroundView(LevelModel, LevelEditorView) - Constructor for class fr.enssat.BoulderDash.views.LevelEditorGroundView
+
+
Class constructor
+
+
LevelEditorKeyController - Class in fr.enssat.BoulderDash.controllers
+
+
LevelEditorKeyController + + Manages the key events controller.
+
+
LevelEditorKeyController(LevelModel, LevelEditorView) - Constructor for class fr.enssat.BoulderDash.controllers.LevelEditorKeyController
+
+
Class constructor
+
+
LevelEditorView - Class in fr.enssat.BoulderDash.views
+
+
LevelEditorView + + Specifies the level editor view.
+
+
LevelEditorView(LevelEditorController, LevelModel, NavigationBetweenViewController) - Constructor for class fr.enssat.BoulderDash.views.LevelEditorView
+
+
Class constructor
+
+
LevelLoadHelper - Class in fr.enssat.BoulderDash.helpers
+
+
LevelLoadHelper + + Proceeds level load routine + Able to deserialize level data from storage, and format it to + internal representation To be used as a data factory from level + model classes
+
+
LevelLoadHelper(String) - Constructor for class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Class constructor
+
+
LevelModel - Class in fr.enssat.BoulderDash.models
+
+
LevelModel + + Levels are loaded from XML file.
+
+
LevelModel(String, AudioLoadHelper, String) - Constructor for class fr.enssat.BoulderDash.models.LevelModel
+
+
Class constructor
+
+
LevelModel(String, AudioLoadHelper) - Constructor for class fr.enssat.BoulderDash.models.LevelModel
+
+
Class constructor
+
+
LevelModel(AudioLoadHelper) - Constructor for class fr.enssat.BoulderDash.models.LevelModel
+
+
Class constructor (editor mode)
+
+
LevelRemoveHelper - Class in fr.enssat.BoulderDash.helpers
+
+
LevelRemoveHelper + + Proceeds level save routine + Able to iterate on internal representation of a map and serialize it to XML
+
+
LevelRemoveHelper(String) - Constructor for class fr.enssat.BoulderDash.helpers.LevelRemoveHelper
+
+
Class constructor
+
+
LevelSaveHelper - Class in fr.enssat.BoulderDash.helpers
+
+
LevelSaveHelper + + Proceeds level save routine + Able to iterate on internal representation of a map and serialize it to XML
+
+
LevelSaveHelper(String, DisplayableElementModel[][]) - Constructor for class fr.enssat.BoulderDash.helpers.LevelSaveHelper
+
+
Class constructor
+
+
LevelSaveHelper(DisplayableElementModel[][]) - Constructor for class fr.enssat.BoulderDash.helpers.LevelSaveHelper
+
+
Class constructor
+
+
LevelSelectorHelper - Class in fr.enssat.BoulderDash.helpers
+
+
LevelSelectorHelper + + Level selector helper
+
+
LevelSelectorHelper(boolean) - Constructor for class fr.enssat.BoulderDash.helpers.LevelSelectorHelper
+
+
Class constructor
+
+
LevelSelectorHelper(boolean, LevelEditorView) - Constructor for class fr.enssat.BoulderDash.helpers.LevelSelectorHelper
+
 
+
loadSprite(String) - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Loads the target sprite
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-12.html b/boulder-dash/doc/index-files/index-12.html new file mode 100644 index 00000000..2f069ce0 --- /dev/null +++ b/boulder-dash/doc/index-files/index-12.html @@ -0,0 +1,212 @@ + + + + + +M-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

M

+
+
MagicWallModel - Class in fr.enssat.BoulderDash.models
+
+
MagicWallModel + + Represents the magic wall.
+
+
MagicWallModel() - Constructor for class fr.enssat.BoulderDash.models.MagicWallModel
+
+
Class constructor
+
+
main(String[]) - Static method in class fr.enssat.BoulderDash.Game
+
+
Class constructor
+
+
makeThisBoulderSlideLeft(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Makes the BoulderModel[x][y] slide left
+
+
makeThisBoulderSlideRight(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Makes the BoulderModel[x][y] slide right
+
+
makeThisDisplayableElementFall(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Makes the DisplayableElement[x][y] fall one box down
+
+
MenuImage - Class in fr.enssat.BoulderDash.views
+
+
MenuImage + + Specifies the menu image
+
+
MenuImage() - Constructor for class fr.enssat.BoulderDash.views.MenuImage
+
+
Class constructor
+
+
MenuLevelSelector - Class in fr.enssat.BoulderDash.views
+
+
MenuLevelSelector + + Specifies the menu level selector
+
+
MenuLevelSelector(String[]) - Constructor for class fr.enssat.BoulderDash.views.MenuLevelSelector
+
+
Class constructor
+
+
MenuLevelSelector(String[], LevelEditorView) - Constructor for class fr.enssat.BoulderDash.views.MenuLevelSelector
+
 
+
menuLevelSelectorChanged(MenuLevelSelector) - Method in class fr.enssat.BoulderDash.views.LevelEditorView
+
+
Menu level selector change handler
+
+
MenuView - Class in fr.enssat.BoulderDash.views
+
+
MenuView + + Menu view
+
+
MenuView(NavigationBetweenViewController) - Constructor for class fr.enssat.BoulderDash.views.MenuView
+
+
Class constructor
+
+
ModelConvertHelper - Class in fr.enssat.BoulderDash.helpers
+
+
ModelConvertHelper + + Provides model conversion services.
+
+
ModelConvertHelper() - Constructor for class fr.enssat.BoulderDash.helpers.ModelConvertHelper
+
+
Class constructor
+
+
ModelNotReadyException - Exception in fr.enssat.BoulderDash.exceptions
+
+
ModelNotReadyException + + Raises an 'ModelNotReadyException' exception.
+
+
ModelNotReadyException(String) - Constructor for exception fr.enssat.BoulderDash.exceptions.ModelNotReadyException
+
+
Class constructor
+
+
moveRockford(int, int) - Method in class fr.enssat.BoulderDash.controllers.RockfordUpdateController
+
+
Moves Rockford
+
+
moveThisBoulderToLeft(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Makes the BoulderModel[x][y] moving to left
+
+
moveThisBoulderToRight(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Makes the BoulderModel[x][y] moving to right
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-13.html b/boulder-dash/doc/index-files/index-13.html new file mode 100644 index 00000000..fa6780c6 --- /dev/null +++ b/boulder-dash/doc/index-files/index-13.html @@ -0,0 +1,126 @@ + + + + + +N-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

N

+
+
NavigationBetweenViewController - Class in fr.enssat.BoulderDash.controllers
+
+
Controller to navigate between the different views
+
+
NavigationBetweenViewController() - Constructor for class fr.enssat.BoulderDash.controllers.NavigationBetweenViewController
+
+
Class constructor
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-14.html b/boulder-dash/doc/index-files/index-14.html new file mode 100644 index 00000000..d0a5446b --- /dev/null +++ b/boulder-dash/doc/index-files/index-14.html @@ -0,0 +1,122 @@ + + + + + +O-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

O

+
+
openedLevelChange(String) - Method in class fr.enssat.BoulderDash.views.LevelEditorView
+
+
Change opened level
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-15.html b/boulder-dash/doc/index-files/index-15.html new file mode 100644 index 00000000..d342e584 --- /dev/null +++ b/boulder-dash/doc/index-files/index-15.html @@ -0,0 +1,130 @@ + + + + + +P-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

P

+
+
paint(Graphics) - Method in class fr.enssat.BoulderDash.views.GroundView
+
+
Paints the map
+
+
play() - Method in class fr.enssat.BoulderDash.bridges.SoundJLayerBridge
+
+
Play the target sound
+
+
playSound(String) - Method in class fr.enssat.BoulderDash.helpers.AudioLoadHelper
+
+
Plays a sound
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-16.html b/boulder-dash/doc/index-files/index-16.html new file mode 100644 index 00000000..f310dc50 --- /dev/null +++ b/boulder-dash/doc/index-files/index-16.html @@ -0,0 +1,161 @@ + + + + + +R-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

R

+
+
resetInformations() - Method in class fr.enssat.BoulderDash.models.GameInformationModel
+
+
Reset details about object
+
+
resetLevelModel() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
 
+
RockfordModel - Class in fr.enssat.BoulderDash.models
+
+
RockfordModel + + Represents the hero of the game.
+
+
RockfordModel() - Constructor for class fr.enssat.BoulderDash.models.RockfordModel
+
+
Class constructor
+
+
RockfordUpdateController - Class in fr.enssat.BoulderDash.controllers
+
+
ElementPositionUpdateHelper + + Updates position of all elements displayed on the map, according to their + next potential position.
+
+
RockfordUpdateController(LevelModel) - Constructor for class fr.enssat.BoulderDash.controllers.RockfordUpdateController
+
+
Class constructor
+
+
run() - Method in class fr.enssat.BoulderDash.bridges.SoundJLayerBridge
+
+
Runs the player thread
+
+
run() - Method in class fr.enssat.BoulderDash.controllers.BoulderAndDiamondController
+
+
Watches for elements to be moved
+
+
run() - Method in class fr.enssat.BoulderDash.controllers.RockfordUpdateController
+
+
Watches for elements to be moved
+
+
run() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Update all the sprites So that they can be animated
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-17.html b/boulder-dash/doc/index-files/index-17.html new file mode 100644 index 00000000..c17b3e22 --- /dev/null +++ b/boulder-dash/doc/index-files/index-17.html @@ -0,0 +1,296 @@ + + + + + +S-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

S

+
+
setAnimate(boolean) - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Sets the 'animate' value
+
+
setChoiceValue(String) - Method in class fr.enssat.BoulderDash.views.MenuLevelSelector
+
+
Sets the choice value
+
+
setCollideSound(String) - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Sets the collide sound of the object
+
+
setCollisionDone(boolean) - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Sets whether Rockford collision has been handled or not
+
+
setConvertibleValue(boolean) - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Sets the convertible value of the object
+
+
setDiamondsToCatch(int) - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Sets the number of Diamonds to catch
+
+
setFalling(boolean) - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Sets the falling state of the object
+
+
setGamePaused(boolean) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Set the gamePaused variable
+
+
setGameRunning(boolean) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
sets the game to a defined state
+
+
setGameView(GameView) - Method in class fr.enssat.BoulderDash.controllers.GameController
+
+
Set the gameView
+
+
setHasExplosed(boolean) - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Set rockford exploded state
+
+
setImpactExplosive(boolean) - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Sets the 'impact explosive' value
+
+
setLevelEditorView(LevelEditorView) - Method in class fr.enssat.BoulderDash.controllers.LevelEditorController
+
+
Sets the level editor view
+
+
setMenuView() - Method in class fr.enssat.BoulderDash.controllers.NavigationBetweenViewController
+
+
Set the first view
+
+
setMode(String) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Set the mode where this levelModel is used
+
+
setPickedBlockValue(String) - Method in class fr.enssat.BoulderDash.views.LevelEditorView
+
+
Sets picked block value
+
+
setPickedLevelIdentifier(String) - Method in class fr.enssat.BoulderDash.controllers.NavigationBetweenViewController
+
+
Set the pickedLevelIdentifier
+
+
setPositionOfRockford(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Sets the new Rockford position
+
+
setPriority(int) - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Sets the priority of the object
+
+
setRemainingsDiamonds(int) - Method in class fr.enssat.BoulderDash.models.GameInformationModel
+
+
Sets the number of remainingDiamonds
+
+
setRockfordInstance(RockfordModel) - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Sets the instance of Rockford
+
+
setRockfordPositionX(int) - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Sets the horizontal position of the Rockford element
+
+
setRockfordPositionY(int) - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Sets the vertical position of the Rockford element
+
+
setScore(int) - Method in class fr.enssat.BoulderDash.models.GameInformationModel
+
+
Sets the score
+
+
setSelectedLevel(String) - Method in class fr.enssat.BoulderDash.views.LevelEditorView
+
+
Sets selected level
+
+
setSelectedValue(String) - Method in class fr.enssat.BoulderDash.views.MenuLevelSelector
+
+
Selects a given value
+
+
setShowCursor(boolean) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Sets whether cursor is to be shown or not
+
+
setSizeHeight(int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Sets the level vertical size
+
+
setSizeWidth(int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Sets the level horizontal size
+
+
setSpeed(int) - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
 
+
setSprite(BufferedImage) - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Sets the sprite
+
+
setTimer(int) - Method in class fr.enssat.BoulderDash.models.GameInformationModel
+
+
Sets the timer
+
+
SoundJLayerBridge - Class in fr.enssat.BoulderDash.bridges
+
+
SoundJLayerBridge + + Sound bridge to the JLayer library.
+
+
SoundJLayerBridge(String) - Constructor for class fr.enssat.BoulderDash.bridges.SoundJLayerBridge
+
+
Class constructor
+
+
startMusic(String) - Method in class fr.enssat.BoulderDash.helpers.AudioLoadHelper
+
+
Starts game music
+
+
startRunningDown() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Rockford running down
+
+
startRunningLeft() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Starts moving Rockford to the left
+
+
startRunningRight() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Starts moving Rockford to the right
+
+
startRunningUp() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Rockford running up
+
+
startStaying() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Stops the Rockford movement
+
+
SteelWallModel - Class in fr.enssat.BoulderDash.models
+
+
SteelWallModel + + Represents the steelWall
+
+
SteelWallModel() - Constructor for class fr.enssat.BoulderDash.models.SteelWallModel
+
+
Class constructor
+
+
stop() - Method in class fr.enssat.BoulderDash.bridges.SoundJLayerBridge
+
+
Stops the target sound
+
+
stopMusic() - Method in class fr.enssat.BoulderDash.helpers.AudioLoadHelper
+
+
Stops game music
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-18.html b/boulder-dash/doc/index-files/index-18.html new file mode 100644 index 00000000..d9bde7ad --- /dev/null +++ b/boulder-dash/doc/index-files/index-18.html @@ -0,0 +1,134 @@ + + + + + +T-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

T

+
+
toModel(String, boolean) - Method in class fr.enssat.BoulderDash.helpers.ModelConvertHelper
+
+
Gets the model associated to the string
+
+
toString(DisplayableElementModel) - Method in class fr.enssat.BoulderDash.helpers.ModelConvertHelper
+
+
Gets the string associated to the model
+
+
transformThisBoulderIntoADiamond(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Makes the BoulderModel[x][y] transform into a diamond
+
+
triggerBlockChange(String) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Trigger block change with provided value
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-19.html b/boulder-dash/doc/index-files/index-19.html new file mode 100644 index 00000000..17a9e218 --- /dev/null +++ b/boulder-dash/doc/index-files/index-19.html @@ -0,0 +1,169 @@ + + + + + +U-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

U

+
+
UnknownModelException - Exception in fr.enssat.BoulderDash.exceptions
+
+
UnknownModelException + + Raises an 'UnknownSpriteException' exception.
+
+
UnknownModelException(String) - Constructor for exception fr.enssat.BoulderDash.exceptions.UnknownModelException
+
+
Class constructor
+
+
update(long) - Method in class fr.enssat.BoulderDash.models.DiamondModel
+
+
Updates the sprite (animation loop)
+
+
update(long) - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Function to update the sprites
+
+
update(long) - Method in class fr.enssat.BoulderDash.models.MagicWallModel
+
+
Function to animate the sprite
+
+
update(long) - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Updates the sprite animation + (And only that single thing)
+
+
update(Observable, Object) - Method in class fr.enssat.BoulderDash.views.GameView
+
+
Updates the frame
+
+
update(Observable, Object) - Method in class fr.enssat.BoulderDash.views.GroundView
+
+
Updates the view
+
+
update(Observable, Object) - Method in class fr.enssat.BoulderDash.views.InformationPanel
+
+
Updates the panel
+
+
update(Observable, Object) - Method in class fr.enssat.BoulderDash.views.LevelEditorView
+
+
Updates the view
+
+
updateRockfordPosition(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Updates the horizontal & vertical positions of Rockford in the model
+
+
updateSprites(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Update the current sprite Notifies the observers
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-2.html b/boulder-dash/doc/index-files/index-2.html new file mode 100644 index 00000000..e3cb3974 --- /dev/null +++ b/boulder-dash/doc/index-files/index-2.html @@ -0,0 +1,151 @@ + + + + + +B-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

B

+
+
BoulderAndDiamondController - Class in fr.enssat.BoulderDash.controllers
+
+
ElementPositionUpdateHelper + + Updates position of all elements displayed on the map, according to their + next potential position.
+
+
BoulderAndDiamondController(LevelModel, AudioLoadHelper) - Constructor for class fr.enssat.BoulderDash.controllers.BoulderAndDiamondController
+
+
Class constructor
+
+
BoulderModel - Class in fr.enssat.BoulderDash.models
+
+
BoulderModel + + Represents the boulders.
+
+
BoulderModel(boolean) - Constructor for class fr.enssat.BoulderDash.models.BoulderModel
+
+
Class constructor
+
+
BoulderModel() - Constructor for class fr.enssat.BoulderDash.models.BoulderModel
+
 
+
BrickWallModel - Class in fr.enssat.BoulderDash.models
+
+
BrickWallModel + + Represents the brick wall in the game.
+
+
BrickWallModel() - Constructor for class fr.enssat.BoulderDash.models.BrickWallModel
+
+
Class constructor
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-20.html b/boulder-dash/doc/index-files/index-20.html new file mode 100644 index 00000000..e172a82e --- /dev/null +++ b/boulder-dash/doc/index-files/index-20.html @@ -0,0 +1,124 @@ + + + + + +W-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

W

+
+
WinLoseView - Class in fr.enssat.BoulderDash.views
+
 
+
WinLoseView(String) - Constructor for class fr.enssat.BoulderDash.views.WinLoseView
+
+
Generate the HelpView
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-3.html b/boulder-dash/doc/index-files/index-3.html new file mode 100644 index 00000000..b925eee0 --- /dev/null +++ b/boulder-dash/doc/index-files/index-3.html @@ -0,0 +1,152 @@ + + + + + +C-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

C

+
+
checkConstraints() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Returns whether constraints on model are respected or not
+
+
countDiamonds() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Returns number of diamonds
+
+
createButton(String, String) - Method in class fr.enssat.BoulderDash.views.GameView
+
+
Creates the given button
+
+
createButton(String, String) - Method in class fr.enssat.BoulderDash.views.LevelEditorView
+
+
Creates the given button
+
+
createButton(String, String) - Method in class fr.enssat.BoulderDash.views.MenuView
+
+
Creates the given button
+
+
createLevelList() - Method in class fr.enssat.BoulderDash.helpers.LevelSelectorHelper
+
+
Creates the level list
+
+
CursorModel - Class in fr.enssat.BoulderDash.models
+
+
CursorModel + + Represents the field cursor pointer.
+
+
CursorModel() - Constructor for class fr.enssat.BoulderDash.models.CursorModel
+
+
Class constructor
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-4.html b/boulder-dash/doc/index-files/index-4.html new file mode 100644 index 00000000..1b1f0c49 --- /dev/null +++ b/boulder-dash/doc/index-files/index-4.html @@ -0,0 +1,180 @@ + + + + + +D-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

D

+
+
decrementCursorXPosition() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Decrements the cursor position X value
+
+
decrementCursorYPosition() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Decrements the cursor position Y value
+
+
decrementRemainingsDiamonds() - Method in class fr.enssat.BoulderDash.models.GameInformationModel
+
+
Decrement of one the number total of remaining diamonds.
+
+
deleteThisBoulder(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Deletes the BoulderModel[x][y]
+
+
DiamondModel - Class in fr.enssat.BoulderDash.models
+
+
DiamondModel + + Represents a diamond in the game.
+
+
DiamondModel() - Constructor for class fr.enssat.BoulderDash.models.DiamondModel
+
+
Class constructor
+
+
DirtModel - Class in fr.enssat.BoulderDash.models
+
+
DirtModel + + Represents the dirt in the game.
+
+
DirtModel() - Constructor for class fr.enssat.BoulderDash.models.DirtModel
+
+
Class constructor
+
+
DisplayableElementModel - Class in fr.enssat.BoulderDash.models
+
+
DisplayableElementModel + + Represents a abstract displayable element
+
+
DisplayableElementModel(boolean, boolean, String, int, boolean, boolean, boolean, String, boolean) - Constructor for class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Class constructor
+
+
DisplayableElementModel(boolean, boolean, String, int, boolean, boolean, boolean, String) - Constructor for class fr.enssat.BoulderDash.models.DisplayableElementModel
+
 
+
DoorModel - Class in fr.enssat.BoulderDash.models
+
+
DoorModel + + Represents escape door.
+
+
DoorModel() - Constructor for class fr.enssat.BoulderDash.models.DoorModel
+
+
Class constructor
+
+
drawTerrain(int, int, Graphics) - Method in class fr.enssat.BoulderDash.views.GroundView
+
+
Draws the map
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-5.html b/boulder-dash/doc/index-files/index-5.html new file mode 100644 index 00000000..04c4c303 --- /dev/null +++ b/boulder-dash/doc/index-files/index-5.html @@ -0,0 +1,154 @@ + + + + + +E-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

E

+
+
EmptyModel - Class in fr.enssat.BoulderDash.models
+
+
EmptyModel + + Represents "nothing".
+
+
EmptyModel() - Constructor for class fr.enssat.BoulderDash.models.EmptyModel
+
+
Class constructor
+
+
ExpandingWallModel - Class in fr.enssat.BoulderDash.models
+
+
ExpandingWallModel + + Represents a ExpandingWall in the game.
+
+
ExpandingWallModel() - Constructor for class fr.enssat.BoulderDash.models.ExpandingWallModel
+
+
Class constructor
+
+
expandThisWallToLeft(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Expand the ExpandingWallModel to left
+
+
expandThisWallToRight(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Expand the ExpandingWallModel to right
+
+
exploseGround(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
When a boulder is falling on Rockford there is an explosion around him
+
+
exploseThisBrickWall(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Explose the brick wall
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-6.html b/boulder-dash/doc/index-files/index-6.html new file mode 100644 index 00000000..b26a1540 --- /dev/null +++ b/boulder-dash/doc/index-files/index-6.html @@ -0,0 +1,132 @@ + + + + + +F-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

F

+
+
fr.enssat.BoulderDash - package fr.enssat.BoulderDash
+
 
+
fr.enssat.BoulderDash.bridges - package fr.enssat.BoulderDash.bridges
+
 
+
fr.enssat.BoulderDash.controllers - package fr.enssat.BoulderDash.controllers
+
 
+
fr.enssat.BoulderDash.exceptions - package fr.enssat.BoulderDash.exceptions
+
 
+
fr.enssat.BoulderDash.helpers - package fr.enssat.BoulderDash.helpers
+
 
+
fr.enssat.BoulderDash.models - package fr.enssat.BoulderDash.models
+
 
+
fr.enssat.BoulderDash.views - package fr.enssat.BoulderDash.views
+
 
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-7.html b/boulder-dash/doc/index-files/index-7.html new file mode 100644 index 00000000..06babad7 --- /dev/null +++ b/boulder-dash/doc/index-files/index-7.html @@ -0,0 +1,401 @@ + + + + + +G-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

G

+
+
Game - Class in fr.enssat.BoulderDash
+
+
Game + + Spawns the game.
+
+
Game() - Constructor for class fr.enssat.BoulderDash.Game
+
 
+
GameController - Class in fr.enssat.BoulderDash.controllers
+
+
GameController + + This system creates the view.
+
+
GameController(LevelModel, AudioLoadHelper, NavigationBetweenViewController) - Constructor for class fr.enssat.BoulderDash.controllers.GameController
+
+
Class constructor
+
+
GameGroundView - Class in fr.enssat.BoulderDash.views
+
+
GameFieldView + + Game field view for the game itself.
+
+
GameGroundView(GameController, LevelModel) - Constructor for class fr.enssat.BoulderDash.views.GameGroundView
+
+
Class constructor
+
+
GameInformationModel - Class in fr.enssat.BoulderDash.models
+
+
GameInformationModel will contain all the data which will + go to the InformationPanel.
+
+
GameInformationModel(int) - Constructor for class fr.enssat.BoulderDash.models.GameInformationModel
+
 
+
GameKeyController - Class in fr.enssat.BoulderDash.controllers
+
+
GameKeyController + + Manages the key events controller.
+
+
GameKeyController(LevelModel, AudioLoadHelper) - Constructor for class fr.enssat.BoulderDash.controllers.GameKeyController
+
+
Class constructor
+
+
GameView - Class in fr.enssat.BoulderDash.views
+
+
GameView + + Specifies the game view itself.
+
+
GameView(GameController, LevelModel) - Constructor for class fr.enssat.BoulderDash.views.GameView
+
+
Class constructor
+
+
getAudioLoadHelper() - Method in class fr.enssat.BoulderDash.controllers.GameController
+
+
Gets the audio load helper instance
+
+
getAudioLoadHelper() - Method in class fr.enssat.BoulderDash.controllers.NavigationBetweenViewController
+
+
Get the audio load helper
+
+
getChoiceValue() - Method in class fr.enssat.BoulderDash.views.MenuLevelSelector
+
+
Gets the choice value
+
+
getCollideSound() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the collide sound of the object
+
+
getCursorImage() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets the cursor image image
+
+
getCursorXPosition() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets the cursor position X value
+
+
getCursorYPosition() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets the cursor position Y value
+
+
getDateCreatedValue() - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Gets the creation date value
+
+
getDateModifiedValue() - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Gets the modified date value
+
+
getDiamondsToCatch() - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Gets the number of Diamonds to catch
+
+
getDisplayableElement(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets the displayable element at given positions
+
+
getGameFieldView() - Method in class fr.enssat.BoulderDash.views.GameView
+
+
Gets the game field view
+
+
getGameInformationModel() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets gameInformationModel
+
+
getGamePaused() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Get the gamePaused variable
+
+
getGameView() - Method in class fr.enssat.BoulderDash.controllers.GameController
+
+
Return the game view
+
+
getGroundGrid() - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Gets the ground grid
+
+
getGroundGrid() - Method in class fr.enssat.BoulderDash.helpers.LevelSaveHelper
+
+
Gets the ground grid
+
+
getGroundLevelModel() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets the ground level model
+
+
getGroupName() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the group name value
+
+
getHasExplosed() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Return true if rockford has exploded (you = lose)
+
+
getHeightSizeValue() - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Gets the height size value
+
+
getImage(int, int) - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets the image at given positions
+
+
getLevelEditorGroundView() - Method in class fr.enssat.BoulderDash.views.LevelEditorView
+
+
Gets the level editor field view
+
+
getLevelEditorView() - Method in class fr.enssat.BoulderDash.controllers.LevelEditorController
+
+
Gets the level editor view
+
+
getLevelId() - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Gets the level identifier
+
+
getLevelId() - Method in class fr.enssat.BoulderDash.helpers.LevelSaveHelper
+
+
Gets the level identifier
+
+
getLevelIdentifier() - Method in class fr.enssat.BoulderDash.views.MenuView
+
+
Gets the selected level identifier!
+
+
getLevelLoadHelper() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets the associated level load helper
+
+
getLevelModel() - Method in class fr.enssat.BoulderDash.controllers.LevelEditorController
+
+
Gets level model
+
+
getMenuView() - Method in class fr.enssat.BoulderDash.controllers.NavigationBetweenViewController
+
+
Get the first view
+
+
getMode() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Get the mode where this levelModel is used
+
+
getNameValue() - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Gets the name value
+
+
getPathToSprite() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the path to the sprite file in storage
+
+
getPickedBlockValue() - Method in class fr.enssat.BoulderDash.views.LevelEditorView
+
+
Gets picked block value
+
+
getPickedLevelIdentifier() - Method in class fr.enssat.BoulderDash.controllers.NavigationBetweenViewController
+
+
Get the pickedLevel
+
+
getPriority() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the priority of the object
+
+
getRemainingsDiamonds() - Method in class fr.enssat.BoulderDash.models.GameInformationModel
+
+
Returns the actual number of remaining diamonds
+
+
getRockford() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets the Rockford object instance
+
+
getRockfordInstance() - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Gets the instance of Rockford
+
+
getRockfordPositionX() - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Gets the horizontal position of the Rockford element
+
+
getRockfordPositionX() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets the horizontal position of Rockford from the model
+
+
getRockfordPositionY() - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Gets the vertical position of the Rockford element
+
+
getRockfordPositionY() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets the vertical position of Rockford from the model
+
+
getScore() - Method in class fr.enssat.BoulderDash.models.GameInformationModel
+
+
Returns the actual score
+
+
getSelectedLevel() - Method in class fr.enssat.BoulderDash.views.LevelEditorView
+
+
Gets selected level
+
+
getShowCursor() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets whether cursor is to be shown or not
+
+
getSizeHeight() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets the level vertical size
+
+
getSizeWidth() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Gets the level horizontal size
+
+
getSprite() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the sprite
+
+
getSpriteName() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the sprite name value
+
+
getStateValue() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the state value
+
+
getTimer() - Method in class fr.enssat.BoulderDash.models.GameInformationModel
+
+
Gets the timer
+
+
getWidthSizeValue() - Method in class fr.enssat.BoulderDash.helpers.LevelLoadHelper
+
+
Gets the width size value
+
+
grabSprite(BufferedImage, int, int, int, int) - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Grabs the sprite from the large image containing all the static sprites items
+
+
GroundView - Class in fr.enssat.BoulderDash.views
+
+
FieldView + + FieldView, created by controller; we notice that we don't need to make + levelModel observable; Because of the sprites we have to refresh the game + windows very often so don't need of observers/observable mechanism
+
+
GroundView(LevelModel) - Constructor for class fr.enssat.BoulderDash.views.GroundView
+
+
Class constructor
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-8.html b/boulder-dash/doc/index-files/index-8.html new file mode 100644 index 00000000..a4bf127a --- /dev/null +++ b/boulder-dash/doc/index-files/index-8.html @@ -0,0 +1,124 @@ + + + + + +H-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

H

+
+
HelpView - Class in fr.enssat.BoulderDash.views
+
 
+
HelpView() - Constructor for class fr.enssat.BoulderDash.views.HelpView
+
+
Generate the HelpView
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index-files/index-9.html b/boulder-dash/doc/index-files/index-9.html new file mode 100644 index 00000000..ad24a364 --- /dev/null +++ b/boulder-dash/doc/index-files/index-9.html @@ -0,0 +1,205 @@ + + + + + +I-Index + + + + + + + +
+ + + + + +
+ + +
A B C D E F G H I K L M N O P R S T U W  + + +

I

+
+
incrementCursorXPosition() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Increaments the cursor position X value
+
+
incrementCursorYPosition() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Increaments the cursor position Y value
+
+
incrementScore() - Method in class fr.enssat.BoulderDash.models.GameInformationModel
+
+
Increments the score & notify observers
+
+
incrementScore() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Increments the user score
+
+
InformationPanel - Class in fr.enssat.BoulderDash.views
+
+
InformationPanel + + Information panel element.
+
+
InformationPanel(LevelModel) - Constructor for class fr.enssat.BoulderDash.views.InformationPanel
+
+
Class constructor
+
+
isAnimate() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the 'animate' value
+
+
isCollisionDone() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Gets whether Rockford collision has been handled or not
+
+
isConvertible() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the convertible value of the object
+
+
isDestructible() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the 'destructible' value
+
+
isFalling() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the falling state of the object
+
+
isGameRunning() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
tells if the game is running
+
+
isImpactExplosive() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the 'impact explosive' value
+
+
isMoving() - Method in class fr.enssat.BoulderDash.models.DisplayableElementModel
+
+
Gets the 'moving' value
+
+
isRockfordInModel() - Method in class fr.enssat.BoulderDash.models.LevelModel
+
+
Return whether rockford is in model or not + Notice: not optimized, be careful
+
+
isRunningDown() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Gets whether Rockford is running down or not
+
+
isRunningLeft() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Gets whether Rockford is running to the left or not
+
+
isRunningRight() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Gets whether Rockford is running to the right or not
+
+
isRunningUp() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Gets whether Rockford is running up or not
+
+
isRunningUpOrDown() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Gets whether Rockford is running up or down, or not
+
+
isStaying() - Method in class fr.enssat.BoulderDash.models.RockfordModel
+
+
Gets whether Rockford is standing still or not
+
+
+A B C D E F G H I K L M N O P R S T U W 
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/index.html b/boulder-dash/doc/index.html new file mode 100644 index 00000000..005dccff --- /dev/null +++ b/boulder-dash/doc/index.html @@ -0,0 +1,74 @@ + + + + + +Generated Documentation (Untitled) + + + + + + + + + +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<h2>Frame Alert</h2> +<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> + + + diff --git a/boulder-dash/doc/overview-frame.html b/boulder-dash/doc/overview-frame.html new file mode 100644 index 00000000..91277268 --- /dev/null +++ b/boulder-dash/doc/overview-frame.html @@ -0,0 +1,26 @@ + + + + + +Overview List + + + + +
All Classes
+
+

Packages

+ +
+

 

+ + diff --git a/boulder-dash/doc/overview-summary.html b/boulder-dash/doc/overview-summary.html new file mode 100644 index 00000000..0b42b67e --- /dev/null +++ b/boulder-dash/doc/overview-summary.html @@ -0,0 +1,150 @@ + + + + + +Overview + + + + + + + +
+ + + + + +
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Packages 
PackageDescription
fr.enssat.BoulderDash 
fr.enssat.BoulderDash.bridges 
fr.enssat.BoulderDash.controllers 
fr.enssat.BoulderDash.exceptions 
fr.enssat.BoulderDash.helpers 
fr.enssat.BoulderDash.models 
fr.enssat.BoulderDash.views 
+
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/overview-tree.html b/boulder-dash/doc/overview-tree.html new file mode 100644 index 00000000..9749a6b5 --- /dev/null +++ b/boulder-dash/doc/overview-tree.html @@ -0,0 +1,231 @@ + + + + + +Class Hierarchy + + + + + + + +
+ + + + + +
+ + +
+

Hierarchy For All Packages

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/package-list b/boulder-dash/doc/package-list new file mode 100644 index 00000000..ae1fd0e8 --- /dev/null +++ b/boulder-dash/doc/package-list @@ -0,0 +1,7 @@ +fr.enssat.BoulderDash +fr.enssat.BoulderDash.bridges +fr.enssat.BoulderDash.controllers +fr.enssat.BoulderDash.exceptions +fr.enssat.BoulderDash.helpers +fr.enssat.BoulderDash.models +fr.enssat.BoulderDash.views diff --git a/boulder-dash/doc/resources/background.gif b/boulder-dash/doc/resources/background.gif new file mode 100644 index 00000000..f471940f Binary files /dev/null and b/boulder-dash/doc/resources/background.gif differ diff --git a/boulder-dash/doc/resources/tab.gif b/boulder-dash/doc/resources/tab.gif new file mode 100644 index 00000000..1a73a83b Binary files /dev/null and b/boulder-dash/doc/resources/tab.gif differ diff --git a/boulder-dash/doc/resources/titlebar.gif b/boulder-dash/doc/resources/titlebar.gif new file mode 100644 index 00000000..17443b3e Binary files /dev/null and b/boulder-dash/doc/resources/titlebar.gif differ diff --git a/boulder-dash/doc/resources/titlebar_end.gif b/boulder-dash/doc/resources/titlebar_end.gif new file mode 100644 index 00000000..3ad78d46 Binary files /dev/null and b/boulder-dash/doc/resources/titlebar_end.gif differ diff --git a/boulder-dash/doc/serialized-form.html b/boulder-dash/doc/serialized-form.html new file mode 100644 index 00000000..9055d11a --- /dev/null +++ b/boulder-dash/doc/serialized-form.html @@ -0,0 +1,413 @@ + + + + + +Serialized Form + + + + + + + +
+ + + + + +
+ + +
+

Serialized Form

+
+
+ +
+ +
+ + + + + +
+ + + + diff --git a/boulder-dash/doc/stylesheet.css b/boulder-dash/doc/stylesheet.css new file mode 100644 index 00000000..0aeaa97f --- /dev/null +++ b/boulder-dash/doc/stylesheet.css @@ -0,0 +1,474 @@ +/* Javadoc style sheet */ +/* +Overall document style +*/ +body { + background-color:#ffffff; + color:#353833; + font-family:Arial, Helvetica, sans-serif; + font-size:76%; + margin:0; +} +a:link, a:visited { + text-decoration:none; + color:#4c6b87; +} +a:hover, a:focus { + text-decoration:none; + color:#bb7a2a; +} +a:active { + text-decoration:none; + color:#4c6b87; +} +a[name] { + color:#353833; +} +a[name]:hover { + text-decoration:none; + color:#353833; +} +pre { + font-size:1.3em; +} +h1 { + font-size:1.8em; +} +h2 { + font-size:1.5em; +} +h3 { + font-size:1.4em; +} +h4 { + font-size:1.3em; +} +h5 { + font-size:1.2em; +} +h6 { + font-size:1.1em; +} +ul { + list-style-type:disc; +} +code, tt { + font-size:1.2em; +} +dt code { + font-size:1.2em; +} +table tr td dt code { + font-size:1.2em; + vertical-align:top; +} +sup { + font-size:.6em; +} +/* +Document title and Copyright styles +*/ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:.8em; + z-index:200; + margin-top:-7px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + background-image:url(resources/titlebar.gif); + background-position:left top; + background-repeat:no-repeat; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* +Navigation bar styles +*/ +.bar { + background-image:url(resources/background.gif); + background-repeat:repeat-x; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:1em; + margin:0; +} +.topNav { + background-image:url(resources/background.gif); + background-repeat:repeat-x; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; +} +.bottomNav { + margin-top:10px; + background-image:url(resources/background.gif); + background-repeat:repeat-x; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; +} +.subNav { + background-color:#dee3e9; + border-bottom:1px solid #9eadc0; + float:left; + width:100%; + overflow:hidden; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding:3px 6px; +} +ul.subNavList li{ + list-style:none; + float:left; + font-size:90%; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; +} +.navBarCell1Rev { + background-image:url(resources/tab.gif); + background-color:#a88834; + color:#FFFFFF; + margin: auto 5px; + border:1px solid #c9aa44; +} +/* +Page header and footer styles +*/ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexHeader { + margin:10px; + position:relative; +} +.indexHeader h1 { + font-size:1.3em; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 25px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:1.2em; +} +/* +Heading styles +*/ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border-top:1px solid #9eadc0; + border-bottom:1px solid #9eadc0; + margin:0 0 6px -8px; + padding:2px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border-top:1px solid #9eadc0; + border-bottom:1px solid #9eadc0; + margin:0 0 6px -8px; + padding:2px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* +Page layout container styles +*/ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:1.0em; +} +.indexContainer h2 { + font-size:1.1em; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:1.1em; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:10px 0 10px 20px; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* +List styles +*/ +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:25px; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #9eadc0; + background-color:#f9f9f9; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:1px solid #9eadc0; + border-top:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; + border-bottom:1px solid #9eadc0; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* +Table styles +*/ +.contentContainer table, .classUseContainer table, .constantValuesContainer table { + border-bottom:1px solid #9eadc0; + width:100%; +} +.contentContainer ul li table, .classUseContainer ul li table, .constantValuesContainer ul li table { + width:100%; +} +.contentContainer .description table, .contentContainer .details table { + border-bottom:none; +} +.contentContainer ul li table th.colOne, .contentContainer ul li table th.colFirst, .contentContainer ul li table th.colLast, .classUseContainer ul li table th, .constantValuesContainer ul li table th, .contentContainer ul li table td.colOne, .contentContainer ul li table td.colFirst, .contentContainer ul li table td.colLast, .classUseContainer ul li table td, .constantValuesContainer ul li table td{ + vertical-align:top; + padding-right:20px; +} +.contentContainer ul li table th.colLast, .classUseContainer ul li table th.colLast,.constantValuesContainer ul li table th.colLast, +.contentContainer ul li table td.colLast, .classUseContainer ul li table td.colLast,.constantValuesContainer ul li table td.colLast, +.contentContainer ul li table th.colOne, .classUseContainer ul li table th.colOne, +.contentContainer ul li table td.colOne, .classUseContainer ul li table td.colOne { + padding-right:3px; +} +.overviewSummary caption, .packageSummary caption, .contentContainer ul.blockList li.blockList caption, .summary caption, .classUseContainer caption, .constantValuesContainer caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#FFFFFF; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + margin:0px; +} +caption a:link, caption a:hover, caption a:active, caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .packageSummary caption span, .contentContainer ul.blockList li.blockList caption span, .summary caption span, .classUseContainer caption span, .constantValuesContainer caption span { + white-space:nowrap; + padding-top:8px; + padding-left:8px; + display:block; + float:left; + background-image:url(resources/titlebar.gif); + height:18px; +} +.overviewSummary .tabEnd, .packageSummary .tabEnd, .contentContainer ul.blockList li.blockList .tabEnd, .summary .tabEnd, .classUseContainer .tabEnd, .constantValuesContainer .tabEnd { + width:10px; + background-image:url(resources/titlebar_end.gif); + background-repeat:no-repeat; + background-position:top right; + position:relative; + float:left; +} +ul.blockList ul.blockList li.blockList table { + margin:0 0 12px 0px; + width:100%; +} +.tableSubHeadingColor { + background-color: #EEEEFF; +} +.altColor { + background-color:#eeeeef; +} +.rowColor { + background-color:#ffffff; +} +.overviewSummary td, .packageSummary td, .contentContainer ul.blockList li.blockList td, .summary td, .classUseContainer td, .constantValuesContainer td { + text-align:left; + padding:3px 3px 3px 7px; +} +th.colFirst, th.colLast, th.colOne, .constantValuesContainer th { + background:#dee3e9; + border-top:1px solid #9eadc0; + border-bottom:1px solid #9eadc0; + text-align:left; + padding:3px 3px 3px 7px; +} +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { + font-weight:bold; +} +td.colFirst, th.colFirst { + border-left:1px solid #9eadc0; + white-space:nowrap; +} +td.colLast, th.colLast { + border-right:1px solid #9eadc0; +} +td.colOne, th.colOne { + border-right:1px solid #9eadc0; + border-left:1px solid #9eadc0; +} +table.overviewSummary { + padding:0px; + margin-left:0px; +} +table.overviewSummary td.colFirst, table.overviewSummary th.colFirst, +table.overviewSummary td.colOne, table.overviewSummary th.colOne { + width:25%; + vertical-align:middle; +} +table.packageSummary td.colFirst, table.overviewSummary th.colFirst { + width:25%; + vertical-align:middle; +} +/* +Content styles +*/ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} +/* +Formatting effect styles +*/ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:.9em; +} +.block { + display:block; + margin:3px 0 0 0; +} +.strong { + font-weight:bold; +} diff --git a/boulder-dash/gen/.gitkeep b/boulder-dash/gen/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/boulder-dash/libs/jl1.0.1.jar b/boulder-dash/libs/jl1.0.1.jar new file mode 100644 index 00000000..bd5fb8b8 Binary files /dev/null and b/boulder-dash/libs/jl1.0.1.jar differ diff --git a/boulder-dash/libs/junit-4.12.jar b/boulder-dash/libs/junit-4.12.jar new file mode 100644 index 00000000..3a7fc266 Binary files /dev/null and b/boulder-dash/libs/junit-4.12.jar differ diff --git a/boulder-dash/libs/scalatest_2.11-2.2.4.jar b/boulder-dash/libs/scalatest_2.11-2.2.4.jar new file mode 100644 index 00000000..8a9a90af Binary files /dev/null and b/boulder-dash/libs/scalatest_2.11-2.2.4.jar differ diff --git a/boulder-dash/res/audio/.gitkeep b/boulder-dash/res/audio/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/boulder-dash/res/audio/music/game.mp3 b/boulder-dash/res/audio/music/game.mp3 new file mode 100644 index 00000000..16e5cb0a Binary files /dev/null and b/boulder-dash/res/audio/music/game.mp3 differ diff --git a/boulder-dash/res/audio/sounds/coin.mp3 b/boulder-dash/res/audio/sounds/coin.mp3 new file mode 100644 index 00000000..b906a368 Binary files /dev/null and b/boulder-dash/res/audio/sounds/coin.mp3 differ diff --git a/boulder-dash/res/audio/sounds/die.mp3 b/boulder-dash/res/audio/sounds/die.mp3 new file mode 100644 index 00000000..5daef366 Binary files /dev/null and b/boulder-dash/res/audio/sounds/die.mp3 differ diff --git a/boulder-dash/res/audio/sounds/new.mp3 b/boulder-dash/res/audio/sounds/new.mp3 new file mode 100644 index 00000000..1817f1f8 Binary files /dev/null and b/boulder-dash/res/audio/sounds/new.mp3 differ diff --git a/boulder-dash/res/audio/sounds/touch.mp3 b/boulder-dash/res/audio/sounds/touch.mp3 new file mode 100644 index 00000000..e8a94eda Binary files /dev/null and b/boulder-dash/res/audio/sounds/touch.mp3 differ diff --git a/boulder-dash/res/drawable/.gitkeep b/boulder-dash/res/drawable/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/boulder-dash/res/drawable/app/app_icon.png b/boulder-dash/res/drawable/app/app_icon.png new file mode 100644 index 00000000..f3e08252 Binary files /dev/null and b/boulder-dash/res/drawable/app/app_icon.png differ diff --git a/boulder-dash/res/drawable/app/menu_actual.jpg b/boulder-dash/res/drawable/app/menu_actual.jpg new file mode 100644 index 00000000..71d11323 Binary files /dev/null and b/boulder-dash/res/drawable/app/menu_actual.jpg differ diff --git a/boulder-dash/res/drawable/app/menu_large.jpg b/boulder-dash/res/drawable/app/menu_large.jpg new file mode 100644 index 00000000..9cc1165e Binary files /dev/null and b/boulder-dash/res/drawable/app/menu_large.jpg differ diff --git a/boulder-dash/res/drawable/field/amoeba.gif b/boulder-dash/res/drawable/field/amoeba.gif new file mode 100644 index 00000000..cdb4218e Binary files /dev/null and b/boulder-dash/res/drawable/field/amoeba.gif differ diff --git a/boulder-dash/res/drawable/field/black.gif b/boulder-dash/res/drawable/field/black.gif new file mode 100644 index 00000000..cac0b1af Binary files /dev/null and b/boulder-dash/res/drawable/field/black.gif differ diff --git a/boulder-dash/res/drawable/field/boulder.gif b/boulder-dash/res/drawable/field/boulder.gif new file mode 100644 index 00000000..7d148299 Binary files /dev/null and b/boulder-dash/res/drawable/field/boulder.gif differ diff --git a/boulder-dash/res/drawable/field/brickwall.gif b/boulder-dash/res/drawable/field/brickwall.gif new file mode 100644 index 00000000..c59231c5 Binary files /dev/null and b/boulder-dash/res/drawable/field/brickwall.gif differ diff --git a/boulder-dash/res/drawable/field/butterfly.gif b/boulder-dash/res/drawable/field/butterfly.gif new file mode 100644 index 00000000..6631458a Binary files /dev/null and b/boulder-dash/res/drawable/field/butterfly.gif differ diff --git a/boulder-dash/res/drawable/field/cursor.gif b/boulder-dash/res/drawable/field/cursor.gif new file mode 100644 index 00000000..35a40262 Binary files /dev/null and b/boulder-dash/res/drawable/field/cursor.gif differ diff --git a/boulder-dash/res/drawable/field/diamond.gif b/boulder-dash/res/drawable/field/diamond.gif new file mode 100644 index 00000000..ca9190eb Binary files /dev/null and b/boulder-dash/res/drawable/field/diamond.gif differ diff --git a/boulder-dash/res/drawable/field/dirt.gif b/boulder-dash/res/drawable/field/dirt.gif new file mode 100644 index 00000000..514b4862 Binary files /dev/null and b/boulder-dash/res/drawable/field/dirt.gif differ diff --git a/boulder-dash/res/drawable/field/door.gif b/boulder-dash/res/drawable/field/door.gif new file mode 100644 index 00000000..61993cb7 Binary files /dev/null and b/boulder-dash/res/drawable/field/door.gif differ diff --git a/boulder-dash/res/drawable/field/expandingwall.gif b/boulder-dash/res/drawable/field/expandingwall.gif new file mode 100644 index 00000000..7d2cf81f Binary files /dev/null and b/boulder-dash/res/drawable/field/expandingwall.gif differ diff --git a/boulder-dash/res/drawable/field/firefly.gif b/boulder-dash/res/drawable/field/firefly.gif new file mode 100644 index 00000000..323ad767 Binary files /dev/null and b/boulder-dash/res/drawable/field/firefly.gif differ diff --git a/boulder-dash/res/drawable/field/magicwall.gif b/boulder-dash/res/drawable/field/magicwall.gif new file mode 100644 index 00000000..76ec1bd2 Binary files /dev/null and b/boulder-dash/res/drawable/field/magicwall.gif differ diff --git a/boulder-dash/res/drawable/field/rockford.gif b/boulder-dash/res/drawable/field/rockford.gif new file mode 100644 index 00000000..3a3fce47 Binary files /dev/null and b/boulder-dash/res/drawable/field/rockford.gif differ diff --git a/boulder-dash/res/drawable/field/steelwall.gif b/boulder-dash/res/drawable/field/steelwall.gif new file mode 100644 index 00000000..7d2cf81f Binary files /dev/null and b/boulder-dash/res/drawable/field/steelwall.gif differ diff --git a/boulder-dash/res/levels/level01.xml b/boulder-dash/res/levels/level01.xml new file mode 100644 index 00000000..c27ae817 --- /dev/null +++ b/boulder-dash/res/levels/level01.xml @@ -0,0 +1,2 @@ + +Unknown Level Name0000-00-00/00:00:000000-00-00/00:00:002525 \ No newline at end of file diff --git a/boulder-dash/res/levels/level02.xml b/boulder-dash/res/levels/level02.xml new file mode 100644 index 00000000..91b33a93 --- /dev/null +++ b/boulder-dash/res/levels/level02.xml @@ -0,0 +1,2 @@ + +Unknown Level Name0000-00-00/00:00:000000-00-00/00:00:002525 \ No newline at end of file diff --git a/boulder-dash/res/levels/level03.xml b/boulder-dash/res/levels/level03.xml new file mode 100644 index 00000000..44772e21 --- /dev/null +++ b/boulder-dash/res/levels/level03.xml @@ -0,0 +1,2 @@ + +Unknown Level Name0000-00-00/00:00:000000-00-00/00:00:002525 \ No newline at end of file diff --git a/boulder-dash/res/levels/level04.xml b/boulder-dash/res/levels/level04.xml new file mode 100644 index 00000000..59606acf --- /dev/null +++ b/boulder-dash/res/levels/level04.xml @@ -0,0 +1,2 @@ + +Unknown Level Name0000-00-00/00:00:000000-00-00/00:00:002525 \ No newline at end of file diff --git a/boulder-dash/res/levels/level05.xml b/boulder-dash/res/levels/level05.xml new file mode 100644 index 00000000..18232bce --- /dev/null +++ b/boulder-dash/res/levels/level05.xml @@ -0,0 +1,2 @@ + +Unknown Level Name0000-00-00/00:00:000000-00-00/00:00:002525 \ No newline at end of file diff --git a/boulder-dash/specs/images/app_icon.pxm b/boulder-dash/specs/images/app_icon.pxm new file mode 100644 index 00000000..e303b2cf Binary files /dev/null and b/boulder-dash/specs/images/app_icon.pxm differ diff --git a/boulder-dash/specs/level-structure/level01.xml b/boulder-dash/specs/level-structure/level01.xml new file mode 100644 index 00000000..c0df7ae0 --- /dev/null +++ b/boulder-dash/specs/level-structure/level01.xml @@ -0,0 +1,992 @@ + + + Level 1 + + + 2015-05-19/15:15:20 + 2015-05-19/15:15:20 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boulder-dash/specs/references/Boulder Dash (U) 2015-05-19 16.10.16.png b/boulder-dash/specs/references/Boulder Dash (U) 2015-05-19 16.10.16.png new file mode 100644 index 00000000..739d8218 Binary files /dev/null and b/boulder-dash/specs/references/Boulder Dash (U) 2015-05-19 16.10.16.png differ diff --git a/boulder-dash/specs/references/Boulder Dash (U) 2015-05-19 16.10.27.png b/boulder-dash/specs/references/Boulder Dash (U) 2015-05-19 16.10.27.png new file mode 100644 index 00000000..bd41d1b1 Binary files /dev/null and b/boulder-dash/specs/references/Boulder Dash (U) 2015-05-19 16.10.27.png differ diff --git a/boulder-dash/specs/references/Boulder Dash (U) 2015-05-19 16.10.38.png b/boulder-dash/specs/references/Boulder Dash (U) 2015-05-19 16.10.38.png new file mode 100644 index 00000000..98f893d4 Binary files /dev/null and b/boulder-dash/specs/references/Boulder Dash (U) 2015-05-19 16.10.38.png differ diff --git a/boulder-dash/src/fr/enssat/BoulderDash/Game.java b/boulder-dash/src/fr/enssat/BoulderDash/Game.java new file mode 100644 index 00000000..7c77c46c --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/Game.java @@ -0,0 +1,29 @@ +package fr.enssat.BoulderDash; + +import fr.enssat.BoulderDash.controllers.NavigationBetweenViewController; + +import javax.swing.*; + + +/** + * Game + * + * Spawns the game. + * + * @author Valerian Saliou + * @since 2015-06-19 + */ +public class Game { + /** + * Class constructor + * + * @param args Command-line arguments + */ + public static void main(String[] args) { + SwingUtilities.invokeLater(new Runnable() { + public void run() { + new NavigationBetweenViewController(); + } + }); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundJLayerBridge.java b/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundJLayerBridge.java new file mode 100644 index 00000000..e1088119 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/bridges/SoundJLayerBridge.java @@ -0,0 +1,76 @@ +package fr.enssat.BoulderDash.bridges; + +import java.net.URL; + +import javazoom.jl.player.advanced.*; +import javazoom.jl.decoder.JavaLayerException; +import javazoom.jl.player.FactoryRegistry; + +/** + * SoundJLayerBridge + * + * Sound bridge to the JLayer library. + * + * @author Valerian Saliou + * @since 2015-06-19 + */ +public class SoundJLayerBridge extends PlaybackListener implements Runnable { + private String filePath; + private AdvancedPlayer player; + private Thread playerThread; + + /** + * Class constructor + * + * @param filePath File path to sound file + */ + public SoundJLayerBridge(String filePath) { + this.filePath = filePath; + } + + /** + * Play the target sound + */ + public void play() { + try { + String urlAsString = "file:///" + + new java.io.File(".").getCanonicalPath() + + "/" + + this.filePath; + + this.player = new AdvancedPlayer( + new URL(urlAsString).openStream(), + FactoryRegistry.systemRegistry().createAudioDevice() + ); + + this.player.setPlayBackListener(this); + + this.playerThread = new Thread(this, "AudioPlayerThread"); + this.playerThread.start(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + /** + * Stops the target sound + */ + public void stop() { + try { + this.playerThread.stop(); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + + /** + * Runs the player thread + */ + public void run() { + try { + this.player.play(); + } catch (JavaLayerException ex) { + ex.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/controllers/BoulderAndDiamondController.java b/boulder-dash/src/fr/enssat/BoulderDash/controllers/BoulderAndDiamondController.java new file mode 100644 index 00000000..656481ff --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/controllers/BoulderAndDiamondController.java @@ -0,0 +1,164 @@ +package fr.enssat.BoulderDash.controllers; + +import fr.enssat.BoulderDash.models.LevelModel; +import fr.enssat.BoulderDash.models.DirtModel; +import fr.enssat.BoulderDash.models.DisplayableElementModel; +import fr.enssat.BoulderDash.helpers.AudioLoadHelper; + +/** + * ElementPositionUpdateHelper + * + * Updates position of all elements displayed on the map, according to their + * next potential position. Each object has a weight, which is used to compare + * their power to destroy in the food chain. Sorry for that Darwinism. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class BoulderAndDiamondController implements Runnable { + private LevelModel levelModel; + private AudioLoadHelper audioLoadHelper; + private Thread elementMovingThread; + + /** + * Class constructor + * + * @param levelModel Level model + */ + public BoulderAndDiamondController(LevelModel levelModel, AudioLoadHelper audioLoadHelper) { + this.levelModel = levelModel; + this.audioLoadHelper = audioLoadHelper; + + // Start thread + this.elementMovingThread = new Thread(this); + this.elementMovingThread.start(); + } + + /** + * Watches for elements to be moved + */ + public void run() { + while (this.levelModel.isGameRunning()) { + if(!this.levelModel.getGamePaused()){ + this.manageFallingObject(); + } + try { + Thread.sleep(250); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + /** + * Scan the ground to detect the boulders & the diamonds, then make them + * fall if necessary + * Note: scan of the ground upside down: we want things to fall slowly ! + */ + private void manageFallingObject() { + for (int x = this.levelModel.getSizeWidth() - 1; x >= 0; x--) { + for (int y = this.levelModel.getSizeHeight() - 1; y >= 0; y--) { + // Gets the spriteName of actual DisplayableElementModel object scanned + DisplayableElementModel elementModel = this.levelModel.getGroundLevelModel()[x][y]; + + if(elementModel == null) { + elementModel = new DirtModel(); + } + + String spriteName = elementModel.getSpriteName(); + + // If it is a boulder or a diamond... + if (spriteName == "boulder" || spriteName == "diamond") { + this.manageFall(x, y); + } else if(spriteName == "expandingwall"){ + if(this.expandWall(x,y).equals("left")){ + x -= 1; + } + } + } + } + } + + /** + * Expand the wall at left & right + * + * @param x Horizontal position + * @param y Vertical position + */ + private String expandWall(int x, int y) { + DisplayableElementModel elementLeft = this.levelModel.getGroundLevelModel()[x - 1][y]; + DisplayableElementModel elementRight = this.levelModel.getGroundLevelModel()[x + 1][y]; + String spriteNameLeft = elementLeft.getSpriteName(); + String spriteNameRight = elementRight.getSpriteName(); + + String way = ""; + if(spriteNameLeft == "black"){ + this.levelModel.expandThisWallToLeft(x,y); + way = "left"; + } + if(spriteNameRight == "black"){ + this.levelModel.expandThisWallToRight(x,y); + way = "right"; + } + return way; + } + + /** + * Manages the fall of elements + * + * @param x Horizontal position + * @param y Vertical position + */ + private void manageFall(int x, int y) { + // Get informed about Rockford surroundings + DisplayableElementModel elementBelow = this.levelModel.getGroundLevelModel()[x][y + 1]; + DisplayableElementModel elementLeft = this.levelModel.getGroundLevelModel()[x - 1][y]; + DisplayableElementModel elementRight = this.levelModel.getGroundLevelModel()[x + 1][y]; + + String spriteNameBelow = elementBelow.getSpriteName(); + String spriteNameLeft = elementLeft.getSpriteName(); + String spriteNameRight = elementRight.getSpriteName(); + + // Then, process in case of the surrounding + if (spriteNameBelow == "black") { + this.levelModel.makeThisDisplayableElementFall(x, y); + } else if (spriteNameBelow == "boulder") { + // Boulders have to roll if they hit another boulder + if (this.levelModel.getGroundLevelModel()[x - 1][y + 1].getSpriteName() == "black") { + this.levelModel.makeThisBoulderSlideLeft(x, y); + } else if (this.levelModel.getGroundLevelModel()[x + 1][y + 1].getSpriteName() == "black") { + this.levelModel.makeThisBoulderSlideRight(x, y); + } + } else if (spriteNameBelow == "rockford" && this.levelModel.getGroundLevelModel()[x][y].isFalling()) { + this.levelModel.exploseGround(x, y + 1); + + this.audioLoadHelper.playSound("die"); + + try { + Thread.sleep(25); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + this.levelModel.setGameRunning(false); + } else if (spriteNameBelow == "magicwall") { + if (this.levelModel.getGroundLevelModel()[x][y].getSpriteName() == "boulder" + && (this.levelModel.getGroundLevelModel()[x][y+2].getSpriteName() == "dirt" || + this.levelModel.getGroundLevelModel()[x][y+2].getSpriteName() == "black")) { + if(this.levelModel.getGroundLevelModel()[x][y].isConvertible()) { + this.levelModel.transformThisBoulderIntoADiamond(x, y); + } else { + this.levelModel.deleteThisBoulder(x, y); + } + } + } else if (elementBelow.isDestructible() && spriteNameBelow != "dirt" && this.levelModel.getGroundLevelModel()[x][y].isFalling()) { + this.levelModel.exploseThisBrickWall(x, y); + } else if (spriteNameLeft == "rockford" && this.levelModel.getRockford().isRunningRight() && this.levelModel.getGroundLevelModel()[x + 1][y].getSpriteName() == "black") { + this.levelModel.moveThisBoulderToRight(x, y); + } else if (spriteNameRight == "rockford" && this.levelModel.getRockford().isRunningLeft() && this.levelModel.getGroundLevelModel()[x - 1][y].getSpriteName() == "black") { + this.levelModel.moveThisBoulderToLeft(x, y); + } else { + this.levelModel.getGroundLevelModel()[x][y].setFalling(false); + } + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/controllers/GameController.java b/boulder-dash/src/fr/enssat/BoulderDash/controllers/GameController.java new file mode 100644 index 00000000..2a921c9c --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/controllers/GameController.java @@ -0,0 +1,119 @@ +package fr.enssat.BoulderDash.controllers; + +import fr.enssat.BoulderDash.models.LevelModel; +import fr.enssat.BoulderDash.helpers.AudioLoadHelper; +import fr.enssat.BoulderDash.controllers.NavigationBetweenViewController; +import fr.enssat.BoulderDash.views.MenuView; +import fr.enssat.BoulderDash.views.GameView; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + + +/** + * GameController + * + * This system creates the view. + * The game loop is also handled there. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class GameController implements ActionListener { + private LevelModel levelModel; + private AudioLoadHelper audioLoadHelper; + private boolean firstClickOnPause; + private MenuView menuView; + private GameView gameView; + private NavigationBetweenViewController navigationBetweenViewController; + + /** + * Class constructor + * + * @param levelModel Level model + * @param navigationBetweenViewController + */ + public GameController(LevelModel levelModel, AudioLoadHelper audioLoadHelper, NavigationBetweenViewController navigationBetweenViewController) { + this.firstClickOnPause = true; + + this.navigationBetweenViewController = navigationBetweenViewController; + + this.levelModel = levelModel; + this.audioLoadHelper = audioLoadHelper; + this.gameView = new GameView(this, levelModel); + this.menuView = navigationBetweenViewController.getMenuView(); + + this.getAudioLoadHelper().stopMusic(); + this.getAudioLoadHelper().playSound("new"); + } + + /** + * Handles the 'action performed' event + * + * @param event Action event + */ + public void actionPerformed(ActionEvent event) { + switch(event.getActionCommand()) { + case "pause": + if(this.firstClickOnPause) { + this.levelModel.setGamePaused(true); + } else if(!this.firstClickOnPause) { + this.levelModel.setGamePaused(false); + } + + this.firstClickOnPause = !this.firstClickOnPause; + this.gameView.getGameFieldView().grabFocus(); + break; + + case "restart": + this.resetGame("restart"); + this.getAudioLoadHelper().playSound("new"); + this.gameView.getGameFieldView().grabFocus(); + break; + + case "menu": + this.menuView.setVisible(true); + this.getAudioLoadHelper().startMusic("game"); + this.resetGame("menu"); + break; + } + } + + /** + * Function to reset the game + */ + private void resetGame(String source) { + this.gameView.dispose(); + + if(source.equals("restart")){ + this.levelModel = new LevelModel(this.navigationBetweenViewController.getPickedLevelIdentifier(), audioLoadHelper); + this.gameView = new GameView(this, levelModel); + this.gameView.setVisible(true); + } + } + + /** + * Gets the audio load helper instance + * + * @return Audio load helper instance + */ + public AudioLoadHelper getAudioLoadHelper() { + return this.audioLoadHelper; + } + + /** + * Return the game view + * @return gameView + */ + public GameView getGameView() { + return gameView; + } + + /** + * Set the gameView + * @param gameView + */ + public void setGameView(GameView gameView) { + this.gameView = gameView; + } +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/controllers/GameKeyController.java b/boulder-dash/src/fr/enssat/BoulderDash/controllers/GameKeyController.java new file mode 100644 index 00000000..a7821b1d --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/controllers/GameKeyController.java @@ -0,0 +1,109 @@ +package fr.enssat.BoulderDash.controllers; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; +import fr.enssat.BoulderDash.models.LevelModel; +import fr.enssat.BoulderDash.controllers.RockfordUpdateController; +import fr.enssat.BoulderDash.controllers.BoulderAndDiamondController; +import fr.enssat.BoulderDash.helpers.AudioLoadHelper; + +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; + + +/** + * GameKeyController + * + * Manages the key events controller. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class GameKeyController implements KeyListener { + private LevelModel levelModel; + private RockfordUpdateController updatePosRockford; + /** + * Class constructor + * + * @param levelModel Level model + */ + public GameKeyController(LevelModel levelModel, AudioLoadHelper audioLoadHelper) { + this.levelModel = levelModel; + new BoulderAndDiamondController(levelModel, audioLoadHelper); + this.updatePosRockford = new RockfordUpdateController(levelModel); + } + + /** + * Handles the 'key pressed' event + * + * @param e Key event + */ + public void keyPressed(KeyEvent e) { + int keyCode = e.getKeyCode(); + + switch (keyCode) { + // Direction: UP + case KeyEvent.VK_UP: + DisplayableElementModel upElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX()][levelModel.getRockfordPositionY() - 1]; + + if (upElement.getPriority() < levelModel.getRockford().getPriority()) { + this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX(), levelModel.getRockfordPositionY() - 1); + this.levelModel.getRockford().startRunningUp(); + } + + break; + + // Direction: DOWN + case KeyEvent.VK_DOWN: + DisplayableElementModel downElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX()][levelModel.getRockfordPositionY() + 1]; + + if (downElement.getPriority() < levelModel.getRockford().getPriority()) { + this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX(), levelModel.getRockfordPositionY() + 1); + this.levelModel.getRockford().startRunningDown(); + } + + break; + + // Direction: LEFT + case KeyEvent.VK_LEFT: + DisplayableElementModel leftElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX() - 1][levelModel.getRockfordPositionY()]; + + if (leftElement.getPriority() < levelModel.getRockford().getPriority()) { + this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX() - 1, levelModel.getRockfordPositionY()); + this.levelModel.getRockford().startRunningLeft(); + } + + break; + + // Direction: RIGHT + case KeyEvent.VK_RIGHT: + DisplayableElementModel rightElement = levelModel.getGroundLevelModel()[levelModel.getRockfordPositionX() + 1][levelModel.getRockfordPositionY()]; + + if (rightElement.getPriority() < levelModel.getRockford().getPriority()) { + this.updatePosRockford.moveRockford(levelModel.getRockfordPositionX() + 1, levelModel.getRockfordPositionY()); + this.levelModel.getRockford().startRunningRight(); + } + + break; + } + } + + /** + * Handles the 'key released' event + * + * @param e Key event + */ + @Override + public void keyReleased(KeyEvent e) { + this.levelModel.getRockford().startStaying(); + } + + /** + * Handles the 'key typed' event + * + * @param e Key event + */ + @Override + public void keyTyped(KeyEvent e) { + // Do nothing. + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/controllers/LevelEditorController.java b/boulder-dash/src/fr/enssat/BoulderDash/controllers/LevelEditorController.java new file mode 100644 index 00000000..c5a7a410 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/controllers/LevelEditorController.java @@ -0,0 +1,143 @@ +package fr.enssat.BoulderDash.controllers; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import fr.enssat.BoulderDash.exceptions.LevelConstraintNotRespectedException; +import fr.enssat.BoulderDash.helpers.LevelRemoveHelper; +import fr.enssat.BoulderDash.helpers.LevelSaveHelper; +import fr.enssat.BoulderDash.models.LevelModel; +import fr.enssat.BoulderDash.views.HelpView; +import fr.enssat.BoulderDash.views.LevelEditorView; +import fr.enssat.BoulderDash.controllers.NavigationBetweenViewController; + +import javax.swing.*; + +/** + * LevelEditorController + * + * Manages the level editor controller. + * + * @author Valerian Saliou + * @since 2015-06-19 + */ +public class LevelEditorController implements ActionListener { + private LevelModel levelModel; + private LevelEditorView levelEditorView; + private NavigationBetweenViewController nav; + + /** + * Class constructor' + * + * @param levelModel Level model + */ + public LevelEditorController(LevelModel levelModel, NavigationBetweenViewController nav) { + this.levelModel = levelModel; + this.levelModel.setShowCursor(true); + + this.nav = nav; + this.nav.getAudioLoadHelper().stopMusic(); + + this.levelEditorView = new LevelEditorView(this, levelModel, nav); + + // Pre-bind event watcher (hack to fix a Java issue) + this.levelModel.decrementCursorXPosition(); + } + + /** + * Handles the 'action performed' event + * + * @param event Action event + */ + public void actionPerformed(ActionEvent event) { + switch(event.getActionCommand()) { + case "menu": + this.levelEditorView.setVisible(false); + this.nav.setMenuView(); + this.nav.getAudioLoadHelper().startMusic("game"); + + break; + + case "save": + // Check constraints + try { + this.levelModel.checkConstraints(); + + // Save action (direct save) + String levelId = this.levelEditorView.getSelectedLevel(); + LevelSaveHelper levelSave; + + if(levelId == null || levelId.isEmpty()) { + // Create a new level + levelSave = new LevelSaveHelper(levelModel.getGroundLevelModel()); + } else { + // Overwrite existing level + levelSave = new LevelSaveHelper(levelId, levelModel.getGroundLevelModel()); + } + + JFrame frameDialog = new JFrame("Info"); + JOptionPane.showMessageDialog(frameDialog, "Level saved"); + + this.levelEditorView.openedLevelChange(levelSave.getLevelId()); + } catch(LevelConstraintNotRespectedException e) { + JFrame frameDialog = new JFrame("Error"); + JOptionPane.showMessageDialog(frameDialog, e.getMessage()); + } + + break; + + case "delete": + String levelId = this.levelEditorView.getSelectedLevel(); + JFrame frameDialog = new JFrame("Info"); + + if(levelId == null || levelId.isEmpty()) { + JOptionPane.showMessageDialog(frameDialog, "Level not yet saved, no need to delete it!"); + } else { + new LevelRemoveHelper(levelId); + JOptionPane.showMessageDialog(frameDialog, "Level deleted!"); + + this.levelEditorView.openedLevelChange(null); + } + break; + + case "help": + new HelpView(); + break; + + case "new": + this.levelEditorView.openedLevelChange(null); + break; + } + + this.getLevelEditorView().getLevelEditorGroundView().grabFocus(); + } + + /** + * Gets the level editor view + * + * @return Level editor view + */ + public LevelEditorView getLevelEditorView() { + return levelEditorView; + } + + /** + * Gets level model + * + * @return Level model + */ + public LevelModel getLevelModel() { + return this.levelModel; + } + + /** + * Sets the level editor view + * + * @param levelEditorView Level editor view + */ + public void setLevelEditorView(LevelEditorView levelEditorView) { + this.levelEditorView = levelEditorView; + } + + +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.java b/boulder-dash/src/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.java new file mode 100644 index 00000000..78f98d3f --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/controllers/LevelEditorKeyController.java @@ -0,0 +1,99 @@ +package fr.enssat.BoulderDash.controllers; + +import fr.enssat.BoulderDash.models.LevelModel; +import fr.enssat.BoulderDash.views.LevelEditorView; + +import java.awt.event.KeyEvent; +import java.awt.event.KeyListener; + + +/** + * LevelEditorKeyController + * + * Manages the key events controller. + * + * @author Valerian Saliou + * @since 2015-06-21 + */ +public class LevelEditorKeyController implements KeyListener { + private LevelModel levelModel; + private LevelEditorView levelEditorView; + private boolean capLocks; + + /** + * Class constructor + * + * @param levelModel Level model + * @param levelEditorView Level editor view + */ + public LevelEditorKeyController(LevelModel levelModel, LevelEditorView levelEditorView) { + this.levelModel = levelModel; + this.capLocks = false; + this.levelEditorView = levelEditorView; + } + + /** + * Handles the 'key pressed' event + * + * @param e Key event + */ + public void keyPressed(KeyEvent e) { + int keyCode = e.getKeyCode(); + + switch (keyCode) { + // Direction: UP + case KeyEvent.VK_UP: + this.levelModel.decrementCursorYPosition(); + break; + + // Direction: DOWN + case KeyEvent.VK_DOWN: + this.levelModel.incrementCursorYPosition(); + break; + + // Direction: LEFT + case KeyEvent.VK_LEFT: + this.levelModel.decrementCursorXPosition(); + break; + + // Direction: RIGHT + case KeyEvent.VK_RIGHT: + this.levelModel.incrementCursorXPosition(); + break; + + // Key: SPACE + case KeyEvent.VK_SPACE: + this.levelModel.triggerBlockChange(this.levelEditorView.getPickedBlockValue()); + break; + + case 16: + this.capLocks = !capLocks; + break; + } + + // Hold block change (quick edit) + if(capLocks) { + this.levelModel.triggerBlockChange(this.levelEditorView.getPickedBlockValue()); + } + } + + /** + * Handles the 'key released' event + * + * @param e Key event + */ + @Override + public void keyReleased(KeyEvent e) { + // Do nothing. + } + + /** + * Handles the 'key typed' event + * + * @param e Key event + */ + @Override + public void keyTyped(KeyEvent e) { + // Do nothing. + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/controllers/NavigationBetweenViewController.java b/boulder-dash/src/fr/enssat/BoulderDash/controllers/NavigationBetweenViewController.java new file mode 100644 index 00000000..db190f48 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/controllers/NavigationBetweenViewController.java @@ -0,0 +1,132 @@ +package fr.enssat.BoulderDash.controllers; + +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; + +import fr.enssat.BoulderDash.helpers.AudioLoadHelper; +import fr.enssat.BoulderDash.models.LevelModel; +import fr.enssat.BoulderDash.views.MenuView; +import fr.enssat.BoulderDash.controllers.LevelEditorController; +import fr.enssat.BoulderDash.controllers.GameController; + +/** + * Controller to navigate between the different views + * + * @author Colin Leverger + * + */ +public class NavigationBetweenViewController implements ActionListener { + private LevelEditorController levelEditorController; + private MenuView menuView; + private AudioLoadHelper audioLoadHelper; + private LevelModel levelModelForGame, levelModelForEditor; + private GameController gameController; + private String pickedLevelIdentifier; + + /** + * Class constructor + */ + public NavigationBetweenViewController() { + this.audioLoadHelper = new AudioLoadHelper(); + + // Play game music + this.getAudioLoadHelper().startMusic("game"); + + // Creation of the first view + this.menuView = new MenuView(this); + } + + /** + * Action performed event handler + * + * @param event Action event + */ + @Override + public void actionPerformed(ActionEvent event) { + switch (event.getActionCommand()) { + case "quit": + System.exit(0); + break; + + case "editor": + // New blank model for editor + this.levelModelForEditor = new LevelModel(audioLoadHelper); + this.levelEditorController = new LevelEditorController(this.levelModelForEditor, this); + + this.levelEditorController.getLevelEditorView().setVisible(true); + this.levelEditorController.getLevelEditorView().getLevelEditorGroundView().grabFocus(); + + if (gameController != null) { + this.gameController.getGameView().setVisible(false); + } + + break; + + case "game": + // Reinit the levelModelForGame... + pickedLevelIdentifier = this.menuView.getLevelIdentifier(); + + this.levelModelForGame = new LevelModel(pickedLevelIdentifier, audioLoadHelper); + this.gameController = new GameController(levelModelForGame, audioLoadHelper, this); + + if (levelEditorController != null) { + this.levelEditorController.getLevelEditorView().setVisible(false); + } + + this.gameController.getGameView().setVisible(true); + this.gameController.getGameView().getGameFieldView().grabFocus(); + + break; + } + + this.menuView.setVisible(false); + } + + /** + * Get the audio load helper + * + * @return Audio load helper + */ + public AudioLoadHelper getAudioLoadHelper() { + return this.audioLoadHelper; + } + + /** + * Get the first view + * + * @return First view + */ + public MenuView getMenuView() { + return this.menuView; + } + + /** + * Set the first view + * + * @param menuView + */ + public MenuView setMenuView() { + this.menuView = new MenuView(this); + return menuView; + } + + /** + * Get the pickedLevel + * + * @return pickedLevelIdentifier Picked level identifier + */ + public String getPickedLevelIdentifier() { + return pickedLevelIdentifier; + } + + /** + * Set the pickedLevelIdentifier + * + * @param pickedLevelIdentifier Picked level identifier + */ + public void setPickedLevelIdentifier(String pickedLevelIdentifier) { + this.pickedLevelIdentifier = pickedLevelIdentifier; + } + + +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/controllers/RockfordUpdateController.java b/boulder-dash/src/fr/enssat/BoulderDash/controllers/RockfordUpdateController.java new file mode 100644 index 00000000..c4ecd1ba --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/controllers/RockfordUpdateController.java @@ -0,0 +1,64 @@ +package fr.enssat.BoulderDash.controllers; + +import fr.enssat.BoulderDash.models.LevelModel; + +/** + * ElementPositionUpdateHelper + * + * Updates position of all elements displayed on the map, according to their + * next potential position. Each object has a weight, which is used to compare + * their power to destroy in the food chain. Sorry for that Darwinism. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class RockfordUpdateController implements Runnable { + private LevelModel levelModel; + private Thread elementMovingThread; + private int rockfordPositionX; + private int rockfordPositionY; + private boolean rockfordHasMoved; + + /** + * Class constructor + * + * @param levelModel Level model + */ + public RockfordUpdateController(LevelModel levelModel) { + this.levelModel = levelModel; + this.elementMovingThread = new Thread(this); + this.elementMovingThread.start(); + this.rockfordHasMoved = false; + } + + /** + * Watches for elements to be moved + */ + public void run() { + while (this.levelModel.isGameRunning()) { + if(!this.levelModel.getGamePaused()){ + if (this.rockfordHasMoved) { + this.levelModel.setPositionOfRockford(rockfordPositionX, rockfordPositionY); + this.rockfordHasMoved = false; + } + } + try { + Thread.sleep(100); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + /** + * Moves Rockford + * + * @param rockfordPositionX Next horizontal position on the grid + * @param rockfordPositionY Next vertical position on the grid + */ + public void moveRockford(int rockfordPositionX, int rockfordPositionY) { + this.rockfordPositionX = rockfordPositionX; + this.rockfordPositionY = rockfordPositionY; + this.rockfordHasMoved = true; + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/exceptions/LevelConstraintNotRespectedException.java b/boulder-dash/src/fr/enssat/BoulderDash/exceptions/LevelConstraintNotRespectedException.java new file mode 100644 index 00000000..a0f65401 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/exceptions/LevelConstraintNotRespectedException.java @@ -0,0 +1,22 @@ +package fr.enssat.BoulderDash.exceptions; + + +/** + * LevelConstraintNotRespectedException + * + * Raises an 'LevelConstraintNotRespectedException' exception. + * Given the exception message. + * + * @author Valerian Saliou + * @since 2015-06-24 + */ +public class LevelConstraintNotRespectedException extends Exception { + /** + * Class constructor + * + * @param message Exception backtrace message + */ + public LevelConstraintNotRespectedException(String message) { + super(message); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/exceptions/ModelNotReadyException.java b/boulder-dash/src/fr/enssat/BoulderDash/exceptions/ModelNotReadyException.java new file mode 100644 index 00000000..556ed8aa --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/exceptions/ModelNotReadyException.java @@ -0,0 +1,22 @@ +package fr.enssat.BoulderDash.exceptions; + + +/** + * ModelNotReadyException + * + * Raises an 'ModelNotReadyException' exception. + * Given the exception message. + * + * @author Valerian Saliou + * @since 2015-06-23 + */ +public class ModelNotReadyException extends Exception { + /** + * Class constructor + * + * @param message Exception backtrace message + */ + public ModelNotReadyException(String message) { + super(message); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/exceptions/UnknownModelException.java b/boulder-dash/src/fr/enssat/BoulderDash/exceptions/UnknownModelException.java new file mode 100644 index 00000000..84fa390d --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/exceptions/UnknownModelException.java @@ -0,0 +1,22 @@ +package fr.enssat.BoulderDash.exceptions; + + +/** + * UnknownModelException + * + * Raises an 'UnknownSpriteException' exception. + * Given the exception message. + * + * @author Valerian Saliou + * @since 2015-06-19 + */ +public class UnknownModelException extends Exception { + /** + * Class constructor + * + * @param message Exception backtrace message + */ + public UnknownModelException(String message) { + super(message); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/helpers/AudioLoadHelper.java b/boulder-dash/src/fr/enssat/BoulderDash/helpers/AudioLoadHelper.java new file mode 100644 index 00000000..bcfc6435 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/helpers/AudioLoadHelper.java @@ -0,0 +1,109 @@ +package fr.enssat.BoulderDash.helpers; + +import fr.enssat.BoulderDash.bridges.SoundJLayerBridge; + +import java.io.File; +import java.io.FilenameFilter; +import java.util.HashMap; + +/** + * AudioLoadHelper + * + * Manages audio + * + * @author Valerian Saliou + * @since 2015-06-19 + */ +public class AudioLoadHelper { + private static String pathToAudioStore = "./res/audio"; + + private SoundJLayerBridge musicToPlay; + private HashMap preloadedSounds; + + /** + * Class constructor + */ + public AudioLoadHelper() { + this.preloadSounds(); + } + + /** + * Gets music storage path + * + * @param musicId Music identifier + * @return Music path, with file extension + */ + private String getMusicPathInAudioStore(String musicId) { + return AudioLoadHelper.pathToAudioStore + "/music/" + musicId + ".mp3"; + } + + /** + * Starts game music + * + * @param musicId Music identifier + */ + public void startMusic(String musicId) { + if(this.musicToPlay != null) { + this.stopMusic(); + } + + this.musicToPlay = new SoundJLayerBridge( + this.getMusicPathInAudioStore(musicId) + ); + this.musicToPlay.play(); + } + + /** + * Stops game music + */ + public void stopMusic() { + this.musicToPlay.stop(); + } + + /** + * Preloads available sounds + */ + private void preloadSounds() { + // Initialize + String curSoundIdPrep; + this.preloadedSounds = new HashMap(); + + // List sound files + File soundsDir = new File(AudioLoadHelper.pathToAudioStore + "/sounds/"); + File [] soundFiles = soundsDir.listFiles(new FilenameFilter() { + @Override + public boolean accept(File dir, String name) { + return name.endsWith(".mp3"); + } + }); + + // Cache them all! + for (File curSoundId : soundFiles) { + curSoundIdPrep = curSoundId.getName(); + curSoundIdPrep = curSoundIdPrep.substring(0, curSoundIdPrep.lastIndexOf('.')); + + this.preloadedSounds.put(curSoundIdPrep, new SoundJLayerBridge( + curSoundId.getPath() + )); + } + } + + /** + * Gets a preloaded sound + * + * @param soundId Sound identifier + * @return Preloaded sound instance + */ + private SoundJLayerBridge getPreloadedSound(String soundId) { + return this.preloadedSounds.get(soundId); + } + + /** + * Plays a sound + * + * @param soundId Sound identifier + */ + public void playSound(String soundId) { + this.getPreloadedSound(soundId).play(); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/helpers/LevelLoadHelper.java b/boulder-dash/src/fr/enssat/BoulderDash/helpers/LevelLoadHelper.java new file mode 100644 index 00000000..ac24e653 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/helpers/LevelLoadHelper.java @@ -0,0 +1,477 @@ +package fr.enssat.BoulderDash.helpers; + +import fr.enssat.BoulderDash.exceptions.UnknownModelException; + +import fr.enssat.BoulderDash.helpers.ModelConvertHelper; +import fr.enssat.BoulderDash.models.ExpandingWallModel; +import fr.enssat.BoulderDash.models.RockfordModel; +import fr.enssat.BoulderDash.models.DisplayableElementModel; +import fr.enssat.BoulderDash.models.EmptyModel; +import fr.enssat.BoulderDash.models.BrickWallModel; +import fr.enssat.BoulderDash.models.BoulderModel; +import fr.enssat.BoulderDash.models.DiamondModel; +import fr.enssat.BoulderDash.models.DirtModel; +import fr.enssat.BoulderDash.models.MagicWallModel; +import fr.enssat.BoulderDash.models.SteelWallModel; + +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathConstants; +import javax.xml.xpath.XPathExpressionException; +import javax.xml.xpath.XPathFactory; + +import java.io.IOException; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; + + +/** + * LevelLoadHelper + * + * Proceeds level load routine + * Able to deserialize level data from storage, and format it to + * internal representation To be used as a data factory from level + * model classes + * + * @author Valerian Saliou + * @since 2015-06-19 + */ +public class LevelLoadHelper { + private static String pathToDataStore = "./res/levels"; + private String levelId = null; + private Document levelDOM; + private XPath xpathBuilder; + private SimpleDateFormat dateFormatter; + + // Parsed values + private String nameValue = null; + private Date dateCreatedValue = null; + private Date dateModifiedValue = null; + + private int widthSizeValue = 0; + private int heightSizeValue = 0; + private int limitsWidth = 2; + private int limitsHeight = 2; + private int limitsOffsetWidth = 1; + private int limitsOffsetHeight = 1; + + private RockfordModel rockfordInstance; + private int rockfordPositionX = 0; + private int rockfordPositionY = 0; + + private int diamondsToCatch; + + private DisplayableElementModel[][] groundGrid; + + /** + * Class constructor + * + * @param levelId Level identifier + */ + public LevelLoadHelper(String levelId) { + this.setLevelId(levelId); + this.diamondsToCatch = 0; + + // Requirements + this.dateFormatter = new SimpleDateFormat("yyy-MM-dd/HH:mm:ss", Locale.ENGLISH); + + if (this.levelId != null) { + // Let's go. + this.loadLevelData(); + } + } + + /** + * Gets level storage path + * + * @return Level path, with file extension + */ + private String getLevelPathInDataStore() { + return this.pathToDataStore + "/" + this.getLevelId() + ".xml"; + } + + /** + * Loads the level data into instance data space + */ + private void loadLevelData() { + this.xpathBuilder = XPathFactory.newInstance().newXPath(); + + String pathToData = this.getLevelPathInDataStore(); + + // Parse & process level data + this.parseLevelData(pathToData); + this.processLevelData(); + } + + /** + * Parses the level data for the given file + * Handles the task of reading and storing the parsed DOM + * + * @param pathToLevelData FS path to the level data + */ + private void parseLevelData(String pathToLevelData) { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + + try { + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + + // Parse data in level file + this.levelDOM = documentBuilder.parse(pathToLevelData); + } catch (ParserConfigurationException e) { + e.printStackTrace(); + } catch (org.xml.sax.SAXException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + } + + /** + * Processes the parsed level data + */ + private void processLevelData() { + // Parse elements from structure + try { + this.processNameElement(); + this.processDateElement(); + this.processSizeElement(); + this.processGridElement(); + } catch (XPathExpressionException e) { + e.printStackTrace(); + } catch (ParseException e) { + e.printStackTrace(); + } + } + + /** + * Processes the 'name' element + */ + private void processNameElement() throws XPathExpressionException { + // Returns level name value + this.nameValue = this.xpathBuilder.compile("/bd-level/name").evaluate(this.levelDOM); + } + + /** + * Processes the 'date' element + */ + private void processDateElement() throws XPathExpressionException, ParseException { + // Returns level creation date value + this.dateCreatedValue = this.dateFormatter.parse(xpathBuilder.compile("/bd-level/date[@format='utc']/created").evaluate(this.levelDOM)); + + // Returns level modification date value + this.dateModifiedValue = this.dateFormatter.parse(this.xpathBuilder.compile("/bd-level/date[@format='utc']/modified").evaluate(this.levelDOM)); + } + + /** + * Processes the 'size' element + */ + private void processSizeElement() throws XPathExpressionException { + // Returns level width value + this.widthSizeValue = Integer.parseInt(this.xpathBuilder.compile("/bd-level/size/width").evaluate(this.levelDOM)); + this.widthSizeValue += this.limitsWidth; + + // Returns level height value + this.heightSizeValue = Integer.parseInt(this.xpathBuilder.compile("/bd-level/size/height").evaluate(this.levelDOM)); + this.heightSizeValue += this.limitsHeight; + } + + /** + * Processes the 'grid' element + */ + private void processGridElement() throws XPathExpressionException { + // Initialize the grid + this.groundGrid = new DisplayableElementModel[this.widthSizeValue][this.heightSizeValue]; + + // Populate the grid + NodeList lineNode = (NodeList) this.xpathBuilder.compile("/bd-level/grid[@state='initial']/line").evaluate(this.levelDOM, XPathConstants.NODESET); + + // Parse lines + for (int y = 0; y < lineNode.getLength(); y++) { + Node currentLineNode = lineNode.item(y); + + // Current line + if (currentLineNode.getNodeType() == Node.ELEMENT_NODE) { + Element currentLineElement = (Element) currentLineNode; + int lineIndex = Integer.parseInt(currentLineElement.getAttribute("index")); + + NodeList rowNode = (NodeList) currentLineNode.getChildNodes(); + + for (int x = 0; x < rowNode.getLength(); x++) { + Node currentRowNode = rowNode.item(x); + + // Current row + if (currentRowNode.getNodeType() == Node.ELEMENT_NODE) { + Element currentRowElement = (Element) currentRowNode; + int rowIndex = Integer.parseInt(currentRowElement.getAttribute("index")); + + NodeList spriteNode = currentRowElement.getElementsByTagName("sprite"); + + if (spriteNode.getLength() > 0) { + Node currentSpriteNode = spriteNode.item(0); + + if (currentSpriteNode.getNodeType() == Node.ELEMENT_NODE) { + Element currentSpriteElement = (Element) currentSpriteNode; + String currentSpriteName = currentSpriteElement.getAttribute("name"); + String currentSpriteConvertibleValue = currentSpriteElement.getAttribute("convertible"); + boolean currentSpriteConvertible = false; + + // No name? Continue. + if(currentSpriteName == null || currentSpriteName.isEmpty()) { + continue; + } + + if(currentSpriteConvertibleValue.equals("1")) { + currentSpriteConvertible = true; + } + + // Process positions + int pX = rowIndex + this.limitsOffsetWidth; + int pY = lineIndex + this.limitsOffsetHeight; + + try { + this.groundGrid[pX][pY] = this.constructGridElement(currentSpriteName, pX, pY, currentSpriteConvertible); + } catch (UnknownModelException e) { + e.printStackTrace(); + } + } + } + } + } + } + } + } + + /** + * Constructs the grid element + * + * @param spriteName Sprite name + * @param rowIndex Position in row (horizontal axis) + * @param lineIndex Position in line (vertical axis) + */ + private DisplayableElementModel constructGridElement(String spriteName, int rowIndex, int lineIndex, boolean convertible) throws UnknownModelException { + ModelConvertHelper modelConvert = new ModelConvertHelper(); + DisplayableElementModel element = modelConvert.toModel(spriteName, convertible); + + // Custom actions? + switch (spriteName) { + case "diamond": + diamondsToCatch += 1; + break; + + case "rockford": + this.setRockfordPositionX(rowIndex); + this.setRockfordPositionY(lineIndex); + this.setRockfordInstance((RockfordModel) element); + break; + } + + return element; + } + + /** + * Gets the level identifier + * + * @return Level identifier + */ + public String getLevelId() { + return this.levelId; + } + + /** + * Sets the level identifier + * + * @param levelId Level identifier + */ + private void setLevelId(String levelId) { + this.levelId = levelId; + } + + /** + * Gets the name value + * + * @return Name value + */ + public String getNameValue() { + return this.nameValue; + } + + /** + * Sets the name value + * + * @param nameValue Name value + */ + private void setNameValue(String nameValue) { + this.nameValue = nameValue; + } + + /** + * Gets the creation date value + * + * @return Creation date value + */ + public Date getDateCreatedValue() { + return this.dateCreatedValue; + } + + /** + * Sets the creation date value + * + * @param dateCreatedValue Creation date value + */ + private void setDateCreatedValue(Date dateCreatedValue) { + this.dateCreatedValue = dateCreatedValue; + } + + /** + * Gets the modified date value + * + * @return Modified date value + */ + public Date getDateModifiedValue() { + return this.dateModifiedValue; + } + + /** + * Sets the modified date value + * + * @param dateModifiedValue Modified date value + */ + private void setDateModifiedValue(Date dateModifiedValue) { + this.dateModifiedValue = dateModifiedValue; + } + + /** + * Gets the width size value + * + * @return Width size value + */ + public int getWidthSizeValue() { + return this.widthSizeValue; + } + + /** + * Sets the width size value + * + * @param widthSizeValue Width size value + */ + private void setWidthSizeValue(int widthSizeValue) { + this.widthSizeValue = widthSizeValue; + } + + /** + * Gets the height size value + * + * @return Height size value + */ + public int getHeightSizeValue() { + return this.heightSizeValue; + } + + /** + * Sets the eight size value + * + * @param heightSizeValue Height size value + */ + private void setHeightSizeValue(int heightSizeValue) { + this.heightSizeValue = heightSizeValue; + } + + /** + * Gets the horizontal position of the Rockford element + * + * @return Horizontal position of the Rockford element + */ + public int getRockfordPositionX() { + return this.rockfordPositionX; + } + + /** + * Sets the horizontal position of the Rockford element + * + * @param x Horizontal position of the Rockford element + */ + public void setRockfordPositionX(int x) { + this.rockfordPositionX = x; + } + + /** + * Gets the vertical position of the Rockford element + * + * @return Vertical position of the Rockford element + */ + public int getRockfordPositionY() { + return this.rockfordPositionY; + } + + /** + * Sets the vertical position of the Rockford element + * + * @param y Vertical position of the Rockford element + */ + public void setRockfordPositionY(int y) { + this.rockfordPositionY = y; + } + + /** + * Gets the instance of Rockford + * + * @return Rockford instance + */ + public RockfordModel getRockfordInstance() { + return this.rockfordInstance; + } + + /** + * Sets the instance of Rockford + * + * @param rockfordInstance Rockford instance + */ + public void setRockfordInstance(RockfordModel rockfordInstance) { + this.rockfordInstance = rockfordInstance; + } + + /** + * Gets the ground grid + * + * @return Ground grid + */ + public DisplayableElementModel[][] getGroundGrid() { + return this.groundGrid; + } + + /** + * Sets the ground grid + * + * @param groundGrid Ground grid + */ + private void setGroundGrid(DisplayableElementModel[][] groundGrid) { + this.groundGrid = groundGrid; + } + + /** + * Gets the number of Diamonds to catch + * @return number of Diamonds to catch + */ + public int getDiamondsToCatch() { + return diamondsToCatch; + } + + /** + * Sets the number of Diamonds to catch + * @param diamondsToCatch + */ + public void setDiamondsToCatch(int diamondsToCatch) { + this.diamondsToCatch = diamondsToCatch; + } + + +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/helpers/LevelRemoveHelper.java b/boulder-dash/src/fr/enssat/BoulderDash/helpers/LevelRemoveHelper.java new file mode 100644 index 00000000..c8bc82c5 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/helpers/LevelRemoveHelper.java @@ -0,0 +1,39 @@ +package fr.enssat.BoulderDash.helpers; + + +import java.io.File; + +/** + * LevelRemoveHelper + * + * Proceeds level save routine + * Able to iterate on internal representation of a map and serialize it to XML + * + * @author Valerian Saliou + * @since 2015-06-21 + */ +public class LevelRemoveHelper { + private static String pathToDataStore = "./res/levels"; + private String levelId = null; + + /** + * Class constructor + * + * @param levelId Level identifier + */ + public LevelRemoveHelper(String levelId) { + this.levelId = levelId; + + File file = new File(this.getLevelPathInDataStore()); + file.delete(); + } + + /** + * Gets level storage path + * + * @return Level path, with file extension + */ + private String getLevelPathInDataStore() { + return this.pathToDataStore + "/" + this.levelId + ".xml"; + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/helpers/LevelSaveHelper.java b/boulder-dash/src/fr/enssat/BoulderDash/helpers/LevelSaveHelper.java new file mode 100644 index 00000000..c314a9a7 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/helpers/LevelSaveHelper.java @@ -0,0 +1,397 @@ +package fr.enssat.BoulderDash.helpers; + +import java.io.File; +import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.List; +import java.util.Locale; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; + +import com.sun.org.apache.xml.internal.serialize.XMLSerializer; +import org.w3c.dom.Document; +import org.w3c.dom.Element; +import org.w3c.dom.Node; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; +import fr.enssat.BoulderDash.models.DirtModel; + + +/** + * LevelSaveHelper + * + * Proceeds level save routine + * Able to iterate on internal representation of a map and serialize it to XML + * + * @author Valerian Saliou + * @since 2015-06-21 + */ +public class LevelSaveHelper { + private static String pathToDataStore = "./res/levels"; + private String levelId = null; + private DisplayableElementModel[][] groundGrid; + private SimpleDateFormat dateFormatter; + + /** + * Class constructor + * + * @param levelId Level identifier + * @param groundGrid Ground grid + */ + public LevelSaveHelper(String levelId, DisplayableElementModel[][] groundGrid) { + this.setLevelId(levelId); + this.setGroundGrid(groundGrid); + + // Requirements + this.dateFormatter = new SimpleDateFormat("yyy-MM-dd/HH:mm:ss", Locale.ENGLISH); + + if (this.levelId != null) { + // Let's go. + this.saveLevelData(); + } + } + + /** + * Class constructor + * + * @param groundGrid Ground grid + */ + public LevelSaveHelper(DisplayableElementModel[][] groundGrid) { + this(generateNewLevelId(), groundGrid); + } + + /** + * Gets level storage path + * + * @return Level path, with file extension + */ + private String getLevelPathInDataStore() { + return this.pathToDataStore + "/" + this.getLevelId() + ".xml"; + } + + /** + * Generates a new level identifier + * + * @return Level identifier + */ + private static String generateNewLevelId() { + File directory = new File(pathToDataStore); + Integer electedLastLevelId, tempLevelId; + String matchedId, finalLevelId; + + // Default level identifier + electedLastLevelId = 0; + + // File list + File[] fileList = directory.listFiles(); + + // Regex matcher + Pattern pattern = Pattern.compile("^level([0-9]+)\\.xml"); + Matcher matcher; + + for (File file : fileList){ + matcher = pattern.matcher(file.getName()); + + if (matcher.matches()) { + matchedId = matcher.group(1); + + if(!matchedId.isEmpty()) { + tempLevelId = new Integer(matchedId); + + if (tempLevelId > electedLastLevelId) { + electedLastLevelId = tempLevelId; + } + } else { + System.out.println("Match found but result empty for > " + file.getName()); + } + } else { + System.out.println("No match found for > " + file.getName()); + } + } + + // Increment + electedLastLevelId += 1; + + // Stringify + if(electedLastLevelId < 10) { + finalLevelId = "0" + electedLastLevelId.toString(); + } else { + finalLevelId = electedLastLevelId.toString(); + } + + return "level" + finalLevelId; + } + + /** + * Saves the level data into XML storage + */ + private void saveLevelData() { + DocumentBuilderFactory documentFactory = DocumentBuilderFactory.newInstance(); + + try { + DocumentBuilder documentBuilder = documentFactory.newDocumentBuilder(); + Document document = documentBuilder.newDocument(); + + Element bdLevel = document.createElement("bd-level"); + bdLevel.setAttribute("xmlns", "fr.enssat.boulderdash"); + document.appendChild(bdLevel); + + // append child elements to root element + bdLevel.appendChild(this.nameNode(document)); + bdLevel.appendChild(this.dateNode(document)); + bdLevel.appendChild(this.sizeNode(document)); + bdLevel.appendChild(this.gridNode(document)); + + // Write to disk + this.writeDocumentToDisk(document); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Writes the level document data to disk + * + * @param document Document to be saved + * @return Whether save was successful or not + */ + private boolean writeDocumentToDisk(Document document) { + boolean isSuccessful = true; + + try { + XMLSerializer serializer = new XMLSerializer(); + + serializer.setOutputCharStream(new java.io.FileWriter( + this.getLevelPathInDataStore() + )); + serializer.serialize(document); + } catch (IOException e) { + isSuccessful = false; + e.printStackTrace(); + } + + return isSuccessful; + } + + /** + * Creates the name node + * + * @param document Document + * @return Name node + */ + private Node nameNode(Document document) { + String nameValue; + + nameValue = "Unknown Level Name"; + + return this.textNode(document, "name", nameValue); + } + + /** + * Creates the date node + * + * @param document Document + * @return Date node + */ + private Node dateNode(Document document) { + // Get values + String dateCreatedValue, dateModifiedValue; + + dateCreatedValue = "0000-00-00/00:00:00"; + dateModifiedValue = "0000-00-00/00:00:00"; + + // Create element + Element dateElement = document.createElement("date"); + + dateElement.setAttribute("format", "utc"); + + dateElement.appendChild(this.textNode(document, "created", dateCreatedValue)); + dateElement.appendChild(this.textNode(document, "modified", dateModifiedValue)); + + return dateElement; + } + + /** + * Creates the size node + * + * @param document Document + * @return Size node + */ + private Node sizeNode(Document document) { + // Get values + Integer widthValue = 0, heightValue = 0; + + widthValue = this.getGroundGrid().length - 2; + + if(widthValue > 0) { + heightValue = this.getGroundGrid()[0].length - 2; + } + + if(heightValue < 0 || widthValue < 0) { + heightValue = 0; + widthValue = 0; + } + + // Create element + Element sizeElement = document.createElement("size"); + + sizeElement.appendChild(this.textNode(document, "width", widthValue.toString())); + sizeElement.appendChild(this.textNode(document, "height", heightValue.toString())); + + return sizeElement; + } + + /** + * Creates the grid node + * + * @param document Document + * @return Grid node + */ + private Node gridNode(Document document) { + Element gridElement = document.createElement("grid"); + gridElement.setAttribute("state", "initial"); + + // Iterate in MATRIX:{x} + if(this.getGroundGrid().length > 2) { + // XML structure matrix is the inverse of the internal representation (hence the weird loop) + for (Integer curLineIndex = 1; curLineIndex < (this.getGroundGrid()[0].length - 1); curLineIndex++) { + gridElement.appendChild(this.gridLineNode(document, curLineIndex)); + } + } + + return gridElement; + } + + /** + * Creates the grid line node + * + * @param document Document + * @param curLineIndex Current line index + * @return Grid line node + */ + private Node gridLineNode(Document document, Integer curLineIndex) { + Element gridLineElement = document.createElement("line"); + gridLineElement.setAttribute("index", Integer.toString(curLineIndex - 1)); + + // Iterate in MATRIX:X:{y} + if(this.getGroundGrid().length > 2) { + // XML structure matrix is the inverse of the internal representation (hence the weird loop) + for (Integer curItemIndex = 1; curItemIndex < (this.getGroundGrid().length - 1); curItemIndex++) { + gridLineElement.appendChild(this.gridLineItemNode(document, curLineIndex, curItemIndex)); + } + } + + return gridLineElement; + } + + /** + * Creates the grid line item node + * + * @param document Document + * @param curLineIndex Current line index + * @param curItemIndex Current line item index + * @return Grid line item node + */ + private Node gridLineItemNode(Document document, Integer curLineIndex, Integer curItemIndex) { + Element gridLineItemElement = document.createElement("item"); + gridLineItemElement.setAttribute("index", Integer.toString(curItemIndex - 1)); + + gridLineItemElement.appendChild(this.gridLineItemSpriteNode(document, curLineIndex, curItemIndex)); + + return gridLineItemElement; + } + + /** + * Creates the grid line sprite item node + * + * @param document Document + * @param curLineIndex Current line index + * @param curItemIndex Current line item index + * @return Grid line item sprite node + */ + private Node gridLineItemSpriteNode(Document document, Integer curLineIndex, Integer curItemIndex) { + String groupValue, nameValue, stateValue, convertibleValue; + + DisplayableElementModel curGridElement = this.getGroundGrid()[curItemIndex][curLineIndex]; + + // Null? + if(curGridElement == null) { + curGridElement = new DirtModel(); + } + + // Retrieve current values + groupValue = curGridElement.getGroupName(); + nameValue = curGridElement.getSpriteName(); + stateValue = curGridElement.getStateValue(); + convertibleValue = curGridElement.isConvertible() ? "1" : "0"; + + // Create sprite XML element + Element gridLineItemSpriteElement = document.createElement("sprite"); + + // Sprite attributes + gridLineItemSpriteElement.setAttribute("group", groupValue); + gridLineItemSpriteElement.setAttribute("name", nameValue); + gridLineItemSpriteElement.setAttribute("state", stateValue); + + if(convertibleValue == "1") { + gridLineItemSpriteElement.setAttribute("convertible", convertibleValue); + } + + return gridLineItemSpriteElement; + } + + /** + * Creates a bare text node + * + * @param document Document + * @param name Element name + * @param value Element value + * @return Text node + */ + private Node textNode(Document document, String name, String value) { + Element node = document.createElement(name); + node.appendChild(document.createTextNode(value)); + + return node; + } + + /** + * Gets the level identifier + * + * @return Level identifier + */ + public String getLevelId() { + return this.levelId; + } + + /** + * Sets the level identifier + * + * @param levelId Level identifier + */ + private void setLevelId(String levelId) { + this.levelId = levelId; + } + + /** + * Gets the ground grid + * + * @return Ground grid + */ + public DisplayableElementModel[][] getGroundGrid() { + return this.groundGrid; + } + + /** + * Sets the ground grid + * + * @param groundGrid Ground grid + */ + private void setGroundGrid(DisplayableElementModel[][] groundGrid) { + this.groundGrid = groundGrid; + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/helpers/LevelSelectorHelper.java b/boulder-dash/src/fr/enssat/BoulderDash/helpers/LevelSelectorHelper.java new file mode 100644 index 00000000..511c6572 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/helpers/LevelSelectorHelper.java @@ -0,0 +1,96 @@ +package fr.enssat.BoulderDash.helpers; + +import fr.enssat.BoulderDash.views.MenuLevelSelector; +import fr.enssat.BoulderDash.views.LevelEditorView; + +import java.io.File; +import java.util.ArrayList; +import java.util.List; + + +/** + * LevelSelectorHelper + * + * Level selector helper + * + * @author Valerian Saliou + * @since 2015-06-23 + */ +public class LevelSelectorHelper { + private static String levelStorage = "./res/levels"; + private boolean hasEmptyElement = false; + private LevelEditorView levelEditorView = null; + + /** + * Class constructor + */ + public LevelSelectorHelper(boolean hasEmptyElement) { + this.hasEmptyElement = hasEmptyElement; + } + + public LevelSelectorHelper(boolean hasEmptyElement, LevelEditorView levelEditorView) { + this(hasEmptyElement); + + this.levelEditorView = levelEditorView; + } + + /** + * Creates the level list + * + * @return Level list selector + */ + public MenuLevelSelector createLevelList() { + String[] availableLevels = this.listAvailableLevels(); + + // Proceed available levels listing + MenuLevelSelector menuLevelList = new MenuLevelSelector(availableLevels, this.levelEditorView); + + if(availableLevels.length > 0) { + menuLevelList.setChoiceValue(availableLevels[0]); + menuLevelList.setSelectedIndex(0); + }; + + menuLevelList.addActionListener(menuLevelList); + + return menuLevelList; + } + + /** + * Lists available levels and store them in instance context + * + * @return Available levels + */ + private String[] listAvailableLevels() { + List stockList = new ArrayList(); + + File directory = new File(levelStorage); + File[] fileList = directory.listFiles(); + String fileName, fileNameExtValue; + int fileNameExtIndex; + + // Add empty element? + if(this.hasEmptyElement) { + stockList.add(""); + } + + for (File file : fileList){ + fileName = file.getName(); + fileNameExtIndex = fileName.lastIndexOf('.'); + + if (fileNameExtIndex > 0) { + fileNameExtValue = fileName.substring(fileNameExtIndex, fileName.length()); + + if(fileNameExtValue.equals(".xml")) { + fileName = fileName.substring(0, fileNameExtIndex); + stockList.add(fileName); + } + } + } + + // Convert to String[] (required) + String[] itemsArr = new String[stockList.size()]; + itemsArr = stockList.toArray(itemsArr); + + return itemsArr; + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/helpers/ModelConvertHelper.java b/boulder-dash/src/fr/enssat/BoulderDash/helpers/ModelConvertHelper.java new file mode 100644 index 00000000..2856a412 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/helpers/ModelConvertHelper.java @@ -0,0 +1,104 @@ +package fr.enssat.BoulderDash.helpers; + +import fr.enssat.BoulderDash.exceptions.UnknownModelException; + +import fr.enssat.BoulderDash.models.ExpandingWallModel; +import fr.enssat.BoulderDash.models.RockfordModel; +import fr.enssat.BoulderDash.models.DisplayableElementModel; +import fr.enssat.BoulderDash.models.EmptyModel; +import fr.enssat.BoulderDash.models.BrickWallModel; +import fr.enssat.BoulderDash.models.BoulderModel; +import fr.enssat.BoulderDash.models.DiamondModel; +import fr.enssat.BoulderDash.models.DirtModel; +import fr.enssat.BoulderDash.models.MagicWallModel; +import fr.enssat.BoulderDash.models.SteelWallModel; + + +/** + * ModelConvertHelper + * + * Provides model conversion services. + * + * @author Valerian Saliou + * @since 2015-06-22 + */ +public class ModelConvertHelper { + /** + * Class constructor + */ + public ModelConvertHelper() { + // Nothing done. + } + + /** + * Gets the model associated to the string + * + * @param spriteName Sprite name + * @return Model associated to given sprite name + */ + public DisplayableElementModel toModel(String spriteName, boolean isConvertible) throws UnknownModelException { + DisplayableElementModel element; + + // Instanciates the sprite element matching the given sprite name + switch (spriteName) { + case "black": + case "Black": + element = new EmptyModel(); + break; + + case "boulder": + case "Boulder": + element = new BoulderModel(isConvertible); + break; + + case "brickwall": + case "Brick Wall": + element = new BrickWallModel(); + break; + + case "diamond": + case "Diamond": + element = new DiamondModel(); + break; + + case "dirt": + case "Dirt": + element = new DirtModel(); + break; + + case "magicwall": + case "Magic Wall": + element = new MagicWallModel(); + break; + + case "rockford": + case "Rockford": + element = new RockfordModel(); + break; + + case "steelwall": + case "Steel Wall": + element = new SteelWallModel(); + break; + + case "expandingwall": + case "Expanding Wall": + element = new ExpandingWallModel(); + break; + + default: + throw new UnknownModelException("Unknown model element > " + spriteName); + } + + return element; + } + + /** + * Gets the string associated to the model + * + * @return Model string name + */ + public String toString(DisplayableElementModel model) { + return model.getSpriteName(); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/BoulderModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/BoulderModel.java new file mode 100644 index 00000000..ad29b564 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/BoulderModel.java @@ -0,0 +1,48 @@ +package fr.enssat.BoulderDash.models; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; + + +/** + * BoulderModel + * + * Represents the boulders. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class BoulderModel extends DisplayableElementModel { + private static String spriteName; + private static boolean isDestructible; + private static boolean canMove; + private static boolean impactExplosive; + private static boolean animate; + private static int priority; + private static String collideSound; + + /** + * Static dataset + * Specifies the physical parameters of the object + */ + static { + spriteName = "boulder"; + isDestructible = false; + canMove = true; + impactExplosive = false; + animate = true; + priority = 2; + collideSound = "die"; + } + + /** + * Class constructor + */ + public BoulderModel(boolean convertible) { + super(isDestructible, canMove, spriteName, priority, impactExplosive, animate, false, collideSound, convertible); + this.loadSprite(spriteName); + } + + public BoulderModel() { + this(false); + } +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/BrickWallModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/BrickWallModel.java new file mode 100644 index 00000000..15269b39 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/BrickWallModel.java @@ -0,0 +1,46 @@ +package fr.enssat.BoulderDash.models; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; + + +/** + * BrickWallModel + * + * Represents the brick wall in the game. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class BrickWallModel extends DisplayableElementModel { + private static String spriteName; + private static boolean isDestructible; + private static boolean canMove; + private static boolean impactExplosive; + private static boolean animate; + private static int priority; + private static boolean falling; + private static String collideSound; + + /** + * Static dataset + * Specifies the physical parameters of the object + */ + static { + spriteName = "brickwall"; + isDestructible = true; + canMove = false; + impactExplosive = false; + animate = false; + priority = 3; + falling = false; + collideSound = "touch"; + } + + /** + * Class constructor + */ + public BrickWallModel() { + super(isDestructible, canMove, spriteName, priority, impactExplosive, animate, falling, collideSound); + this.loadSprite(spriteName); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/CursorModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/CursorModel.java new file mode 100644 index 00000000..1e7ba34a --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/CursorModel.java @@ -0,0 +1,47 @@ +package fr.enssat.BoulderDash.models; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; + + +/** + * CursorModel + * + * Represents the field cursor pointer. + * + * @author Valerian Saliou + * @since 2015-06-22 + */ +public class CursorModel extends DisplayableElementModel { + private static String spriteName; + private static boolean isDestructible; + private static boolean canMove; + private static boolean impactExplosive; + private static boolean animate; + private static int priority; + private static boolean falling; + private static String collideSound; + + /** + * Static dataset + * Specifies the physical parameters of the object + */ + static { + spriteName = "cursor"; + isDestructible = false; + canMove = false; + impactExplosive = false; + animate = false; + priority = 0; + falling = false; + collideSound = null; + } + + /** + * Class constructor + */ + public CursorModel() { + super(isDestructible, canMove, spriteName, priority, impactExplosive, animate, falling, collideSound); + + this.loadSprite(spriteName); + } +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/DiamondModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/DiamondModel.java new file mode 100644 index 00000000..ba1dbab5 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/DiamondModel.java @@ -0,0 +1,90 @@ +package fr.enssat.BoulderDash.models; + +import java.awt.image.BufferedImage; +import java.util.ArrayList; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; + + +/** + * DiamondModel + * + * Represents a diamond in the game. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class DiamondModel extends DisplayableElementModel { + private static String spriteName; + private static boolean isDestructible; + private static boolean canMove; + private static boolean impactExplosive; + private static boolean animate; + private static int priority; + private static String collideSound; + private long previousTime; + private int currentFrame; + + private final int SIZ_X_OF_SPRITE = 16; + private final int SIZ_Y_OF_SPRITE = 16; + private long speed; + + private ArrayList framesDiamond; + + /** + * Static dataset + * Specifies the physical parameters of the object + */ + static { + spriteName = "diamond"; + isDestructible = true; + canMove = true; + impactExplosive = false; + animate = true; + priority = 0; + collideSound = "coin"; + } + + /** + * Class constructor + */ + public DiamondModel() { + super(isDestructible, canMove, spriteName, priority, impactExplosive, animate, false, collideSound); + + this.initSprites(); + } + + /** + * Updates the sprite (animation loop) + * + * @param time Current time + */ + public void update(long time) { + if (time - previousTime >= speed) { + // Update the animation + previousTime = time; + + try { + this.currentFrame += 1; + this.setSprite(framesDiamond.get(this.currentFrame)); + } catch (IndexOutOfBoundsException e) { + this.currentFrame = 0; + } + } + } + + /** + * Initialize the sprites + * This is an animated element, hence this method + */ + private void initSprites() { + /* Initialize object sprites */ + this.framesDiamond = new ArrayList(); + + for (int i = 0; i < 8; i++) { + this.framesDiamond.add( + this.grabSprite(loadSprite(spriteName), i * 24, 0, SIZ_X_OF_SPRITE, SIZ_Y_OF_SPRITE) + ); + } + } +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/DirtModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/DirtModel.java new file mode 100644 index 00000000..c0635c9b --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/DirtModel.java @@ -0,0 +1,47 @@ +package fr.enssat.BoulderDash.models; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; + + +/** + * DirtModel + * + * Represents the dirt in the game. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class DirtModel extends DisplayableElementModel { + private static String spriteName; + private static boolean isDestructible; + private static boolean canMove; + private static boolean impactExplosive; + private static boolean animate; + private static int priority; + private static boolean falling; + private static String collideSound; + + /** + * Static dataset + * Specifies the physical parameters of the object + */ + static { + spriteName = "dirt"; + isDestructible = true; + canMove = false; + impactExplosive = false; + animate = false; + priority = 0; + falling = false; + collideSound = null; + } + + /** + * Class constructor + */ + public DirtModel() { + super(isDestructible, canMove, spriteName, priority, impactExplosive, animate, falling, collideSound); + + this.loadSprite(spriteName); + } +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/DisplayableElementModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/DisplayableElementModel.java new file mode 100644 index 00000000..dd0bf8c1 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/DisplayableElementModel.java @@ -0,0 +1,302 @@ +package fr.enssat.BoulderDash.models; + +import javax.imageio.ImageIO; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; + + +/** + * DisplayableElementModel + * + * Represents a abstract displayable element + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public abstract class DisplayableElementModel { + private static String spriteStorageFolderPath = "./res/drawable/field/"; + + private static String groupName; + private static String stateValue; + + private boolean destructible; + private boolean moving; + private boolean animate; + private boolean impactExplosive; + private String spriteName; + private int priority; + private BufferedImage sprite; + private boolean falling; + private boolean convertible; + private String collideSound; + + /** + * Static dataset + */ + static { + groupName = "field"; + stateValue = "initial"; + } + + /** + * Class constructor + * + * @param destructible Object destructible? + * @param moving Object is moving? + * @param spriteName Object sprite name? + * @param priority Object priority? + * @param impactExplosive Object explodes on impact? + * @param animate Object can be animated? + */ + public DisplayableElementModel(boolean destructible, boolean moving, String spriteName, int priority, boolean impactExplosive, boolean animate, boolean falling, String collideSound, boolean convertible) { + this.moving = moving; + this.destructible = destructible; + this.spriteName = spriteName; + this.priority = priority; + this.animate = animate; + this.impactExplosive = impactExplosive; + this.priority = priority; + this.falling = falling; + this.convertible = convertible; + this.collideSound = collideSound; + } + + public DisplayableElementModel(boolean destructible, boolean moving, String spriteName, int priority, boolean impactExplosive, boolean animate, boolean falling, String collideSound) { + this( + destructible, moving, spriteName, priority, impactExplosive, animate, falling, collideSound, false + ); + } + + /** + * Gets the 'destructible' value + * + * @return Whether object is destructible or not + */ + public boolean isDestructible() { + return this.destructible; + } + + /** + * Gets the 'moving' value + * + * @return Whether object is moving or not + */ + public boolean isMoving() { + return this.moving; + } + + /** + * Gets the group name value + * + * @return Group name value + */ + public String getGroupName() { + return this.groupName; + } + + /** + * Gets the state value + * + * @return State value + */ + public String getStateValue() { + return this.stateValue; + } + + /** + * Gets the sprite name value + * + * @return Sprite name value + */ + public String getSpriteName() { + return this.spriteName; + } + + /** + * Gets the folder path of the sprite storage + * + * @return Folder path of the sprite storage + */ + private static String getSpriteStorageFolderPath() { + return spriteStorageFolderPath; + } + + /** + * Gets the path to the sprite file in storage + * + * @return Path to the sprite file in storage + */ + public String getPathToSprite() { + return getSpriteStorageFolderPath() + getSpriteName() + ".gif"; + } + + /** + * Gets the priority of the object + * + * @return Object priority + */ + public int getPriority() { + return this.priority; + } + + /** + * Sets the priority of the object + * + * @param priority Object priority + */ + public void setPriority(int priority) { + this.priority = priority; + } + + /** + * Gets the 'animate' value + * + * @return Whether object is animated or not + */ + public boolean isAnimate() { + return this.animate; + } + + /** + * Sets the 'animate' value + * + * @return animate Whether object is animated or not + */ + public void setAnimate(boolean animate) { + this.animate = animate; + } + + /** + * Gets the 'impact explosive' value + * + * @return Whether object explodes on impact or not + */ + public boolean isImpactExplosive() { + return this.impactExplosive; + } + + /** + * Sets the 'impact explosive' value + * + * @return impactExplosive Whether object explodes on impact or not + */ + public void setImpactExplosive(boolean impactExplosive) { + this.impactExplosive = impactExplosive; + } + + /** + * Sets the sprite + * + * @param sprite Sprite object + */ + public void setSprite(BufferedImage sprite) { + this.sprite = sprite; + } + + /** + * Gets the sprite + * + * @return Sprite object + */ + public BufferedImage getSprite() { + return sprite; + } + + /** + * Loads the target sprite + * + * @param spriteName Sprite name + * @return Sprite object + */ + public BufferedImage loadSprite(String spriteName) { + BufferedImage sprite = null; + + try { + sprite = ImageIO.read(new File("res/drawable/field/" + spriteName + ".gif")); + } catch (IOException e) { + e.printStackTrace(); + } + + this.sprite = sprite; + + return sprite; + } + + /** + * Grabs the sprite from the large image containing all the static sprites items + * + * @param spriteSheet Sprite sheet instance + * @param x Sub image horizontal offset on sprite sheet + * @param y Sub image vertical offset on sprite sheet + * @param width Sub image width on sprite sheet + * @param height Sub image height on sprite sheet + * @return Target sub image + */ + public BufferedImage grabSprite(BufferedImage spriteSheet, int x, int y, int width, int height) { + BufferedImage subImage = spriteSheet.getSubimage(x, y, width, height); + + this.sprite = subImage; + return subImage; + } + + /** + * Gets the falling state of the object + * + * @return Whether object is falling or not + */ + public boolean isFalling() { + return this.falling; + } + + /** + * Sets the falling state of the object + * + * @param falling Whether object is falling or not + */ + public void setFalling(boolean falling) { + this.falling = falling; + } + + /** + * Gets the collide sound of the object + * + * @return Collide sound + */ + public String getCollideSound() { + return this.collideSound; + } + + /** + * Sets the collide sound of the object + * + * @param collideSound Collide sound + */ + public void setCollideSound(String collideSound) { + this.collideSound = collideSound; + } + + /** + * Gets the convertible value of the object + * + * @return Convertible value + */ + public boolean isConvertible() { + return this.convertible; + } + + /** + * Sets the convertible value of the object + * + * @param convertible Convertible value + */ + public void setConvertibleValue(boolean convertible) { + this.convertible = convertible; + } + + /** + * Function to update the sprites + * @param currentTimeMillis Current time in milliseconds + */ + public void update(long currentTimeMillis) {} +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/DoorModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/DoorModel.java new file mode 100644 index 00000000..26f0f039 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/DoorModel.java @@ -0,0 +1,47 @@ +package fr.enssat.BoulderDash.models; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; + + +/** + * DoorModel + * + * Represents escape door. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class DoorModel extends DisplayableElementModel { + private static String spriteName; + private static boolean isDestructible; + private static boolean canMove; + private static boolean impactExplosive; + private static boolean animate; + private static int priority; + private static boolean falling; + private static String collideSound; + + /** + * Static dataset + * Specifies the physical parameters of the object + */ + static { + spriteName = "door"; + isDestructible = false; + canMove = false; + impactExplosive = false; + animate = false; + priority = 0; + falling = false; + collideSound = null; + } + + /** + * Class constructor + */ + public DoorModel() { + super(isDestructible, canMove, spriteName, priority, impactExplosive, animate, falling, collideSound); + + this.loadSprite(spriteName); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/EmptyModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/EmptyModel.java new file mode 100644 index 00000000..4f538009 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/EmptyModel.java @@ -0,0 +1,47 @@ +package fr.enssat.BoulderDash.models; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; + + +/** + * EmptyModel + * + * Represents "nothing". + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class EmptyModel extends DisplayableElementModel { + private static String spriteName; + private static boolean isDestructible; + private static boolean canMove; + private static boolean impactExplosive; + private static boolean animate; + private static int priority; + private static boolean falling; + private static String collideSound; + + /** + * Static dataset + * Specifies the physical parameters of the object + */ + static { + spriteName = "black"; + isDestructible = false; + canMove = false; + impactExplosive = false; + animate = false; + priority = 0; + falling = false; + collideSound = null; + } + + /** + * Class constructor + */ + public EmptyModel() { + super(isDestructible, canMove, spriteName, priority, impactExplosive, animate, falling, collideSound); + + this.loadSprite(spriteName); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/ExpandingWallModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/ExpandingWallModel.java new file mode 100644 index 00000000..f0be9ce5 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/ExpandingWallModel.java @@ -0,0 +1,46 @@ +package fr.enssat.BoulderDash.models; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; + + +/** + * ExpandingWallModel + * + * Represents a ExpandingWall in the game. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class ExpandingWallModel extends DisplayableElementModel { + private static String spriteName; + private static boolean destructible; + private static boolean canMove; + private static boolean impactExplosive; + private static boolean animate; + private static int priority; + private static boolean falling; + private static String collideSound; + + /* + * Static dataset + * Specifies the physical parameters of the object + */ + static { + spriteName = "expandingwall"; + destructible = false; + canMove = false; + impactExplosive = false; + animate = false; + priority = 10; + falling = false; + collideSound = null; + } + + /** + * Class constructor + */ + public ExpandingWallModel() { + super(destructible, canMove, spriteName, priority, impactExplosive, animate, falling, collideSound); + this.loadSprite(spriteName); + } +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/GameInformationModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/GameInformationModel.java new file mode 100644 index 00000000..2144237a --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/GameInformationModel.java @@ -0,0 +1,114 @@ +package fr.enssat.BoulderDash.models; + +import java.util.Observable; + + +/** + * GameInformationModel will contain all the data which will + * go to the InformationPanel. + * + * @author Colin Leverger + * @since 2015-06-19 + * + */ +public class GameInformationModel extends Observable { + private int score; + private int remainingsDiamonds; + private int timer; + + public GameInformationModel(int remainingsDiamonds) { + this.score = 0; + this.remainingsDiamonds = remainingsDiamonds; + this.timer = 0; + } + + /** + * Returns the actual score + * + * @return score + */ + public int getScore() { + return score; + } + + /** + * Sets the score + * + * @param score Score + */ + public void setScore(int score) { + this.score = score; + } + + /** + * Returns the actual number of remaining diamonds + * + * @return Remaining diamonds + */ + public int getRemainingsDiamonds() { + return remainingsDiamonds; + } + + /** + * Sets the number of remainingDiamonds + * + * @param remainingDiamonds Remaining diamonds + */ + public void setRemainingsDiamonds(int remainingDiamonds) { + this.remainingsDiamonds = remainingDiamonds; + } + + /** + * Gets the timer + * + * @return Timer + */ + public int getTimer() { + return timer; + } + + /** + * Sets the timer + * + * @param timer Timer + */ + public void setTimer(int timer) { + this.timer = timer; + } + + /** + * Increments the score & notify observers + */ + public void incrementScore() { + this.score += 1; + this.myNotify(); + } + + /** + * Generic function which will notify the observers. + */ + private void myNotify() { + this.notifyObservers(); + this.setChanged(); + } + + /** + * Decrement of one the number total of remaining diamonds. + */ + public void decrementRemainingsDiamonds() { + if(remainingsDiamonds > 0){ + this.remainingsDiamonds -= 1; + this.myNotify(); + } + } + + /** + * Reset details about object + */ + public void resetInformations() { + this.score = 0; + this.remainingsDiamonds = remainingsDiamonds; + this.timer = 0; + } + +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/LevelModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/LevelModel.java new file mode 100644 index 00000000..cbb5415a --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/LevelModel.java @@ -0,0 +1,829 @@ +package fr.enssat.BoulderDash.models; + +import fr.enssat.BoulderDash.exceptions.LevelConstraintNotRespectedException; +import fr.enssat.BoulderDash.exceptions.UnknownModelException; +import fr.enssat.BoulderDash.helpers.LevelLoadHelper; +import fr.enssat.BoulderDash.helpers.AudioLoadHelper; +import fr.enssat.BoulderDash.helpers.ModelConvertHelper; +import fr.enssat.BoulderDash.models.DisplayableElementModel; +import fr.enssat.BoulderDash.models.RockfordModel; +import fr.enssat.BoulderDash.models.GameInformationModel; +import fr.enssat.BoulderDash.models.SteelWallModel; +import fr.enssat.BoulderDash.models.EmptyModel; +import fr.enssat.BoulderDash.models.DiamondModel; +import fr.enssat.BoulderDash.models.DoorModel; +import fr.enssat.BoulderDash.models.DirtModel; +import fr.enssat.BoulderDash.models.ExpandingWallModel; +import fr.enssat.BoulderDash.models.CursorModel; + +import java.awt.image.BufferedImage; +import java.util.Observable; + + +/** + * LevelModel + * + * Levels are loaded from XML file. The view knows the model, the controller is + * going to modify the model in function of the game panel. The model notifies + * the view when there are changes on it. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class LevelModel extends Observable implements Runnable { + private DisplayableElementModel[][] groundGrid; + private String levelName; + private AudioLoadHelper audioLoadHelper; + private int sizeWidth = 0; + private int sizeHeight = 0; + private int cursorXPosition = 0; + private int cursorYPosition = 0; + private boolean showCursor = false; + private CursorModel cursorModel; + private LevelLoadHelper levelLoadHelper; + private RockfordModel rockford; + private GameInformationModel gameInformationModel; + private int rockfordPositionX, rockfordPositionY; + private boolean gameRunning; + private boolean gamePaused; + // Are we in editor or game mode ? + private String mode; + + /** + * Sprite animation thread + */ + private Thread spriteAnimator; + + /** + * Animation speed + */ + private final int DELAY = 25; + + /** + * Class constructor + * + * @param levelName Level name + * @param audioLoadHelper Audio load helper + * @param mode Instance mode + */ + public LevelModel(String levelName, AudioLoadHelper audioLoadHelper, String mode) { + this.levelName = levelName; + this.audioLoadHelper = audioLoadHelper; + this.gamePaused = false; + this.gameRunning = true; + this.mode = mode; + + this.levelLoadHelper = new LevelLoadHelper(this.levelName); + + this.groundGrid = this.levelLoadHelper.getGroundGrid(); + this.sizeWidth = this.levelLoadHelper.getWidthSizeValue(); + this.sizeHeight = this.levelLoadHelper.getHeightSizeValue(); + + this.cursorModel = new CursorModel(); + this.gameInformationModel = new GameInformationModel(this.levelLoadHelper.getDiamondsToCatch()); + + this.createLimits(); + + if(this.mode.equals("game")) { + this.initRockford(); + this.initThreadAnimator(); + } + } + + /** + * Class constructor + * + * @param levelName Level name + * @param audioLoadHelper Audio load helper + */ + public LevelModel(String levelName, AudioLoadHelper audioLoadHelper) { + this(levelName, audioLoadHelper, "game"); + } + + /** + * Class constructor (editor mode) + * + * @param audioLoadHelper Audio load helper + */ + public LevelModel(AudioLoadHelper audioLoadHelper) { + this.audioLoadHelper = audioLoadHelper; + this.gameRunning = false; + this.mode = "editor"; + + this.sizeWidth = 25 + 2; + this.sizeHeight = 25 + 2; + + // Generate dirt + this.groundGrid = new DisplayableElementModel[this.sizeWidth][this.sizeHeight]; + + for (int x = 0; x < this.sizeWidth; x++) { + for (int y = 0; y < this.sizeHeight; y++) { + this.groundGrid[x][y] = new DirtModel(); + } + } + + this.createLimits(); + } + + /** + * Initializes the animator thread + */ + private void initThreadAnimator() { + this.spriteAnimator = new Thread(this); + this.spriteAnimator.start(); + } + + /** + * Initializes the Rockford position attributes + */ + private void initRockford() { + this.rockfordPositionX = this.levelLoadHelper.getRockfordPositionX(); + this.rockfordPositionY = this.levelLoadHelper.getRockfordPositionY(); + this.rockford = this.levelLoadHelper.getRockfordInstance(); + } + + /** + * Creates the limits Puts steel walls all around the game panel + */ + private void createLimits() { + int maxWidth = this.sizeWidth - 1; + int maxHeight = this.sizeHeight - 1; + + for (int x = 0; x < this.sizeWidth; x++) { + this.groundGrid[x][0] = new SteelWallModel(); + this.groundGrid[x][maxHeight] = new SteelWallModel(); + } + for (int y = 0; y < this.sizeHeight; y++) { + this.groundGrid[0][y] = new SteelWallModel(); + this.groundGrid[maxWidth][y] = new SteelWallModel(); + } + } + + public void resetLevelModel() { + this.groundGrid = this.levelLoadHelper.getGroundGrid(); + this.gameRunning = true; + this.gameInformationModel.resetInformations(); + } + + /** + * Updates the horizontal & vertical positions of Rockford in the model + * + * @param posX Horizontal position of Rockford + * @param posY Vertical position of Rockford + */ + public void updateRockfordPosition(int posX, int posY) { + this.rockfordPositionY = posY; + this.rockfordPositionX = posX; + } + + /** + * Checks whether position is out-of-bounds or not + * + * @param posX Horizontal position + * @param posY Vertical position + */ + private boolean isOutOfBounds(int posX, int posY) { + if (posX > 0 && posY > 0 && posX < this.getLevelLoadHelper().getHeightSizeValue() && posY < this.getLevelLoadHelper().getWidthSizeValue()) { + return false; + } + + return true; + } + + /** + * Plays collision sound + */ + private void playCollisionSound(int posX, int posY) { + String collisionSound = null; + + if (this.getRockford().isCollisionDone() == false) { + // Out of bounds? + if (this.isOutOfBounds(posX, posY) == true) { + collisionSound = "touch"; + } else { + DisplayableElementModel nextElement = this.groundGrid[posX][posY]; + collisionSound = nextElement.getCollideSound(); + } + + this.getRockford().setCollisionDone(true); + } + + if (collisionSound != null) { + this.audioLoadHelper.playSound(collisionSound); + } + } + + /** + * Gets the horizontal position of Rockford from the model + * + * @return Horizontal position of Rockford + */ + public int getRockfordPositionX() { + return this.rockfordPositionX; + } + + /** + * Sets the new Rockford position + * + * @param posX Next horizontal position on the grid + * @param posY Next vertical position on the grid + */ + public void setPositionOfRockford(int posX, int posY) { + int oldX = this.getRockfordPositionX(); + int oldY = this.getRockfordPositionY(); + + if (this.groundGrid[posX][posY].getSpriteName() == "diamond") { + this.gameInformationModel.incrementScore(); + this.gameInformationModel.decrementRemainingsDiamonds(); + if (this.gameInformationModel.getRemainingsDiamonds() == 0) { + this.spawnExit(); + } + } + if (this.groundGrid[posX][posY].getSpriteName() == "door") { + this.gameRunning = false; + } + + this.playCollisionSound(posX, posY); + + // Check that we are not out of bound... + if (this.isOutOfBounds(posX, posY) == false) { + // Create a new empty model in the old pos of Rockford + this.groundGrid[oldX][oldY] = new EmptyModel(); + + // Save the x / y pos of Rockford in the levelModel only + this.updateRockfordPosition(posX, posY); + + this.groundGrid[posX][posY] = this.getRockford(); + } + } + + /** + * When there is no more diamonds to catch, spawn a exit door randomly in + * the game + */ + private void spawnExit() { + int x = (int) (Math.random() * (this.getSizeHeight() - 2)); + int y = (int) (Math.random() * (this.getSizeWidth() - 2)); + this.groundGrid[x + 1][y + 1] = new DoorModel(); + } + + /** + * Trigger block change with provided value + * + * @param blockValue New value + */ + public void triggerBlockChange(String blockValue) { + // No block value? + if(blockValue == null || blockValue.isEmpty()) { + return; + } + + // Cancel if Rockford is already in model + if((blockValue.equals("Rockford") || blockValue.equals("rockford")) && this.isRockfordInModel()) { + return; + } + + // Grab model value + ModelConvertHelper modelConverter = new ModelConvertHelper(); + DisplayableElementModel targetModel; + int xPos, yPos; + + xPos = this.getCursorXPosition(); + yPos = this.getCursorYPosition(); + + try { + targetModel = modelConverter.toModel(blockValue, false); + + // Apply new model in place of cursor + this.groundGrid[xPos + 1][yPos + 1] = targetModel; + + // Disable cursor (important) + //this.setShowCursor(false); + } catch (UnknownModelException e) { + e.printStackTrace(); + } + } + + /** + * Gets the vertical position of Rockford from the model + * + * @return Vertical position of Rockford + */ + public int getRockfordPositionY() { + return this.rockfordPositionY; + } + + /** + * Gets the Rockford object instance + * + * @return Rockford object + */ + public RockfordModel getRockford() { + return this.rockford; + } + + /** + * Gets the displayable element at given positions + * + * @param x Block horizontal position + * @param y Block vertical position + * @return Displayable element at given positions + */ + public DisplayableElementModel getDisplayableElement(int x, int y) { + return this.groundGrid[x][y]; + } + + /** + * Gets the image at given positions + * + * @param x Block horizontal position + * @param y Block vertical position + * @return Image at given positions + */ + public BufferedImage getImage(int x, int y) { + DisplayableElementModel elementModel = this.getDisplayableElement(x, y); + + if(elementModel == null) { + return new DirtModel().getSprite(); + } + + return elementModel.getSprite(); + } + + /** + * Gets the cursor image image + * + * @return Cursor image + */ + public BufferedImage getCursorImage() { + + if (this.cursorModel == null) { + this.cursorModel = new CursorModel(); + } + + return this.cursorModel.getSprite(); + } + + /** + * Return whether rockford is in model or not + * Notice: not optimized, be careful + * + * @return Whether rockford is in model or not + */ + public boolean isRockfordInModel() { + boolean isInModel = false; + + // Iterate and catch it! + for (int x = 0; x < this.getSizeWidth() && !isInModel; x++) { + for (int y = 0; y < this.getSizeHeight() && !isInModel; y++) { + if(this.groundGrid[x][y] != null && this.groundGrid[x][y].getSpriteName() == "rockford") { + isInModel = true; + } + } + } + + return isInModel; + } + + /** + * Returns number of diamonds + * + * @return Number of diamonds + */ + public int countDiamonds() { + int numberOfDiamonds = 0; + + // Iterate and catch it! + for (int x = 0; x < this.getSizeWidth(); x++) { + for (int y = 0; y < this.getSizeHeight(); y++) { + if(this.groundGrid[x][y] != null && this.groundGrid[x][y].getSpriteName() == "diamond") { + numberOfDiamonds += 1; + } + } + } + + return numberOfDiamonds; + } + + /** + * Returns whether constraints on model are respected or not + */ + public void checkConstraints() throws LevelConstraintNotRespectedException { + // Diamonds number? + if(this.countDiamonds() < 3) { + throw new LevelConstraintNotRespectedException("Add at least 3 diamonds!"); + } + + // Rockford in model? + if(!this.isRockfordInModel()) { + throw new LevelConstraintNotRespectedException("Add Rockford on the map!"); + } + } + + /** + * Gets the level horizontal size + * + * @return Horizontal size + */ + public int getSizeWidth() { + return this.sizeWidth; + } + + /** + * Sets the level horizontal size + * + * @param sizeWidth Horizontal size + */ + public void setSizeWidth(int sizeWidth) { + this.sizeWidth = sizeWidth; + } + + /** + * Gets the level vertical size + * + * @return Vertical size + */ + public int getSizeHeight() { + return this.sizeHeight; + } + + /** + * Sets the level vertical size + * + * @return sizeHeight Vertical size + */ + public void setSizeHeight(int sizeHeight) { + this.sizeHeight = sizeHeight; + } + + /** + * Gets the ground level model + * + * @return Ground level model + */ + public DisplayableElementModel[][] getGroundLevelModel() { + return groundGrid; + } + + /** + * Notify observers about a model change + */ + private void localNotifyObservers() { + this.notifyObservers(); + this.setChanged(); + } + + /** + * Update the current sprite Notifies the observers + * + * @param x Sprite block horizontal position + * @param y Sprite block vertical position + */ + public void updateSprites(int x, int y) { + if(groundGrid[x][y] == null) { + groundGrid[x][y] = new DirtModel(); + } + + groundGrid[x][y].update(System.currentTimeMillis()); + this.localNotifyObservers(); + } + + /** + * Update all the sprites So that they can be animated + */ + public void run() { + while (gameRunning) { + if (!gamePaused) { + for (int x = 0; x < this.getSizeWidth(); x++) { + for (int y = 0; y < this.getSizeHeight(); y++) { + this.updateSprites(x, y); + } + } + } + + try { + Thread.sleep(DELAY); + } catch (InterruptedException e) { + System.out.println("Interrupted: " + e.getMessage()); + } + } + } + + /** + * Increments the user score + */ + public void incrementScore() { + this.gameInformationModel.incrementScore(); + } + + /** + * Gets the associated level load helper + * + * @return Level load helper + */ + public LevelLoadHelper getLevelLoadHelper() { + return this.levelLoadHelper; + } + + /** + * Gets the cursor position X value + * + * @return Cursor position X value + */ + public int getCursorXPosition() { + return this.cursorXPosition; + } + + /** + * Gets the cursor position Y value + * + * @return Cursor position Y value + */ + public int getCursorYPosition() { + return this.cursorYPosition; + } + + /** + * Increaments the cursor position X value + * + * @return Cursor position new X value + */ + public int incrementCursorXPosition() { + if (this.cursorXPosition < (this.getSizeWidth() - 1 - 2)) { + this.cursorXPosition = this.cursorXPosition + 1; + } + + this.localNotifyObservers(); + return this.getCursorXPosition(); + } + + /** + * Decrements the cursor position X value + * + * @return Cursor position new X value + */ + public int decrementCursorXPosition() { + if (this.cursorXPosition > 0) { + this.cursorXPosition = this.cursorXPosition - 1; + } + + this.localNotifyObservers(); + return this.getCursorXPosition(); + } + + /** + * Increaments the cursor position Y value + * + * @return Cursor position new Y value + */ + public int incrementCursorYPosition() { + if (this.cursorYPosition < (this.getSizeHeight() - 1 - 2)) { + this.cursorYPosition = this.cursorYPosition + 1; + } + + this.localNotifyObservers(); + return this.getCursorYPosition(); + } + + /** + * Decrements the cursor position Y value + * + * @return Cursor position new Y value + */ + public int decrementCursorYPosition() { + if (this.cursorYPosition > 0) { + this.cursorYPosition = this.cursorYPosition - 1; + } + + this.localNotifyObservers(); + return this.getCursorYPosition(); + } + + /** + * sets the game to a defined state + * + * @param gameRunning Whether game is running or not + */ + public void setGameRunning(boolean gameRunning) { + this.gameRunning = gameRunning; + // Timer to refresh the view properly... + try { + Thread.sleep(200); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + this.localNotifyObservers(); + } + + /** + * tells if the game is running + * + * @return whether the game is running or not + */ + public boolean isGameRunning() { + return gameRunning; + } + + /** + * Gets whether cursor is to be shown or not + * + * @return whether cursor needs to be shown or not + */ + public boolean getShowCursor() { + return this.showCursor; + } + + /** + * Sets whether cursor is to be shown or not + * + * @param showCursor whether cursor needs to be shown or not + */ + public void setShowCursor(boolean showCursor) { + this.showCursor = showCursor; + } + + /** + * When a boulder is falling on Rockford there is an explosion around him + * + * @param x Object horizontal position + * @param y Object vertical position + */ + public void exploseGround(int x, int y) { + this.groundGrid[x][y] = new EmptyModel(); + this.groundGrid[x + 1][y] = new EmptyModel(); + this.groundGrid[x - 1][y] = new EmptyModel(); + this.groundGrid[x][y + 1] = new EmptyModel(); + this.groundGrid[x + 1][y + 1] = new EmptyModel(); + this.groundGrid[x - 1][y + 1] = new EmptyModel(); + this.groundGrid[x][y - 1] = new EmptyModel(); + this.groundGrid[x + 1][y - 1] = new EmptyModel(); + this.groundGrid[x - 1][y - 1] = new EmptyModel(); + this.rockford.setHasExplosed(true); + + // Again a sleep to notify the observers properly + try { + Thread.sleep(50); + } catch (InterruptedException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + this.localNotifyObservers(); + } + + /** + * Makes the DisplayableElement[x][y] fall one box down + * + * @param x Object horizontal position + * @param y Object vertical position + */ + public void makeThisDisplayableElementFall(int x, int y) { + this.groundGrid[x][y].setFalling(true); + this.groundGrid[x][y + 1] = this.groundGrid[x][y]; + this.groundGrid[x][y] = new EmptyModel(); + } + + /** + * Makes the BoulderModel[x][y] slide left + * + * @param x Object horizontal position + * @param y Object vertical position + */ + public void makeThisBoulderSlideLeft(int x, int y) { + this.groundGrid[x][y].setFalling(true); + this.groundGrid[x - 1][y + 1] = this.groundGrid[x][y]; + this.groundGrid[x][y] = new EmptyModel(); + } + + /** + * Makes the BoulderModel[x][y] slide right + * + * @param x Object horizontal position + * @param y Object vertical position + */ + public void makeThisBoulderSlideRight(int x, int y) { + this.groundGrid[x][y].setFalling(true); + this.groundGrid[x + 1][y + 1] = this.groundGrid[x][y]; + this.groundGrid[x][y] = new EmptyModel(); + } + + /** + * Makes the BoulderModel[x][y] transform into a diamond + * + * @param x Object horizontal position + * @param y Object vertical position + */ + public void transformThisBoulderIntoADiamond(int x, int y) { + this.groundGrid[x][y + 2] = new DiamondModel(); + this.groundGrid[x][y] = new EmptyModel(); + } + + /** + * Makes the BoulderModel[x][y] moving to right + * + * @param x Object horizontal position + * @param y Object vertical position + */ + public void moveThisBoulderToRight(int x, int y) { + this.groundGrid[x + 1][y] = this.groundGrid[x][y]; + this.groundGrid[x][y] = new EmptyModel(); + } + + /** + * Makes the BoulderModel[x][y] moving to left + * + * @param x Object horizontal position + * @param y Object vertical position + */ + public void moveThisBoulderToLeft(int x, int y) { + this.groundGrid[x - 1][y] = this.groundGrid[x][y]; + this.groundGrid[x][y] = new EmptyModel(); + } + + /** + * Deletes the BoulderModel[x][y] + * + * @param x Object horizontal position + * @param y Object vertical position + */ + public void deleteThisBoulder(int x, int y) { + this.groundGrid[x][y] = new EmptyModel(); + } + + /** + * Gets gameInformationModel + * + * @return gameInfos like score, remainings Diamonds etc + */ + public GameInformationModel getGameInformationModel() { + return this.gameInformationModel; + } + + /** + * Explose the brick wall + * + * @param x + * @param y + */ + public void exploseThisBrickWall(int x, int y) { + this.groundGrid[x][y] = new EmptyModel(); + this.groundGrid[x][y + 1] = new EmptyModel(); + } + + /** + * Expand the ExpandingWallModel to left + * + * @param x + * @param y + */ + public void expandThisWallToLeft(int x, int y) { + this.groundGrid[x - 1][y] = new ExpandingWallModel(); + } + + /** + * Expand the ExpandingWallModel to right + * + * @param x + * @param y + */ + public void expandThisWallToRight(int x, int y) { + this.groundGrid[x + 1][y] = new ExpandingWallModel(); + } + + /** + * Set the gamePaused variable + * + * @param gamePaused + */ + public void setGamePaused(boolean gamePaused) { + this.gamePaused = gamePaused; + } + + /** + * Get the gamePaused variable + * + * @return gamePaused + */ + public boolean getGamePaused() { + return this.gamePaused; + } + + /** + * Get the mode where this levelModel is used + * + * @return mode + */ + public String getMode() { + return mode; + } + + /** + * Set the mode where this levelModel is used + * + * @param mode + */ + public void setMode(String mode) { + this.mode = mode; + } + +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/MagicWallModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/MagicWallModel.java new file mode 100644 index 00000000..366c3553 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/MagicWallModel.java @@ -0,0 +1,91 @@ +package fr.enssat.BoulderDash.models; + +import java.awt.image.BufferedImage; +import java.util.ArrayList; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; + + +/** + * MagicWallModel + * + * Represents the magic wall. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class MagicWallModel extends DisplayableElementModel { + private static String spriteName; + private static boolean isDestructible; + private static boolean canMove; + private static boolean impactExplosive; + private static boolean animate; + private static int priority; + private static boolean falling; + private static String collideSound; + + /** + * Stores the frames + * Used for the sprites + */ + private ArrayList framesMagicWall; + + private long previousTime; + private int currentFrame; + private long speed; + + /** + * Static dataset + * Specifies the physical parameters of the object + */ + static { + spriteName = "magicwall"; + isDestructible = false; + canMove = false; + impactExplosive = false; + animate = false; + priority = 3; + falling = false; + collideSound = "touch"; + } + + /** + * Class constructor + */ + public MagicWallModel() { + super(isDestructible, canMove, spriteName, priority, impactExplosive, animate, falling, collideSound); + this.currentFrame = 0; + this.speed = 100; + this.initSprites(); + } + + /** + * Function to animate the sprite + */ + public void update(long time) { + if (time - previousTime >= speed) { + // Update animation + previousTime = time; + + try { + currentFrame += 1; + + this.setSprite(framesMagicWall.get(this.currentFrame)); + } catch (IndexOutOfBoundsException e) { + currentFrame = 0; + } + } + } + + /** + * Init the subimages + */ + private void initSprites() { + this.framesMagicWall = new ArrayList(); + /* INIT SPRITE FOR DIAMOND */ + framesMagicWall.add(grabSprite(loadSprite(spriteName), 0, 0, 16, 16)); + framesMagicWall.add(grabSprite(loadSprite(spriteName), 24, 0, 16, 16)); + framesMagicWall.add(grabSprite(loadSprite(spriteName), 48, 0, 16, 16)); + framesMagicWall.add(grabSprite(loadSprite(spriteName), 72, 0, 16, 16)); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/RockfordModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/RockfordModel.java new file mode 100644 index 00000000..e958ebf4 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/RockfordModel.java @@ -0,0 +1,302 @@ +package fr.enssat.BoulderDash.models; + +import java.awt.image.BufferedImage; +import java.util.ArrayList; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; + + +/** + * RockfordModel + * + * Represents the hero of the game. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class RockfordModel extends DisplayableElementModel { + private static String spriteName; + private static boolean isDestructible; + private static boolean canMove; + private static boolean impactExplosive; + private static boolean animate; + private static int priority; + private static boolean falling; + private static String collideSound; + + /** + * Maps the sub images of the sprite file + */ + private static ArrayList framesBlinking; + private static ArrayList framesRunningLeft; + private static ArrayList framesRunningRight; + private static ArrayList framesRunningUpOrDown; + + /** + * Defines the size of the sprite + */ + private final int SIZ_X_OF_SPRITE = 16; + private final int SIZ_Y_OF_SPRITE = 16; + + /** + * Defines the current speed of the object + */ + private long speed; + + /** + * Maps possible states for Rockford + */ + private boolean isCollisionDone = false; + private boolean isStaying = true; + private boolean isRunningLeft = false; + private boolean isRunningRight = false; + private boolean isRunningUp = false; + private boolean isRunningDown = false; + + private long previousTime; + private int currentFrame; + private boolean hasExploded; + + /** + * Static dataset + * Specifies the physical parameters of the object + */ + static { + spriteName = "rockford"; + isDestructible = true; + canMove = true; + impactExplosive = true; + animate = true; + priority = 1; + falling = false; + collideSound = null; + } + + /** + * Class constructor + */ + public RockfordModel() { + super(isDestructible, canMove, spriteName, priority, impactExplosive, animate, falling, collideSound); + // Speed of the animation of the sprite + this.setSpeed(100); + // Init the sprites in arrays + this.initSprites(); + this.hasExploded = false; + } + + public void setSpeed(int speed) { + this.speed = speed; + } + + /** + * Updates the sprite animation + * (And only that single thing) + */ + public void update(long time) { + if (time - this.previousTime >= this.speed) { + // Update the animation + this.previousTime = time; + try { + currentFrame += 1; + + if (isStaying()) { + this.setSprite(framesBlinking.get(currentFrame)); + } else if (isRunningLeft()) { + this.setSprite(framesRunningLeft.get(currentFrame)); + } else if (isRunningRight()) { + this.setSprite(framesRunningRight.get(currentFrame)); + } else if (isRunningUpOrDown()) { + this.setSprite(framesRunningUpOrDown.get(currentFrame)); + } + } catch (IndexOutOfBoundsException e) { + this.currentFrame = 0; + } + } + } + + /** + * Stops the Rockford movement + */ + public void startStaying() { + isCollisionDone = false; + isStaying = true; + isRunningLeft = false; + isRunningRight = false; + isRunningUp = false; + isRunningDown = false; + previousTime = 0; + currentFrame = 0; + } + + /** + * Starts moving Rockford to the left + */ + public void startRunningLeft() { + isCollisionDone = false; + isStaying = false; + isRunningLeft = true; + isRunningRight = false; + isRunningUp = false; + isRunningDown = false; + previousTime = 0; + } + + /** + * Starts moving Rockford to the right + */ + public void startRunningRight() { + isCollisionDone = false; + isStaying = false; + isRunningLeft = false; + isRunningRight = true; + isRunningUp = false; + isRunningDown = false; + previousTime = 0; + } + + /** + * Rockford running up + */ + public void startRunningUp() { + isCollisionDone = false; + isStaying = false; + isRunningLeft = false; + isRunningRight = false; + isRunningUp = true; + isRunningDown = false; + previousTime = 0; + } + + /** + * Rockford running down + */ + public void startRunningDown() { + isCollisionDone = false; + isStaying = false; + isRunningLeft = false; + isRunningRight = false; + isRunningUp = false; + isRunningDown = true; + previousTime = 0; + } + + /** + * Gets whether Rockford collision has been handled or not + * + * @return Rockford collision handled or not + */ + public boolean isCollisionDone() { + return this.isCollisionDone; + } + + /** + * Sets whether Rockford collision has been handled or not + * + * @param isCollisionDone Rockford collision handled or not + */ + public void setCollisionDone(boolean isCollisionDone) { + this.isCollisionDone = isCollisionDone; + } + + /** + * Gets whether Rockford is standing still or not + * + * @return Rockford staying or not + */ + public boolean isStaying() { + return this.isStaying; + } + + /** + * Gets whether Rockford is running to the left or not + * + * @return Rockford running to the left or not + */ + public boolean isRunningLeft() { + return this.isRunningLeft; + } + + /** + * Gets whether Rockford is running to the right or not + * + * @return Rockford running to the right or not + */ + public boolean isRunningRight() { + return this.isRunningRight; + } + + /** + * Gets whether Rockford is running up or not + * + * @return Rockford running up, or not + */ + public boolean isRunningUp() { + return this.isRunningUp; + } + + /** + * Gets whether Rockford is running down or not + * + * @return Rockford running down, or not + */ + public boolean isRunningDown() { + return this.isRunningDown; + } + + /** + * Gets whether Rockford is running up or down, or not + * + * @return Rockford running up or down, or not + */ + public boolean isRunningUpOrDown() { + return this.isRunningUp() || this.isRunningDown(); + } + + /** + * Initializes all sprites from the main image + * Takes the sub images and append them into storage arrays + */ + private void initSprites() { + framesBlinking = new ArrayList(); + framesRunningLeft = new ArrayList(); + framesRunningRight = new ArrayList(); + framesRunningUpOrDown = new ArrayList(); + + /* INIT SPRITE ARRAYS FOR ROCKFORD */ + for (int i = 0; i < 8; i++) { + framesBlinking.add( + this.grabSprite(this.loadSprite(spriteName), 7 + (24 * i), 79, SIZ_X_OF_SPRITE, SIZ_Y_OF_SPRITE) + ); + + framesRunningLeft.add( + this.grabSprite(this.loadSprite(spriteName), 7 + (24 * i), 103, SIZ_X_OF_SPRITE, SIZ_Y_OF_SPRITE) + ); + + framesRunningRight.add( + this.grabSprite(this.loadSprite(spriteName), 7 + (24 * i), 127, SIZ_X_OF_SPRITE, SIZ_Y_OF_SPRITE) + ); + } + + framesRunningUpOrDown.add( + this.grabSprite(this.loadSprite(spriteName), 7, 7, SIZ_X_OF_SPRITE, SIZ_Y_OF_SPRITE) + ); + } + + /** + * Return true if rockford has exploded (you = lose) + * + * @return Whether Rockford has exploded or not + */ + public boolean getHasExplosed() { + return hasExploded; + } + + /** + * Set rockford exploded state + * + * @param hasExploded Whether Rockford has exploded or not + */ + public void setHasExplosed(boolean hasExploded){ + this.hasExploded = hasExploded; + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/models/SteelWallModel.java b/boulder-dash/src/fr/enssat/BoulderDash/models/SteelWallModel.java new file mode 100644 index 00000000..2696ac1e --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/models/SteelWallModel.java @@ -0,0 +1,46 @@ +package fr.enssat.BoulderDash.models; + +import fr.enssat.BoulderDash.models.DisplayableElementModel; + + +/** + * SteelWallModel + * + * Represents the steelWall + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class SteelWallModel extends DisplayableElementModel { + private static String spriteName; + private static boolean isDestructible; + private static boolean canMove; + private static boolean impactExplosive; + private static boolean animate; + private static int priority; + private static boolean falling; + private static String collideSound; + + /** + * Static dataset + * Specifies the physical parameters of the object + */ + static { + spriteName = "steelwall"; + isDestructible = false; + canMove = false; + impactExplosive = false; + animate = false; + priority = 3; + falling = false; + collideSound = "touch"; + } + + /** + * Class constructor + */ + public SteelWallModel() { + super(isDestructible, canMove, spriteName, priority, impactExplosive, animate, falling, collideSound); + this.loadSprite(spriteName); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/AssetsLevelEditorComponent.java b/boulder-dash/src/fr/enssat/BoulderDash/views/AssetsLevelEditorComponent.java new file mode 100644 index 00000000..25645d47 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/AssetsLevelEditorComponent.java @@ -0,0 +1,78 @@ +package fr.enssat.BoulderDash.views; + +import java.awt.*; +import java.awt.event.*; +import java.util.Arrays; +import java.util.List; +import javax.swing.*; + +import fr.enssat.BoulderDash.views.LevelEditorView; + + +/** + * AssetsLevelEditorComponent + * + * Information panel element. + * + * @author Valerian Saliou + * @since 2015-06-22 + */ +public class AssetsLevelEditorComponent extends JPanel implements ActionListener { + private LevelEditorView levelEditorView; + + /** + * Available choices + */ + static List choiceList = Arrays.asList( + "Boulder", "Diamond", "Dirt", "Brick Wall", "Expanding Wall", "Magic Wall", "Steel Wall", "Rockford" + ); + + /** + * Class constructor + * + * @param levelEditorView Controller for level editor + */ + public AssetsLevelEditorComponent(LevelEditorView levelEditorView) { + super(new BorderLayout()); + + this.levelEditorView = levelEditorView; + ButtonGroup buttonGroup = new ButtonGroup(); + JPanel radioPanel = new JPanel(new GridLayout(0, 1)); + + String curListChoice; + + for(int i = 0; i < choiceList.size(); i++) { + curListChoice = choiceList.get(i); + + // Create radio buttons from list + JRadioButton curButton = new JRadioButton(curListChoice); + //boulderButton.setMnemonic(KeyEvent.VK_A); + curButton.setActionCommand(curListChoice); + + // Group the radio buttons + buttonGroup.add(curButton); + + // Register a listener for the radio buttons + curButton.addActionListener(this); + + // Put the radio buttons in a column in a panel + radioPanel.add(curButton); + } + + this.add(radioPanel, BorderLayout.LINE_START); + this.setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20)); + } + + /** + * Listens for action events + * + * @param e Action event + */ + public void actionPerformed(ActionEvent e) { + JRadioButton sourceButton = (JRadioButton) e.getSource(); + String sourceText = sourceButton.getText(); + + this.levelEditorView.setPickedBlockValue(sourceText); + this.levelEditorView.getLevelEditorGroundView().grabFocus(); + } +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/GameGroundView.java b/boulder-dash/src/fr/enssat/BoulderDash/views/GameGroundView.java new file mode 100644 index 00000000..640e7fd2 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/GameGroundView.java @@ -0,0 +1,39 @@ +package fr.enssat.BoulderDash.views; + +import fr.enssat.BoulderDash.views.GroundView; +import fr.enssat.BoulderDash.controllers.GameController; +import fr.enssat.BoulderDash.controllers.GameKeyController; +import fr.enssat.BoulderDash.models.LevelModel; + +import javax.swing.*; +import java.awt.*; + + +/** + * GameFieldView + * + * Game field view for the game itself. + * + * @author Valerian Saliou + * @since 2015-06-21 + */ +public class GameGroundView extends GroundView { + private GameController gameController; + + /** + * Class constructor + * + * @param gameController Game controller + * @param levelModel Level model + */ + public GameGroundView(GameController gameController, LevelModel levelModel) { + super(levelModel); + + this.gameController = gameController; + + this.addKeyListener(new GameKeyController(this.levelModel, this.gameController.getAudioLoadHelper())); + + this.setBorder(BorderFactory.createLineBorder(Color.black)); + this.setFocusable(true); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/GameView.java b/boulder-dash/src/fr/enssat/BoulderDash/views/GameView.java new file mode 100644 index 00000000..8874d528 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/GameView.java @@ -0,0 +1,119 @@ +package fr.enssat.BoulderDash.views; + +import javax.swing.*; + +import java.awt.*; +import java.util.Observable; +import java.util.Observer; + +import fr.enssat.BoulderDash.controllers.GameController; +import fr.enssat.BoulderDash.models.LevelModel; +import fr.enssat.BoulderDash.views.GameGroundView; +import fr.enssat.BoulderDash.views.InformationPanel; + + +/** + * GameView + * + * Specifies the game view itself. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class GameView extends JFrame implements Observer { + private GameGroundView gameGroundView; + private JPanel actionPanel; + private JPanel informationPanel; + private GameController gameController; + private LevelModel levelModel; + + /** + * Class constructor + * + * @param gameController Game controller + * @param levelModel Level model + */ + public GameView(GameController gameController, LevelModel levelModel) { + this.gameController = gameController; + this.levelModel = levelModel; + + this.initializeView(); + this.createLayout(); + + this.gameGroundView.grabFocus(); + } + + /** + * Initializes the view + */ + private void initializeView() { + this.setVisible(false); + this.setResizable(false); + + // UI parameters + this.setDefaultCloseOperation(this.EXIT_ON_CLOSE); + this.setBounds(100, 100, 432, 536); + + // App parameters + this.setTitle("Boulder Dash | Game"); + + Image appIcon = Toolkit.getDefaultToolkit().getImage("./res/app/app_icon.png"); + this.setIconImage(appIcon); + } + + /** + * Creates the view layout + */ + private void createLayout() { + this.gameGroundView = new GameGroundView(this.gameController, this.levelModel); + this.actionPanel = new JPanel(); + this.informationPanel = new InformationPanel(this.levelModel); + this.informationPanel.setBackground(Color.white); + + + // Add some buttons on the informationPanel + this.createButton("restart", "Restart"); + this.createButton("pause", "Pause"); + this.createButton("menu", "Menu"); + + this.add(this.actionPanel, BorderLayout.SOUTH); + this.add(this.informationPanel, BorderLayout.NORTH); + this.add(this.gameGroundView, BorderLayout.CENTER); + } + + /** + * Gets the game field view + * + * @return Game field view + */ + public GameGroundView getGameFieldView() { + return this.gameGroundView; + } + + /** + * Creates the given button + * + * @param name Button name + * @return Created button + */ + public JButton createButton(String id, String name) { + JButton button = new JButton(name); + button.addActionListener(this.gameController); + button.setActionCommand(id); + + this.actionPanel.add(button); + + return button; + } + + /** + * Updates the frame + * + * @param obs Observable item + * @param obj Object item + */ + @Override + public void update(Observable obs, Object obj) { + // Nothing done. + } +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/GroundView.java b/boulder-dash/src/fr/enssat/BoulderDash/views/GroundView.java new file mode 100644 index 00000000..359bbcb4 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/GroundView.java @@ -0,0 +1,110 @@ +package fr.enssat.BoulderDash.views; + +import fr.enssat.BoulderDash.models.LevelModel; + +import javax.swing.*; + +import java.awt.*; +import java.util.Observable; +import java.util.Observer; + +/** + * FieldView + * + * FieldView, created by controller; we notice that we don't need to make + * levelModel observable; Because of the sprites we have to refresh the game + * windows very often so don't need of observers/observable mechanism + * + * @author Colin Leverger + * @since 2015-06-19 + * + * This view is basically drawing into the Frame the levelModel. + * + */ +public abstract class GroundView extends JPanel implements Observer { + protected LevelModel levelModel; + + /** + * Class constructor + * + * @param levelModel Level model + */ + public GroundView(LevelModel levelModel) { + this.levelModel = levelModel; + this.levelModel.addObserver(this); + } + + /** + * Draws the map + * + * @param width Map width + * @param height Map height + * @param g Map graphical object + */ + public void drawTerrain(int width, int height, Graphics g) { + // Draw items + if (this.levelModel.getMode() == "game") { + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + g.drawImage(this.levelModel.getImage(x, y), (x * 16), (y * 16), this); + } + } + + if(!this.levelModel.isGameRunning()) { + if(!this.levelModel.getRockford().getHasExplosed()) { + this.displayWin(); + } else { + this.displayLose(); + } + } + } else { + for (int x = 0; x < width; x++) { + for (int y = 0; y < height; y++) { + g.drawImage(this.levelModel.getImage(x, y), (x * 16), (y * 16), this); + } + } + if (this.levelModel.getShowCursor()) { + g.drawImage( + this.levelModel.getCursorImage(), + ((this.levelModel.getCursorXPosition() + 1) * 16), + ((this.levelModel.getCursorYPosition() + 1) * 16), + this + ); + } + } + } + + /** + * Set the view to inform the user that he won + */ + private void displayWin() { + new WinLoseView("win"); + } + + /** + * Set the view to inform the user that he is not good at this game + */ + private void displayLose() { + new WinLoseView("lose"); + } + + /** + * Paints the map + * + * @param g Map graphical object + */ + public void paint(Graphics g) { + this.drawTerrain(this.levelModel.getSizeWidth(), this.levelModel.getSizeHeight(), g); + } + + /** + * Updates the view + * + * @param obs Observable item + * @param obj Object item + */ + @Override + public void update(Observable obs, Object obj) { + repaint(); + } +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/HelpView.java b/boulder-dash/src/fr/enssat/BoulderDash/views/HelpView.java new file mode 100644 index 00000000..f8175404 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/HelpView.java @@ -0,0 +1,50 @@ +package fr.enssat.BoulderDash.views; + +import java.awt.BorderLayout; + +import javax.swing.JFrame; +import javax.swing.JTextArea; + +public class HelpView extends JFrame{ + + /** + * Generate the HelpView + */ + public HelpView(){ + this.initializeView(); + this.createLayout(); + } + + /** + * Initializes the view + */ + private void initializeView() { + this.setVisible(true); + this.setResizable(false); + + // UI parameters + this.setDefaultCloseOperation(this.DISPOSE_ON_CLOSE); + this.setBounds(100, 100, 560, 150); + + // App parameters + this.setTitle("Boulder Dash | Help"); + } + + /** + * Creates the view layout + */ + private void createLayout() { + JTextArea help = new JTextArea(); + help.setEditable(false); + help.setText("To use the editor, you should :\n" + + "- Select an item on the list,\n" + + "- Move the RED cursur with the arrows\n" + + "- To place the selected item on the field, use SPACEBAR.\n" + + "If you want to lock the placement of the things, hit shift once (to unlock, rehit shift)\n" + + "Then, you can save & load your creation on game.\n" + + "You have to place at least 3 diamonds and 1 rockford!\n" + + "Have fun ;-)"); + + this.add(help, BorderLayout.CENTER); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/InformationPanel.java b/boulder-dash/src/fr/enssat/BoulderDash/views/InformationPanel.java new file mode 100644 index 00000000..95efc596 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/InformationPanel.java @@ -0,0 +1,54 @@ +package fr.enssat.BoulderDash.views; + +import java.util.Observable; +import java.util.Observer; + +import javax.swing.JPanel; +import javax.swing.JTextArea; + +import fr.enssat.BoulderDash.models.LevelModel; + + +/** + * InformationPanel + * + * Information panel element. + * + * @author Colin Leverger + * @since 2015-06-20 + */ +public class InformationPanel extends JPanel implements Observer { + private LevelModel levelModel; + private JTextArea text; + + /** + * Class constructor + */ + public InformationPanel(LevelModel levelModel) { + this.levelModel = levelModel; + this.text = new JTextArea(); + this.text.setEditable(false); + this.levelModel.getGameInformationModel().addObserver(this); + + this.text.setText( + "Score : " + levelModel.getGameInformationModel().getScore() + + "\nRemaining diamonds : " + levelModel.getGameInformationModel().getRemainingsDiamonds() + ); + + this.add(this.text); + } + + /** + * Updates the panel + * + * @param o Observable item + * @param arg Object item + */ + @Override + public void update(Observable o, Object arg) { + this.text.setText( + "Score : " + this.levelModel.getGameInformationModel().getScore() + + "\nRemaining diamonds : " + this.levelModel.getGameInformationModel().getRemainingsDiamonds() + ); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/LevelEditorGroundView.java b/boulder-dash/src/fr/enssat/BoulderDash/views/LevelEditorGroundView.java new file mode 100644 index 00000000..417a1b75 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/LevelEditorGroundView.java @@ -0,0 +1,28 @@ +package fr.enssat.BoulderDash.views; + +import fr.enssat.BoulderDash.views.GroundView; +import fr.enssat.BoulderDash.views.LevelEditorView; +import fr.enssat.BoulderDash.controllers.LevelEditorKeyController; +import fr.enssat.BoulderDash.models.LevelModel; + + +/** + * LevelEditorFieldView + * + * Game field view for the level editor. + * + * @author Valerian Saliou + * @since 2015-06-21 + */ +public class LevelEditorGroundView extends GroundView { + /** + * Class constructor + * + * @param levelModel Level model + */ + public LevelEditorGroundView(LevelModel levelModel, LevelEditorView levelEditorView) { + super(levelModel); + + this.addKeyListener(new LevelEditorKeyController(levelModel, levelEditorView)); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/LevelEditorView.java b/boulder-dash/src/fr/enssat/BoulderDash/views/LevelEditorView.java new file mode 100644 index 00000000..d6e5557a --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/LevelEditorView.java @@ -0,0 +1,228 @@ +package fr.enssat.BoulderDash.views; + +import javax.swing.*; +import java.awt.*; +import java.util.Observable; +import java.util.Observer; + +import fr.enssat.BoulderDash.helpers.LevelSelectorHelper; +import fr.enssat.BoulderDash.controllers.LevelEditorController; +import fr.enssat.BoulderDash.controllers.NavigationBetweenViewController; +import fr.enssat.BoulderDash.models.LevelModel; +import fr.enssat.BoulderDash.views.LevelEditorGroundView; +import fr.enssat.BoulderDash.views.AssetsLevelEditorComponent; +import fr.enssat.BoulderDash.views.MenuLevelSelector; + + +/** + * LevelEditorView + * + * Specifies the level editor view. + * + * @author Colin Leverger + * @since 2015-06-19 + */ +public class LevelEditorView extends JFrame implements Observer { + private LevelEditorGroundView fieldPanel; + private JPanel selectPanel; + private AssetsLevelEditorComponent assetsComponent; + private JPanel actionsComponent; + private String selectedLevel; + private MenuLevelSelector menuLevelSelector; + private NavigationBetweenViewController nav; + + private LevelEditorController levelEditorController; + private LevelModel levelModel; + + private String pickedBlockValue; + + /** + * Class constructor + */ + public LevelEditorView(LevelEditorController levelEditorController, LevelModel levelModel, NavigationBetweenViewController nav) { + this.levelEditorController = levelEditorController; + this.levelModel = levelModel; + this.nav = nav; + + this.levelModel.addObserver(this); + + this.initializeView(); + this.createLayout(); + + this.fieldPanel.grabFocus(); + } + + /** + * Initializes the view layout + */ + private void initializeView() { + this.setFocusable(true); + this.setVisible(false); + this.setResizable(false); + + // UI parameters + this.setSize(984, 454); + this.setLocationRelativeTo(null); + this.setDefaultCloseOperation(EXIT_ON_CLOSE); + + // App parameters + this.setTitle("Boulder Dash | Level Editor"); + + Image appIcon = Toolkit.getDefaultToolkit().getImage("./res/app/app_icon.png"); + this.setIconImage(appIcon); + } + + /** + * Creates the view layout + */ + private void createLayout() { + // List of levels + LevelSelectorHelper levelSelectorHelper = new LevelSelectorHelper(true, this); + this.menuLevelSelector = levelSelectorHelper.createLevelList(); + + // Field + select panels + this.fieldPanel = new LevelEditorGroundView(this.levelModel, this); + this.selectPanel = new JPanel(); + + this.assetsComponent = new AssetsLevelEditorComponent(this); + this.actionsComponent = new JPanel(); + + // Add actions + this.actionsComponent.add(this.menuLevelSelector); + this.actionsComponent.add(this.createButton("save", "Save")); + this.actionsComponent.add(this.createButton("delete", "Delete")); + this.actionsComponent.add(this.createButton("new", "New level")); + this.actionsComponent.add(this.createButton("menu", "Menu")); + this.actionsComponent.add(this.createButton("help", "Help")); + + // Add select panel subcomponents + this.selectPanel.setLayout(new BoxLayout(this.selectPanel, BoxLayout.Y_AXIS)); + + this.selectPanel.add(this.assetsComponent); + this.selectPanel.add(this.actionsComponent); + + // Add top components + this.add(this.fieldPanel, BorderLayout.CENTER); + this.add(this.selectPanel, BorderLayout.WEST); + } + + /** + * Creates the given button + * + * @param id Button identifier + * @param name Button name + * @return Created button + */ + public JButton createButton(String id, String name) { + JButton button = new JButton(name); + button.addActionListener(this.levelEditorController); + button.setActionCommand(id); + + return button; + } + + /** + * Gets the level editor field view + * + * @return Level editor field view + */ + public LevelEditorGroundView getLevelEditorGroundView() { + return this.fieldPanel; + } + + /** + * Gets picked block value + * + * @return Picked block value + */ + public String getPickedBlockValue() { + return this.pickedBlockValue; + } + + /** + * Sets picked block value + * + * @param pickedBlockValue Picked block value + */ + public void setPickedBlockValue(String pickedBlockValue) { + this.pickedBlockValue = pickedBlockValue; + } + + /** + * Updates the view + * + * @param obs Observable item + * @param obj Object item + */ + @Override + public void update(Observable obs, Object obj) { + // Nothing done. + } + + /** + * Change opened level + * + * @param selectedLevelValue Selected level value + */ + public void openedLevelChange(String selectedLevelValue) { + LevelModel pickedLevelModel; + + if(selectedLevelValue != null && !selectedLevelValue.isEmpty()) { + // Load existing model + pickedLevelModel = new LevelModel(selectedLevelValue, this.nav.getAudioLoadHelper(), "editor"); + } else { + // New blank model for editor + pickedLevelModel = new LevelModel(this.nav.getAudioLoadHelper()); + } + + pickedLevelModel.setShowCursor(true); + pickedLevelModel.setMode("editor"); + this.levelModel = pickedLevelModel; + + // Hide old view + this.levelEditorController.getLevelEditorView().dispose(); + + this.levelEditorController = new LevelEditorController(this.levelModel, this.nav); + + this.levelEditorController.getLevelEditorView().setSelectedLevel(selectedLevelValue); + this.levelEditorController.getLevelEditorView().setVisible(true); + this.levelEditorController.getLevelEditorView().getLevelEditorGroundView().grabFocus(); + + this.levelEditorController.getLevelEditorView().menuLevelSelector.setChoiceValue(selectedLevelValue); + this.levelEditorController.getLevelEditorView().menuLevelSelector.setSelectedValue(selectedLevelValue); + } + + /** + * Menu level selector change handler + * + * @param changedSelector Changed selector + */ + public void menuLevelSelectorChanged(MenuLevelSelector changedSelector) { + String selectedLevelValue = changedSelector.getChoiceValue().toString(); + + // Value didn't change? + if(selectedLevelValue.equals(this.getSelectedLevel())) { + return; + } + + this.openedLevelChange(selectedLevelValue); + } + + /** + * Gets selected level + * + * @return Selected level + */ + public String getSelectedLevel() { + return this.selectedLevel; + } + + /** + * Sets selected level + * + * @param level Selected level + */ + public void setSelectedLevel(String level) { + this.selectedLevel = level; + } +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/MenuImage.java b/boulder-dash/src/fr/enssat/BoulderDash/views/MenuImage.java new file mode 100644 index 00000000..bc5e2dd0 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/MenuImage.java @@ -0,0 +1,45 @@ +package fr.enssat.BoulderDash.views; + +import java.awt.Graphics; +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import javax.imageio.ImageIO; +import javax.swing.JPanel; + + +/** + * MenuImage + * + * Specifies the menu image + * + * @author Valerian Saliou + * @since 2015-06-23 + */ +public class MenuImage extends JPanel { + private BufferedImage imageFile; + private String imagePath = "./res/drawable/app/menu_actual.jpg"; + + /** + * Class constructor + */ + public MenuImage() { + try { + this.imageFile = ImageIO.read(new File(this.imagePath)); + } catch (IOException e) { + System.out.println(e.getMessage()); + } + } + + /** + * Paints the component itself + * + * @param g Graphics element + */ + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + + g.drawImage(this.imageFile, 0, 0, null); + } +} \ No newline at end of file diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/MenuLevelSelector.java b/boulder-dash/src/fr/enssat/BoulderDash/views/MenuLevelSelector.java new file mode 100644 index 00000000..9e67b0f9 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/MenuLevelSelector.java @@ -0,0 +1,78 @@ +package fr.enssat.BoulderDash.views; + +import javax.swing.*; +import java.awt.event.ActionEvent; + +import fr.enssat.BoulderDash.views.LevelEditorView; + + +/** + * MenuLevelSelector + * + * Specifies the menu level selector + * + * @author Valerian Saliou + * @since 2015-06-23 + */ +public class MenuLevelSelector extends JComboBox { + private String choiceValue; + private LevelEditorView levelEditorView = null; + + /** + * Class constructor + */ + public MenuLevelSelector(String[] items) { + super(items); + } + + public MenuLevelSelector(String[] items, LevelEditorView levelEditorView) { + this(items); + this.levelEditorView = levelEditorView; + } + + /** + * Called when an action is performed + * + * @param e Action event + */ + public void actionPerformed(ActionEvent e) { + JComboBox comboBoxSource = (JComboBox) e.getSource(); + this.choiceValue = (String) comboBoxSource.getSelectedItem(); + + if(this.levelEditorView != null) { + this.levelEditorView.menuLevelSelectorChanged(this); + } + } + + /** + * Gets the choice value + * + * @return Choice value + */ + public String getChoiceValue() { + return this.choiceValue; + } + + /** + * Selects a given value + * + * @param value Value to be selected + */ + public void setSelectedValue(String value) { + for (int i = 0; i < this.getItemCount(); i++) { + if (this.getItemAt(i).toString().equals(value)) { + this.setSelectedIndex(i); + break; + } + } + } + + /** + * Sets the choice value + * + * @param choiceValue Choice value + */ + public void setChoiceValue(String choiceValue) { + this.choiceValue = choiceValue; + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/MenuView.java b/boulder-dash/src/fr/enssat/BoulderDash/views/MenuView.java new file mode 100644 index 00000000..d6359e07 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/MenuView.java @@ -0,0 +1,101 @@ +package fr.enssat.BoulderDash.views; + +import java.awt.BorderLayout; + +import javax.swing.*; + +import fr.enssat.BoulderDash.helpers.LevelSelectorHelper; +import fr.enssat.BoulderDash.views.MenuImage; +import fr.enssat.BoulderDash.views.MenuLevelSelector; +import fr.enssat.BoulderDash.controllers.NavigationBetweenViewController; + + +/** + * MenuView + * + * Menu view + * + * @author Valerian Saliou + * @since 2015-06-23 + */ +public class MenuView extends JFrame { + private NavigationBetweenViewController navigationBetweenViewController; + private MenuImage menuImage; + private MenuLevelSelector menuLevelSelector; + private JPanel actionPanel; + private JPanel targetPanel; + + /** + * Class constructor + */ + public MenuView(NavigationBetweenViewController navigationBetweenViewController) { + this.navigationBetweenViewController = navigationBetweenViewController; + this.initializeView(); + this.createLayout(); + } + + /** + * Initializes the view + */ + private void initializeView() { + this.setVisible(true); + this.setResizable(false); + + // UI parameters + this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + this.setBounds(100, 100, 200, 100); + this.setSize(432, 536); + + // App parameters + this.setTitle("Boulder Dash | Menu"); + } + + /** + * Creates the view layout + */ + private void createLayout() { + LevelSelectorHelper levelSelectorHelper = new LevelSelectorHelper(false); + this.menuLevelSelector = levelSelectorHelper.createLevelList(); + + this.targetPanel = new JPanel(); + + this.menuImage = new MenuImage(); + this.actionPanel = new JPanel(); + + // Add some buttons on the actionPanel + this.createButton("game", "Game"); + this.createButton("editor", "Editor"); + this.createButton("quit", "Quit"); + + this.add(this.menuImage, BorderLayout.CENTER); + this.add(targetPanel, BorderLayout.SOUTH); + + this.targetPanel.add(this.menuLevelSelector, BorderLayout.NORTH); + this.targetPanel.add(this.actionPanel, BorderLayout.SOUTH); + } + + /** + * Creates the given button + * + * @param name Button name + * @return Created button + */ + public JButton createButton(String id, String name) { + JButton button = new JButton(name); + button.addActionListener(this.navigationBetweenViewController); + button.setActionCommand(id); + + this.actionPanel.add(button); + + return button; + } + + /** + * Gets the selected level identifier! + * + * @return Level identifier + */ + public String getLevelIdentifier() { + return this.menuLevelSelector.getChoiceValue(); + } +} diff --git a/boulder-dash/src/fr/enssat/BoulderDash/views/WinLoseView.java b/boulder-dash/src/fr/enssat/BoulderDash/views/WinLoseView.java new file mode 100644 index 00000000..b0c85837 --- /dev/null +++ b/boulder-dash/src/fr/enssat/BoulderDash/views/WinLoseView.java @@ -0,0 +1,49 @@ +package fr.enssat.BoulderDash.views; + +import java.awt.BorderLayout; + +import javax.swing.JFrame; +import javax.swing.JTextArea; + +public class WinLoseView extends JFrame{ + + private String winOrLose; + + /** + * Generate the HelpView + */ + public WinLoseView(String winOrLose){ + this.winOrLose = winOrLose; + this.initializeView(); + this.createLayout(); + } + + /** + * Initializes the view + */ + private void initializeView() { + this.setVisible(true); + this.setResizable(false); + + // UI parameters + this.setDefaultCloseOperation(this.DISPOSE_ON_CLOSE); + this.setBounds(300, 300, 250, 100); + + // App parameters + this.setTitle("END OF THE GAME ! "); + } + + /** + * Creates the view layout + */ + private void createLayout() { + JTextArea help = new JTextArea(); + help.setEditable(false); + if(winOrLose.equals("win")) + help.setText("YOU WIN THE GAME :-)"); + else + help.setText("YOU LOSE THE GAME :-( TRY AGAIN!"); + + this.add(help); + } +} diff --git a/boulder-dash/tools/test.sh b/boulder-dash/tools/test.sh new file mode 100755 index 00000000..e8d520a3 --- /dev/null +++ b/boulder-dash/tools/test.sh @@ -0,0 +1,33 @@ +#!/bin/sh + +## +# Boulder Dash +# Test script +# +# Authors: Valérian Saliou, Colin Leverger +## + +# Go to updir +ABSPATH=$(cd "$(dirname "$0")"; pwd) +BASE_DIR="$ABSPATH/../" + +# Fixes issues w/ GruntJS +export LC_ALL=en_US.UTF-8 +export LANG=en_US.UTF-8 + +# Proceed deployment +echo "Testing..." + +cd "$BASE_DIR" + +ls #TODO: test command +rc=$? + +# Check for errors +if [ $rc = 0 ]; then + echo "Done." +else + echo "Error." +fi + +exit $rc