cyberarm_engine 0.25.0 → 0.30.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 (118) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +9 -8
  3. data/.rubocop.yml +7 -7
  4. data/.travis.yml +5 -5
  5. data/Gemfile +6 -6
  6. data/Gemfile.lock +37 -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/assets/textures/ui/circle.png +0 -0
  17. data/assets/textures/ui/circle_small.png +0 -0
  18. data/assets/textures/ui/rounded.png +0 -0
  19. data/assets/textures/ui/rounded_bottom.png +0 -0
  20. data/assets/textures/ui/rounded_left.png +0 -0
  21. data/assets/textures/ui/rounded_left_bottom.png +0 -0
  22. data/assets/textures/ui/rounded_left_top.png +0 -0
  23. data/assets/textures/ui/rounded_right.png +0 -0
  24. data/assets/textures/ui/rounded_right_bottom.png +0 -0
  25. data/assets/textures/ui/rounded_right_top.png +0 -0
  26. data/assets/textures/ui/rounded_small.png +0 -0
  27. data/assets/textures/ui/rounded_tiny.png +0 -0
  28. data/assets/textures/ui/rounded_top.png +0 -0
  29. data/assets/textures/ui/square.png +0 -0
  30. data/bin/console +14 -14
  31. data/bin/setup +8 -8
  32. data/cyberarm_engine.gemspec +35 -36
  33. data/lib/cyberarm_engine/animator.rb +219 -219
  34. data/lib/cyberarm_engine/background.rb +156 -158
  35. data/lib/cyberarm_engine/background_image.rb +93 -93
  36. data/lib/cyberarm_engine/background_nine_slice.rb +182 -142
  37. data/lib/cyberarm_engine/bounding_box.rb +150 -150
  38. data/lib/cyberarm_engine/builtin/intro_state.rb +130 -130
  39. data/lib/cyberarm_engine/cache/download_manager.rb +123 -123
  40. data/lib/cyberarm_engine/cache.rb +4 -4
  41. data/lib/cyberarm_engine/common.rb +133 -131
  42. data/lib/cyberarm_engine/config_file.rb +46 -46
  43. data/lib/cyberarm_engine/console/command.rb +157 -157
  44. data/lib/cyberarm_engine/console/commands/help_command.rb +43 -43
  45. data/lib/cyberarm_engine/console/subcommand.rb +99 -99
  46. data/lib/cyberarm_engine/console.rb +248 -248
  47. data/lib/cyberarm_engine/event_bus.rb +39 -0
  48. data/lib/cyberarm_engine/game_object.rb +244 -244
  49. data/lib/cyberarm_engine/game_state.rb +134 -124
  50. data/lib/cyberarm_engine/gosu_ext/draw_arc.rb +111 -111
  51. data/lib/cyberarm_engine/gosu_ext/draw_circle.rb +30 -30
  52. data/lib/cyberarm_engine/gosu_ext/draw_path.rb +17 -17
  53. data/lib/cyberarm_engine/model/material.rb +21 -21
  54. data/lib/cyberarm_engine/model/mesh.rb +131 -131
  55. data/lib/cyberarm_engine/model/parser.rb +74 -74
  56. data/lib/cyberarm_engine/model/parsers/collada_parser.rb +138 -138
  57. data/lib/cyberarm_engine/model/parsers/wavefront_parser.rb +154 -154
  58. data/lib/cyberarm_engine/model.rb +216 -216
  59. data/lib/cyberarm_engine/model_cache.rb +31 -31
  60. data/lib/cyberarm_engine/notification.rb +82 -82
  61. data/lib/cyberarm_engine/notification_manager.rb +241 -241
  62. data/lib/cyberarm_engine/opengl/light.rb +52 -52
  63. data/lib/cyberarm_engine/opengl/orthographic_camera.rb +46 -46
  64. data/lib/cyberarm_engine/opengl/perspective_camera.rb +41 -41
  65. data/lib/cyberarm_engine/opengl/renderer/bounding_box_renderer.rb +249 -249
  66. data/lib/cyberarm_engine/opengl/renderer/g_buffer.rb +167 -167
  67. data/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb +307 -307
  68. data/lib/cyberarm_engine/opengl/renderer/renderer.rb +33 -33
  69. data/lib/cyberarm_engine/opengl/shader.rb +408 -408
  70. data/lib/cyberarm_engine/opengl/texture.rb +69 -69
  71. data/lib/cyberarm_engine/opengl.rb +53 -53
  72. data/lib/cyberarm_engine/pathfinding/graph.rb +64 -0
  73. data/lib/cyberarm_engine/pathfinding/graph_search.rb +6 -0
  74. data/lib/cyberarm_engine/pathfinding/graph_searches/astar_search.rb +6 -0
  75. data/lib/cyberarm_engine/pathfinding/graph_searches/breadth_first_search.rb +27 -0
  76. data/lib/cyberarm_engine/pathfinding/graph_searches/dijkstra_search.rb +6 -0
  77. data/lib/cyberarm_engine/pathfinding/graphs/grid.rb +52 -0
  78. data/lib/cyberarm_engine/ray.rb +56 -56
  79. data/lib/cyberarm_engine/result.rb +19 -0
  80. data/lib/cyberarm_engine/stats.rb +200 -200
  81. data/lib/cyberarm_engine/text.rb +288 -260
  82. data/lib/cyberarm_engine/timer.rb +27 -23
  83. data/lib/cyberarm_engine/transform.rb +296 -296
  84. data/lib/cyberarm_engine/trees/aabb_node.rb +126 -126
  85. data/lib/cyberarm_engine/trees/aabb_tree.rb +55 -55
  86. data/lib/cyberarm_engine/trees/aabb_tree_debug.rb +29 -29
  87. data/lib/cyberarm_engine/ui/border_canvas.rb +102 -102
  88. data/lib/cyberarm_engine/ui/dialog.rb +24 -0
  89. data/lib/cyberarm_engine/ui/dsl.rb +170 -142
  90. data/lib/cyberarm_engine/ui/element.rb +664 -662
  91. data/lib/cyberarm_engine/ui/elements/button.rb +99 -100
  92. data/lib/cyberarm_engine/ui/elements/check_box.rb +58 -54
  93. data/lib/cyberarm_engine/ui/elements/container.rb +413 -407
  94. data/lib/cyberarm_engine/ui/elements/edit_box.rb +200 -179
  95. data/lib/cyberarm_engine/ui/elements/edit_line.rb +299 -297
  96. data/lib/cyberarm_engine/ui/elements/flow.rb +15 -15
  97. data/lib/cyberarm_engine/ui/elements/image.rb +78 -72
  98. data/lib/cyberarm_engine/ui/elements/list_box.rb +79 -79
  99. data/lib/cyberarm_engine/ui/elements/menu.rb +27 -27
  100. data/lib/cyberarm_engine/ui/elements/menu_item.rb +6 -6
  101. data/lib/cyberarm_engine/ui/elements/progress.rb +95 -93
  102. data/lib/cyberarm_engine/ui/elements/radio.rb +6 -6
  103. data/lib/cyberarm_engine/ui/elements/slider.rb +111 -107
  104. data/lib/cyberarm_engine/ui/elements/stack.rb +11 -11
  105. data/lib/cyberarm_engine/ui/elements/text_block.rb +236 -222
  106. data/lib/cyberarm_engine/ui/elements/toggle_button.rb +71 -67
  107. data/lib/cyberarm_engine/ui/elements/widget.rb +45 -0
  108. data/lib/cyberarm_engine/ui/event.rb +54 -54
  109. data/lib/cyberarm_engine/ui/gui_state.rb +402 -326
  110. data/lib/cyberarm_engine/ui/page.rb +39 -0
  111. data/lib/cyberarm_engine/ui/style.rb +94 -61
  112. data/lib/cyberarm_engine/ui/theme.rb +237 -225
  113. data/lib/cyberarm_engine/vector.rb +312 -312
  114. data/lib/cyberarm_engine/version.rb +4 -4
  115. data/lib/cyberarm_engine/window.rb +234 -195
  116. data/lib/cyberarm_engine.rb +88 -76
  117. data/mrbgem.rake +29 -29
  118. metadata +30 -5
@@ -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