shattered 0.5.0.1 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +6 -0
- data/INSTALL.txt +5 -0
- data/License.txt +18 -0
- data/Manifest.txt +175 -0
- data/README.txt +39 -0
- data/Rakefile +6 -0
- data/app_generators/actor/USAGE +6 -0
- data/app_generators/actor/actor_generator.rb +51 -0
- data/app_generators/actor/templates/actor.rb +4 -0
- data/app_generators/actor/templates/spec.rb +11 -0
- data/app_generators/actor/templates/unit_test.rb +9 -0
- data/app_generators/commands/console.rb +6 -0
- data/{lib/rails_generator/generators/applications/shattered_app → app_generators/shattered}/USAGE +1 -1
- data/app_generators/shattered/shattered_generator.rb +67 -0
- data/{lib → app_generators/shattered}/templates/Rakefile +4 -4
- data/app_generators/shattered/templates/configs/game.controls +16 -0
- data/app_generators/shattered/templates/configs/ogre_plugins.linux.cfg +12 -0
- data/app_generators/shattered/templates/configs/ogre_plugins.osx.cfg +12 -0
- data/{lib → app_generators/shattered}/templates/configs/ogre_plugins.windows.cfg +2 -2
- data/app_generators/shattered/templates/game.rb +50 -0
- data/{lib → app_generators/shattered}/templates/media/basic.rmaterial +0 -0
- data/app_generators/shattered/templates/spec/game_spec.rb +5 -0
- data/app_generators/shattered/templates/spec/spec_helper.rb +12 -0
- data/bin/shattered +39 -0
- data/config/hoe.rb +77 -0
- data/config/requirements.rb +15 -0
- data/lib/shattered.rb +40 -0
- data/lib/shattered_game/actor.rb +6 -0
- data/lib/shattered_game/game.rb +285 -0
- data/lib/{tasks → shattered_game/rake_tasks}/framework.rake +19 -24
- data/lib/{tasks → shattered_game/rake_tasks}/log.rake +0 -0
- data/lib/{tasks → shattered_game/rake_tasks}/misc.rake +1 -2
- data/lib/{tasks → shattered_game/rake_tasks}/pre_namespace_aliases.rake +0 -0
- data/lib/{tasks → shattered_game/rake_tasks}/shattered.rb +0 -0
- data/lib/shattered_game/rake_tasks/spec.rake +9 -0
- data/lib/{tasks → shattered_game/rake_tasks}/statistics.rake +0 -0
- data/lib/shattered_game/required.rb +2 -0
- data/lib/shattered_game/version.rb +9 -0
- data/lib/shattered_model/controls.rb +67 -0
- data/lib/shattered_model/input.rb +171 -0
- data/lib/shattered_model/key_converter.rb +44 -0
- data/lib/shattered_model/required.rb +4 -0
- data/lib/shattered_model/shattered_model.rb +28 -0
- data/lib/shattered_model/timed_event.rb +120 -0
- data/lib/shattered_model/timer.rb +78 -0
- data/lib/shattered_support/core_ext.rb +1 -0
- data/lib/shattered_support/core_ext/class.rb +3 -0
- data/lib/shattered_support/core_ext/class/attribute_accessors.rb +44 -0
- data/lib/shattered_support/core_ext/class/inheritable_attributes.rb +115 -0
- data/lib/shattered_support/core_ext/class/removal.rb +24 -0
- data/lib/shattered_support/core_ext/dir.rb +5 -0
- data/lib/shattered_support/core_ext/dir/search.rb +25 -0
- data/lib/shattered_support/core_ext/file.rb +5 -0
- data/lib/shattered_support/core_ext/file/search.rb +64 -0
- data/lib/shattered_support/core_ext/numeric.rb +5 -0
- data/lib/shattered_support/core_ext/numeric/time.rb +72 -0
- data/lib/shattered_support/core_ext/string.rb +13 -0
- data/lib/shattered_support/core_ext/string/access.rb +58 -0
- data/lib/shattered_support/core_ext/string/conversions.rb +19 -0
- data/lib/shattered_support/core_ext/string/inflections.rb +64 -0
- data/lib/shattered_support/core_ext/string/iterators.rb +17 -0
- data/lib/shattered_support/core_ext/string/starts_ends_with.rb +20 -0
- data/lib/shattered_support/error.rb +12 -0
- data/lib/shattered_support/inflections.rb +53 -0
- data/lib/shattered_support/inflector.rb +178 -0
- data/lib/shattered_support/pre_initialize.rb +153 -0
- data/lib/shattered_support/required.rb +9 -0
- data/lib/shattered_support/unload.rb +18 -0
- data/lib/shattered_view/camera.rb +7 -0
- data/lib/shattered_view/ogrerb/base.rb +28 -0
- data/lib/shattered_view/ogrerb/camera.rb +14 -0
- data/lib/shattered_view/ogrerb/key_manager.rb +54 -0
- data/lib/shattered_view/ogrerb/light.rb +25 -0
- data/lib/shattered_view/ogrerb/material.rb +5 -0
- data/lib/shattered_view/ogrerb/mesh_instance.rb +85 -0
- data/lib/shattered_view/ogrerb/mouse_manager.rb +109 -0
- data/lib/shattered_view/ogrerb/particle_system.rb +24 -0
- data/lib/shattered_view/ogrerb/rgb.rb +6 -0
- data/lib/shattered_view/ogrerb/rmaterial.rb +87 -0
- data/lib/shattered_view/ogrerb/scene_node.rb +76 -0
- data/lib/shattered_view/ogrerb/vector.rb +243 -0
- data/lib/shattered_view/ogrerb/window_event.rb +14 -0
- data/lib/shattered_view/resources.rb +64 -0
- data/lib/shattered_view/shattered_view.rb +248 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/setup.rb +1585 -0
- data/tasks/deployment.rake +30 -0
- data/tasks/environment.rake +7 -0
- data/tasks/rcov.rake +7 -0
- data/tasks/testing.rake +46 -0
- data/tasks/website.rake +15 -0
- data/test/acceptance/Rakefile +10 -0
- data/test/acceptance/config/game.controls +17 -0
- data/test/acceptance/config/ogre_plugins.linux.cfg +12 -0
- data/test/acceptance/config/ogre_plugins.osx.cfg +12 -0
- data/test/acceptance/config/ogre_plugins.windows.cfg +14 -0
- data/test/acceptance/config/ogrerb_defaults.save +8 -0
- data/test/acceptance/game.rb +120 -0
- data/test/acceptance/lib/acceptance_test.rb +20 -0
- data/test/acceptance/lib/console.rb +54 -0
- data/test/acceptance/lib/input_test.rb +8 -0
- data/test/acceptance/lib/label.rb +30 -0
- data/test/acceptance/lib/light_test.rb +60 -0
- data/test/acceptance/lib/mesh_test.rb +69 -0
- data/test/acceptance/lib/particle_test.rb +9 -0
- data/test/acceptance/media/GreenSkin.jpg +0 -0
- data/test/acceptance/media/Ogre.material +86 -0
- data/test/acceptance/media/WeirdEye.png +0 -0
- data/test/acceptance/media/basic.rmaterial +18 -0
- data/test/acceptance/media/console.fontdef +7 -0
- data/test/acceptance/media/console.material +13 -0
- data/test/acceptance/media/console.png +0 -0
- data/test/acceptance/media/console.ttf +0 -0
- data/test/acceptance/media/dirt01.png +0 -0
- data/test/acceptance/media/fountain.material +19 -0
- data/test/acceptance/media/fountain.particle +40 -0
- data/test/acceptance/media/fountain.png +0 -0
- data/test/acceptance/media/fountaincolors.png +0 -0
- data/test/acceptance/media/ogre.mesh +0 -0
- data/test/acceptance/media/spheremap.png +0 -0
- data/test/acceptance/media/win.png +0 -0
- data/test/acceptance/spec/spec_helper.rb +7 -0
- data/test/integration/actor_generator_test.rb +43 -0
- data/test/integration/shattered_generator_test.rb +43 -0
- data/test/integration/test_helper.rb +20 -0
- data/test/ogre_test_defaults.save +8 -0
- data/test/ogre_test_plugins.linux.cfg +12 -0
- data/test/ogre_test_plugins.osx.cfg +12 -0
- data/test/ogre_test_plugins.windows.cfg +14 -0
- data/test/test_helper.rb +109 -0
- data/test/unit/shattered_game/actor_test.rb +9 -0
- data/test/unit/shattered_game/game_test.rb +49 -0
- data/test/unit/shattered_game/runner_test.rb +56 -0
- data/test/unit/shattered_model/controls/mouse.controls +4 -0
- data/test/unit/shattered_model/controls/player.controls +4 -0
- data/test/unit/shattered_model/controls/too_many_delims.controls +1 -0
- data/test/unit/shattered_model/key_controls_test.rb +89 -0
- data/test/unit/shattered_model/key_converter_test.rb +37 -0
- data/test/unit/shattered_model/keyboard_input_test.rb +32 -0
- data/test/unit/shattered_model/mouse_controls_test.rb +50 -0
- data/test/unit/shattered_model/mouse_input_test.rb +61 -0
- data/test/unit/shattered_model/shattered_model_test.rb +117 -0
- data/test/unit/shattered_model/timed_event_test.rb +79 -0
- data/test/unit/shattered_model/timer_test.rb +325 -0
- data/{lib/rails_generator/generators/components/actor/templates/actor.rb → test/unit/shattered_support/directory_test/file.test} +0 -0
- data/test/unit/shattered_support/numeric_ext_test.rb +38 -0
- data/test/unit/shattered_support/pre_initialize_test.rb +63 -0
- data/test/unit/shattered_support/shattered_support_test.rb +39 -0
- data/test/unit/shattered_support/unload_test.rb +17 -0
- data/test/unit/shattered_view/light_test.rb +38 -0
- data/test/unit/shattered_view/material_test.rb +41 -0
- data/test/unit/shattered_view/media_test/basic.rmaterial +18 -0
- data/{lib/templates/configs/empty.log → test/unit/shattered_view/media_test/beltch.ogg} +0 -0
- data/test/unit/shattered_view/media_test/test.mesh +0 -0
- data/test/unit/shattered_view/mesh_test.rb +59 -0
- data/test/unit/shattered_view/node_test.rb +11 -0
- data/test/unit/shattered_view/ogrerb/camera_test.rb +12 -0
- data/test/unit/shattered_view/ogrerb/key_manager_test.rb +42 -0
- data/test/unit/shattered_view/ogrerb/media/basic.rmaterial +18 -0
- data/test/unit/shattered_view/ogrerb/media/test.mesh +0 -0
- data/test/unit/shattered_view/ogrerb/media/test.rmaterial +1 -0
- data/test/unit/shattered_view/ogrerb/mesh_instance_test.rb +74 -0
- data/test/unit/shattered_view/ogrerb/mouse_manager_test.rb +104 -0
- data/test/unit/shattered_view/ogrerb/ogrerb.log +51 -0
- data/test/unit/shattered_view/ogrerb/resolve_ogrerb_test.rb +13 -0
- data/test/unit/shattered_view/ogrerb/rgb_test.rb +10 -0
- data/test/unit/shattered_view/ogrerb/rmaterial_test.rb +28 -0
- data/test/unit/shattered_view/ogrerb/scene_type_test.rb +12 -0
- data/test/unit/shattered_view/ogrerb/vector_test.rb +206 -0
- data/test/unit/shattered_view/particle_test.rb +23 -0
- data/test/unit/shattered_view/resources_test.rb +45 -0
- data/test/unit/shattered_view/test_helper.rb +1 -0
- data/test/unit/shattered_view/window_event_test.rb +19 -0
- data/test/unit/test_helper.rb +1 -0
- metadata +205 -121
- data/bin/console +0 -4
- data/bin/destroy +0 -9
- data/bin/generate +0 -7
- data/bin/runner +0 -9
- data/bin/shatter +0 -22
- data/lib/commands/console.rb +0 -23
- data/lib/game_loader.rb +0 -118
- data/lib/rails_generator.rb +0 -43
- data/lib/rails_generator/base.rb +0 -203
- data/lib/rails_generator/commands.rb +0 -519
- data/lib/rails_generator/generators/applications/shattered_app/shattered_app_generator.rb +0 -103
- data/lib/rails_generator/generators/components/actor/actor_generator.rb +0 -22
- data/lib/rails_generator/generators/components/model/USAGE +0 -17
- data/lib/rails_generator/generators/components/model/model_generator.rb +0 -22
- data/lib/rails_generator/generators/components/model/templates/fixtures.yml +0 -5
- data/lib/rails_generator/generators/components/model/templates/model.rb +0 -2
- data/lib/rails_generator/generators/components/model/templates/unit_test.rb +0 -11
- data/lib/rails_generator/generators/components/state/USAGE +0 -30
- data/lib/rails_generator/generators/components/state/state_generator.rb +0 -19
- data/lib/rails_generator/generators/components/state/templates/state.rb +0 -20
- data/lib/rails_generator/generators/components/view/USAGE +0 -30
- data/lib/rails_generator/generators/components/view/templates/material +0 -4
- data/lib/rails_generator/generators/components/view/templates/view.rb +0 -7
- data/lib/rails_generator/generators/components/view/view_generator.rb +0 -28
- data/lib/rails_generator/lookup.rb +0 -209
- data/lib/rails_generator/manifest.rb +0 -53
- data/lib/rails_generator/options.rb +0 -143
- data/lib/rails_generator/scripts.rb +0 -83
- data/lib/rails_generator/scripts/destroy.rb +0 -7
- data/lib/rails_generator/scripts/generate.rb +0 -7
- data/lib/rails_generator/scripts/update.rb +0 -12
- data/lib/rails_generator/simple_logger.rb +0 -46
- data/lib/rails_generator/spec.rb +0 -44
- data/lib/shatter.rb +0 -7
- data/lib/tasks/documentation.rake +0 -46
- data/lib/tasks/testing.rake +0 -102
- data/lib/templates/MIT-LICENSE +0 -20
- data/lib/templates/README +0 -35
- data/lib/templates/configs/boot.rb +0 -35
- data/lib/templates/configs/ogre.cfg +0 -4
- data/lib/templates/configs/runner.rb +0 -5
- data/lib/templates/doc/README_FOR_APP +0 -2
- data/lib/templates/environments/environment.rb +0 -10
- data/lib/templates/media/default.mesh +0 -0
- data/lib/templates/media/default.png +0 -0
- data/lib/templates/media/offset_map.rmaterial +0 -117
- data/lib/templates/test/test_helper.rb +0 -5
@@ -0,0 +1,104 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
require 'test/unit'
|
3
|
+
|
4
|
+
include OIS
|
5
|
+
|
6
|
+
class MouseManagerTest < Test::Unit::TestCase
|
7
|
+
def setup
|
8
|
+
@mouse_manager = MouseManager.new
|
9
|
+
end
|
10
|
+
|
11
|
+
def test_listener
|
12
|
+
end
|
13
|
+
|
14
|
+
def test_responds_to_button_press
|
15
|
+
mouse_state = MouseState.new
|
16
|
+
@mouse_manager.respond_to_press 1
|
17
|
+
@mouse_manager.respond_to_press 2
|
18
|
+
assert @mouse_manager.pressed?(1)
|
19
|
+
assert @mouse_manager.pressed?(2)
|
20
|
+
assert @mouse_manager.held?(1)
|
21
|
+
@mouse_manager.flush
|
22
|
+
assert !@mouse_manager.pressed?(1)
|
23
|
+
assert @mouse_manager.held?(1)
|
24
|
+
end
|
25
|
+
|
26
|
+
def test_responds_to_new_events
|
27
|
+
mouse_state = MouseState.new
|
28
|
+
mouse_state.buttons = 1
|
29
|
+
@mouse_manager.process_events mouse_state
|
30
|
+
assert @mouse_manager.pressed?(0)
|
31
|
+
assert @mouse_manager.held?(0)
|
32
|
+
assert !@mouse_manager.pressed?(1)
|
33
|
+
assert !@mouse_manager.released?(1)
|
34
|
+
|
35
|
+
mouse_state.buttons = 2
|
36
|
+
@mouse_manager.process_events mouse_state
|
37
|
+
assert !@mouse_manager.pressed?(0)
|
38
|
+
assert @mouse_manager.released?(0)
|
39
|
+
assert !@mouse_manager.held?(0)
|
40
|
+
assert @mouse_manager.pressed?(1)
|
41
|
+
assert @mouse_manager.held?(1)
|
42
|
+
assert !@mouse_manager.released?(1)
|
43
|
+
|
44
|
+
mouse_state.buttons = 4
|
45
|
+
@mouse_manager.process_events mouse_state
|
46
|
+
assert !@mouse_manager.released?(0)
|
47
|
+
assert !@mouse_manager.pressed?(1)
|
48
|
+
assert @mouse_manager.released?(1)
|
49
|
+
assert @mouse_manager.pressed?(2)
|
50
|
+
end
|
51
|
+
|
52
|
+
def test_responds_to_button_release
|
53
|
+
mouse_state = MouseState.new
|
54
|
+
@mouse_manager.respond_to_press 1
|
55
|
+
@mouse_manager.respond_to_press 2
|
56
|
+
@mouse_manager.respond_to_release 1
|
57
|
+
assert @mouse_manager.released?(1)
|
58
|
+
assert !@mouse_manager.pressed?(1)
|
59
|
+
|
60
|
+
assert !@mouse_manager.released?(2)
|
61
|
+
assert @mouse_manager.pressed?(2)
|
62
|
+
|
63
|
+
assert !@mouse_manager.held?(1)
|
64
|
+
assert @mouse_manager.held?(2)
|
65
|
+
|
66
|
+
@mouse_manager.flush
|
67
|
+
assert !@mouse_manager.released?(1)
|
68
|
+
assert !@mouse_manager.held?(1)
|
69
|
+
|
70
|
+
assert !@mouse_manager.pressed?(2)
|
71
|
+
assert @mouse_manager.held?(2)
|
72
|
+
|
73
|
+
end
|
74
|
+
|
75
|
+
def test_responds_to_move
|
76
|
+
mouse_state = MouseState.new
|
77
|
+
mouse_state.X = Axis.new
|
78
|
+
mouse_state.X.rel = 10
|
79
|
+
mouse_state.X.abs = 100
|
80
|
+
mouse_state.Y = Axis.new
|
81
|
+
mouse_state.Y.rel = 3
|
82
|
+
mouse_state.Y.abs = 30
|
83
|
+
@mouse_manager.respond_to_move mouse_state
|
84
|
+
assert_equal(10, @mouse_manager.x)
|
85
|
+
assert_equal(3, @mouse_manager.y)
|
86
|
+
assert_equal(100, @mouse_manager.abs_x)
|
87
|
+
assert_equal(30, @mouse_manager.abs_y)
|
88
|
+
@mouse_manager.flush
|
89
|
+
assert_equal(0, @mouse_manager.x)
|
90
|
+
assert_equal(0, @mouse_manager.y)
|
91
|
+
assert_equal(100, @mouse_manager.abs_x)
|
92
|
+
assert_equal(30, @mouse_manager.abs_y)
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_responds_to_scroll
|
96
|
+
mouse_state = MouseState.new
|
97
|
+
mouse_state.Z = Axis.new
|
98
|
+
mouse_state.Z.rel = 10
|
99
|
+
@mouse_manager.respond_to_move mouse_state
|
100
|
+
assert_equal(10, @mouse_manager.scrolled)
|
101
|
+
@mouse_manager.flush
|
102
|
+
assert_equal(0, @mouse_manager.scrolled)
|
103
|
+
end
|
104
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
19:46:45: Creating resource group General
|
2
|
+
19:46:45: Creating resource group Internal
|
3
|
+
19:46:45: Creating resource group Autodetect
|
4
|
+
19:46:45: SceneManagerFactory for type 'DefaultSceneManager' registered.
|
5
|
+
19:46:45: Registering ResourceManager for type Material
|
6
|
+
19:46:45: Registering ResourceManager for type Mesh
|
7
|
+
19:46:45: Registering ResourceManager for type Skeleton
|
8
|
+
19:46:45: MovableObjectFactory for type 'ParticleSystem' registered.
|
9
|
+
19:46:45: OverlayElementFactory for type Panel registered.
|
10
|
+
19:46:45: OverlayElementFactory for type BorderPanel registered.
|
11
|
+
19:46:45: OverlayElementFactory for type TextArea registered.
|
12
|
+
19:46:45: Registering ResourceManager for type Font
|
13
|
+
19:46:45: ArchiveFactory for archive type FileSystem registered.
|
14
|
+
19:46:45: ArchiveFactory for archive type Zip registered.
|
15
|
+
19:46:45: FreeImage version: 3.9.1
|
16
|
+
19:46:45: This program uses FreeImage, a free, open source image library supporting all common bitmap formats. See http://freeimage.sourceforge.net for details
|
17
|
+
19:46:45: Supported formats: bmp,ico,jpg,jif,jpeg,jpe,jng,koa,iff,lbm,mng,pbm,pbm,pcd,pcx,pgm,pgm,png,ppm,ppm,ras,tga,targa,tif,tiff,wap,wbmp,wbm,psd,cut,xbm,xpm,gif,hdr,g3,sgi
|
18
|
+
19:46:45: DDS codec registering
|
19
|
+
19:46:45: Registering ResourceManager for type HighLevelGpuProgram
|
20
|
+
19:46:45: Registering ResourceManager for type Compositor
|
21
|
+
19:46:45: MovableObjectFactory for type 'Entity' registered.
|
22
|
+
19:46:45: MovableObjectFactory for type 'Light' registered.
|
23
|
+
19:46:45: MovableObjectFactory for type 'BillboardSet' registered.
|
24
|
+
19:46:45: MovableObjectFactory for type 'ManualObject' registered.
|
25
|
+
19:46:45: MovableObjectFactory for type 'BillboardChain' registered.
|
26
|
+
19:46:45: MovableObjectFactory for type 'RibbonTrail' registered.
|
27
|
+
19:46:45: Loading library RenderSystem_GL
|
28
|
+
19:46:45: Installing plugin: GL RenderSystem
|
29
|
+
19:46:45: OpenGL Rendering Subsystem created.
|
30
|
+
19:46:45: Plugin successfully installed
|
31
|
+
19:46:45: *-*-* OGRE Initialising
|
32
|
+
19:46:45: *-*-* Version 1.4.5 (Eihort)
|
33
|
+
19:46:45: CPU Identifier & Features
|
34
|
+
19:46:45: -------------------------
|
35
|
+
19:46:45: * CPU ID: GenuineIntel: Genuine Intel(R) CPU T2400 @ 1.83GHz
|
36
|
+
19:46:45: * SSE: yes
|
37
|
+
19:46:45: * SSE2: yes
|
38
|
+
19:46:45: * SSE3: yes
|
39
|
+
19:46:45: * MMX: yes
|
40
|
+
19:46:45: * MMXEXT: yes
|
41
|
+
19:46:45: * 3DNOW: no
|
42
|
+
19:46:45: * 3DNOWEXT: no
|
43
|
+
19:46:45: * CMOV: yes
|
44
|
+
19:46:45: * TSC: yes
|
45
|
+
19:46:45: * FPU: yes
|
46
|
+
19:46:45: * PRO: yes
|
47
|
+
19:46:45: * HT: no
|
48
|
+
19:46:45: -------------------------
|
49
|
+
19:46:45: *******************************************
|
50
|
+
*** Starting OSX OpenGL Subsystem ***
|
51
|
+
*******************************************
|
@@ -0,0 +1,13 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
require 'test/unit'
|
4
|
+
|
5
|
+
class ResolveOgreTest < Test::Unit::TestCase
|
6
|
+
def test_axiom_resolution
|
7
|
+
assert_equal( Module, Ogre.class )
|
8
|
+
end
|
9
|
+
def test_creation_of_ogre_root
|
10
|
+
assert_equal( Ogre::Root, @@root.class )
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
@@ -0,0 +1,10 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
require 'test/unit'
|
3
|
+
|
4
|
+
class RGBTest < Test::Unit::TestCase
|
5
|
+
# rgb(0,0,0) => Ogre::ColourValue.new(0,0,0)
|
6
|
+
def test_rgb_is_colourvalue
|
7
|
+
assert_equal(Ogre::ColourValue, rgb(0,0,0).class)
|
8
|
+
assert_equal(Ogre::ColourValue.new(0,0,0), rgb(0,0,0))
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
class RMaterialTest < Test::Unit::TestCase
|
4
|
+
# Test whether we can name and parse an rmaterial through erb
|
5
|
+
def test_rmaterial_creation
|
6
|
+
material = Ogre::RMaterial.new(File.dirname(__FILE__)+"/media/test.rmaterial")
|
7
|
+
material.name = "A Test"
|
8
|
+
material.parse
|
9
|
+
|
10
|
+
assert_equal("A Test", material.result)
|
11
|
+
end
|
12
|
+
|
13
|
+
# Ensure that anonymous attributes on an RMaterial can be set / gotten
|
14
|
+
def test_rmaterial_erb_attributes
|
15
|
+
material = Ogre::RMaterial.new(File.dirname(__FILE__)+"/media/test.rmaterial")
|
16
|
+
material.attribute = "set"
|
17
|
+
assert_equal("set", material.attribute)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Ensure that materials are created and loaded in Ogre.
|
21
|
+
def test_rmaterial_loads
|
22
|
+
material = Ogre::RMaterial.load(File.dirname(__FILE__)+"/media/basic.rmaterial") do |rm|
|
23
|
+
rm.name = "TEST"
|
24
|
+
end
|
25
|
+
assert_kind_of(Ogre::MaterialPtr, material)
|
26
|
+
end
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
require 'test/unit'
|
3
|
+
|
4
|
+
class SceneTypeTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def test_resolved_scene_type
|
7
|
+
assert_equal(Ogre::ST_GENERIC, ShatteredOgre.translate_to_scene_type(:general))
|
8
|
+
|
9
|
+
assert_raises(StandardError) { ShatteredOgre.translate_to_scene_type(:unknown) }
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
@@ -0,0 +1,206 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
require 'test/unit'
|
3
|
+
|
4
|
+
class VectorTest < Test::Unit::TestCase
|
5
|
+
|
6
|
+
def setup
|
7
|
+
@vector = v(1, 2, 3)
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
def test_vector_shorthand
|
12
|
+
assert_kind_of Ogre::Vector3, v(1,2,3)
|
13
|
+
assert_kind_of Ogre::Vector3, self.class.v(1,2,3)
|
14
|
+
end
|
15
|
+
|
16
|
+
# Array tests
|
17
|
+
def test_array_to_v
|
18
|
+
assert_equal @vector, [1, 2, 3].to_v
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_v_equal_vector3
|
22
|
+
assert_equal @vector, Ogre::Vector3.new( 1, 2, 3)
|
23
|
+
end
|
24
|
+
|
25
|
+
# Test converting from array to vector and vice versa
|
26
|
+
|
27
|
+
def test_vector3_to_a
|
28
|
+
# to_a is obsoleted.
|
29
|
+
# assert_equal [0,0,0], Ogre::Vector3.ZERO.to_a
|
30
|
+
# assert_equal [0,0,0], Ogre::Vector3.ZERO.to_a.to_v.to_a
|
31
|
+
end
|
32
|
+
|
33
|
+
# String format
|
34
|
+
def test_to_s
|
35
|
+
assert_equal "#<Vector [1.0, 2.0, 3.0]>", v(1,2,3).to_s
|
36
|
+
end
|
37
|
+
|
38
|
+
def test_vector_add
|
39
|
+
assert_equal v(2, 4, 6), @vector + @vector
|
40
|
+
end
|
41
|
+
|
42
|
+
def test_vector_subtract
|
43
|
+
assert_equal v(0, 0, 0), @vector - @vector
|
44
|
+
end
|
45
|
+
|
46
|
+
def test_vector_multiply
|
47
|
+
assert_equal v(10, 20, 30), @vector * 10
|
48
|
+
assert_equal v(10, 20, 30), @vector * v(10,10,10)
|
49
|
+
end
|
50
|
+
|
51
|
+
def test_vector_divide
|
52
|
+
assert_equal v(0.1, 0.2, 0.3), @vector / 10
|
53
|
+
end
|
54
|
+
|
55
|
+
def test_vector_component_assignment
|
56
|
+
@vector.x = 5
|
57
|
+
@vector.y = 10
|
58
|
+
@vector.z = 15.00
|
59
|
+
|
60
|
+
assert_equal 5, @vector.x
|
61
|
+
assert_equal 10, @vector.y
|
62
|
+
assert_equal 15, @vector.z
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_vector_length
|
66
|
+
vector = v(3, 4, 0)
|
67
|
+
assert_equal 5, vector.length
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_vector_normalize
|
71
|
+
vector = v(9, 0, 0)
|
72
|
+
|
73
|
+
assert_equal 1.0, vector.normalize.length
|
74
|
+
assert_equal 9.0, vector.length
|
75
|
+
|
76
|
+
assert_equal 1.0, vector.normalise.length
|
77
|
+
assert_equal 9.0, vector.length
|
78
|
+
end
|
79
|
+
|
80
|
+
def test_vector_normalize!
|
81
|
+
vector = v(50, 80, 140)
|
82
|
+
|
83
|
+
vector.normalize!
|
84
|
+
assert_equal 1.0, vector.length.round
|
85
|
+
|
86
|
+
vector.normalise!
|
87
|
+
assert_equal 1.0, vector.length.round
|
88
|
+
end
|
89
|
+
|
90
|
+
def test_vector_to_a
|
91
|
+
#to_a is deprecated.
|
92
|
+
# assert_equal [1, 2, 3], @vector.to_a
|
93
|
+
end
|
94
|
+
|
95
|
+
def test_vector_each
|
96
|
+
result = []
|
97
|
+
@vector.each do |item|
|
98
|
+
result << item * 2
|
99
|
+
end
|
100
|
+
|
101
|
+
assert_equal [2, 4, 6], result
|
102
|
+
end
|
103
|
+
|
104
|
+
def test_vector_to_v
|
105
|
+
assert_equal @vector, @vector.to_v
|
106
|
+
end
|
107
|
+
|
108
|
+
def test_get_bracket_notation
|
109
|
+
assert_equal 1, @vector[0]
|
110
|
+
assert_equal 1, @vector['x']
|
111
|
+
assert_equal 1, @vector[:x]
|
112
|
+
|
113
|
+
assert_equal 2, @vector[1]
|
114
|
+
assert_equal 2, @vector['y']
|
115
|
+
assert_equal 2, @vector[:y]
|
116
|
+
|
117
|
+
assert_equal 3, @vector[2]
|
118
|
+
assert_equal 3, @vector['z']
|
119
|
+
assert_equal 3, @vector[:z]
|
120
|
+
end
|
121
|
+
|
122
|
+
def test_set_bracket_notation
|
123
|
+
@vector[0] = 5
|
124
|
+
assert_equal 5, @vector[0]
|
125
|
+
assert_equal 5, @vector['x']
|
126
|
+
assert_equal 5, @vector[:x]
|
127
|
+
|
128
|
+
@vector['y'] = 6
|
129
|
+
assert_equal 6, @vector[1]
|
130
|
+
assert_equal 6, @vector['y']
|
131
|
+
assert_equal 6, @vector[:y]
|
132
|
+
|
133
|
+
@vector[:z] = 7
|
134
|
+
assert_equal 7, @vector[2]
|
135
|
+
assert_equal 7, @vector['z']
|
136
|
+
assert_equal 7, @vector[:z]
|
137
|
+
end
|
138
|
+
|
139
|
+
def test_equivalence
|
140
|
+
assert_equal v(0,0,1), v(0,0,1)
|
141
|
+
assert_not_equal v(0,0,1), v(1,2,3)
|
142
|
+
assert_not_equal v(0,0,1), [0,0,1]
|
143
|
+
end
|
144
|
+
|
145
|
+
# Symbols have to_v values (:z.to_v = v(0,0,0))
|
146
|
+
def test_symbol_to_v
|
147
|
+
definitions = {:x => v(1,0,0),:y => v(0,1,0),:z => v(0,0,1),
|
148
|
+
:up => v(0,1,0),:down => v(0,-1,0),
|
149
|
+
:left => v(-1,0,0),:right => v(1,0,0),
|
150
|
+
:forward => v(0,0,1),:backward => v(0,0,-1),
|
151
|
+
:zero => v(0,0,0)}
|
152
|
+
|
153
|
+
definitions.each_pair do |symbol, vector|
|
154
|
+
assert_equal(vector, symbol.to_v)
|
155
|
+
assert_equal(vector, symbol)
|
156
|
+
assert_equal(symbol.to_v.object_id, symbol.to_v.object_id)
|
157
|
+
end
|
158
|
+
|
159
|
+
assert_raises(SymbolToVectorError) do
|
160
|
+
:unknown_vector.to_v
|
161
|
+
end
|
162
|
+
end
|
163
|
+
|
164
|
+
# :z * per_second should return a vector
|
165
|
+
def test_symbol_multiplication
|
166
|
+
assert_equal(v(3,0,0), :x * 3)
|
167
|
+
assert_equal(:zero.to_v, :zero * 1)
|
168
|
+
|
169
|
+
assert_raises(SymbolToVectorError) do
|
170
|
+
:unknown_vector*3
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
# Can we add a symbol to a vector?
|
175
|
+
def test_symbol_math
|
176
|
+
assert_equal(v(1,0,0), v(0,0,0)+:x)
|
177
|
+
assert_equal(v(1,0,0), :x+v(0,0,0))
|
178
|
+
assert_equal(v(1,0,0), :x+:zero)
|
179
|
+
assert_equal(v(-1,0,0), :zero - :x)
|
180
|
+
assert_equal(v(1,0,0), :x*:x)
|
181
|
+
assert_equal(v(1,0,0), (:x*10)/10)
|
182
|
+
end
|
183
|
+
|
184
|
+
|
185
|
+
# Can we access a hash by using the same vector?
|
186
|
+
# (Vectors that have the same value should have the same hash)
|
187
|
+
def test_accessing_hash
|
188
|
+
result = {v(0,0,0) => :result}
|
189
|
+
assert_equal(:zero.to_v.hash, v(0,0,0).hash)
|
190
|
+
assert(:zero.to_v.eql?(v(0,0,0)))
|
191
|
+
assert_equal(:result, result[v(0,0,0)])
|
192
|
+
end
|
193
|
+
|
194
|
+
# -:z should be v(0,0,-1), etc.
|
195
|
+
def test_negative_symbols
|
196
|
+
assert_equal(-:z, v(0,0,-1))
|
197
|
+
end
|
198
|
+
|
199
|
+
def test_numeric_operations
|
200
|
+
assert_equal(v(10,10,10), 10*v(1,1,1))
|
201
|
+
assert_equal(v(10,10,10), 10.0*v(1,1,1))
|
202
|
+
assert_equal(v(10,0,0), 10*:x)
|
203
|
+
assert_equal(v(10,0,0), 10.0*:x)
|
204
|
+
|
205
|
+
end
|
206
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../test_helper"
|
2
|
+
|
3
|
+
# Test the particle system dsl
|
4
|
+
class ParticleTest < Test::Unit::TestCase
|
5
|
+
include Shattered::View
|
6
|
+
def test_creates_particle_system
|
7
|
+
assert_kind_of Ogre::ParticleSystem, create(:particle_system)
|
8
|
+
end
|
9
|
+
def test_creates_from_template
|
10
|
+
p1 = create(:particle_system, :test)
|
11
|
+
p1.add_affector "ColourInterpolator"
|
12
|
+
assert_equal p1.get_affector(0).get_type, create(:particle_system, :test).get_affector(0).get_type
|
13
|
+
end
|
14
|
+
def test_creates_from_template_file
|
15
|
+
assert_equal "fountain", create(:particle_system, :fountain).get_material_name
|
16
|
+
end
|
17
|
+
def test_has_methods
|
18
|
+
p1 = create(:particle_system)
|
19
|
+
[ :position, :position=].each do |method|
|
20
|
+
assert p1.methods.include?(method.to_s), "Particle System does not have #{method}"
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|