cyberarm_engine 0.13.1 → 0.17.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (67) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +8 -0
  3. data/Gemfile +1 -1
  4. data/README.md +1 -1
  5. data/Rakefile +1 -1
  6. data/assets/textures/default.png +0 -0
  7. data/cyberarm_engine.gemspec +12 -9
  8. data/lib/cyberarm_engine.rb +20 -5
  9. data/lib/cyberarm_engine/animator.rb +6 -4
  10. data/lib/cyberarm_engine/background.rb +19 -15
  11. data/lib/cyberarm_engine/background_nine_slice.rb +125 -0
  12. data/lib/cyberarm_engine/bounding_box.rb +18 -18
  13. data/lib/cyberarm_engine/cache.rb +4 -0
  14. data/lib/cyberarm_engine/cache/download_manager.rb +121 -0
  15. data/lib/cyberarm_engine/common.rb +16 -16
  16. data/lib/cyberarm_engine/config_file.rb +2 -2
  17. data/lib/cyberarm_engine/game_object.rb +63 -72
  18. data/lib/cyberarm_engine/game_state.rb +6 -3
  19. data/lib/cyberarm_engine/model.rb +207 -0
  20. data/lib/cyberarm_engine/model/material.rb +21 -0
  21. data/lib/cyberarm_engine/model/model_object.rb +131 -0
  22. data/lib/cyberarm_engine/model/parser.rb +74 -0
  23. data/lib/cyberarm_engine/model/parsers/collada_parser.rb +138 -0
  24. data/lib/cyberarm_engine/model/parsers/wavefront_parser.rb +154 -0
  25. data/lib/cyberarm_engine/model_cache.rb +31 -0
  26. data/lib/cyberarm_engine/opengl.rb +28 -0
  27. data/lib/cyberarm_engine/opengl/light.rb +50 -0
  28. data/lib/cyberarm_engine/opengl/orthographic_camera.rb +46 -0
  29. data/lib/cyberarm_engine/opengl/perspective_camera.rb +38 -0
  30. data/lib/cyberarm_engine/opengl/renderer/bounding_box_renderer.rb +249 -0
  31. data/lib/cyberarm_engine/opengl/renderer/g_buffer.rb +164 -0
  32. data/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb +289 -0
  33. data/lib/cyberarm_engine/opengl/renderer/renderer.rb +22 -0
  34. data/lib/cyberarm_engine/{shader.rb → opengl/shader.rb} +51 -43
  35. data/lib/cyberarm_engine/opengl/texture.rb +69 -0
  36. data/lib/cyberarm_engine/ray.rb +5 -5
  37. data/lib/cyberarm_engine/stats.rb +21 -0
  38. data/lib/cyberarm_engine/text.rb +45 -31
  39. data/lib/cyberarm_engine/timer.rb +1 -1
  40. data/lib/cyberarm_engine/transform.rb +43 -20
  41. data/lib/cyberarm_engine/ui/border_canvas.rb +4 -3
  42. data/lib/cyberarm_engine/ui/dsl.rb +49 -10
  43. data/lib/cyberarm_engine/ui/element.rb +73 -21
  44. data/lib/cyberarm_engine/ui/elements/button.rb +121 -28
  45. data/lib/cyberarm_engine/ui/elements/check_box.rb +25 -33
  46. data/lib/cyberarm_engine/ui/elements/container.rb +113 -33
  47. data/lib/cyberarm_engine/ui/elements/edit_box.rb +179 -0
  48. data/lib/cyberarm_engine/ui/elements/edit_line.rb +145 -45
  49. data/lib/cyberarm_engine/ui/elements/flow.rb +1 -3
  50. data/lib/cyberarm_engine/ui/elements/image.rb +32 -12
  51. data/lib/cyberarm_engine/ui/elements/label.rb +122 -16
  52. data/lib/cyberarm_engine/ui/elements/list_box.rb +82 -0
  53. data/lib/cyberarm_engine/ui/elements/progress.rb +6 -5
  54. data/lib/cyberarm_engine/ui/elements/radio.rb +6 -0
  55. data/lib/cyberarm_engine/ui/elements/slider.rb +104 -0
  56. data/lib/cyberarm_engine/ui/elements/stack.rb +1 -3
  57. data/lib/cyberarm_engine/ui/elements/text_block.rb +156 -0
  58. data/lib/cyberarm_engine/ui/elements/toggle_button.rb +40 -31
  59. data/lib/cyberarm_engine/ui/event.rb +7 -7
  60. data/lib/cyberarm_engine/ui/gui_state.rb +118 -6
  61. data/lib/cyberarm_engine/ui/style.rb +10 -9
  62. data/lib/cyberarm_engine/ui/theme.rb +84 -22
  63. data/lib/cyberarm_engine/vector.rb +33 -30
  64. data/lib/cyberarm_engine/version.rb +2 -2
  65. data/lib/cyberarm_engine/{engine.rb → window.rb} +32 -19
  66. metadata +87 -18
  67. data/lib/cyberarm_engine/gosu_ext/circle.rb +0 -9
