metro 0.1.1 → 0.1.2
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.
- data/bin/metro +6 -1
- data/changelog.md +4 -0
- data/lib/commands/generate_game.rb +13 -0
- data/lib/commands/generate_model.rb +25 -0
- data/lib/commands/generate_scene.rb +26 -0
- data/lib/commands/generate_view.rb +21 -0
- data/lib/commands/thor.rb +77 -0
- data/lib/core_ext/string.rb +15 -0
- data/lib/metro.rb +1 -0
- data/lib/metro/models/image.rb +2 -1
- data/lib/metro/version.rb +1 -1
- data/lib/templates/game/README.md.tt +10 -0
- data/lib/templates/game/assets/brand.jpg +0 -0
- data/lib/templates/game/metro.tt +51 -0
- data/lib/templates/game/scenes/brand_scene.rb +13 -0
- data/lib/templates/game/scenes/brand_to_title_scene.rb +13 -0
- data/lib/templates/game/scenes/title_scene.rb +15 -0
- data/lib/templates/game/views/brand.yaml +5 -0
- data/lib/templates/game/views/brand_to_title.yaml +9 -0
- data/lib/templates/game/views/title.yaml +14 -0
- data/lib/templates/model.rb.erb +59 -0
- data/lib/templates/scene.rb.erb +117 -0
- data/lib/templates/view.yaml.erb +32 -0
- data/metro.gemspec +1 -0
- data/spec/core_ext/string_spec.rb +53 -0
- metadata +40 -4
data/bin/metro
CHANGED
data/changelog.md
CHANGED
@@ -0,0 +1,25 @@
|
|
1
|
+
module Metro
|
2
|
+
|
3
|
+
class GenerateModel < Generator
|
4
|
+
|
5
|
+
no_tasks do
|
6
|
+
|
7
|
+
def model_filename
|
8
|
+
name.snake_case
|
9
|
+
end
|
10
|
+
|
11
|
+
def model_name
|
12
|
+
name.camel_case
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
|
17
|
+
argument :name
|
18
|
+
|
19
|
+
def create_model_file
|
20
|
+
template "model.rb.erb", "models/#{model_filename}.rb"
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
module Metro
|
2
|
+
|
3
|
+
class GenerateScene < Generator
|
4
|
+
|
5
|
+
no_tasks do
|
6
|
+
|
7
|
+
def scene_filename
|
8
|
+
scene_name = name.gsub(/_?Scene$/i,'')
|
9
|
+
"#{scene_name.snake_case}_scene"
|
10
|
+
end
|
11
|
+
|
12
|
+
def scene_class_name
|
13
|
+
scene_name = name.gsub(/_?Scene$/i,'')
|
14
|
+
"#{scene_name.camel_case}Scene"
|
15
|
+
end
|
16
|
+
|
17
|
+
end
|
18
|
+
|
19
|
+
argument :name
|
20
|
+
|
21
|
+
def create_scene_file
|
22
|
+
template "scene.rb.erb", "scenes/#{scene_filename}.rb"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Metro
|
2
|
+
|
3
|
+
class GenerateView < Generator
|
4
|
+
|
5
|
+
no_tasks do
|
6
|
+
|
7
|
+
def view_filename
|
8
|
+
view_name = name.to_s.gsub(/_?Scene$/i,'')
|
9
|
+
view_name.snake_case
|
10
|
+
end
|
11
|
+
|
12
|
+
end
|
13
|
+
|
14
|
+
argument :name
|
15
|
+
|
16
|
+
def create_view_file
|
17
|
+
template "view.yaml.erb", "views/#{view_filename}.yaml"
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
require 'thor'
|
2
|
+
require 'thor/group'
|
3
|
+
|
4
|
+
module Metro
|
5
|
+
|
6
|
+
class Generator < ::Thor::Group
|
7
|
+
include Thor::Actions
|
8
|
+
|
9
|
+
def self.source_root
|
10
|
+
File.join File.dirname(__FILE__), "..", "templates"
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
class UnknownGenerator
|
15
|
+
|
16
|
+
def self.start(commands)
|
17
|
+
raise "There is no command: [ #{commands.join(', ')} ]"
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
class Thor < Thor
|
24
|
+
|
25
|
+
no_tasks do
|
26
|
+
|
27
|
+
def banner
|
28
|
+
"""
|
29
|
+
********************************************************************************
|
30
|
+
______ ___ _____
|
31
|
+
___ |/ /_____ __ /_______________
|
32
|
+
__ /|_/ / _ _ \\_ __/__ ___/_ __ \\
|
33
|
+
_ / / / / __// /_ _ / / /_/ /
|
34
|
+
/_/ /_/ \\___/ \\__/ /_/ \\____/
|
35
|
+
|
36
|
+
-------------------------------------------------------------------------------"""
|
37
|
+
end
|
38
|
+
|
39
|
+
def generators
|
40
|
+
Hash.new(UnknownGenerator).merge model: Metro::GenerateModel,
|
41
|
+
scene: Metro::GenerateScene,
|
42
|
+
view: Metro::GenerateView
|
43
|
+
end
|
44
|
+
|
45
|
+
def generator(name)
|
46
|
+
generators[name.to_sym]
|
47
|
+
end
|
48
|
+
|
49
|
+
end
|
50
|
+
|
51
|
+
desc "new [GAMENAME]",
|
52
|
+
"Create a new game within the directory using with the [GAMENAME] given."
|
53
|
+
def new(game_name)
|
54
|
+
Metro::GenerateGame.start [ game_name ]
|
55
|
+
end
|
56
|
+
|
57
|
+
desc "generate",
|
58
|
+
"Create a new game model, view, or scene"
|
59
|
+
def generate(type,name)
|
60
|
+
gen = generator(type)
|
61
|
+
gen.start [ name ]
|
62
|
+
end
|
63
|
+
|
64
|
+
desc "help", "This commoand"
|
65
|
+
def help(topic)
|
66
|
+
say banner
|
67
|
+
print_table self.class.printable_tasks, indent: 4
|
68
|
+
end
|
69
|
+
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
|
74
|
+
require_relative 'generate_game'
|
75
|
+
require_relative 'generate_model'
|
76
|
+
require_relative 'generate_scene'
|
77
|
+
require_relative 'generate_view'
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class String
|
2
|
+
|
3
|
+
def snake_case
|
4
|
+
snaked_string = self.gsub(/([A-Z\d]+)([A-Z][a-z])/,'\1_\2')
|
5
|
+
snaked_string.gsub!(/([a-z\d])([A-Z])/,'\1_\2')
|
6
|
+
snaked_string.downcase
|
7
|
+
end
|
8
|
+
|
9
|
+
def camel_case
|
10
|
+
camel_string = self.to_s.gsub(/Scene$/i,'')
|
11
|
+
camel_string = camel_string.sub(/^[a-z\d]*/) { $&.capitalize }
|
12
|
+
camel_string = camel_string.gsub(/(?:_|(\/))([a-z\d]*)/i) { "#{$1}#{$2.capitalize}" }.gsub('/', '::')
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
data/lib/metro.rb
CHANGED
data/lib/metro/models/image.rb
CHANGED
@@ -9,13 +9,14 @@ module Metro
|
|
9
9
|
#
|
10
10
|
class Image < Model
|
11
11
|
|
12
|
-
attr_accessor :angle, :center_x, :center_y, :x_factor, :y_factor
|
12
|
+
attr_accessor :angle, :center_x, :center_y, :x_factor, :y_factor, :z_order
|
13
13
|
|
14
14
|
def after_initialize
|
15
15
|
@angle = 0
|
16
16
|
@center_x = @center_y = 0.5
|
17
17
|
@x_factor = @y_factor = 1
|
18
18
|
@z_order = 0
|
19
|
+
@color = Gosu::Color.new "rgba(255,255,255,1.0)"
|
19
20
|
end
|
20
21
|
|
21
22
|
def image
|
data/lib/metro/version.rb
CHANGED
@@ -0,0 +1,10 @@
|
|
1
|
+
# <%= name %>
|
2
|
+
|
3
|
+
## Details
|
4
|
+
|
5
|
+
Additional information or backstory about the game that you
|
6
|
+
are creating. This file's intention is to allow a user to
|
7
|
+
refer to this for more information related to the game or
|
8
|
+
possibly any notes or caveats about the game.
|
9
|
+
|
10
|
+
## Contact
|
Binary file
|
@@ -0,0 +1,51 @@
|
|
1
|
+
#
|
2
|
+
# This is the main game file which contains information
|
3
|
+
# about your game. T
|
4
|
+
#
|
5
|
+
# Remember, this is really a ruby file, so anything
|
6
|
+
# that can be done with Ruby can be written here.
|
7
|
+
#
|
8
|
+
# "With great power comes great responsibility" ~ Uncle Ben
|
9
|
+
|
10
|
+
#
|
11
|
+
# This is the name of your game...
|
12
|
+
name "<%= name %>"
|
13
|
+
|
14
|
+
#
|
15
|
+
# The author of the game. This method can be executed
|
16
|
+
# twice if more people are working on this game.
|
17
|
+
#
|
18
|
+
author "John Carmack"
|
19
|
+
|
20
|
+
#
|
21
|
+
# The website where the person playing this game
|
22
|
+
# could learn more about this game, other games, the
|
23
|
+
# authors, or perhaps ask for help or support.
|
24
|
+
#
|
25
|
+
website "www.idsoftware.com"
|
26
|
+
|
27
|
+
#
|
28
|
+
# The contact email address where a person that is
|
29
|
+
# playing the game might want to contact to thank
|
30
|
+
# or reach out for help.
|
31
|
+
#
|
32
|
+
contact "person@personemail.com"
|
33
|
+
|
34
|
+
#
|
35
|
+
# This sets the resolution for the game
|
36
|
+
#
|
37
|
+
resolution 640, 480
|
38
|
+
|
39
|
+
#
|
40
|
+
# The scene that will be shown first when the game
|
41
|
+
# starts.
|
42
|
+
#
|
43
|
+
first_scene :brand
|
44
|
+
|
45
|
+
#
|
46
|
+
# Enable debug mode for the game. Which could
|
47
|
+
# allow different logic. When this is set the
|
48
|
+
# Metro::Game.debug? method will return a true
|
49
|
+
# value.
|
50
|
+
#
|
51
|
+
# debug true
|
@@ -0,0 +1,14 @@
|
|
1
|
+
title:
|
2
|
+
model: metro::models::label
|
3
|
+
text: "#{Metro::Game.name}"
|
4
|
+
x: 120
|
5
|
+
y: 40
|
6
|
+
x-factor: 2
|
7
|
+
y-factor: 2
|
8
|
+
color: rgba(255,255,255,1.0)
|
9
|
+
menu:
|
10
|
+
model: metro::models::menu
|
11
|
+
x: 260
|
12
|
+
y: 200
|
13
|
+
color: rgb(127,127,127)
|
14
|
+
highlight-color: rgb(255,255,255)
|
@@ -0,0 +1,59 @@
|
|
1
|
+
class <%= model_name %> < Metro::Model
|
2
|
+
|
3
|
+
#
|
4
|
+
# Example Event Handling Definitions
|
5
|
+
#
|
6
|
+
# @example Registering the keyboard down event to execute a block of code
|
7
|
+
#
|
8
|
+
# event :on_down, Gosu::GpLeft, Gosu::GpUp, do
|
9
|
+
# turn_left
|
10
|
+
# end
|
11
|
+
#
|
12
|
+
# @example Registering the keyboard up key to execute the method `jump`
|
13
|
+
#
|
14
|
+
# event :on_up, Gosu::KbEscape, do: :jump
|
15
|
+
#
|
16
|
+
# @example Registering for button held events that would build the model's acceleration
|
17
|
+
#
|
18
|
+
# event :on_hold, Gosu::KbRight, Gosu::GpRight do
|
19
|
+
# acceleration += 1
|
20
|
+
# end
|
21
|
+
#
|
22
|
+
# Keystroke and Game Event Reference
|
23
|
+
#
|
24
|
+
# @see https://github.com/jlnr/gosu/blob/master/Gosu/ButtonsMac.hpp
|
25
|
+
# @see https://github.com/jlnr/gosu/blob/master/Gosu/ButtonsX.hpp
|
26
|
+
# @see https://github.com/jlnr/gosu/blob/master/Gosu/ButtonsWin.hpp
|
27
|
+
#
|
28
|
+
#
|
29
|
+
# @example Registering for an event called 'save_complete' event that anyone
|
30
|
+
# can generate and this scene block will execute this code.
|
31
|
+
#
|
32
|
+
# event :notification, :game_over do
|
33
|
+
# puts "Game is Over!"
|
34
|
+
# end
|
35
|
+
#
|
36
|
+
# Within the models you could use the method `notification`
|
37
|
+
# to generate the notification
|
38
|
+
#
|
39
|
+
# def update_score
|
40
|
+
# score = score + 1
|
41
|
+
# if score >= winning_score
|
42
|
+
# notification :game_over
|
43
|
+
# end
|
44
|
+
#
|
45
|
+
|
46
|
+
#
|
47
|
+
# As model does a lot of work for you with regarding to setting up content, it is
|
48
|
+
# best not to override #initialize and instead define an #after_initialize method
|
49
|
+
# within the subclasses of Scene.
|
50
|
+
#
|
51
|
+
def after_initialize ; end
|
52
|
+
|
53
|
+
#
|
54
|
+
# This is called after every {#update} and when the OS wants the window to
|
55
|
+
# repaint itself.
|
56
|
+
#
|
57
|
+
def draw ; end
|
58
|
+
|
59
|
+
end
|
@@ -0,0 +1,117 @@
|
|
1
|
+
class <%= scene_class_name %> < Metro::Scene
|
2
|
+
# By default the Scene Name is based on the class name
|
3
|
+
# but that can be overriden with the scene_name class method
|
4
|
+
# scene_name "credits"
|
5
|
+
|
6
|
+
#
|
7
|
+
# DRAWING and ACTORS
|
8
|
+
#
|
9
|
+
# @example Explicitly drawing a text label in the scene
|
10
|
+
#
|
11
|
+
# draw :title, 'text' => 'Title Screen',
|
12
|
+
# 'x' => 20, 'y' => 20, 'z-order' => 0,
|
13
|
+
# 'x-factor' => 3, 'y-factor' => 3,
|
14
|
+
# 'color' => 0xffffffff,
|
15
|
+
# 'model' => 'metro::models::label'
|
16
|
+
#
|
17
|
+
# The draw method can be simplier for models that have content defined
|
18
|
+
# for them in the view or the models themselves define the appropriate
|
19
|
+
# fields.
|
20
|
+
#
|
21
|
+
# @example defining multiple things to draw; their visual data would be
|
22
|
+
# stored within the respective view file
|
23
|
+
#
|
24
|
+
# draws :menu, :hero, :enemy
|
25
|
+
#
|
26
|
+
|
27
|
+
#
|
28
|
+
# ANIMATIONS
|
29
|
+
#
|
30
|
+
# @example of the title being moved to a new y position and the alpha level
|
31
|
+
#
|
32
|
+
# animate actor: :title, to: { y: 80, alpha: 50 }, interval: 120 do
|
33
|
+
# puts "Done Animating!"
|
34
|
+
# end
|
35
|
+
#
|
36
|
+
|
37
|
+
#
|
38
|
+
# Example Event Handling Definitions
|
39
|
+
#
|
40
|
+
# @example Registering the keyboard down event to execute a block of code
|
41
|
+
#
|
42
|
+
# event :on_down, Gosu::GpLeft, Gosu::GpUp, do
|
43
|
+
# transition_to :next_scene
|
44
|
+
# end
|
45
|
+
#
|
46
|
+
# @example Registering the keyboard up key to execute the method `leave_scene`
|
47
|
+
#
|
48
|
+
# event :on_up, Gosu::KbEscape, do: :leave_scene
|
49
|
+
#
|
50
|
+
# @example Registering for button held events that would move an actor named `player`
|
51
|
+
#
|
52
|
+
# event :on_hold, Gosu::KbRight, Gosu::GpRight do
|
53
|
+
# title.alpha = title.alpha - 1
|
54
|
+
# end
|
55
|
+
# Keystroke and Game Event Reference
|
56
|
+
#
|
57
|
+
# @see https://github.com/jlnr/gosu/blob/master/Gosu/ButtonsMac.hpp
|
58
|
+
# @see https://github.com/jlnr/gosu/blob/master/Gosu/ButtonsX.hpp
|
59
|
+
# @see https://github.com/jlnr/gosu/blob/master/Gosu/ButtonsWin.hpp
|
60
|
+
#
|
61
|
+
#
|
62
|
+
# @example Registering for an event called 'save_complete' event that anyone
|
63
|
+
# can generate and this scene block will execute this code.
|
64
|
+
#
|
65
|
+
# event :notification, :save_complete do
|
66
|
+
# puts "Save Complete!"
|
67
|
+
# end
|
68
|
+
#
|
69
|
+
# Within the scene or in the models you could use the method `notification`
|
70
|
+
# to generate the notification
|
71
|
+
#
|
72
|
+
# def update
|
73
|
+
# if game_save.complete?
|
74
|
+
# notification :save_complete
|
75
|
+
# end
|
76
|
+
# end
|
77
|
+
#
|
78
|
+
|
79
|
+
#
|
80
|
+
# As Scene does a lot of work for you with regarding to setting up content, it is
|
81
|
+
# best not to override #initialize and instead define an #after_initialize method
|
82
|
+
# within the subclasses of Scene.
|
83
|
+
#
|
84
|
+
def after_initialize ; end
|
85
|
+
|
86
|
+
#
|
87
|
+
# This method is called right after the scene has been adopted by the window
|
88
|
+
#
|
89
|
+
def show ; end
|
90
|
+
|
91
|
+
#
|
92
|
+
# This is called every update interval while the window is being shown.
|
93
|
+
#
|
94
|
+
def update ; end
|
95
|
+
|
96
|
+
#
|
97
|
+
# This is called after every {#update} and when the OS wants the window to
|
98
|
+
# repaint itself.
|
99
|
+
#
|
100
|
+
def draw ; end
|
101
|
+
|
102
|
+
#
|
103
|
+
# Before a scene is transisitioned away from to a new scene, this method is called
|
104
|
+
# to allow for the scene to complete any taskss, stop any actions, or pass any
|
105
|
+
# information from the existing scene to the scene that is about to replace it.
|
106
|
+
#
|
107
|
+
def prepare_transition_to(new_scene) ; end
|
108
|
+
|
109
|
+
#
|
110
|
+
# Before a scene is transisitioned to it is called with the previous scene. This
|
111
|
+
# allows for the new scene to rerieve any data from the previous scene to assist
|
112
|
+
# with the layout of the current scene.
|
113
|
+
#
|
114
|
+
def prepare_transition_from(old_scene) ; end
|
115
|
+
|
116
|
+
|
117
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
title:
|
2
|
+
model: metro::models::label
|
3
|
+
text: STARRY KNIGHT
|
4
|
+
x: 30
|
5
|
+
y: 50
|
6
|
+
z-order: 4
|
7
|
+
x-factor: 3
|
8
|
+
y-factor: 3
|
9
|
+
color: "rgba(255,255,0,0.0)"
|
10
|
+
logo:
|
11
|
+
model: metro::models::image
|
12
|
+
x: 540
|
13
|
+
y: 380
|
14
|
+
z-order: 4
|
15
|
+
path: "player.png"
|
16
|
+
color: "rgba(255,255,255,0.0)"
|
17
|
+
star: &star_default
|
18
|
+
model: star
|
19
|
+
x: 100
|
20
|
+
y: 400
|
21
|
+
path: "star.png"
|
22
|
+
width: 25
|
23
|
+
height: 25
|
24
|
+
tileable: false
|
25
|
+
star2:
|
26
|
+
<<: *star_default
|
27
|
+
x: 455
|
28
|
+
y: 333
|
29
|
+
star3:
|
30
|
+
<<: *star_default
|
31
|
+
x: 515
|
32
|
+
y: 40
|
data/metro.gemspec
CHANGED
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe String do
|
4
|
+
|
5
|
+
describe "#snake_case" do
|
6
|
+
context "when given a regular string" do
|
7
|
+
subject { "String" }
|
8
|
+
let(:expected_value) { "string" }
|
9
|
+
|
10
|
+
its(:snake_case) { should eq expected_value }
|
11
|
+
end
|
12
|
+
|
13
|
+
context "when given an already snake cased string" do
|
14
|
+
subject { "snake_cased" }
|
15
|
+
let(:expected_value) { "snake_cased" }
|
16
|
+
|
17
|
+
its(:snake_case) { should eq expected_value }
|
18
|
+
end
|
19
|
+
|
20
|
+
context "when given a camelCased string" do
|
21
|
+
subject { "SnakeCased" }
|
22
|
+
let(:expected_value) { "snake_cased" }
|
23
|
+
|
24
|
+
its(:snake_case) { should eq expected_value }
|
25
|
+
end
|
26
|
+
|
27
|
+
context "when given a partial camel_Cased string" do
|
28
|
+
subject { "snake_Cased" }
|
29
|
+
let(:expected_value) { "snake_cased" }
|
30
|
+
its(:snake_case) { should eq expected_value }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
describe "#camel_case" do
|
35
|
+
context "when given a regular string" do
|
36
|
+
subject { "string" }
|
37
|
+
let(:expected_value) { "String" }
|
38
|
+
its(:camel_case) { should eq expected_value }
|
39
|
+
end
|
40
|
+
|
41
|
+
context "when given a snake_cased string" do
|
42
|
+
subject { "camel_cased" }
|
43
|
+
let(:expected_value) { "CamelCased" }
|
44
|
+
its(:camel_case) { should eq expected_value }
|
45
|
+
end
|
46
|
+
|
47
|
+
context "when given a partial camel_CasedString" do
|
48
|
+
subject { "camel_CasedString" }
|
49
|
+
let(:expected_value) { "CamelCasedstring" }
|
50
|
+
its(:camel_case) { should eq expected_value }
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: metro
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-10-
|
12
|
+
date: 2012-10-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: gosu
|
@@ -27,6 +27,22 @@ dependencies:
|
|
27
27
|
- - ~>
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0.7'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: thor
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 0.16.0
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 0.16.0
|
30
46
|
- !ruby/object:Gem::Dependency
|
31
47
|
name: sender
|
32
48
|
requirement: !ruby/object:Gem::Requirement
|
@@ -78,6 +94,12 @@ files:
|
|
78
94
|
- Rakefile
|
79
95
|
- bin/metro
|
80
96
|
- changelog.md
|
97
|
+
- lib/commands/generate_game.rb
|
98
|
+
- lib/commands/generate_model.rb
|
99
|
+
- lib/commands/generate_scene.rb
|
100
|
+
- lib/commands/generate_view.rb
|
101
|
+
- lib/commands/thor.rb
|
102
|
+
- lib/core_ext/string.rb
|
81
103
|
- lib/gosu_ext/color.rb
|
82
104
|
- lib/metro.rb
|
83
105
|
- lib/metro/animation/animation.rb
|
@@ -109,8 +131,21 @@ files:
|
|
109
131
|
- lib/metro/template_message.rb
|
110
132
|
- lib/metro/version.rb
|
111
133
|
- lib/metro/window.rb
|
134
|
+
- lib/templates/game/README.md.tt
|
135
|
+
- lib/templates/game/assets/brand.jpg
|
136
|
+
- lib/templates/game/metro.tt
|
137
|
+
- lib/templates/game/scenes/brand_scene.rb
|
138
|
+
- lib/templates/game/scenes/brand_to_title_scene.rb
|
139
|
+
- lib/templates/game/scenes/title_scene.rb
|
140
|
+
- lib/templates/game/views/brand.yaml
|
141
|
+
- lib/templates/game/views/brand_to_title.yaml
|
142
|
+
- lib/templates/game/views/title.yaml
|
112
143
|
- lib/templates/message.erb
|
144
|
+
- lib/templates/model.rb.erb
|
145
|
+
- lib/templates/scene.rb.erb
|
146
|
+
- lib/templates/view.yaml.erb
|
113
147
|
- metro.gemspec
|
148
|
+
- spec/core_ext/string_spec.rb
|
114
149
|
- spec/gosu_ext/color_spec.rb
|
115
150
|
- spec/spec_helper.rb
|
116
151
|
homepage: https://github.com/burtlo/metro
|
@@ -118,8 +153,8 @@ licenses: []
|
|
118
153
|
post_install_message: ! " ______ ___ _____\n ___ |/ /_____ __ /_______________\n
|
119
154
|
\ __ /|_/ / _ _ \\_ __/__ ___/_ __ \\\n _ / / / / __// /_ _ / /
|
120
155
|
/_/ /\n /_/ /_/ \\___/ \\__/ /_/ \\____/\n\n Thank you for installing
|
121
|
-
metro 0.1.
|
122
|
-
\ Changes:\n \n *
|
156
|
+
metro 0.1.2 / 2012-10-26.\n ---------------------------------------------------------------------\n
|
157
|
+
\ Changes:\n \n * Generators for games, scenes, models, and views\n \n\n ---------------------------------------------------------------------\n"
|
123
158
|
rdoc_options: []
|
124
159
|
require_paths:
|
125
160
|
- lib
|
@@ -144,6 +179,7 @@ summary: Metro is a 2D Gaming framework built around gosu (game development libr
|
|
144
179
|
Metro makes it easy to create games by enforcing common conceptual structures and
|
145
180
|
conventions.
|
146
181
|
test_files:
|
182
|
+
- spec/core_ext/string_spec.rb
|
147
183
|
- spec/gosu_ext/color_spec.rb
|
148
184
|
- spec/spec_helper.rb
|
149
185
|
has_rdoc:
|