metro-ld26 0.3.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +17 -0
  3. data/.rspec +2 -0
  4. data/.travis.yml +6 -0
  5. data/Gemfile +14 -0
  6. data/Guardfile +4 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +177 -0
  9. data/Rakefile +18 -0
  10. data/bin/metro +16 -0
  11. data/changelog.md +153 -0
  12. data/lib/assets/menu-movement.wav +0 -0
  13. data/lib/assets/menu-selection.wav +0 -0
  14. data/lib/assets/missing.ogg +0 -0
  15. data/lib/assets/missing.png +0 -0
  16. data/lib/assets/missing.wav +0 -0
  17. data/lib/assets/missing_animation.png +0 -0
  18. data/lib/commands/generate_game.rb +13 -0
  19. data/lib/commands/generate_model.rb +25 -0
  20. data/lib/commands/generate_scene.rb +36 -0
  21. data/lib/commands/generate_view.rb +21 -0
  22. data/lib/commands/thor.rb +83 -0
  23. data/lib/core_ext/class.rb +14 -0
  24. data/lib/core_ext/numeric.rb +59 -0
  25. data/lib/gosu_ext/color.rb +62 -0
  26. data/lib/gosu_ext/gosu_constants.rb +53 -0
  27. data/lib/locale/en.yml +35 -0
  28. data/lib/locale/locale.rb +1 -0
  29. data/lib/metro.rb +144 -0
  30. data/lib/metro/animation.rb +135 -0
  31. data/lib/metro/animation/after_interval_factory.rb +12 -0
  32. data/lib/metro/animation/animation_factory.rb +15 -0
  33. data/lib/metro/animation/easing/ease_in.rb +15 -0
  34. data/lib/metro/animation/easing/easing.rb +51 -0
  35. data/lib/metro/animation/easing/linear.rb +15 -0
  36. data/lib/metro/animation/has_animations.rb +70 -0
  37. data/lib/metro/animation/implicit_animation.rb +100 -0
  38. data/lib/metro/animation/on_update_operation.rb +96 -0
  39. data/lib/metro/animation/scene_animation.rb +16 -0
  40. data/lib/metro/asset_path.rb +97 -0
  41. data/lib/metro/events/control_definition.rb +11 -0
  42. data/lib/metro/events/controls.rb +42 -0
  43. data/lib/metro/events/event_data.rb +60 -0
  44. data/lib/metro/events/event_dictionary.rb +52 -0
  45. data/lib/metro/events/event_factory.rb +17 -0
  46. data/lib/metro/events/event_relay.rb +342 -0
  47. data/lib/metro/events/event_state_manager.rb +70 -0
  48. data/lib/metro/events/events.rb +3 -0
  49. data/lib/metro/events/has_events.rb +108 -0
  50. data/lib/metro/events/hit_list.rb +75 -0
  51. data/lib/metro/events/unknown_sender.rb +5 -0
  52. data/lib/metro/font.rb +69 -0
  53. data/lib/metro/game.rb +102 -0
  54. data/lib/metro/game/dsl.rb +68 -0
  55. data/lib/metro/image.rb +75 -0
  56. data/lib/metro/logging.rb +33 -0
  57. data/lib/metro/missing_scene.rb +21 -0
  58. data/lib/metro/models/audio/song.rb +33 -0
  59. data/lib/metro/models/draws.rb +86 -0
  60. data/lib/metro/models/key_value_coding.rb +38 -0
  61. data/lib/metro/models/model.rb +246 -0
  62. data/lib/metro/models/model_factory.rb +32 -0
  63. data/lib/metro/models/models.rb +62 -0
  64. data/lib/metro/models/properties/animation_property.rb +115 -0
  65. data/lib/metro/models/properties/array_property.rb +24 -0
  66. data/lib/metro/models/properties/boolean_property.rb +27 -0
  67. data/lib/metro/models/properties/color_property.rb +116 -0
  68. data/lib/metro/models/properties/dimensions_property.rb +84 -0
  69. data/lib/metro/models/properties/font_property.rb +130 -0
  70. data/lib/metro/models/properties/image_property.rb +96 -0
  71. data/lib/metro/models/properties/model_property.rb +84 -0
  72. data/lib/metro/models/properties/numeric_property.rb +29 -0
  73. data/lib/metro/models/properties/options_property/no_option.rb +29 -0
  74. data/lib/metro/models/properties/options_property/options.rb +98 -0
  75. data/lib/metro/models/properties/options_property/options_property.rb +125 -0
  76. data/lib/metro/models/properties/position_property.rb +90 -0
  77. data/lib/metro/models/properties/property.rb +221 -0
  78. data/lib/metro/models/properties/property_owner.rb +137 -0
  79. data/lib/metro/models/properties/sample_property.rb +84 -0
  80. data/lib/metro/models/properties/scale_property.rb +80 -0
  81. data/lib/metro/models/properties/song_property.rb +89 -0
  82. data/lib/metro/models/properties/text_property.rb +75 -0
  83. data/lib/metro/models/ui/animated_sprite.rb +85 -0
  84. data/lib/metro/models/ui/border.rb +95 -0
  85. data/lib/metro/models/ui/fps.rb +54 -0
  86. data/lib/metro/models/ui/generic.rb +66 -0
  87. data/lib/metro/models/ui/grid_drawer.rb +74 -0
  88. data/lib/metro/models/ui/image.rb +87 -0
  89. data/lib/metro/models/ui/label.rb +175 -0
  90. data/lib/metro/models/ui/menu.rb +214 -0
  91. data/lib/metro/models/ui/model_label.rb +65 -0
  92. data/lib/metro/models/ui/model_labeler.rb +79 -0
  93. data/lib/metro/models/ui/rectangle.rb +59 -0
  94. data/lib/metro/models/ui/sprite.rb +79 -0
  95. data/lib/metro/models/ui/tile_map.rb +132 -0
  96. data/lib/metro/models/ui/tmx/isometric_position.rb +43 -0
  97. data/lib/metro/models/ui/tmx/orthogonal_position.rb +15 -0
  98. data/lib/metro/models/ui/tmx/tile_layer.rb +78 -0
  99. data/lib/metro/models/ui/ui.rb +13 -0
  100. data/lib/metro/parameters/command_line_args_parser.rb +68 -0
  101. data/lib/metro/parameters/options.rb +25 -0
  102. data/lib/metro/parameters/parameters.rb +2 -0
  103. data/lib/metro/sample.rb +40 -0
  104. data/lib/metro/scene.rb +478 -0
  105. data/lib/metro/scenes.rb +154 -0
  106. data/lib/metro/song.rb +56 -0
  107. data/lib/metro/template_message.rb +60 -0
  108. data/lib/metro/transitions/edit_transition_scene.rb +100 -0
  109. data/lib/metro/transitions/fade_transition_scene.rb +66 -0
  110. data/lib/metro/transitions/scene_transitions.rb +44 -0
  111. data/lib/metro/transitions/transition_scene.rb +19 -0
  112. data/lib/metro/units/bounds.rb +8 -0
  113. data/lib/metro/units/calculation_validations.rb +74 -0
  114. data/lib/metro/units/dimensions.rb +60 -0
  115. data/lib/metro/units/point.rb +51 -0
  116. data/lib/metro/units/rectangle_bounds.rb +148 -0
  117. data/lib/metro/units/scale.rb +46 -0
  118. data/lib/metro/units/units.rb +6 -0
  119. data/lib/metro/version.rb +32 -0
  120. data/lib/metro/views/json_view.rb +60 -0
  121. data/lib/metro/views/no_view.rb +34 -0
  122. data/lib/metro/views/parsers.rb +42 -0
  123. data/lib/metro/views/scene_view.rb +107 -0
  124. data/lib/metro/views/view.rb +133 -0
  125. data/lib/metro/views/writers.rb +43 -0
  126. data/lib/metro/views/yaml_view.rb +94 -0
  127. data/lib/metro/window.rb +95 -0
  128. data/lib/setup_handlers/exit_if_dry_run.rb +26 -0
  129. data/lib/setup_handlers/game_execution.rb +65 -0
  130. data/lib/setup_handlers/load_game_configuration.rb +65 -0
  131. data/lib/setup_handlers/load_game_files.rb +101 -0
  132. data/lib/setup_handlers/move_to_game_directory.rb +25 -0
  133. data/lib/setup_handlers/reload_game_on_game_file_changes.rb +79 -0
  134. data/lib/templates/game/README.md.tt +43 -0
  135. data/lib/templates/game/assets/brand.jpg +0 -0
  136. data/lib/templates/game/assets/hero.png +0 -0
  137. data/lib/templates/game/lib/custom_easing.rb +32 -0
  138. data/lib/templates/game/metro.tt +63 -0
  139. data/lib/templates/game/models/hero.rb +62 -0
  140. data/lib/templates/game/scenes/brand_scene.rb +19 -0
  141. data/lib/templates/game/scenes/brand_to_title_scene.rb +13 -0
  142. data/lib/templates/game/scenes/first_scene.rb +28 -0
  143. data/lib/templates/game/scenes/game_scene.rb +43 -0
  144. data/lib/templates/game/scenes/title_scene.rb +15 -0
  145. data/lib/templates/game/views/brand.yaml +4 -0
  146. data/lib/templates/game/views/brand_to_title.yaml +8 -0
  147. data/lib/templates/game/views/first.yaml +26 -0
  148. data/lib/templates/game/views/title.yaml +11 -0
  149. data/lib/templates/message.erb +23 -0
  150. data/lib/templates/model.rb.tt +111 -0
  151. data/lib/templates/scene.rb.tt +140 -0
  152. data/lib/templates/view.yaml.tt +11 -0
  153. data/lib/tmx_ext/object.rb +26 -0
  154. data/lib/tmx_ext/tile_set.rb +41 -0
  155. data/metro.gemspec +57 -0
  156. data/metro.png +0 -0
  157. data/spec/core_ext/numeric_spec.rb +78 -0
  158. data/spec/core_ext/string_spec.rb +33 -0
  159. data/spec/gosu_ext/color_spec.rb +80 -0
  160. data/spec/metro/image_spec.rb +33 -0
  161. data/spec/metro/models/key_value_coding_spec.rb +61 -0
  162. data/spec/metro/models/properties/array_property_spec.rb +60 -0
  163. data/spec/metro/models/properties/color_property_spec.rb +85 -0
  164. data/spec/metro/models/properties/dimensions_spec.rb +29 -0
  165. data/spec/metro/models/properties/font_property_spec.rb +127 -0
  166. data/spec/metro/models/properties/numeric_property_spec.rb +46 -0
  167. data/spec/metro/models/properties/options_property/no_option_spec.rb +25 -0
  168. data/spec/metro/models/properties/options_property/options_property_spec.rb +133 -0
  169. data/spec/metro/models/properties/options_property/options_spec.rb +125 -0
  170. data/spec/metro/models/properties/position_property_spec.rb +90 -0
  171. data/spec/metro/models/ui/label_spec.rb +259 -0
  172. data/spec/metro/parameters/command_line_args_parser_spec.rb +42 -0
  173. data/spec/metro/scene_spec.rb +15 -0
  174. data/spec/metro/scene_views/json_view_spec.rb +27 -0
  175. data/spec/metro/scene_views/yaml_view_spec.rb +38 -0
  176. data/spec/metro/scenes_spec.rb +77 -0
  177. data/spec/metro/units/point_spec.rb +132 -0
  178. data/spec/metro/units/rectangle_bounds_spec.rb +56 -0
  179. data/spec/metro/views/view_spec.rb +53 -0
  180. data/spec/setup_handlers/exit_if_dry_run_spec.rb +27 -0
  181. data/spec/setup_handlers/reload_game_on_game_file_changes_spec.rb +68 -0
  182. data/spec/spec_helper.rb +20 -0
  183. data/spec/tmx_ext/object_spec.rb +96 -0
  184. data/spec/tmx_ext/tile_set_spec.rb +24 -0
  185. metadata +379 -0
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ describe Metro::SetupHandlers::ExitIfDryRun do
4
+
5
+ describe "#setup" do
6
+ context "when the options specify that this is a dry run" do
7
+
8
+ let(:options) { stub('Options', dry_run?: true) }
9
+
10
+ it "should exit the game" do
11
+ subject.should_receive(:exit)
12
+ subject.setup(options)
13
+ end
14
+ end
15
+
16
+ context "when the options DO NOT specify that this is a dry run" do
17
+
18
+ let(:options) { stub('Options', dry_run?: false) }
19
+
20
+ it "should not exit the game" do
21
+ subject.should_not_receive(:exit)
22
+ subject.setup(options)
23
+ end
24
+ end
25
+ end
26
+
27
+ end
@@ -0,0 +1,68 @@
1
+ require 'spec_helper'
2
+
3
+ describe Metro::SetupHandlers::ReloadGameOnGameFileChanges do
4
+
5
+ let(:expected_filepaths) do
6
+ %w[ lib scenes models views assets ]
7
+ end
8
+
9
+ its(:watched_filepaths) { should eq expected_filepaths }
10
+
11
+
12
+ describe "#setup" do
13
+ context "when the game is not in debug mode" do
14
+ before do
15
+ Game.stub(:debug?).and_return(false)
16
+ end
17
+
18
+ let(:options) { mock('Options',packaged?: false) }
19
+
20
+ it "should not start the watcher" do
21
+ subject.should_not_receive(:start_watcher)
22
+ subject.setup(options)
23
+ end
24
+ end
25
+
26
+ context "when the options specify that it is being run in a package" do
27
+ before do
28
+ Game.stub(:debug?).and_return(true)
29
+ end
30
+
31
+ let(:options) { mock('Options',packaged?: true) }
32
+
33
+ it "should not start the watcher" do
34
+ subject.should_not_receive(:start_watcher)
35
+ subject.setup(options)
36
+ end
37
+ end
38
+
39
+ context "when the game is debug mode" do
40
+ before do
41
+ Game.stub(:debug?).and_return(true)
42
+ end
43
+
44
+ let(:options) { mock('Options',packaged?: false) }
45
+
46
+
47
+ it "should start the watcher" do
48
+ subject.should_receive(:start_watcher)
49
+ subject.setup(options)
50
+ end
51
+ end
52
+ end
53
+
54
+ describe "#reload_game_because_files_changed" do
55
+
56
+ before do
57
+ Metro.stub(:game_has_valid_code?).and_return(false)
58
+ end
59
+
60
+ let(:changed_files) { [ :new_file, :update_file, :deleted_file ] }
61
+
62
+ it "should not ask the current scene to reload if the code is invalid" do
63
+ Game.should_not_receive(:current_scene)
64
+ subject.reload_game_because_files_changed(changed_files)
65
+ end
66
+ end
67
+
68
+ end
@@ -0,0 +1,20 @@
1
+ require_relative '../lib/metro'
2
+ # # This file was generated by the `rspec --init` command. Conventionally, all
3
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
4
+ # Require this file using `require "spec_helper"` to ensure that it is only
5
+ # loaded once.
6
+ #
7
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
8
+ RSpec.configure do |config|
9
+ config.treat_symbols_as_metadata_keys_with_true_values = true
10
+ config.run_all_when_everything_filtered = true
11
+ config.filter_run :focus
12
+
13
+ # Run specs in random order to surface order dependencies. If you find an
14
+ # order dependency and want to debug it, you can fix the order by providing
15
+ # the seed, which is printed after each run.
16
+ # --seed 1234
17
+ config.order = 'random'
18
+ end
19
+
20
+ include Metro::Units
@@ -0,0 +1,96 @@
1
+ require 'spec_helper'
2
+
3
+ describe Tmx::Object do
4
+ context "when created with a polygon" do
5
+
6
+ let(:object) do
7
+ Tmx::Object.new contents.merge(contents: contents)
8
+ end
9
+
10
+ let(:contents) do
11
+ { 'points' => points, 'type' => "rock", 'shape' => "polygon" }
12
+ end
13
+
14
+ #
15
+ # These are the points as they are currently defined
16
+ # in the TMX gem for a poly shape
17
+ #
18
+ let(:points) { ["320,448", "1248,448", "1248,480", "320,480"] }
19
+
20
+ describe "#body" do
21
+ let(:body) { object.body }
22
+
23
+ it "has infinite mass" do
24
+ expect(body.m).to eq Float::INFINITY
25
+ end
26
+
27
+ it "has infinite moment of interia" do
28
+ expect(body.i).to eq Float::INFINITY
29
+ end
30
+ end
31
+
32
+ describe "#shape" do
33
+ let(:shape) { object.shape }
34
+
35
+ it "body should be the same body" do
36
+ expect(shape.body).to eq object.body
37
+ end
38
+
39
+ it "has correct collision type" do
40
+ expect(shape.collision_type).to eq :rock
41
+ end
42
+
43
+ it "not a sensor" do
44
+ expect(shape).to_not be_sensor
45
+ end
46
+
47
+ it "has no elasticity" do
48
+ expect(shape.e).to eq 0.0
49
+ end
50
+ end
51
+ end
52
+
53
+ context "when created with a ellipse" do
54
+
55
+ let(:object) do
56
+ Tmx::Object.new contents.merge(contents: contents)
57
+ end
58
+
59
+ let(:contents) do
60
+ { 'type' => "mushroom", 'shape' => "ellipse", 'x' => 256, 'y' => 224, 'width' => 32, 'height' => 32 }
61
+ end
62
+
63
+ describe "#body" do
64
+ let(:body) { object.body }
65
+
66
+ it "has infinite mass" do
67
+ expect(body.m).to eq Float::INFINITY
68
+ end
69
+
70
+ it "has infinite moment of interia" do
71
+ expect(body.i).to eq Float::INFINITY
72
+ end
73
+ end
74
+
75
+ describe "#shape" do
76
+ let(:shape) { object.shape }
77
+
78
+ it "body should be the same body" do
79
+ expect(shape.body).to eq object.body
80
+ end
81
+
82
+ it "has correct collision type" do
83
+ expect(shape.collision_type).to eq :mushroom
84
+ end
85
+
86
+ it "not a sensor" do
87
+ expect(shape).to_not be_sensor
88
+ end
89
+
90
+ it "has no elasticity" do
91
+ expect(shape.e).to eq 0.0
92
+ end
93
+ end
94
+ end
95
+
96
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe Tmx::TileSet do
4
+
5
+ let(:window) { stub('window') }
6
+
7
+ let(:subject) do
8
+ tile_set = described_class.new tilewidth: 10, tileheight: 20,
9
+ margin: 2, spacing: 2, image: "tile_image.png"
10
+ tile_set.window = window
11
+ tile_set
12
+ end
13
+
14
+ describe "#images" do
15
+ let(:raw_images) { [ mock("image-1"), mock("image-2") ] }
16
+
17
+ it "returns an array of images" do
18
+ subject.should_receive(:raw_image_tiles).and_return(raw_images)
19
+ subject.should_receive(:crop_image).twice
20
+ subject.images
21
+ end
22
+ end
23
+
24
+ end
metadata ADDED
@@ -0,0 +1,379 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: metro-ld26
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.4
5
+ platform: ruby
6
+ authors:
7
+ - Franklin Webber
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2013-04-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: gosu
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ~>
18
+ - !ruby/object:Gem::Version
19
+ version: '0.7'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '0.7'
27
+ - !ruby/object:Gem::Dependency
28
+ name: texplay
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '0.4'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '0.4'
41
+ - !ruby/object:Gem::Dependency
42
+ name: tmx
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ~>
46
+ - !ruby/object:Gem::Version
47
+ version: 0.1.2
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: 0.1.2
55
+ - !ruby/object:Gem::Dependency
56
+ name: thor
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ version: 0.16.0
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: 0.16.0
69
+ - !ruby/object:Gem::Dependency
70
+ name: i18n
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ~>
74
+ - !ruby/object:Gem::Version
75
+ version: 0.6.1
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: 0.6.1
83
+ - !ruby/object:Gem::Dependency
84
+ name: active_support
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ~>
88
+ - !ruby/object:Gem::Version
89
+ version: 3.0.0
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: 3.0.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: listen
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ~>
102
+ - !ruby/object:Gem::Version
103
+ version: 0.6.0
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: 0.6.0
111
+ - !ruby/object:Gem::Dependency
112
+ name: rspec
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: '2.11'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '2.11'
125
+ description: ! " Metro is a 2D Gaming framework built around gosu (game development
126
+ library).\n Metro makes it easy to create games by enforcing common conceptual
127
+ structures\n and conventions.\n"
128
+ email:
129
+ - dev@rubymetro.com
130
+ executables:
131
+ - metro
132
+ extensions: []
133
+ extra_rdoc_files: []
134
+ files:
135
+ - .gitignore
136
+ - .rspec
137
+ - .travis.yml
138
+ - Gemfile
139
+ - Guardfile
140
+ - LICENSE.txt
141
+ - README.md
142
+ - Rakefile
143
+ - bin/metro
144
+ - changelog.md
145
+ - lib/assets/menu-movement.wav
146
+ - lib/assets/menu-selection.wav
147
+ - lib/assets/missing.ogg
148
+ - lib/assets/missing.png
149
+ - lib/assets/missing.wav
150
+ - lib/assets/missing_animation.png
151
+ - lib/commands/generate_game.rb
152
+ - lib/commands/generate_model.rb
153
+ - lib/commands/generate_scene.rb
154
+ - lib/commands/generate_view.rb
155
+ - lib/commands/thor.rb
156
+ - lib/core_ext/class.rb
157
+ - lib/core_ext/numeric.rb
158
+ - lib/gosu_ext/color.rb
159
+ - lib/gosu_ext/gosu_constants.rb
160
+ - lib/locale/en.yml
161
+ - lib/locale/locale.rb
162
+ - lib/metro.rb
163
+ - lib/metro/animation.rb
164
+ - lib/metro/animation/after_interval_factory.rb
165
+ - lib/metro/animation/animation_factory.rb
166
+ - lib/metro/animation/easing/ease_in.rb
167
+ - lib/metro/animation/easing/easing.rb
168
+ - lib/metro/animation/easing/linear.rb
169
+ - lib/metro/animation/has_animations.rb
170
+ - lib/metro/animation/implicit_animation.rb
171
+ - lib/metro/animation/on_update_operation.rb
172
+ - lib/metro/animation/scene_animation.rb
173
+ - lib/metro/asset_path.rb
174
+ - lib/metro/events/control_definition.rb
175
+ - lib/metro/events/controls.rb
176
+ - lib/metro/events/event_data.rb
177
+ - lib/metro/events/event_dictionary.rb
178
+ - lib/metro/events/event_factory.rb
179
+ - lib/metro/events/event_relay.rb
180
+ - lib/metro/events/event_state_manager.rb
181
+ - lib/metro/events/events.rb
182
+ - lib/metro/events/has_events.rb
183
+ - lib/metro/events/hit_list.rb
184
+ - lib/metro/events/unknown_sender.rb
185
+ - lib/metro/font.rb
186
+ - lib/metro/game.rb
187
+ - lib/metro/game/dsl.rb
188
+ - lib/metro/image.rb
189
+ - lib/metro/logging.rb
190
+ - lib/metro/missing_scene.rb
191
+ - lib/metro/models/audio/song.rb
192
+ - lib/metro/models/draws.rb
193
+ - lib/metro/models/key_value_coding.rb
194
+ - lib/metro/models/model.rb
195
+ - lib/metro/models/model_factory.rb
196
+ - lib/metro/models/models.rb
197
+ - lib/metro/models/properties/animation_property.rb
198
+ - lib/metro/models/properties/array_property.rb
199
+ - lib/metro/models/properties/boolean_property.rb
200
+ - lib/metro/models/properties/color_property.rb
201
+ - lib/metro/models/properties/dimensions_property.rb
202
+ - lib/metro/models/properties/font_property.rb
203
+ - lib/metro/models/properties/image_property.rb
204
+ - lib/metro/models/properties/model_property.rb
205
+ - lib/metro/models/properties/numeric_property.rb
206
+ - lib/metro/models/properties/options_property/no_option.rb
207
+ - lib/metro/models/properties/options_property/options.rb
208
+ - lib/metro/models/properties/options_property/options_property.rb
209
+ - lib/metro/models/properties/position_property.rb
210
+ - lib/metro/models/properties/property.rb
211
+ - lib/metro/models/properties/property_owner.rb
212
+ - lib/metro/models/properties/sample_property.rb
213
+ - lib/metro/models/properties/scale_property.rb
214
+ - lib/metro/models/properties/song_property.rb
215
+ - lib/metro/models/properties/text_property.rb
216
+ - lib/metro/models/ui/animated_sprite.rb
217
+ - lib/metro/models/ui/border.rb
218
+ - lib/metro/models/ui/fps.rb
219
+ - lib/metro/models/ui/generic.rb
220
+ - lib/metro/models/ui/grid_drawer.rb
221
+ - lib/metro/models/ui/image.rb
222
+ - lib/metro/models/ui/label.rb
223
+ - lib/metro/models/ui/menu.rb
224
+ - lib/metro/models/ui/model_label.rb
225
+ - lib/metro/models/ui/model_labeler.rb
226
+ - lib/metro/models/ui/rectangle.rb
227
+ - lib/metro/models/ui/sprite.rb
228
+ - lib/metro/models/ui/tile_map.rb
229
+ - lib/metro/models/ui/tmx/isometric_position.rb
230
+ - lib/metro/models/ui/tmx/orthogonal_position.rb
231
+ - lib/metro/models/ui/tmx/tile_layer.rb
232
+ - lib/metro/models/ui/ui.rb
233
+ - lib/metro/parameters/command_line_args_parser.rb
234
+ - lib/metro/parameters/options.rb
235
+ - lib/metro/parameters/parameters.rb
236
+ - lib/metro/sample.rb
237
+ - lib/metro/scene.rb
238
+ - lib/metro/scenes.rb
239
+ - lib/metro/song.rb
240
+ - lib/metro/template_message.rb
241
+ - lib/metro/transitions/edit_transition_scene.rb
242
+ - lib/metro/transitions/fade_transition_scene.rb
243
+ - lib/metro/transitions/scene_transitions.rb
244
+ - lib/metro/transitions/transition_scene.rb
245
+ - lib/metro/units/bounds.rb
246
+ - lib/metro/units/calculation_validations.rb
247
+ - lib/metro/units/dimensions.rb
248
+ - lib/metro/units/point.rb
249
+ - lib/metro/units/rectangle_bounds.rb
250
+ - lib/metro/units/scale.rb
251
+ - lib/metro/units/units.rb
252
+ - lib/metro/version.rb
253
+ - lib/metro/views/json_view.rb
254
+ - lib/metro/views/no_view.rb
255
+ - lib/metro/views/parsers.rb
256
+ - lib/metro/views/scene_view.rb
257
+ - lib/metro/views/view.rb
258
+ - lib/metro/views/writers.rb
259
+ - lib/metro/views/yaml_view.rb
260
+ - lib/metro/window.rb
261
+ - lib/setup_handlers/exit_if_dry_run.rb
262
+ - lib/setup_handlers/game_execution.rb
263
+ - lib/setup_handlers/load_game_configuration.rb
264
+ - lib/setup_handlers/load_game_files.rb
265
+ - lib/setup_handlers/move_to_game_directory.rb
266
+ - lib/setup_handlers/reload_game_on_game_file_changes.rb
267
+ - lib/templates/game/README.md.tt
268
+ - lib/templates/game/assets/brand.jpg
269
+ - lib/templates/game/assets/hero.png
270
+ - lib/templates/game/lib/custom_easing.rb
271
+ - lib/templates/game/metro.tt
272
+ - lib/templates/game/models/hero.rb
273
+ - lib/templates/game/scenes/brand_scene.rb
274
+ - lib/templates/game/scenes/brand_to_title_scene.rb
275
+ - lib/templates/game/scenes/first_scene.rb
276
+ - lib/templates/game/scenes/game_scene.rb
277
+ - lib/templates/game/scenes/title_scene.rb
278
+ - lib/templates/game/views/brand.yaml
279
+ - lib/templates/game/views/brand_to_title.yaml
280
+ - lib/templates/game/views/first.yaml
281
+ - lib/templates/game/views/title.yaml
282
+ - lib/templates/message.erb
283
+ - lib/templates/model.rb.tt
284
+ - lib/templates/scene.rb.tt
285
+ - lib/templates/view.yaml.tt
286
+ - lib/tmx_ext/object.rb
287
+ - lib/tmx_ext/tile_set.rb
288
+ - metro.gemspec
289
+ - metro.png
290
+ - spec/core_ext/numeric_spec.rb
291
+ - spec/core_ext/string_spec.rb
292
+ - spec/gosu_ext/color_spec.rb
293
+ - spec/metro/image_spec.rb
294
+ - spec/metro/models/key_value_coding_spec.rb
295
+ - spec/metro/models/properties/array_property_spec.rb
296
+ - spec/metro/models/properties/color_property_spec.rb
297
+ - spec/metro/models/properties/dimensions_spec.rb
298
+ - spec/metro/models/properties/font_property_spec.rb
299
+ - spec/metro/models/properties/numeric_property_spec.rb
300
+ - spec/metro/models/properties/options_property/no_option_spec.rb
301
+ - spec/metro/models/properties/options_property/options_property_spec.rb
302
+ - spec/metro/models/properties/options_property/options_spec.rb
303
+ - spec/metro/models/properties/position_property_spec.rb
304
+ - spec/metro/models/ui/label_spec.rb
305
+ - spec/metro/parameters/command_line_args_parser_spec.rb
306
+ - spec/metro/scene_spec.rb
307
+ - spec/metro/scene_views/json_view_spec.rb
308
+ - spec/metro/scene_views/yaml_view_spec.rb
309
+ - spec/metro/scenes_spec.rb
310
+ - spec/metro/units/point_spec.rb
311
+ - spec/metro/units/rectangle_bounds_spec.rb
312
+ - spec/metro/views/view_spec.rb
313
+ - spec/setup_handlers/exit_if_dry_run_spec.rb
314
+ - spec/setup_handlers/reload_game_on_game_file_changes_spec.rb
315
+ - spec/spec_helper.rb
316
+ - spec/tmx_ext/object_spec.rb
317
+ - spec/tmx_ext/tile_set_spec.rb
318
+ homepage: https://github.com/burtlo/metro
319
+ licenses:
320
+ - MIT
321
+ metadata: {}
322
+ post_install_message: ! " ______ ___ _____\n ___ |/ /_____ __ /_______________\n
323
+ \ __ /|_/ / _ _ \\_ __/__ ___/_ __ \\\n _ / / / / __// /_ _ / /
324
+ /_/ /\n /_/ /_/ \\___/ \\__/ /_/ \\____/\n\n Thank you for installing
325
+ metro 0.3.4 / 2012-12-14.\n ---------------------------------------------------------------------\n
326
+ \ Changes:\n \n * `metro::ui::sprite` and `metro::ui::animated_sprite` model
327
+ classes\n to make it easier to take care of all the basic model attributes.\n
328
+ \ * Event Management changed in the background. The API remains the\n same.\n
329
+ \ \n\n ---------------------------------------------------------------------\n"
330
+ rdoc_options: []
331
+ require_paths:
332
+ - lib
333
+ required_ruby_version: !ruby/object:Gem::Requirement
334
+ requirements:
335
+ - - ! '>='
336
+ - !ruby/object:Gem::Version
337
+ version: '0'
338
+ required_rubygems_version: !ruby/object:Gem::Requirement
339
+ requirements:
340
+ - - ! '>='
341
+ - !ruby/object:Gem::Version
342
+ version: '0'
343
+ requirements: []
344
+ rubyforge_project:
345
+ rubygems_version: 2.0.3
346
+ signing_key:
347
+ specification_version: 4
348
+ summary: Metro is a 2D Gaming framework built around gosu (game development library).
349
+ Metro makes it easy to create games by enforcing common conceptual structures and
350
+ conventions.
351
+ test_files:
352
+ - spec/core_ext/numeric_spec.rb
353
+ - spec/core_ext/string_spec.rb
354
+ - spec/gosu_ext/color_spec.rb
355
+ - spec/metro/image_spec.rb
356
+ - spec/metro/models/key_value_coding_spec.rb
357
+ - spec/metro/models/properties/array_property_spec.rb
358
+ - spec/metro/models/properties/color_property_spec.rb
359
+ - spec/metro/models/properties/dimensions_spec.rb
360
+ - spec/metro/models/properties/font_property_spec.rb
361
+ - spec/metro/models/properties/numeric_property_spec.rb
362
+ - spec/metro/models/properties/options_property/no_option_spec.rb
363
+ - spec/metro/models/properties/options_property/options_property_spec.rb
364
+ - spec/metro/models/properties/options_property/options_spec.rb
365
+ - spec/metro/models/properties/position_property_spec.rb
366
+ - spec/metro/models/ui/label_spec.rb
367
+ - spec/metro/parameters/command_line_args_parser_spec.rb
368
+ - spec/metro/scene_spec.rb
369
+ - spec/metro/scene_views/json_view_spec.rb
370
+ - spec/metro/scene_views/yaml_view_spec.rb
371
+ - spec/metro/scenes_spec.rb
372
+ - spec/metro/units/point_spec.rb
373
+ - spec/metro/units/rectangle_bounds_spec.rb
374
+ - spec/metro/views/view_spec.rb
375
+ - spec/setup_handlers/exit_if_dry_run_spec.rb
376
+ - spec/setup_handlers/reload_game_on_game_file_changes_spec.rb
377
+ - spec/spec_helper.rb
378
+ - spec/tmx_ext/object_spec.rb
379
+ - spec/tmx_ext/tile_set_spec.rb