cyberarm_engine 0.25.0 → 0.25.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 (94) 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 -25
  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 -158
  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 -131
  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 -111
  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/result.rb +20 -0
  59. data/lib/cyberarm_engine/stats.rb +200 -200
  60. data/lib/cyberarm_engine/text.rb +260 -260
  61. data/lib/cyberarm_engine/timer.rb +23 -23
  62. data/lib/cyberarm_engine/transform.rb +296 -296
  63. data/lib/cyberarm_engine/trees/aabb_node.rb +126 -126
  64. data/lib/cyberarm_engine/trees/aabb_tree.rb +55 -55
  65. data/lib/cyberarm_engine/trees/aabb_tree_debug.rb +29 -29
  66. data/lib/cyberarm_engine/ui/border_canvas.rb +102 -102
  67. data/lib/cyberarm_engine/ui/dsl.rb +142 -142
  68. data/lib/cyberarm_engine/ui/element.rb +662 -662
  69. data/lib/cyberarm_engine/ui/elements/button.rb +100 -100
  70. data/lib/cyberarm_engine/ui/elements/check_box.rb +54 -54
  71. data/lib/cyberarm_engine/ui/elements/container.rb +407 -407
  72. data/lib/cyberarm_engine/ui/elements/edit_box.rb +179 -179
  73. data/lib/cyberarm_engine/ui/elements/edit_line.rb +297 -297
  74. data/lib/cyberarm_engine/ui/elements/flow.rb +15 -15
  75. data/lib/cyberarm_engine/ui/elements/image.rb +72 -72
  76. data/lib/cyberarm_engine/ui/elements/list_box.rb +79 -79
  77. data/lib/cyberarm_engine/ui/elements/menu.rb +27 -27
  78. data/lib/cyberarm_engine/ui/elements/menu_item.rb +6 -6
  79. data/lib/cyberarm_engine/ui/elements/progress.rb +93 -93
  80. data/lib/cyberarm_engine/ui/elements/radio.rb +6 -6
  81. data/lib/cyberarm_engine/ui/elements/slider.rb +107 -107
  82. data/lib/cyberarm_engine/ui/elements/stack.rb +11 -11
  83. data/lib/cyberarm_engine/ui/elements/text_block.rb +222 -222
  84. data/lib/cyberarm_engine/ui/elements/toggle_button.rb +67 -67
  85. data/lib/cyberarm_engine/ui/event.rb +54 -54
  86. data/lib/cyberarm_engine/ui/gui_state.rb +326 -326
  87. data/lib/cyberarm_engine/ui/style.rb +61 -61
  88. data/lib/cyberarm_engine/ui/theme.rb +225 -225
  89. data/lib/cyberarm_engine/vector.rb +312 -312
  90. data/lib/cyberarm_engine/version.rb +4 -4
  91. data/lib/cyberarm_engine/window.rb +195 -195
  92. data/lib/cyberarm_engine.rb +77 -76
  93. data/mrbgem.rake +29 -29
  94. metadata +4 -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,76 +1,77 @@
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
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
+ require_relative "cyberarm_engine/result"
13
+
14
+ require_relative "cyberarm_engine/common"
15
+
16
+ require_relative "cyberarm_engine/gosu_ext/draw_arc"
17
+ require_relative "cyberarm_engine/gosu_ext/draw_circle"
18
+ require_relative "cyberarm_engine/gosu_ext/draw_path"
19
+
20
+ require_relative "cyberarm_engine/notification"
21
+ require_relative "cyberarm_engine/notification_manager"
22
+
23
+ require_relative "cyberarm_engine/game_object"
24
+ require_relative "cyberarm_engine/window"
25
+
26
+ require_relative "cyberarm_engine/bounding_box"
27
+ require_relative "cyberarm_engine/vector"
28
+ require_relative "cyberarm_engine/transform"
29
+ require_relative "cyberarm_engine/ray"
30
+ require_relative "cyberarm_engine/background"
31
+ require_relative "cyberarm_engine/background_nine_slice"
32
+ require_relative "cyberarm_engine/background_image"
33
+ require_relative "cyberarm_engine/animator"
34
+
35
+ require_relative "cyberarm_engine/text"
36
+ require_relative "cyberarm_engine/timer"
37
+ require_relative "cyberarm_engine/config_file"
38
+
39
+ require_relative "cyberarm_engine/console"
40
+ require_relative "cyberarm_engine/console/command"
41
+ require_relative "cyberarm_engine/console/subcommand"
42
+ require_relative "cyberarm_engine/console/commands/help_command"
43
+
44
+ require_relative "cyberarm_engine/ui/dsl"
45
+
46
+ require_relative "cyberarm_engine/ui/theme"
47
+ require_relative "cyberarm_engine/ui/event"
48
+ require_relative "cyberarm_engine/ui/style"
49
+ require_relative "cyberarm_engine/ui/border_canvas"
50
+ require_relative "cyberarm_engine/ui/element"
51
+ require_relative "cyberarm_engine/ui/elements/text_block"
52
+ require_relative "cyberarm_engine/ui/elements/button"
53
+ require_relative "cyberarm_engine/ui/elements/toggle_button"
54
+ require_relative "cyberarm_engine/ui/elements/list_box"
55
+ require_relative "cyberarm_engine/ui/elements/edit_line"
56
+ require_relative "cyberarm_engine/ui/elements/edit_box"
57
+ require_relative "cyberarm_engine/ui/elements/image"
58
+ require_relative "cyberarm_engine/ui/elements/container"
59
+ require_relative "cyberarm_engine/ui/elements/flow"
60
+ require_relative "cyberarm_engine/ui/elements/stack"
61
+ require_relative "cyberarm_engine/ui/elements/check_box"
62
+ require_relative "cyberarm_engine/ui/elements/radio"
63
+ require_relative "cyberarm_engine/ui/elements/progress"
64
+ require_relative "cyberarm_engine/ui/elements/slider"
65
+ require_relative "cyberarm_engine/ui/elements/menu"
66
+ require_relative "cyberarm_engine/ui/elements/menu_item"
67
+
68
+ require_relative "cyberarm_engine/game_state"
69
+ require_relative "cyberarm_engine/ui/gui_state"
70
+
71
+ require_relative "cyberarm_engine/builtin/intro_state"
72
+
73
+ if RUBY_ENGINE != "mruby" && defined?(StackProf)
74
+ at_exit do
75
+ StackProf.results("./_stackprof.dmp")
76
+ end
77
+ 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.25.0
4
+ version: 0.25.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cyberarm
8
8
  bindir: exe
9
9
  cert_chain: []
10
- date: 2026-01-09 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: gosu
@@ -131,6 +131,7 @@ files:
131
131
  - lib/cyberarm_engine/opengl/shader.rb
132
132
  - lib/cyberarm_engine/opengl/texture.rb
133
133
  - lib/cyberarm_engine/ray.rb
134
+ - lib/cyberarm_engine/result.rb
134
135
  - lib/cyberarm_engine/stats.rb
135
136
  - lib/cyberarm_engine/text.rb
136
137
  - lib/cyberarm_engine/timer.rb
@@ -185,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
185
186
  - !ruby/object:Gem::Version
186
187
  version: '0'
187
188
  requirements: []
188
- rubygems_version: 3.6.2
189
+ rubygems_version: 3.6.7
189
190
  specification_version: 4
190
191
  summary: Make games quickly and easily with gosu
191
192
  test_files: []