@@ -60,22 +60,15 @@ module CyberarmEngine
60
60
  Vector.new(0, 0, -1)
61
61
  end
62
62
 
63
+ attr_accessor :x, :y, :z, :weight
64
+
63
65
  def initialize(x = 0, y = 0, z = 0, weight = 0)
64
- @x, @y, @z, @weight = x, y, z, weight
66
+ @x = x
67
+ @y = y
68
+ @z = z
69
+ @weight = weight
65
70
  end
66
71
 
67
- def x; @x; end
68
- def x=(n); @x = n; end
69
-
70
- def y; @y; end
71
- def y=(n); @y = n; end
72
-
73
- def z; @z; end
74
- def z=(n); @z = n; end
75
-
76
- def weight; @weight; end
77
- def weight=(n); @weight = n; end
78
-
79
72
  alias w weight
80
73
  alias w= weight=
81
74
 
@@ -83,14 +76,14 @@ module CyberarmEngine
83
76
  def ==(other)
84
77
  if other.is_a?(Numeric)
85
78
  @x == other &&
86
- @y == other &&
87
- @z == other &&
88
- @weight == other
79
+ @y == other &&
80
+ @z == other &&
81
+ @weight == other
89
82
  elsif other.is_a?(Vector)
90
83
  @x == other.x &&
91
- @y == other.y &&
92
- @z == other.z &&
93
- @weight == other.weight
84
+ @y == other.y &&
85
+ @z == other.z &&
86
+ @weight == other.weight
94
87
  else
95
88
  other == self
96
89
  end
@@ -137,6 +130,17 @@ module CyberarmEngine
137
130
  operator("*", other)
138
131
  end
139
132
 
133
+ def multiply_transform(transform)
134
+ e = transform.elements
135
+
136
+ x = @x * e[0] + @y * e[1] + @z * e[2] + 1 * e[3]
137
+ y = @x * e[4] + @y * e[5] + @z * e[6] + 1 * e[7]
138
+ z = @x * e[8] + @y * e[9] + @z * e[10] + 1 * e[11]
139
+ w = @x * e[12] + @y * e[13] + @z * e[14] + 1 * e[15]
140
+
141
+ Vector.new(x / 1, y / 1, z / 1, w / 1)
142
+ end
143
+
140
144
  # Divides Vector and Numeric or Vector and Vector, excluding {weight}
141
145
  # @return [CyberarmEngine::Vector]
142
146
  def /(other)
@@ -161,20 +165,20 @@ module CyberarmEngine
161
165
  def dot(other)
162
166
  product = 0
163
167
 
164
- a = self.to_a
168
+ a = to_a
165
169
  b = other.to_a
166
170
 
167
171
  3.times do |i|
168
- product = product + (a[i] * b[i])
172
+ product += (a[i] * b[i])
169
173
  end
170
174
 
171
- return product
175
+ product
172
176
  end
