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,107 +1,111 @@
1
- module CyberarmEngine
2
- class Element
3
- class Slider < Container
4
- class Handle < Button
5
- def initialize(*args)
6
- super(*args)
7
-
8
- event(:begin_drag)
9
- event(:drag_update)
10
- event(:end_drag)
11
-
12
- subscribe :begin_drag do |_sender, x, y, _button|
13
- @drag_start_pos = Vector.new(x, y)
14
-
15
- :handled
16
- end
17
-
18
- subscribe :drag_update do |_sender, x, y, _button|
19
- @parent.handle_dragged_to(x, y)
20
-
21
- :handled
22
- end
23
-
24
- subscribe :end_drag do
25
- @drag_start_pos = nil
26
-
27
- :handled
28
- end
29
- end
30
-
31
- def draggable?(button)
32
- button == :left
33
- end
34
- end
35
-
36
- attr_reader :value
37
- attr_accessor :range, :step_size
38
-
39
- def initialize(options = {}, block = nil)
40
- super(options, block)
41
-
42
- @range = @options[:range] || (0.0..1.0)
43
- @step_size = @options[:step] || 0.1
44
- @value = @options[:value] || (@range.first + @range.last) / 2
45
-
46
- @handle = Handle.new("", parent: self, theme: options[:theme], width: 8, height: 1.0) { close }
47
- add(@handle)
48
- end
49
-
50
- def recalculate
51
- _width = dimensional_size(@style.width, :width)
52
- _height = dimensional_size(@style.height, :height)
53
-
54
- @width = _width
55
- @height = _height
56
-
57
- position_handle
58
- @handle.recalculate
59
- @handle.update_background
60
-
61
- update_background
62
- end
63
-
64
- def position_handle
65
- @handle.x = @x + @handle.style.margin_left + @style.padding_left + @style.border_thickness_left +
66
- ((content_width - @handle.outer_width) * (@value - @range.min) / (@range.max - @range.min).to_f)
67
-
68
- @handle.y = @y + @handle.style.margin_top + @style.border_thickness_top + @style.padding_top
69
- end
70
-
71
- def draw
72
- super
73
-
74
- @handle.draw
75
- end
76
-
77
- def update
78
- super
79
-
80
- @tip = format("%.2f", value.to_f)
81
- @handle.tip = @tip
82
- end
83
-
84
- def holding_left_mouse_button(_sender, x, y)
85
- handle_dragged_to(x, y)
86
-
87
- :handled
88
- end
89
-
90
- def handle_dragged_to(x, _y)
91
- @ratio = ((x - @handle.width / 2.0) - @x) / (content_width - @handle.outer_width.to_f)
92
-
93
- self.value = @ratio.clamp(0.0, 1.0) * (@range.max - @range.min) + @range.min
94
- end
95
-
96
- def value=(n)
97
- @value = n
98
- position_handle
99
- @handle.recalculate
100
-
101
- root.gui_state.request_repaint
102
-
103
- publish(:changed, @value)
104
- end
105
- end
106
- end
107
- end
1
+ module CyberarmEngine
2
+ class Element
3
+ class Slider < Container
4
+ class Handle < Button
5
+ def initialize(*args)
6
+ super(*args)
7
+
8
+ event(:begin_drag)
9
+ event(:drag_update)
10
+ event(:end_drag)
11
+
12
+ subscribe :begin_drag do |_sender, x, y, _button|
13
+ @drag_start_pos = Vector.new(x, y)
14
+
15
+ :handled
16
+ end
17
+
18
+ subscribe :drag_update do |_sender, x, y, _button|
19
+ @parent.handle_dragged_to(x, y)
20
+
21
+ :handled
22
+ end
23
+
24
+ subscribe :end_drag do
25
+ @drag_start_pos = nil
26
+
27
+ :handled
28
+ end
29
+ end
30
+
31
+ def draggable?(button)
32
+ button == :left
33
+ end
34
+ end
35
+
36
+ attr_reader :value
37
+ attr_accessor :range, :step_size
38
+
39
+ def initialize(options = {}, block = nil)
40
+ super(options, block)
41
+
42
+ @range = @options[:range] || (0.0..1.0)
43
+ @step_size = @options[:step] || 0.1
44
+ @value = @options[:value] || (@range.first + @range.last) / 2
45
+
46
+ @handle = Handle.new("", parent: self, theme: options[:theme], width: 8, height: 1.0) { close }
47
+ add(@handle)
48
+ end
49
+
50
+ def recalculate
51
+ _width = dimensional_size(@style.width, :width)
52
+ _height = dimensional_size(@style.height, :height)
53
+
54
+ @width = _width
55
+ @height = _height
56
+
57
+ position_handle
58
+ @handle.recalculate
59
+ @handle.update_background
60
+
61
+ update_background
62
+ end
63
+
64
+ def position_handle
65
+ @handle.x = styled(:margin_left) + @x + @handle.styled(:margin_left) + styled(:padding_left) + styled(:border_thickness_left) +
66
+ ((content_width - @handle.outer_width) * (@value - @range.min) / (@range.max - @range.min).to_f)
67
+
68
+ @handle.y = styled(:margin_top) + @y + @handle.styled(:margin_top) + styled(:border_thickness_top) + styled(:padding_top)
69
+ end
70
+
71
+ def draw
72
+ super
73
+
74
+ @handle.draw
75
+ end
76
+
77
+ def update
78
+ super
79
+
80
+ @tip = format("%.2f", value.to_f)
81
+ @handle.tip = @tip
82
+ end
83
+
84
+ def holding_left_mouse_button(_sender, x, y)
85
+ handle_dragged_to(x, y)
86
+
87
+ :handled
88
+ end
89
+
90
+ def handle_dragged_to(x, _y)
91
+ @ratio = ((x - @handle.width / 2.0) - @x) / (content_width - @handle.outer_width.to_f)
92
+
93
+ self.value = @ratio.clamp(0.0, 1.0) * (@range.max - @range.min) + @range.min
94
+ end
95
+
96
+ def value=(n)
97
+ old_value = self.value
98
+
99
+ @value = n
100
+ position_handle
101
+ @handle.recalculate
102
+
103
+ root.gui_state.request_repaint
104
+
105
+ publish(:changed, @value) if old_value != n
106
+
107
+ n
108
+ end
109
+ end
110
+ end
111
+ end
@@ -1,11 +1,11 @@
1
- module CyberarmEngine
2
- class Element
3
- class Stack < Container
4
- def layout
5
- @children.each do |child|
6
- move_to_next_line(child)
7
- end
8
- end
9
- end
10
- end
11
- end
1
+ module CyberarmEngine
2
+ class Element
3
+ class Stack < Container
4
+ def layout
5
+ @children.each do |child|
6
+ move_to_next_line(child)
7
+ end
8
+ end
9
+ end
10
+ end
11
+ end