cyberarm_engine 0.24.5 → 0.25.0

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 (93) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +8 -8
  3. data/.rubocop.yml +7 -7
  4. data/.travis.yml +5 -5
  5. data/Gemfile +6 -6
  6. data/Gemfile.lock +25 -24
  7. data/LICENSE.txt +21 -21
  8. data/README.md +74 -74
  9. data/Rakefile +10 -10
  10. data/assets/shaders/fragment/g_buffer.glsl +30 -30
  11. data/assets/shaders/fragment/lighting.glsl +115 -115
  12. data/assets/shaders/include/light_struct.glsl +11 -11
  13. data/assets/shaders/include/material_struct.glsl +16 -16
  14. data/assets/shaders/vertex/g_buffer.glsl +28 -28
  15. data/assets/shaders/vertex/lighting.glsl +24 -24
  16. data/bin/console +14 -14
  17. data/bin/setup +8 -8
  18. data/cyberarm_engine.gemspec +36 -36
  19. data/lib/cyberarm_engine/animator.rb +219 -219
  20. data/lib/cyberarm_engine/background.rb +158 -180
  21. data/lib/cyberarm_engine/background_image.rb +93 -93
  22. data/lib/cyberarm_engine/background_nine_slice.rb +142 -142
  23. data/lib/cyberarm_engine/bounding_box.rb +150 -150
  24. data/lib/cyberarm_engine/builtin/intro_state.rb +130 -130
  25. data/lib/cyberarm_engine/cache/download_manager.rb +123 -123
  26. data/lib/cyberarm_engine/cache.rb +4 -4
  27. data/lib/cyberarm_engine/common.rb +131 -128
  28. data/lib/cyberarm_engine/config_file.rb +46 -46
  29. data/lib/cyberarm_engine/console/command.rb +157 -157
  30. data/lib/cyberarm_engine/console/commands/help_command.rb +43 -43
  31. data/lib/cyberarm_engine/console/subcommand.rb +99 -99
  32. data/lib/cyberarm_engine/console.rb +248 -248
  33. data/lib/cyberarm_engine/game_object.rb +244 -244
  34. data/lib/cyberarm_engine/game_state.rb +124 -124
  35. data/lib/cyberarm_engine/gosu_ext/draw_arc.rb +111 -98
  36. data/lib/cyberarm_engine/gosu_ext/draw_circle.rb +30 -30
  37. data/lib/cyberarm_engine/gosu_ext/draw_path.rb +17 -17
  38. data/lib/cyberarm_engine/model/material.rb +21 -21
  39. data/lib/cyberarm_engine/model/mesh.rb +131 -131
  40. data/lib/cyberarm_engine/model/parser.rb +74 -74
  41. data/lib/cyberarm_engine/model/parsers/collada_parser.rb +138 -138
  42. data/lib/cyberarm_engine/model/parsers/wavefront_parser.rb +154 -154
  43. data/lib/cyberarm_engine/model.rb +216 -216
  44. data/lib/cyberarm_engine/model_cache.rb +31 -31
  45. data/lib/cyberarm_engine/notification.rb +82 -82
  46. data/lib/cyberarm_engine/notification_manager.rb +241 -241
  47. data/lib/cyberarm_engine/opengl/light.rb +52 -52
  48. data/lib/cyberarm_engine/opengl/orthographic_camera.rb +46 -46
  49. data/lib/cyberarm_engine/opengl/perspective_camera.rb +41 -41
  50. data/lib/cyberarm_engine/opengl/renderer/bounding_box_renderer.rb +249 -249
  51. data/lib/cyberarm_engine/opengl/renderer/g_buffer.rb +167 -167
  52. data/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb +307 -307
  53. data/lib/cyberarm_engine/opengl/renderer/renderer.rb +33 -33
  54. data/lib/cyberarm_engine/opengl/shader.rb +408 -408
  55. data/lib/cyberarm_engine/opengl/texture.rb +69 -69
  56. data/lib/cyberarm_engine/opengl.rb +53 -53
  57. data/lib/cyberarm_engine/ray.rb +56 -56
  58. data/lib/cyberarm_engine/stats.rb +200 -200
  59. data/lib/cyberarm_engine/text.rb +260 -260
  60. data/lib/cyberarm_engine/timer.rb +23 -23
  61. data/lib/cyberarm_engine/transform.rb +296 -296
  62. data/lib/cyberarm_engine/trees/aabb_node.rb +126 -126
  63. data/lib/cyberarm_engine/trees/aabb_tree.rb +55 -55
  64. data/lib/cyberarm_engine/trees/aabb_tree_debug.rb +29 -29
  65. data/lib/cyberarm_engine/ui/border_canvas.rb +102 -102
  66. data/lib/cyberarm_engine/ui/dsl.rb +142 -142
  67. data/lib/cyberarm_engine/ui/element.rb +662 -662
  68. data/lib/cyberarm_engine/ui/elements/button.rb +100 -100
  69. data/lib/cyberarm_engine/ui/elements/check_box.rb +54 -54
  70. data/lib/cyberarm_engine/ui/elements/container.rb +407 -404
  71. data/lib/cyberarm_engine/ui/elements/edit_box.rb +179 -179
  72. data/lib/cyberarm_engine/ui/elements/edit_line.rb +297 -297
  73. data/lib/cyberarm_engine/ui/elements/flow.rb +15 -15
  74. data/lib/cyberarm_engine/ui/elements/image.rb +72 -72
  75. data/lib/cyberarm_engine/ui/elements/list_box.rb +79 -79
  76. data/lib/cyberarm_engine/ui/elements/menu.rb +27 -27
  77. data/lib/cyberarm_engine/ui/elements/menu_item.rb +6 -6
  78. data/lib/cyberarm_engine/ui/elements/progress.rb +93 -93
  79. data/lib/cyberarm_engine/ui/elements/radio.rb +6 -6
  80. data/lib/cyberarm_engine/ui/elements/slider.rb +107 -107
  81. data/lib/cyberarm_engine/ui/elements/stack.rb +11 -11
  82. data/lib/cyberarm_engine/ui/elements/text_block.rb +222 -216
  83. data/lib/cyberarm_engine/ui/elements/toggle_button.rb +67 -67
  84. data/lib/cyberarm_engine/ui/event.rb +54 -54
  85. data/lib/cyberarm_engine/ui/gui_state.rb +326 -321
  86. data/lib/cyberarm_engine/ui/style.rb +61 -50
  87. data/lib/cyberarm_engine/ui/theme.rb +225 -225
  88. data/lib/cyberarm_engine/vector.rb +312 -312
  89. data/lib/cyberarm_engine/version.rb +4 -4
  90. data/lib/cyberarm_engine/window.rb +195 -195
  91. data/lib/cyberarm_engine.rb +76 -70
  92. data/mrbgem.rake +29 -29
  93. metadata +3 -3
