gamebox 0.0.3 → 0.0.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.
- data/History.txt +5 -0
- data/Rakefile +2 -2
- data/lib/gamebox/input_manager.rb +17 -0
- metadata +2 -2
data/History.txt
CHANGED
@@ -26,3 +26,8 @@
|
|
26
26
|
|
27
27
|
* Bug fix release for RubyWeekend #3
|
28
28
|
* updatable behavior was not in the manifest
|
29
|
+
|
30
|
+
=== 0.0.4 / 2009-06-27
|
31
|
+
|
32
|
+
* Bug fix release for RubyWeekend #3
|
33
|
+
* added registering for events with input_manager that have no ids (ie i.reg KeyDownEvent do |e| ... will get all keys pressed)
|
data/Rakefile
CHANGED
@@ -3,7 +3,7 @@ gem 'hoe', '>= 2.3.0'
|
|
3
3
|
require 'hoe'
|
4
4
|
|
5
5
|
module Gamebox
|
6
|
-
VERSION = '0.0.
|
6
|
+
VERSION = '0.0.4'
|
7
7
|
end
|
8
8
|
Hoe.new 'gamebox' do |spec|
|
9
9
|
spec.developer('Shawn Anderson', 'shawn42@gmail.com')
|
@@ -13,7 +13,7 @@ Hoe.new 'gamebox' do |spec|
|
|
13
13
|
spec.summary = "Framework for building and distributing games using Rubygame"
|
14
14
|
spec.url = "http://shawn42.github.com/gamebox"
|
15
15
|
spec.version = Gamebox::VERSION
|
16
|
-
spec.changes = spec.paragraphs_of('History.txt',
|
16
|
+
spec.changes = spec.paragraphs_of('History.txt', 6..7).join("\n\n")
|
17
17
|
spec.extra_deps << ['constructor']
|
18
18
|
spec.extra_deps << ['publisher']
|
19
19
|
spec.extra_deps << ['bacon']
|
@@ -32,6 +32,7 @@ class InputManager
|
|
32
32
|
end
|
33
33
|
|
34
34
|
@hooks = {}
|
35
|
+
@non_id_hooks = {}
|
35
36
|
end
|
36
37
|
|
37
38
|
def framerate=(frame_rate)
|
@@ -71,6 +72,13 @@ class InputManager
|
|
71
72
|
end
|
72
73
|
end
|
73
74
|
end
|
75
|
+
|
76
|
+
non_id_event_hooks = @non_id_hooks[event.class]
|
77
|
+
if non_id_event_hooks
|
78
|
+
for callback in non_id_event_hooks
|
79
|
+
callback.call event
|
80
|
+
end
|
81
|
+
end
|
74
82
|
end
|
75
83
|
|
76
84
|
game.update @clock.tick
|
@@ -85,6 +93,10 @@ class InputManager
|
|
85
93
|
@hooks[event_class][event_id] ||= []
|
86
94
|
@hooks[event_class][event_id] << block
|
87
95
|
end
|
96
|
+
@non_id_hooks[event_class] ||= []
|
97
|
+
if event_ids.empty?
|
98
|
+
@non_id_hooks[event_class] << block
|
99
|
+
end
|
88
100
|
listener = eval("self", block.binding)
|
89
101
|
listener.when :remove_me do
|
90
102
|
unregister_hook event_class, *event_ids, &block
|
@@ -98,10 +110,15 @@ class InputManager
|
|
98
110
|
@hooks[event_class][event_id] ||= []
|
99
111
|
@hooks[event_class][event_id].delete block if block_given?
|
100
112
|
end
|
113
|
+
if event_ids.empty?
|
114
|
+
@hooks[event_class] ||= []
|
115
|
+
@hooks[event_class].delete block if block_given?
|
116
|
+
end
|
101
117
|
end
|
102
118
|
alias unreg unregister_hook
|
103
119
|
|
104
120
|
def clear_hooks
|
105
121
|
@hooks = {}
|
122
|
+
@non_id_hooks = {}
|
106
123
|
end
|
107
124
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gamebox
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shawn Anderson
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-06-
|
12
|
+
date: 2009-06-27 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|