cyberarm_engine 0.24.3 → 0.24.5

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 +24 -0
  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 -69
  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 +180 -179
  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 +128 -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 +97 -97
  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/{model_object.rb → 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 -213
  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 -50
  48. data/lib/cyberarm_engine/opengl/orthographic_camera.rb +46 -46
  49. data/lib/cyberarm_engine/opengl/perspective_camera.rb +41 -38
  50. data/lib/cyberarm_engine/opengl/renderer/bounding_box_renderer.rb +249 -249
  51. data/lib/cyberarm_engine/opengl/renderer/g_buffer.rb +167 -165
  52. data/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb +307 -304
  53. data/lib/cyberarm_engine/opengl/renderer/renderer.rb +33 -33
  54. data/lib/cyberarm_engine/opengl/shader.rb +408 -406
  55. data/lib/cyberarm_engine/opengl/texture.rb +69 -69
  56. data/lib/cyberarm_engine/opengl.rb +53 -40
  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 -0
  63. data/lib/cyberarm_engine/trees/aabb_tree.rb +55 -0
  64. data/lib/cyberarm_engine/trees/aabb_tree_debug.rb +29 -0
  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 +404 -410
  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 +216 -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 +321 -321
  86. data/lib/cyberarm_engine/ui/style.rb +50 -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 +70 -78
  92. data/mrbgem.rake +29 -29
  93. metadata +8 -7
@@ -1,43 +1,43 @@
1
- # frozen_string_literal: true
2
-
3
- module CyberarmEngine
4
- class Console
5
- class HelpCommand < CyberarmEngine::Console::Command
6
- def group
7
- :global
8
- end
9
-
10
- def command
11
- :help
12
- end
13
-
14
- def handle(arguments, console)
15
- console.stdin(usage(arguments.first))
16
- end
17
-
18
- def autocomplete(console)
19
- split = console.text_input.text.split(" ")
20
- if !console.text_input.text.start_with?(" ") && split.size == 2
21
- list = console.abbrev_search(Command.list_commands.map { |cmd| cmd.command.to_s }, split.last)
22
- if list.size == 1
23
- console.text_input.text = "#{split.first} #{list.first} "
24
- elsif list.size > 1
25
- console.stdin(list.map { |cmd| Style.highlight(cmd) }.join(", "))
26
- end
27
- end
28
- end
29
-
30
- def usage(command = nil)
31
- if command
32
- if cmd = Command.find(command)
33
- cmd.usage
34
- else
35
- "#{Style.error(command)} is not a command"
36
- end
37
- else
38
- "Available commands:\n#{Command.list_commands.map { |cmd| Style.highlight(cmd.command).to_s }.join(', ')}"
39
- end
40
- end
41
- end
42
- end
43
- end
1
+ # frozen_string_literal: true
2
+
3
+ module CyberarmEngine
4
+ class Console
5
+ class HelpCommand < CyberarmEngine::Console::Command
6
+ def group
7
+ :global
8
+ end
9
+
10
+ def command
11
+ :help
12
+ end
13
+
14
+ def handle(arguments, console)
15
+ console.stdin(usage(arguments.first))
16
+ end
17
+
18
+ def autocomplete(console)
19
+ split = console.text_input.text.split(" ")
20
+ if !console.text_input.text.start_with?(" ") && split.size == 2
21
+ list = console.abbrev_search(Command.list_commands.map { |cmd| cmd.command.to_s }, split.last)
22
+ if list.size == 1
23
+ console.text_input.text = "#{split.first} #{list.first} "
24
+ elsif list.size > 1
25
+ console.stdin(list.map { |cmd| Style.highlight(cmd) }.join(", "))
26
+ end
27
+ end
28
+ end
29
+
30
+ def usage(command = nil)
31
+ if command
32
+ if cmd = Command.find(command)
33
+ cmd.usage
34
+ else
35
+ "#{Style.error(command)} is not a command"
36
+ end
37
+ else
38
+ "Available commands:\n#{Command.list_commands.map { |cmd| Style.highlight(cmd.command).to_s }.join(', ')}"
39
+ end
40
+ end
41
+ end
42
+ end
43
+ end
@@ -1,100 +1,100 @@
1
- # frozen_string_literal: true
2
-
3
- module CyberarmEngine
4
- class Console
5
- class Command
6
- class SubCommand
7
- def initialize(parent, command, type)
8
- @parent = parent
9
- @command = command
10
- @type = type
11
- end
12
-
13
- attr_reader :command
14
-
15
- def handle(arguments, console)
16
- if arguments.size > 1
17
- console.stdin("to many arguments for #{Style.highlight(command.to_s)}, got #{Style.error(arguments.size)} expected #{Style.notice(1)}.")
18
- return
19
- end
20
-
21
- case @type
22
- when :boolean
23
- case arguments.last
24
- when "", nil
25
- var = @parent.get(command.to_sym) || false
26
- console.stdin("#{command}: #{Style.highlight(var)}")
27
- when "on"
28
- var = @parent.set(command.to_sym, true)
29
- console.stdin("#{command} => #{Style.highlight(var)}")
30
- when "off"
31
- var = @parent.set(command.to_sym, false)
32
- console.stdin("#{command} => #{Style.highlight(var)}")
33
- else
34
- console.stdin("Invalid argument for #{Style.highlight(command.to_s)}, got #{Style.error(arguments.last)} expected #{Style.notice('on')}, or #{Style.notice('off')}.")
35
- end
36
- when :string
37
- case arguments.last
38
- when "", nil
39
- var = @parent.get(command.to_sym) || "\"\""
40
- console.stdin("#{command}: #{Style.highlight(var)}")
41
- else
42
- var = @parent.set(command.to_sym, arguments.last)
43
- console.stdin("#{command} => #{Style.highlight(var)}")
44
- end
45
- when :integer
46
- case arguments.last
47
- when "", nil
48
- var = @parent.get(command.to_sym) || "nil"
49
- console.stdin("#{command}: #{Style.highlight(var)}")
50
- else
51
- begin
52
- var = @parent.set(command.to_sym, Integer(arguments.last))
53
- console.stdin("#{command} => #{Style.highlight(var)}")
54
- rescue ArgumentError
55
- console.stdin("Error: #{Style.error("Expected an integer, got '#{arguments.last}'")}")
56
- end
57
- end
58
- when :decimal
59
- case arguments.last
60
- when "", nil
61
- var = @parent.get(command.to_sym) || "nil"
62
- console.stdin("#{command}: #{Style.highlight(var)}")
63
- else
64
- begin
65
- var = @parent.set(command.to_sym, Float(arguments.last))
66
- console.stdin("#{command} => #{Style.highlight(var)}")
67
- rescue ArgumentError
68
- console.stdin("Error: #{Style.error("Expected a decimal or integer, got '#{arguments.last}'")}")
69
- end
70
- end
71
- else
72
- raise RuntimeError
73
- end
74
- end
75
-
76
- def values
77
- case @type
78
- when :boolean
79
- %w[on off]
80
- else
81
- []
82
- end
83
- end
84
-
85
- def usage
86
- case @type
87
- when :boolean
88
- "#{Style.highlight(command)} #{Style.notice('[on|off]')}"
89
- when :string
90
- "#{Style.highlight(command)} #{Style.notice('[string]')}"
91
- when :integer
92
- "#{Style.highlight(command)} #{Style.notice('[0]')}"
93
- when :decimal
94
- "#{Style.highlight(command)} #{Style.notice('[0.0]')}"
95
- end
96
- end
97
- end
98
- end
99
- end
1
+ # frozen_string_literal: true
2
+
3
+ module CyberarmEngine
4
+ class Console
5
+ class Command
6
+ class SubCommand
7
+ def initialize(parent, command, type)
8
+ @parent = parent
9
+ @command = command
10
+ @type = type
11
+ end
12
+
13
+ attr_reader :command
14
+
15
+ def handle(arguments, console)
16
+ if arguments.size > 1
17
+ console.stdin("to many arguments for #{Style.highlight(command.to_s)}, got #{Style.error(arguments.size)} expected #{Style.notice(1)}.")
18
+ return
19
+ end
20
+
21
+ case @type
22
+ when :boolean
23
+ case arguments.last
24
+ when "", nil
25
+ var = @parent.get(command.to_sym) || false
26
+ console.stdin("#{command}: #{Style.highlight(var)}")
27
+ when "on"
28
+ var = @parent.set(command.to_sym, true)
29
+ console.stdin("#{command} => #{Style.highlight(var)}")
30
+ when "off"
31
+ var = @parent.set(command.to_sym, false)
32
+ console.stdin("#{command} => #{Style.highlight(var)}")
33
+ else
34
+ console.stdin("Invalid argument for #{Style.highlight(command.to_s)}, got #{Style.error(arguments.last)} expected #{Style.notice('on')}, or #{Style.notice('off')}.")
35
+ end
36
+ when :string
37
+ case arguments.last
38
+ when "", nil
39
+ var = @parent.get(command.to_sym) || "\"\""
40
+ console.stdin("#{command}: #{Style.highlight(var)}")
41
+ else
42
+ var = @parent.set(command.to_sym, arguments.last)
43
+ console.stdin("#{command} => #{Style.highlight(var)}")
44
+ end
45
+ when :integer
46
+ case arguments.last
47
+ when "", nil
48
+ var = @parent.get(command.to_sym) || "nil"
49
+ console.stdin("#{command}: #{Style.highlight(var)}")
50
+ else
51
+ begin
52
+ var = @parent.set(command.to_sym, Integer(arguments.last))
53
+ console.stdin("#{command} => #{Style.highlight(var)}")
54
+ rescue ArgumentError
55
+ console.stdin("Error: #{Style.error("Expected an integer, got '#{arguments.last}'")}")
56
+ end
57
+ end
58
+ when :decimal
59
+ case arguments.last
60
+ when "", nil
61
+ var = @parent.get(command.to_sym) || "nil"
62
+ console.stdin("#{command}: #{Style.highlight(var)}")
63
+ else
64
+ begin
65
+ var = @parent.set(command.to_sym, Float(arguments.last))
66
+ console.stdin("#{command} => #{Style.highlight(var)}")
67
+ rescue ArgumentError
68
+ console.stdin("Error: #{Style.error("Expected a decimal or integer, got '#{arguments.last}'")}")
69
+ end
70
+ end
71
+ else
72
+ raise RuntimeError
73
+ end
74
+ end
75
+
76
+ def values
77
+ case @type
78
+ when :boolean
79
+ %w[on off]
80
+ else
81
+ []
82
+ end
83
+ end
84
+
85
+ def usage
86
+ case @type
87
+ when :boolean
88
+ "#{Style.highlight(command)} #{Style.notice('[on|off]')}"
89
+ when :string
90
+ "#{Style.highlight(command)} #{Style.notice('[string]')}"
91
+ when :integer
92
+ "#{Style.highlight(command)} #{Style.notice('[0]')}"
93
+ when :decimal
94
+ "#{Style.highlight(command)} #{Style.notice('[0.0]')}"
95
+ end
96
+ end
97
+ end
98
+ end
99
+ end
100
100
  end