@@ -1,195 +1,195 @@
1
- module CyberarmEngine
2
- class Window < Gosu::Window
3
- include Common
4
-
5
- IMAGES = {}
6
- SAMPLES = {}
7
- SONGS = {}
8
-
9
- attr_accessor :show_cursor, :show_stats_plotter
10
- attr_writer :exit_on_opengl_error
11
- attr_reader :last_frame_time, :delta_time, :states
12
-
13
- def self.now
14
- Gosu.milliseconds
15
- end
16
-
17
- def self.dt
18
- instance.dt
19
- end
20
-
21
- def self.instance=(window)
22
- raise ArgumentError, "Expected window to be a subclass of CyberarmEngine::Window, got: #{window.class}" unless window.is_a?(CyberarmEngine::Window)
23
-
24
- @@instance = window
25
- end
26
-
27
- def self.instance
28
- @@instance
29
- end
30
-
31
- def initialize(width: 800, height: 600, fullscreen: false, update_interval: 1000.0 / 60, resizable: false, borderless: false)
32
- @show_cursor = false
33
- @has_focus = false
34
- @show_stats_plotter = false
35
-
36
- super(width, height, fullscreen: fullscreen, update_interval: update_interval, resizable: resizable, borderless: borderless)
37
- Window.instance = self
38
-
39
- @last_frame_time = Gosu.milliseconds - 1
40
- @current_frame_time = Gosu.milliseconds
41
- @delta_time = @last_frame_time
42
- self.caption = "CyberarmEngine #{CyberarmEngine::VERSION} #{Gosu.user_languages.join(', ')}"
43
-
44
- @states = []
45
- @exit_on_opengl_error = false
46
- preload_default_shaders if respond_to?(:preload_default_shaders)
47
- @stats_plotter = Stats::StatsPlotter.new(2, 28) # FIXME: Make positioning easy
48
-
49
- setup
50
- end
51
-
52
- def setup
53
- end
54
-
55
- def draw
56
- Stats.frame.start_timing(:draw)
57
-
58
- current_state&.draw
59
- Stats.frame.start_timing(:engine_stats_renderer)
60
- @stats_plotter&.draw if @show_stats_plotter
61
- Stats.frame.end_timing(:engine_stats_renderer)
62
-
63
- Stats.frame.end_timing(:draw)
64
- Stats.frame.start_timing(:interframe_sleep)
65
- end
66
-
67
- def update
68
- # Gosu calls update() then (optionally) draw(),
69
- # so always end last frame and start next frame when update() is called.
70
- Stats.frame&.end_timing(:interframe_sleep)
71
- Stats.end_frame
72
-
73
- Stats.new_frame
74
-
75
- @delta_time = (Gosu.milliseconds - @current_frame_time) * 0.001
76
-
77
- @last_frame_time = Gosu.milliseconds - @current_frame_time
78
- @current_frame_time = Gosu.milliseconds
79
-
80
- Stats.frame.start_timing(:update)
81
- current_state&.update
82
- Stats.frame.end_timing(:update)
83
-
84
- Stats.frame.start_timing(:interframe_sleep) unless needs_redraw?
85
- end
86
-
87
- def needs_cursor?
88
- @show_cursor
89
- end
90
-
91
- def needs_redraw?
92
- current_state ? current_state.needs_redraw? : true
93
- end
94
-
95
- def drop(filename)
96
- current_state&.drop(filename)
97
- end
98
-
99
- def gamepad_connected(index)
100
- current_state&.gamepad_connected(index)
101
- end
102
-
103
- def gamepad_disconnected(index)
104
- current_state&.gamepad_disconnected(index)
105
- end
106
-
107
- def gain_focus
108
- @has_focus = true
109
-
110
- current_state&.gain_focus
111
- end
112
-
113
- def lose_focus
114
- @has_focus = false
115
-
116
- current_state&.lose_focus
117
- end
118
-
119
- def button_down(id)
120
- super
121
- current_state&.button_down(id)
122
- end
123
-
124
- def button_up(id)
125
- super
126
- current_state&.button_up(id)
127
- end
128
-
129
- def close
130
- current_state ? current_state.close : super
131
- end
132
-
133
- def dt
134
- @last_frame_time / 1000.0
135
- end
136
-
137
- def aspect_ratio
138
- width / height.to_f
139
- end
140
-
141
- def exit_on_opengl_error?
142
- @exit_on_opengl_error
143
- end
144
-
145
- def push_state(klass, options = {})
146
- options = { setup: true }.merge(options)
147
-
148
- if klass.instance_of?(klass.class) && klass.respond_to?(:options)
149
- @states << klass
150
- klass.setup if options[:setup]
151
- klass.post_setup if options[:setup]
152
- else
153
- @states << klass.new(options) if child_of?(klass, GameState)
154
- @states << klass.new if child_of?(klass, Element::Container)
155
- current_state.setup if current_state.instance_of?(klass) && options[:setup]
156
- current_state.post_setup if current_state.instance_of?(klass) && options[:setup]
157
- end
158
- end
159
-
160
- private def child_of?(input, klass)
161
- return false unless input
162
-
163
- input.ancestors.detect { |c| c == klass }
164
- end
165
-
166
- def current_state
167
- @states.last
168
- end
169
-
170
- def pop_state
171
- @states.pop
172
-
173
- current_state.request_repaint if current_state&.is_a?(GuiState)
174
- end
175
-
176
- def shift_state
177
- @states.shift
178
-
179
- current_state.request_repaint if current_state&.is_a?(GuiState)
180
- end
181
-
182
- def has_focus?
183
- @has_focus
184
- end
185
-
186
- # Sourced from https://gist.github.com/ippa/662583
187
- def draw_circle(cx, cy, r, z = 9999, color = Gosu::Color::GREEN, step = 10)
188
- 0.step(360, step) do |a1|
189
- a2 = a1 + step
190
- draw_line(cx + Gosu.offset_x(a1, r), cy + Gosu.offset_y(a1, r), color, cx + Gosu.offset_x(a2, r),
191
- cy + Gosu.offset_y(a2, r), color, z)
192
- end
193
- end
194
- end
195
- end
1
+ module CyberarmEngine
2
+ class Window < Gosu::Window
3
+ include Common
4
+
5
+ IMAGES = {}
6
+ SAMPLES = {}
7
+ SONGS = {}
8
+
9
+ attr_accessor :show_cursor, :show_stats_plotter
10
+ attr_writer :exit_on_opengl_error
11
+ attr_reader :last_frame_time, :delta_time, :states
12
+
13
+ def self.now
14
+ Gosu.milliseconds
15
+ end
16
+
17
+ def self.dt
18
+ instance.dt
19
+ end
20
+
21
+ def self.instance=(window)
22
+ raise ArgumentError, "Expected window to be a subclass of CyberarmEngine::Window, got: #{window.class}" unless window.is_a?(CyberarmEngine::Window)
23
+
24
+ @@instance = window
25
+ end
26
+
27
+ def self.instance
28
+ @@instance
29
+ end
30
+
31
+ def initialize(width: 800, height: 600, fullscreen: false, update_interval: 1000.0 / 60, resizable: false, borderless: false)
32
+ @show_cursor = false
33
+ @has_focus = false
34
+ @show_stats_plotter = false
35
+
36
+ super(width, height, fullscreen: fullscreen, update_interval: update_interval, resizable: resizable, borderless: borderless)
37
+ Window.instance = self
38
+
39
+ @last_frame_time = Gosu.milliseconds - 1
40
+ @current_frame_time = Gosu.milliseconds
41
+ @delta_time = @last_frame_time
42
+ self.caption = "CyberarmEngine #{CyberarmEngine::VERSION} #{Gosu.user_languages.join(', ')}"
43
+
44
+ @states = []
45
+ @exit_on_opengl_error = false
46
+ preload_default_shaders if respond_to?(:preload_default_shaders)
47
+ @stats_plotter = Stats::StatsPlotter.new(2, 28) # FIXME: Make positioning easy
48
+
49
+ setup
50
+ end
51
+
52
+ def setup
53
+ end
54
+
55
+ def draw
56
+ Stats.frame.start_timing(:draw)
57
+
58
+ current_state&.draw
59
+ Stats.frame.start_timing(:engine_stats_renderer)
60
+ @stats_plotter&.draw if @show_stats_plotter
61
+ Stats.frame.end_timing(:engine_stats_renderer)
62
+
63
+ Stats.frame.end_timing(:draw)
64
+ Stats.frame.start_timing(:interframe_sleep)
65
+ end
66
+
67
+ def update
68
+ # Gosu calls update() then (optionally) draw(),
69
+ # so always end last frame and start next frame when update() is called.
70
+ Stats.frame&.end_timing(:interframe_sleep)
71
+ Stats.end_frame
72
+
73
+ Stats.new_frame
74
+
75
+ @delta_time = (Gosu.milliseconds - @current_frame_time) * 0.001
76
+
77
+ @last_frame_time = Gosu.milliseconds - @current_frame_time
78
+ @current_frame_time = Gosu.milliseconds
79
+
80
+ Stats.frame.start_timing(:update)
81
+ current_state&.update
82
+ Stats.frame.end_timing(:update)
83
+
84
+ Stats.frame.start_timing(:interframe_sleep) unless needs_redraw?
85
+ end
86
+
87
+ def needs_cursor?
88
+ @show_cursor
89
+ end
90
+
91
+ def needs_redraw?
92
+ current_state ? current_state.needs_redraw? : true
93
+ end
94
+
95
+ def drop(filename)
96
+ current_state&.drop(filename)
97
+ end
98
+
99
+ def gamepad_connected(index)
100
+ current_state&.gamepad_connected(index)
101
+ end
102
+
103
+ def gamepad_disconnected(index)
104
+ current_state&.gamepad_disconnected(index)
105
+ end
106
+
107
+ def gain_focus
108
+ @has_focus = true
109
+
110
+ current_state&.gain_focus
111
+ end
112
+
113
+ def lose_focus
114
+ @has_focus = false
115
+
116
+ current_state&.lose_focus
117
+ end
118
+
119
+ def button_down(id)
120
+ super
121
+ current_state&.button_down(id)
122
+ end
123
+
124
+ def button_up(id)
125
+ super
126
+ current_state&.button_up(id)
127
+ end
128
+
129
+ def close
130
+ current_state ? current_state.close : super
131
+ end
132
+
133
+ def dt
134
+ @last_frame_time / 1000.0
135
+ end
136
+
137
+ def aspect_ratio
138
+ width / height.to_f
139
+ end
140
+
141
+ def exit_on_opengl_error?
142
+ @exit_on_opengl_error
143
+ end
144
+
145
+ def push_state(klass, options = {})
146
+ options = { setup: true }.merge(options)
147
+
148
+ if klass.instance_of?(klass.class) && klass.respond_to?(:options)
149
+ @states << klass
150
+ klass.setup if options[:setup]
151
+ klass.post_setup if options[:setup]
152
+ else
153
+ @states << klass.new(options) if child_of?(klass, GameState)
154
+ @states << klass.new if child_of?(klass, Element::Container)
155
+ current_state.setup if current_state.instance_of?(klass) && options[:setup]
156
+ current_state.post_setup if current_state.instance_of?(klass) && options[:setup]
157
+ end
158
+ end
159
+
160
+ private def child_of?(input, klass)
161
+ return false unless input
162
+
163
+ input.ancestors.detect { |c| c == klass }
164
+ end
165
+
166
+ def current_state
167
+ @states.last
168
+ end
169
+
170
+ def pop_state
171
+ @states.pop
172
+
173
+ current_state.request_repaint if current_state&.is_a?(GuiState)
174
+ end
175
+
176
+ def shift_state
177
+ @states.shift
178
+
179
+ current_state.request_repaint if current_state&.is_a?(GuiState)
180
+ end
181
+
182
+ def has_focus?
183
+ @has_focus
184
+ end
185
+
186
+ # Sourced from https://gist.github.com/ippa/662583
187
+ def draw_circle(cx, cy, r, z = 9999, color = Gosu::Color::GREEN, step = 10)
188
+ 0.step(360, step) do |a1|
189
+ a2 = a1 + step
190
+ draw_line(cx + Gosu.offset_x(a1, r), cy + Gosu.offset_y(a1, r), color, cx + Gosu.offset_x(a2, r),
191
+ cy + Gosu.offset_y(a2, r), color, z)
192
+ end
193
+ end
194
+ end
195
+ end
@@ -1,70 +1,76 @@
1
- CYBERARM_ENGINE_ROOT_PATH = File.expand_path("..", __dir__)
2
-
3
- if ARGV.join.include?("--ffi-gosu")
4
- require File.expand_path("../../ffi-gosu/lib/gosu", __dir__)
5
- else
6
- require "gosu"
7
- end
8
- require "json"
9
-
10
- require_relative "cyberarm_engine/version"
11
- require_relative "cyberarm_engine/stats"
12
-
13
- require_relative "cyberarm_engine/common"
14
-
15
- require_relative "cyberarm_engine/gosu_ext/draw_arc"
16
- require_relative "cyberarm_engine/gosu_ext/draw_circle"
17
- require_relative "cyberarm_engine/gosu_ext/draw_path"
18
-
19
- require_relative "cyberarm_engine/notification"
20
- require_relative "cyberarm_engine/notification_manager"
21
-
22
- require_relative "cyberarm_engine/game_object"
23
- require_relative "cyberarm_engine/window"
24
-
25
- require_relative "cyberarm_engine/bounding_box"
26
- require_relative "cyberarm_engine/vector"
27
- require_relative "cyberarm_engine/transform"
28
- require_relative "cyberarm_engine/ray"
29
- require_relative "cyberarm_engine/background"
30
- require_relative "cyberarm_engine/background_nine_slice"
31
- require_relative "cyberarm_engine/background_image"
32
- require_relative "cyberarm_engine/animator"
33
-
34
- require_relative "cyberarm_engine/text"
35
- require_relative "cyberarm_engine/timer"
36
- require_relative "cyberarm_engine/config_file"
37
-
38
- require_relative "cyberarm_engine/console"
39
- require_relative "cyberarm_engine/console/command"
40
- require_relative "cyberarm_engine/console/subcommand"
41
- require_relative "cyberarm_engine/console/commands/help_command"
42
-
43
- require_relative "cyberarm_engine/ui/dsl"
44
-
45
- require_relative "cyberarm_engine/ui/theme"
46
- require_relative "cyberarm_engine/ui/event"
47
- require_relative "cyberarm_engine/ui/style"
48
- require_relative "cyberarm_engine/ui/border_canvas"
49
- require_relative "cyberarm_engine/ui/element"
50
- require_relative "cyberarm_engine/ui/elements/text_block"
51
- require_relative "cyberarm_engine/ui/elements/button"
52
- require_relative "cyberarm_engine/ui/elements/toggle_button"
53
- require_relative "cyberarm_engine/ui/elements/list_box"
54
- require_relative "cyberarm_engine/ui/elements/edit_line"
55
- require_relative "cyberarm_engine/ui/elements/edit_box"
56
- require_relative "cyberarm_engine/ui/elements/image"
57
- require_relative "cyberarm_engine/ui/elements/container"
58
- require_relative "cyberarm_engine/ui/elements/flow"
59
- require_relative "cyberarm_engine/ui/elements/stack"
60
- require_relative "cyberarm_engine/ui/elements/check_box"
61
- require_relative "cyberarm_engine/ui/elements/radio"
62
- require_relative "cyberarm_engine/ui/elements/progress"
63
- require_relative "cyberarm_engine/ui/elements/slider"
64
- require_relative "cyberarm_engine/ui/elements/menu"
65
- require_relative "cyberarm_engine/ui/elements/menu_item"
66
-
67
- require_relative "cyberarm_engine/game_state"
68
- require_relative "cyberarm_engine/ui/gui_state"
69
-
70
- require_relative "cyberarm_engine/builtin/intro_state"
1
+ CYBERARM_ENGINE_ROOT_PATH = File.expand_path("..", __dir__)
2
+
3
+ if ARGV.join.include?("--ffi-gosu")
4
+ require File.expand_path("../../ffi-gosu/lib/gosu", __dir__)
5
+ else
6
+ require "gosu"
7
+ end
8
+ require "json"
9
+
10
+ require_relative "cyberarm_engine/version"
11
+ require_relative "cyberarm_engine/stats"
12
+
13
+ require_relative "cyberarm_engine/common"
14
+
15
+ require_relative "cyberarm_engine/gosu_ext/draw_arc"
16
+ require_relative "cyberarm_engine/gosu_ext/draw_circle"
17
+ require_relative "cyberarm_engine/gosu_ext/draw_path"
18
+
19
+ require_relative "cyberarm_engine/notification"
20
+ require_relative "cyberarm_engine/notification_manager"
21
+
22
+ require_relative "cyberarm_engine/game_object"
23
+ require_relative "cyberarm_engine/window"
24
+
25
+ require_relative "cyberarm_engine/bounding_box"
26
+ require_relative "cyberarm_engine/vector"
27
+ require_relative "cyberarm_engine/transform"
28
+ require_relative "cyberarm_engine/ray"
29
+ require_relative "cyberarm_engine/background"
30
+ require_relative "cyberarm_engine/background_nine_slice"
31
+ require_relative "cyberarm_engine/background_image"
32
+ require_relative "cyberarm_engine/animator"
33
+
34
+ require_relative "cyberarm_engine/text"
35
+ require_relative "cyberarm_engine/timer"
36
+ require_relative "cyberarm_engine/config_file"
37
+
38
+ require_relative "cyberarm_engine/console"
39
+ require_relative "cyberarm_engine/console/command"
40
+ require_relative "cyberarm_engine/console/subcommand"
41
+ require_relative "cyberarm_engine/console/commands/help_command"
42
+
43
+ require_relative "cyberarm_engine/ui/dsl"
44
+
45
+ require_relative "cyberarm_engine/ui/theme"
46
+ require_relative "cyberarm_engine/ui/event"
47
+ require_relative "cyberarm_engine/ui/style"
48
+ require_relative "cyberarm_engine/ui/border_canvas"
49
+ require_relative "cyberarm_engine/ui/element"
50
+ require_relative "cyberarm_engine/ui/elements/text_block"
51
+ require_relative "cyberarm_engine/ui/elements/button"
52
+ require_relative "cyberarm_engine/ui/elements/toggle_button"
53
+ require_relative "cyberarm_engine/ui/elements/list_box"
54
+ require_relative "cyberarm_engine/ui/elements/edit_line"
55
+ require_relative "cyberarm_engine/ui/elements/edit_box"
56
+ require_relative "cyberarm_engine/ui/elements/image"
57
+ require_relative "cyberarm_engine/ui/elements/container"
58
+ require_relative "cyberarm_engine/ui/elements/flow"
59
+ require_relative "cyberarm_engine/ui/elements/stack"
60
+ require_relative "cyberarm_engine/ui/elements/check_box"
61
+ require_relative "cyberarm_engine/ui/elements/radio"
62
+ require_relative "cyberarm_engine/ui/elements/progress"
63
+ require_relative "cyberarm_engine/ui/elements/slider"
64
+ require_relative "cyberarm_engine/ui/elements/menu"
65
+ require_relative "cyberarm_engine/ui/elements/menu_item"
66
+
67
+ require_relative "cyberarm_engine/game_state"
68
+ require_relative "cyberarm_engine/ui/gui_state"
69
+
70
+ require_relative "cyberarm_engine/builtin/intro_state"
71
+
72
+ if RUBY_ENGINE != "mruby" && defined?(StackProf)
73
+ at_exit do
74
+ StackProf.results("./_stackprof.dmp")
75
+ end
76
+ end
data/mrbgem.rake CHANGED
@@ -1,29 +1,29 @@
1
- MRuby::Gem::Specification.new("mruby-cyberarm_engine") do |spec|
2
- spec.license = "MIT"
3
- spec.authors = "cyberarm"
4
- spec.summary = " Yet another framework for building games with Gosu"
5
-
6
- lib_rbfiles = []
7
- # Dir.glob("#{File.expand_path("..", __FILE__)}/lib/**/*.rb").reject do |f|
8
- # File.basename(f.downcase, ".rb") == "cyberarm_engine" ||
9
- # File.basename(f.downcase, ".rb") == "opengl" ||
10
- # f.downcase.include?("/opengl/")
11
- # end.reverse!
12
-
13
- local_path = File.expand_path("..", __FILE__)
14
- File.read("#{local_path}/lib/cyberarm_engine.rb").each_line do |line|
15
- line = line.strip
16
-
17
- next unless line.start_with?("require_relative")
18
-
19
- file = line.split("require_relative").last.strip.gsub("\"", "")
20
-
21
- next if file.include?(" if ")
22
-
23
- lib_rbfiles << "#{local_path}/lib/#{file}.rb"
24
- end
25
-
26
- pp lib_rbfiles
27
-
28
- spec.rbfiles = lib_rbfiles
29
- end
1
+ MRuby::Gem::Specification.new("mruby-cyberarm_engine") do |spec|
2
+ spec.license = "MIT"
3
+ spec.authors = "cyberarm"
4
+ spec.summary = " Yet another framework for building games with Gosu"
5
+
6
+ lib_rbfiles = []
7
+ # Dir.glob("#{File.expand_path("..", __FILE__)}/lib/**/*.rb").reject do |f|
8
+ # File.basename(f.downcase, ".rb") == "cyberarm_engine" ||
9
+ # File.basename(f.downcase, ".rb") == "opengl" ||
10
+ # f.downcase.include?("/opengl/")
11
+ # end.reverse!
12
+
13
+ local_path = File.expand_path("..", __FILE__)
14
+ File.read("#{local_path}/lib/cyberarm_engine.rb").each_line do |line|
15
+ line = line.strip
16
+
17
+ next unless line.start_with?("require_relative")
18
+
19
+ file = line.split("require_relative").last.strip.gsub("\"", "")
20
+
21
+ next if file.include?(" if ")
22
+
23
+ lib_rbfiles << "#{local_path}/lib/#{file}.rb"
24
+ end
25
+
26
+ pp lib_rbfiles
27
+
28
+ spec.rbfiles = lib_rbfiles
29
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cyberarm_engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.24.5
4
+ version: 0.25.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyberarm
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
10
+ date: 2026-01-09 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: gosu
@@ -185,7 +185,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
185
  - !ruby/object:Gem::Version
186
186
  version: '0'
187
187
  requirements: []
188
- rubygems_version: 3.6.7
188
+ rubygems_version: 3.6.2
189
189
  specification_version: 4
190
190
  summary: Make games quickly and easily with gosu
191
191
  test_files: []