173
177
 
174
178
  # cross product of {Vector}
175
179
  # @return [CyberarmEngine::Vector]
176
180
  def cross(other)
177
- a = self.to_a
181
+ a = to_a
178
182
  b = other.to_a
179
183
 
180
184
  Vector.new(
@@ -187,7 +191,7 @@ module CyberarmEngine
187
191
  # returns degrees
188
192
  # @return [Float]
189
193
  def angle(other)
190
- Math.acos( self.normalized.dot(other.normalized) ) * 180 / Math::PI
194
+ Math.acos(normalized.dot(other.normalized)) * 180 / Math::PI
191
195
  end
192
196
 
193
197
  # returns magnitude of Vector, ignoring #weight
@@ -209,7 +213,6 @@ module CyberarmEngine
209
213
  self / Vector.new(mag, mag, mag)
210
214
  end
211
215
 
212
-
213
216
  # returns a direction {Vector}
214
217
  #
215
218
  # z is pitch
@@ -254,19 +257,19 @@ module CyberarmEngine
254
257
  # 2D distance using X and Y
255
258
  # @return [Float]
256
259
  def distance(other)
257
- Math.sqrt((@x-other.x)**2 + (@y-other.y)**2)
260
+ Math.sqrt((@x - other.x)**2 + (@y - other.y)**2)
258
261
  end
259
262
 
260
263
  # 2D distance using X and Z
261
264
  # @return [Float]
262
265
  def gl_distance2d(other)
263
- Math.sqrt((@x-other.x)**2 + (@z-other.z)**2)
266
+ Math.sqrt((@x - other.x)**2 + (@z - other.z)**2)
264
267
  end
265
268
 
266
269
  # 3D distance using X, Y, and Z
267
270
  # @return [Float]
268
271
  def distance3d(other)
269
- Math.sqrt((@x-other.x)**2 + (@y-other.y)**2 + (@z-other.z)**2)
272
+ Math.sqrt((@x - other.x)**2 + (@y - other.y)**2 + (@z - other.z)**2)
270
273
  end
271
274
 
272
275
  # Converts {Vector} to Array
@@ -284,7 +287,7 @@ module CyberarmEngine
284
287
  # Converts {Vector} to Hash
285
288
  # @return [Hash]
286
289
  def to_h
287
- {x: @x, y: @y, z: @z, weight: @weight}
290
+ { x: @x, y: @y, z: @z, weight: @weight }
288
291
  end
289
292
  end
290
- end
293
+ end
@@ -1,4 +1,4 @@
1
1
  module CyberarmEngine
2
- NAME = "InDev"
3
- VERSION = "0.13.1"
2
+ NAME = "InDev".freeze
3
+ VERSION = "0.17.1".freeze
4
4
  end
@@ -1,10 +1,13 @@
1
1
  module CyberarmEngine
2
- class Engine < Gosu::Window
2
+ class Window < Gosu::Window
3
+ include Common
4
+
3
5
  IMAGES = {}
4
- SAMPLES= {}
5
- SONGS = {}
6
+ SAMPLES = {}
7
+ SONGS = {}
6
8
 
7
9
  attr_accessor :show_cursor
10
+ attr_writer :exit_on_opengl_error
8
11
  attr_reader :last_frame_time
9
12
 
10
13
  def self.now
@@ -12,19 +15,20 @@ module CyberarmEngine
12
15
  end
13
16
 
14
17
  def self.dt
15
- $window.last_frame_time/1000.0
18
+ $window.last_frame_time / 1000.0
16
19
  end
17
20
 
18
- def initialize(width: 800, height: 600, fullscreen: false, update_interval: 1000.0/60, resizable: false)
21
+ def initialize(width: 800, height: 600, fullscreen: false, update_interval: 1000.0 / 60, resizable: false, borderless: false)
19
22
  @show_cursor = false
20
23
 
21
- super(width, height, fullscreen: fullscreen, update_interval: update_interval, resizable: resizable)
24
+ super(width, height, fullscreen: fullscreen, update_interval: update_interval, resizable: resizable, borderless: borderless)
22
25
  $window = self
23
- @last_frame_time = Gosu.milliseconds-1
26
+ @last_frame_time = Gosu.milliseconds - 1
24
27
  @current_frame_time = Gosu.milliseconds
25
28
  self.caption = "CyberarmEngine #{CyberarmEngine::VERSION} #{Gosu.language}"
26
29
 
27
30
  @states = []
31
+ @exit_on_opengl_error = false
28
32
 
29
33
  setup if defined?(setup)
30
34
  end
@@ -34,8 +38,10 @@ module CyberarmEngine
34
38
  end
35
39
 
36
40
  def update
41
+ Stats.clear
42
+
37
43
  current_state.update if current_state
38
- @last_frame_time = Gosu.milliseconds-@current_frame_time
44
+ @last_frame_time = Gosu.milliseconds - @current_frame_time
39
45
  @current_frame_time = Gosu.milliseconds
40
46
  end
41
47
 
@@ -44,7 +50,15 @@ module CyberarmEngine
44
50
  end
45
51
 
46
52
  def dt
47
- @last_frame_time/1000.0
53
+ @last_frame_time / 1000.0
54
+ end
55
+
56
+ def aspect_ratio
57
+ width / height.to_f
58
+ end
59
+
60
+ def exit_on_opengl_error?
61
+ @exit_on_opengl_error
48
62
  end
49
63
 
50
64
  def button_down(id)
@@ -57,8 +71,8 @@ module CyberarmEngine
57
71
  current_state.button_up(id) if current_state
58
72
  end
59
73
 
60
- def push_state(klass, options={})
61
- options = {setup: true}.merge(options)
74
+ def push_state(klass, options = {})
75
+ options = { setup: true }.merge(options)
62
76
 
63
77
  if klass.instance_of?(klass.class) && defined?(klass.options)
64
78
  @states << klass
@@ -66,12 +80,12 @@ module CyberarmEngine
66
80
  else
67
81
  @states << klass.new(options) if child_of?(klass, GameState)
68
82
  @states << klass.new if child_of?(klass, Element::Container)
69
- current_state.setup if current_state.class == klass && options[:setup]
83
+ current_state.setup if current_state.instance_of?(klass) && options[:setup]
70
84
  end
71
85
  end
72
86
 
73
87
  private def child_of?(input, klass)
74
- input.ancestors.detect {|c| c == klass}
88
+ input.ancestors.detect { |c| c == klass }
75
89
  end
76
90
 
77
91
  def current_state
@@ -79,10 +93,8 @@ module CyberarmEngine
79
93
  end
80
94
 
81
95
  def previous_state
82
- if @states.size > 1 && state = @states[@states.size-2]
83
- return state
84
- else
85
- return nil
96
+ if @states.size > 1 && state = @states[@states.size - 2]
97
+ state
86
98
  end
87
99
  end
88
100
 
@@ -91,10 +103,11 @@ module CyberarmEngine
91
103
  end
92
104
 
93
105
  # Sourced from https://gist.github.com/ippa/662583
94
- def draw_circle(cx,cy,r, z = 9999,color = Gosu::Color::GREEN, step = 10)
106
+ def draw_circle(cx, cy, r, z = 9999, color = Gosu::Color::GREEN, step = 10)
95
107
  0.step(360, step) do |a1|
96
108
  a2 = a1 + step
97
- draw_line(cx + Gosu.offset_x(a1, r), cy + Gosu.offset_y(a1, r), color, cx + Gosu.offset_x(a2, r), cy + Gosu.offset_y(a2, r), color, z)
109
+ draw_line(cx + Gosu.offset_x(a1, r), cy + Gosu.offset_y(a1, r), color, cx + Gosu.offset_x(a2, r),
110
+ cy + Gosu.offset_y(a2, r), color, z)
98
111
  end
99
112
  end
100
113
  end
metadata CHANGED
@@ -1,57 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cyberarm_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.1
4
+ version: 0.17.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyberarm
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-03-24 00:00:00.000000000 Z
11
+ date: 2021-02-11 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: clipboard
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 1.3.5
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 1.3.5
27
+ - !ruby/object:Gem::Dependency
28
+ name: excon
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 0.78.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 0.78.0
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: gosu
15
43
  requirement: !ruby/object:Gem::Requirement
16
44
  requirements:
17
45
  - - "~>"
18
46
  - !ruby/object:Gem::Version
19
- version: 0.15.0
47
+ version: '1.1'
20
48
  type: :runtime
21
49
  prerelease: false
22
50
  version_requirements: !ruby/object:Gem::Requirement
23
51
  requirements:
24
52
  - - "~>"
25
53
  - !ruby/object:Gem::Version
26
- version: 0.15.0
54
+ version: '1.1'
27
55
  - !ruby/object:Gem::Dependency
28
- name: bundler
56
+ name: gosu_more_drawables
29
57
  requirement: !ruby/object:Gem::Requirement
30
58
  requirements:
31
59
  - - "~>"
32
60
  - !ruby/object:Gem::Version
33
- version: '1.16'
34
- type: :development
61
+ version: '0.3'
62
+ type: :runtime
35
63
  prerelease: false
36
64
  version_requirements: !ruby/object:Gem::Requirement
37
65
  requirements:
38
66
  - - "~>"
39
67
  - !ruby/object:Gem::Version
40
- version: '1.16'
68
+ version: '0.3'
41
69
  - !ruby/object:Gem::Dependency
42
- name: rake
70
+ name: bundler
43
71
  requirement: !ruby/object:Gem::Requirement
44
72
  requirements:
45
73
  - - "~>"
46
74
  - !ruby/object:Gem::Version
47
- version: '10.0'
75
+ version: '2.2'
48
76
  type: :development
49
77
  prerelease: false
50
78
  version_requirements: !ruby/object:Gem::Requirement
51
79
  requirements:
52
80
  - - "~>"
53
81
  - !ruby/object:Gem::Version
54
- version: '10.0'
82
+ version: '2.2'
55
83
  - !ruby/object:Gem::Dependency
56
84
  name: minitest
57
85
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +94,20 @@ dependencies:
66
94
  - - "~>"
67
95
  - !ruby/object:Gem::Version
68
96
  version: '5.0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: rake
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '13.0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: '13.0'
69
111
  description: Yet another game making framework around gosu
70
112
  email:
71
113
  - matthewlikesrobots@gmail.com
@@ -74,26 +116,46 @@ extensions: []
74
116
  extra_rdoc_files: []
75
117
  files:
76
118
  - ".gitignore"
119
+ - ".rubocop.yml"
77
120
  - ".travis.yml"
78
121
  - Gemfile
79
122
  - LICENSE.txt
80
123
  - README.md
81
124
  - Rakefile
125
+ - assets/textures/default.png
82
126
  - bin/console
83
127
  - bin/setup
84
128
  - cyberarm_engine.gemspec
85
129
  - lib/cyberarm_engine.rb
86
130
  - lib/cyberarm_engine/animator.rb
87
131
  - lib/cyberarm_engine/background.rb
132
+ - lib/cyberarm_engine/background_nine_slice.rb
88
133
  - lib/cyberarm_engine/bounding_box.rb
134
+ - lib/cyberarm_engine/cache.rb
135
+ - lib/cyberarm_engine/cache/download_manager.rb
89
136
  - lib/cyberarm_engine/common.rb
90
137
  - lib/cyberarm_engine/config_file.rb
91
- - lib/cyberarm_engine/engine.rb
92
138
  - lib/cyberarm_engine/game_object.rb
93
139
  - lib/cyberarm_engine/game_state.rb
94
- - lib/cyberarm_engine/gosu_ext/circle.rb
140
+ - lib/cyberarm_engine/model.rb
141
+ - lib/cyberarm_engine/model/material.rb
142
+ - lib/cyberarm_engine/model/model_object.rb
143
+ - lib/cyberarm_engine/model/parser.rb
144
+ - lib/cyberarm_engine/model/parsers/collada_parser.rb
145
+ - lib/cyberarm_engine/model/parsers/wavefront_parser.rb
146
+ - lib/cyberarm_engine/model_cache.rb
147
+ - lib/cyberarm_engine/opengl.rb
148
+ - lib/cyberarm_engine/opengl/light.rb
149
+ - lib/cyberarm_engine/opengl/orthographic_camera.rb
150
+ - lib/cyberarm_engine/opengl/perspective_camera.rb
151
+ - lib/cyberarm_engine/opengl/renderer/bounding_box_renderer.rb
152
+ - lib/cyberarm_engine/opengl/renderer/g_buffer.rb
153
+ - lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb
154
+ - lib/cyberarm_engine/opengl/renderer/renderer.rb
155
+ - lib/cyberarm_engine/opengl/shader.rb
156
+ - lib/cyberarm_engine/opengl/texture.rb
95
157
  - lib/cyberarm_engine/ray.rb
96
- - lib/cyberarm_engine/shader.rb
158
+ - lib/cyberarm_engine/stats.rb
97
159
  - lib/cyberarm_engine/text.rb
98
160
  - lib/cyberarm_engine/timer.rb
99
161
  - lib/cyberarm_engine/transform.rb
@@ -103,12 +165,17 @@ files:
103
165
  - lib/cyberarm_engine/ui/elements/button.rb
104
166
  - lib/cyberarm_engine/ui/elements/check_box.rb
105
167
  - lib/cyberarm_engine/ui/elements/container.rb
168
+ - lib/cyberarm_engine/ui/elements/edit_box.rb
106
169
  - lib/cyberarm_engine/ui/elements/edit_line.rb
107
170
  - lib/cyberarm_engine/ui/elements/flow.rb
108
171
  - lib/cyberarm_engine/ui/elements/image.rb
109
172
  - lib/cyberarm_engine/ui/elements/label.rb
173
+ - lib/cyberarm_engine/ui/elements/list_box.rb
110
174
  - lib/cyberarm_engine/ui/elements/progress.rb
175
+ - lib/cyberarm_engine/ui/elements/radio.rb
176
+ - lib/cyberarm_engine/ui/elements/slider.rb
111
177
  - lib/cyberarm_engine/ui/elements/stack.rb
178
+ - lib/cyberarm_engine/ui/elements/text_block.rb
112
179
  - lib/cyberarm_engine/ui/elements/toggle_button.rb
113
180
  - lib/cyberarm_engine/ui/event.rb
114
181
  - lib/cyberarm_engine/ui/gui_state.rb
@@ -116,15 +183,17 @@ files:
116
183
  - lib/cyberarm_engine/ui/theme.rb
117
184
  - lib/cyberarm_engine/vector.rb
118
185
  - lib/cyberarm_engine/version.rb
186
+ - lib/cyberarm_engine/window.rb
119
187
  homepage: https://github.com/cyberarm/cyberarm_engine
120
188
  licenses:
121
189
  - MIT
122
190
  metadata:
123
191
  allowed_push_host: https://rubygems.org
124
- post_install_message:
192
+ post_install_message:
125
193
  rdoc_options: []
126
194
  require_paths:
127
195
  - lib
196
+ - assets
128
197
  required_ruby_version: !ruby/object:Gem::Requirement
129
198
  requirements:
130
199
  - - ">="
@@ -136,8 +205,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
136
205
  - !ruby/object:Gem::Version
137
206
  version: '0'
138
207
  requirements: []
139
- rubygems_version: 3.1.2
140
- signing_key:
208
+ rubygems_version: 3.2.3
209
+ signing_key:
141
210
  specification_version: 4
142
211
  summary: Make games quickly and easily with gosu
143
212
  test_files: []