cyberarm_engine 0.13.1 → 0.17.1

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 (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: []