cyberarm_engine 0.14.0 → 0.15.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.
- checksums.yaml +4 -4
- data/.rubocop.yml +8 -0
- data/Gemfile +1 -1
- data/Rakefile +1 -1
- data/assets/textures/default.png +0 -0
- data/cyberarm_engine.gemspec +10 -8
- data/lib/cyberarm_engine.rb +13 -2
- data/lib/cyberarm_engine/animator.rb +6 -4
- data/lib/cyberarm_engine/background.rb +19 -15
- data/lib/cyberarm_engine/background_nine_slice.rb +125 -0
- data/lib/cyberarm_engine/bounding_box.rb +18 -18
- data/lib/cyberarm_engine/cache.rb +4 -0
- data/lib/cyberarm_engine/cache/download_manager.rb +121 -0
- data/lib/cyberarm_engine/common.rb +13 -13
- data/lib/cyberarm_engine/config_file.rb +2 -2
- data/lib/cyberarm_engine/game_object.rb +63 -72
- data/lib/cyberarm_engine/game_state.rb +6 -3
- data/lib/cyberarm_engine/model.rb +207 -0
- data/lib/cyberarm_engine/model/material.rb +21 -0
- data/lib/cyberarm_engine/model/model_object.rb +131 -0
- data/lib/cyberarm_engine/model/parser.rb +74 -0
- data/lib/cyberarm_engine/model/parsers/collada_parser.rb +138 -0
- data/lib/cyberarm_engine/model/parsers/wavefront_parser.rb +154 -0
- data/lib/cyberarm_engine/model_cache.rb +31 -0
- data/lib/cyberarm_engine/opengl.rb +28 -0
- data/lib/cyberarm_engine/opengl/light.rb +50 -0
- data/lib/cyberarm_engine/opengl/orthographic_camera.rb +46 -0
- data/lib/cyberarm_engine/opengl/perspective_camera.rb +38 -0
- data/lib/cyberarm_engine/opengl/renderer/bounding_box_renderer.rb +249 -0
- data/lib/cyberarm_engine/opengl/renderer/g_buffer.rb +164 -0
- data/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb +289 -0
- data/lib/cyberarm_engine/opengl/renderer/renderer.rb +22 -0
- data/lib/cyberarm_engine/{shader.rb → opengl/shader.rb} +51 -43
- data/lib/cyberarm_engine/opengl/texture.rb +69 -0
- data/lib/cyberarm_engine/ray.rb +5 -5
- data/lib/cyberarm_engine/stats.rb +2 -2
- data/lib/cyberarm_engine/text.rb +41 -27
- data/lib/cyberarm_engine/timer.rb +1 -1
- data/lib/cyberarm_engine/transform.rb +43 -20
- data/lib/cyberarm_engine/ui/border_canvas.rb +4 -3
- data/lib/cyberarm_engine/ui/dsl.rb +25 -11
- data/lib/cyberarm_engine/ui/element.rb +30 -20
- data/lib/cyberarm_engine/ui/elements/button.rb +86 -16
- data/lib/cyberarm_engine/ui/elements/check_box.rb +1 -1
- data/lib/cyberarm_engine/ui/elements/container.rb +44 -20
- data/lib/cyberarm_engine/ui/elements/edit_box.rb +175 -2
- data/lib/cyberarm_engine/ui/elements/edit_line.rb +121 -37
- data/lib/cyberarm_engine/ui/elements/flow.rb +1 -1
- data/lib/cyberarm_engine/ui/elements/image.rb +12 -9
- data/lib/cyberarm_engine/ui/elements/label.rb +93 -14
- data/lib/cyberarm_engine/ui/elements/list_box.rb +64 -2
- data/lib/cyberarm_engine/ui/elements/progress.rb +5 -5
- data/lib/cyberarm_engine/ui/elements/radio.rb +1 -1
- data/lib/cyberarm_engine/ui/elements/slider.rb +13 -16
- data/lib/cyberarm_engine/ui/elements/stack.rb +1 -1
- data/lib/cyberarm_engine/ui/elements/toggle_button.rb +27 -19
- data/lib/cyberarm_engine/ui/event.rb +7 -7
- data/lib/cyberarm_engine/ui/gui_state.rb +44 -10
- data/lib/cyberarm_engine/ui/style.rb +10 -9
- data/lib/cyberarm_engine/ui/theme.rb +28 -20
- data/lib/cyberarm_engine/vector.rb +33 -30
- data/lib/cyberarm_engine/version.rb +2 -2
- data/lib/cyberarm_engine/window.rb +27 -18
- metadata +65 -15
@@ -12,56 +12,70 @@ module CyberarmEngine
|
|
12
12
|
options[:parent] = element_parent
|
13
13
|
options[:theme] = current_theme
|
14
14
|
|
15
|
-
add_element(
|
15
|
+
add_element(Element::Label.new(text, options, block))
|
16
16
|
end
|
17
17
|
|
18
18
|
def button(text, options = {}, &block)
|
19
19
|
options[:parent] = element_parent
|
20
20
|
options[:theme] = current_theme
|
21
21
|
|
22
|
-
add_element(
|
22
|
+
add_element(Element::Button.new(text, options, block) { block.call if block.is_a?(Proc) })
|
23
|
+
end
|
24
|
+
|
25
|
+
def list_box(options = {}, &block)
|
26
|
+
options[:parent] = element_parent
|
27
|
+
options[:theme] = current_theme
|
28
|
+
|
29
|
+
add_element(Element::ListBox.new(options, block) { block.call if block.is_a?(Proc) })
|
23
30
|
end
|
24
31
|
|
25
32
|
def edit_line(text, options = {}, &block)
|
26
33
|
options[:parent] = element_parent
|
27
34
|
options[:theme] = current_theme
|
28
35
|
|
29
|
-
add_element(
|
36
|
+
add_element(Element::EditLine.new(text, options, block))
|
37
|
+
end
|
38
|
+
|
39
|
+
def edit_box(text, options = {}, &block)
|
40
|
+
options[:parent] = element_parent
|
41
|
+
options[:theme] = current_theme
|
42
|
+
|
43
|
+
add_element(Element::EditBox.new(text, options, block))
|
30
44
|
end
|
31
45
|
|
32
46
|
def toggle_button(options = {}, &block)
|
33
47
|
options[:parent] = element_parent
|
34
48
|
options[:theme] = current_theme
|
35
49
|
|
36
|
-
add_element(
|
50
|
+
add_element(Element::ToggleButton.new(options, block))
|
37
51
|
end
|
38
52
|
|
39
53
|
def check_box(text, options = {}, &block)
|
40
54
|
options[:parent] = element_parent
|
41
55
|
options[:theme] = current_theme
|
42
56
|
|
43
|
-
add_element(
|
57
|
+
add_element(Element::CheckBox.new(text, options, block))
|
44
58
|
end
|
45
59
|
|
46
60
|
def image(path, options = {}, &block)
|
47
61
|
options[:parent] = element_parent
|
48
62
|
options[:theme] = current_theme
|
49
63
|
|
50
|
-
add_element(
|
64
|
+
add_element(Element::Image.new(path, options, block))
|
51
65
|
end
|
52
66
|
|
53
67
|
def progress(options = {}, &block)
|
54
68
|
options[:parent] = element_parent
|
55
69
|
options[:theme] = current_theme
|
56
70
|
|
57
|
-
add_element(
|
71
|
+
add_element(Element::Progress.new(options, block))
|
58
72
|
end
|
59
73
|
|
60
74
|
def slider(options = {}, &block)
|
61
75
|
options[:parent] = element_parent
|
62
76
|
options[:theme] = current_theme
|
63
77
|
|
64
|
-
add_element(
|
78
|
+
add_element(Element::Slider.new(options, block))
|
65
79
|
end
|
66
80
|
|
67
81
|
def background(color = Gosu::Color::NONE)
|
@@ -79,7 +93,7 @@ module CyberarmEngine
|
|
79
93
|
private def add_element(element)
|
80
94
|
element_parent.add(element)
|
81
95
|
|
82
|
-
|
96
|
+
element
|
83
97
|
end
|
84
98
|
|
85
99
|
private def element_parent
|
@@ -100,7 +114,7 @@ module CyberarmEngine
|
|
100
114
|
|
101
115
|
$__current_container__ = old_parent
|
102
116
|
|
103
|
-
|
117
|
+
_container
|
104
118
|
end
|
105
119
|
end
|
106
|
-
end
|
120
|
+
end
|
@@ -16,10 +16,13 @@ module CyberarmEngine
|
|
16
16
|
@focus = false
|
17
17
|
@enabled = true
|
18
18
|
@visible = true
|
19
|
-
@tip = @options[:tip]
|
19
|
+
@tip = @options[:tip] || ""
|
20
20
|
|
21
21
|
@style = Style.new(options)
|
22
22
|
|
23
|
+
@root ||= nil
|
24
|
+
@gui_state ||= nil
|
25
|
+
|
23
26
|
@x = @style.x
|
24
27
|
@y = @style.y
|
25
28
|
@z = @style.z
|
@@ -27,9 +30,6 @@ module CyberarmEngine
|
|
27
30
|
@width = 0
|
28
31
|
@height = 0
|
29
32
|
|
30
|
-
@fixed_x = @x if @x != 0
|
31
|
-
@fixed_y = @y if @y != 0
|
32
|
-
|
33
33
|
@style.width = default(:width) || nil
|
34
34
|
@style.height = default(:height) || nil
|
35
35
|
|
@@ -42,6 +42,7 @@ module CyberarmEngine
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def stylize
|
45
|
+
set_static_position
|
45
46
|
set_border_thickness(@style.border_thickness)
|
46
47
|
|
47
48
|
set_padding(@style.padding)
|
@@ -52,6 +53,11 @@ module CyberarmEngine
|
|
52
53
|
set_border_color(@style.border_color)
|
53
54
|
end
|
54
55
|
|
56
|
+
def set_static_position
|
57
|
+
@x = @style.x if @style.x != 0
|
58
|
+
@y = @style.y if @style.y != 0
|
59
|
+
end
|
60
|
+
|
55
61
|
def set_background(background)
|
56
62
|
@style.background = background
|
57
63
|
@style.background_canvas.background = background
|
@@ -96,7 +102,7 @@ module CyberarmEngine
|
|
96
102
|
end
|
97
103
|
|
98
104
|
def default_events
|
99
|
-
[
|
105
|
+
%i[left middle right].each do |button|
|
100
106
|
event(:"#{button}_mouse_button")
|
101
107
|
event(:"released_#{button}_mouse_button")
|
102
108
|
event(:"clicked_#{button}_mouse_button")
|
@@ -129,21 +135,26 @@ module CyberarmEngine
|
|
129
135
|
end
|
130
136
|
|
131
137
|
def show
|
138
|
+
bool = visible?
|
132
139
|
@visible = true
|
133
|
-
root.gui_state.request_recalculate
|
140
|
+
root.gui_state.request_recalculate unless bool
|
134
141
|
end
|
135
142
|
|
136
143
|
def hide
|
144
|
+
bool = visible?
|
137
145
|
@visible = false
|
138
|
-
root.gui_state.request_recalculate
|
146
|
+
root.gui_state.request_recalculate if bool
|
139
147
|
end
|
140
148
|
|
141
149
|
def draw
|
142
|
-
return unless
|
150
|
+
return unless visible?
|
143
151
|
|
144
152
|
@style.background_canvas.draw
|
145
153
|
@style.border_canvas.draw
|
146
|
-
|
154
|
+
|
155
|
+
Gosu.clip_to(@x, @y, width, height) do
|
156
|
+
render
|
157
|
+
end
|
147
158
|
end
|
148
159
|
|
149
160
|
def update
|
@@ -155,7 +166,7 @@ module CyberarmEngine
|
|
155
166
|
def button_up(id)
|
156
167
|
end
|
157
168
|
|
158
|
-
def draggable?(
|
169
|
+
def draggable?(_button)
|
159
170
|
false
|
160
171
|
end
|
161
172
|
|
@@ -164,7 +175,7 @@ module CyberarmEngine
|
|
164
175
|
|
165
176
|
def hit?(x, y)
|
166
177
|
x.between?(@x, @x + width) &&
|
167
|
-
|
178
|
+
y.between?(@y, @y + height)
|
168
179
|
end
|
169
180
|
|
170
181
|
def width
|
@@ -215,21 +226,20 @@ module CyberarmEngine
|
|
215
226
|
(@style.border_thickness_top + @style.padding_top) + (@style.padding_bottom + @style.border_thickness_bottom)
|
216
227
|
end
|
217
228
|
|
218
|
-
|
219
|
-
raise "dimension must be either :width or :height" unless
|
229
|
+
def dimensional_size(size, dimension)
|
230
|
+
raise "dimension must be either :width or :height" unless %i[width height].include?(dimension)
|
231
|
+
|
220
232
|
if size && size.is_a?(Numeric)
|
221
233
|
if size.between?(0.0, 1.0)
|
222
|
-
((@parent.send(:"content_#{dimension}") -
|
234
|
+
((@parent.send(:"content_#{dimension}") - send(:"noncontent_#{dimension}")) * size).round
|
223
235
|
else
|
224
236
|
size
|
225
237
|
end
|
226
|
-
else
|
227
|
-
nil
|
228
238
|
end
|
229
239
|
end
|
230
240
|
|
231
241
|
def background=(_background)
|
232
|
-
@style.background_canvas.background=(_background)
|
242
|
+
@style.background_canvas.background = (_background)
|
233
243
|
update_background
|
234
244
|
end
|
235
245
|
|
@@ -278,12 +288,12 @@ module CyberarmEngine
|
|
278
288
|
raise "#{self.class}#value was not overridden!"
|
279
289
|
end
|
280
290
|
|
281
|
-
def value=(
|
291
|
+
def value=(_value)
|
282
292
|
raise "#{self.class}#value= was not overridden!"
|
283
293
|
end
|
284
294
|
|
285
295
|
def to_s
|
286
|
-
"#{self.class} x=#{x} y=#{y} width=#{width} height=#{height} value=#{
|
296
|
+
"#{self.class} x=#{x} y=#{y} width=#{width} height=#{height} value=#{value.is_a?(String) ? "\"#{value}\"" : value}"
|
287
297
|
end
|
288
298
|
end
|
289
|
-
end
|
299
|
+
end
|
@@ -1,21 +1,40 @@
|
|
1
1
|
module CyberarmEngine
|
2
2
|
class Element
|
3
3
|
class Button < Label
|
4
|
-
def initialize(
|
5
|
-
|
4
|
+
def initialize(text_or_image, options = {}, block = nil)
|
5
|
+
@image = nil
|
6
|
+
@scale_x = 1
|
7
|
+
@scale_y = 1
|
8
|
+
|
9
|
+
@image = text_or_image if text_or_image.is_a?(Gosu::Image)
|
10
|
+
|
11
|
+
super(text_or_image, options, block)
|
6
12
|
|
7
13
|
@style.background_canvas.background = default(:background)
|
8
14
|
end
|
9
15
|
|
10
16
|
def render
|
11
|
-
|
17
|
+
if @image
|
18
|
+
draw_image
|
19
|
+
else
|
20
|
+
draw_text
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def draw_image
|
25
|
+
@image.draw(
|
26
|
+
@style.border_thickness_left + @style.padding_left + @x,
|
27
|
+
@style.border_thickness_top + @style.padding_top + @y,
|
28
|
+
@z + 2,
|
29
|
+
@scale_x, @scale_y, @text.color
|
30
|
+
)
|
12
31
|
end
|
13
32
|
|
14
33
|
def draw_text
|
15
34
|
@text.draw
|
16
35
|
end
|
17
36
|
|
18
|
-
def enter(
|
37
|
+
def enter(_sender)
|
19
38
|
@focus = false unless window.button_down?(Gosu::MsLeft)
|
20
39
|
|
21
40
|
if @focus
|
@@ -26,42 +45,93 @@ module CyberarmEngine
|
|
26
45
|
@text.color = default(:hover, :color)
|
27
46
|
end
|
28
47
|
|
29
|
-
|
48
|
+
:handled
|
30
49
|
end
|
31
50
|
|
32
|
-
def left_mouse_button(
|
51
|
+
def left_mouse_button(_sender, _x, _y)
|
33
52
|
@focus = true
|
34
53
|
@style.background_canvas.background = default(:active, :background)
|
35
54
|
window.current_state.focus = self
|
36
55
|
@text.color = default(:active, :color)
|
37
56
|
|
38
|
-
|
57
|
+
:handled
|
39
58
|
end
|
40
59
|
|
41
|
-
def released_left_mouse_button(sender,
|
60
|
+
def released_left_mouse_button(sender, _x, _y)
|
42
61
|
enter(sender)
|
43
62
|
|
44
|
-
|
63
|
+
:handled
|
45
64
|
end
|
46
65
|
|
47
|
-
def clicked_left_mouse_button(
|
66
|
+
def clicked_left_mouse_button(_sender, _x, _y)
|
48
67
|
@block.call(self) if @block
|
49
68
|
|
50
|
-
|
69
|
+
:handled
|
51
70
|
end
|
52
71
|
|
53
|
-
def leave(
|
72
|
+
def leave(_sender)
|
54
73
|
@style.background_canvas.background = default(:background)
|
55
74
|
@text.color = default(:color)
|
56
75
|
|
57
|
-
|
76
|
+
:handled
|
58
77
|
end
|
59
78
|
|
60
|
-
def blur(
|
79
|
+
def blur(_sender)
|
61
80
|
@focus = false
|
62
81
|
|
63
|
-
|
82
|
+
:handled
|
83
|
+
end
|
84
|
+
|
85
|
+
def recalculate
|
86
|
+
if @image
|
87
|
+
@width = 0
|
88
|
+
@height = 0
|
89
|
+
|
90
|
+
_width = dimensional_size(@style.image_width, :width)
|
91
|
+
_height = dimensional_size(@style.image_height, :height)
|
92
|
+
|
93
|
+
if _width && _height
|
94
|
+
@scale_x = _width.to_f / @image.width
|
95
|
+
@scale_y = _height.to_f / @image.height
|
96
|
+
elsif _width
|
97
|
+
@scale_x = _width.to_f / @image.width
|
98
|
+
@scale_y = @scale_x
|
99
|
+
elsif _height
|
100
|
+
@scale_y = _height.to_f / @image.height
|
101
|
+
@scale_x = @scale_y
|
102
|
+
else
|
103
|
+
@scale_x = 1
|
104
|
+
@scale_y = 1
|
105
|
+
end
|
106
|
+
|
107
|
+
@width = _width || @image.width.round * @scale_x
|
108
|
+
@height = _height || @image.height.round * @scale_y
|
109
|
+
|
110
|
+
update_background
|
111
|
+
else
|
112
|
+
super
|
113
|
+
end
|
114
|
+
end
|
115
|
+
|
116
|
+
def value
|
117
|
+
@image || super
|
118
|
+
end
|
119
|
+
|
120
|
+
def value=(value)
|
121
|
+
if value.is_a?(Gosu::Image)
|
122
|
+
@image = value
|
123
|
+
else
|
124
|
+
super
|
125
|
+
end
|
126
|
+
|
127
|
+
old_width = width
|
128
|
+
old_height = height
|
129
|
+
recalculate
|
130
|
+
|
131
|
+
root.gui_state.request_recalculate if old_width != width || old_height != height
|
132
|
+
|
133
|
+
publish(:changed, self.value)
|
64
134
|
end
|
65
135
|
end
|
66
136
|
end
|
67
|
-
end
|
137
|
+
end
|
@@ -4,14 +4,14 @@ module CyberarmEngine
|
|
4
4
|
include Common
|
5
5
|
|
6
6
|
attr_accessor :stroke_color, :fill_color
|
7
|
-
attr_reader :children, :gui_state
|
8
|
-
attr_reader :scroll_x, :scroll_y
|
7
|
+
attr_reader :children, :gui_state, :scroll_x, :scroll_y
|
9
8
|
|
10
9
|
def initialize(options = {}, block = nil)
|
11
10
|
@gui_state = options.delete(:gui_state)
|
12
11
|
super
|
13
12
|
|
14
|
-
@scroll_x
|
13
|
+
@scroll_x = 0
|
14
|
+
@scroll_y = 0
|
15
15
|
@scroll_speed = 10
|
16
16
|
|
17
17
|
@text_color = options[:color]
|
@@ -48,6 +48,31 @@ module CyberarmEngine
|
|
48
48
|
Gosu.clip_to(@x, @y, width, height) do
|
49
49
|
@children.each(&:draw)
|
50
50
|
end
|
51
|
+
|
52
|
+
if false # DEBUG
|
53
|
+
Gosu.flush
|
54
|
+
|
55
|
+
Gosu.draw_line(
|
56
|
+
x, y, Gosu::Color::RED,
|
57
|
+
x + outer_width, y, Gosu::Color::RED,
|
58
|
+
Float::INFINITY
|
59
|
+
)
|
60
|
+
Gosu.draw_line(
|
61
|
+
x + outer_width, y, Gosu::Color::RED,
|
62
|
+
x + outer_width, y + outer_height, Gosu::Color::RED,
|
63
|
+
Float::INFINITY
|
64
|
+
)
|
65
|
+
Gosu.draw_line(
|
66
|
+
x + outer_width, y + outer_height, Gosu::Color::RED,
|
67
|
+
x, y + outer_height, Gosu::Color::RED,
|
68
|
+
Float::INFINITY
|
69
|
+
)
|
70
|
+
Gosu.draw_line(
|
71
|
+
x, outer_height, Gosu::Color::RED,
|
72
|
+
x, y, Gosu::Color::RED,
|
73
|
+
Float::INFINITY
|
74
|
+
)
|
75
|
+
end
|
51
76
|
end
|
52
77
|
|
53
78
|
def update
|
@@ -85,13 +110,14 @@ module CyberarmEngine
|
|
85
110
|
@width = @style.width = window.width
|
86
111
|
@height = @style.height = window.height
|
87
112
|
else
|
88
|
-
@width
|
113
|
+
@width = 0
|
114
|
+
@height = 0
|
89
115
|
|
90
116
|
_width = dimensional_size(@style.width, :width)
|
91
|
-
_height= dimensional_size(@style.height
|
117
|
+
_height = dimensional_size(@style.height, :height)
|
92
118
|
|
93
|
-
@width = _width
|
94
|
-
@height = _height
|
119
|
+
@width = _width || (@children.map { |c| c.x + c.outer_width }.max || 0).round
|
120
|
+
@height = _height || (@children.map { |c| c.y + c.outer_height }.max || 0).round
|
95
121
|
end
|
96
122
|
|
97
123
|
# Move child to parent after positioning
|
@@ -115,33 +141,35 @@ module CyberarmEngine
|
|
115
141
|
|
116
142
|
def max_width
|
117
143
|
_width = dimensional_size(@style.width, :width)
|
118
|
-
_width
|
144
|
+
if _width
|
145
|
+
outer_width
|
146
|
+
else
|
147
|
+
window.width - (@parent ? @parent.style.margin_right + @style.margin_right : @style.margin_right)
|
148
|
+
end
|
119
149
|
end
|
120
150
|
|
121
151
|
def fits_on_line?(element) # Flow
|
122
152
|
p [@options[:id], @width] if @options[:id]
|
123
153
|
@current_position.x + element.outer_width <= max_width &&
|
124
|
-
|
154
|
+
@current_position.x + element.outer_width <= window.width
|
125
155
|
end
|
126
156
|
|
127
157
|
def position_on_current_line(element) # Flow
|
128
158
|
element.x = element.style.margin_left + @current_position.x
|
129
159
|
element.y = element.style.margin_top + @current_position.y
|
130
160
|
|
131
|
-
element.recalculate
|
132
|
-
|
133
161
|
@current_position.x += element.outer_width
|
134
162
|
@current_position.x = @style.margin_left if @current_position.x >= max_width
|
135
163
|
end
|
136
164
|
|
137
|
-
def tallest_neighbor(querier,
|
165
|
+
def tallest_neighbor(querier, _y_position) # Flow
|
138
166
|
response = querier
|
139
167
|
@children.each do |child|
|
140
168
|
response = child if child.outer_height > response.outer_height
|
141
169
|
break if child == querier
|
142
170
|
end
|
143
171
|
|
144
|
-
|
172
|
+
response
|
145
173
|
end
|
146
174
|
|
147
175
|
def position_on_next_line(child) # Flow
|
@@ -151,8 +179,6 @@ module CyberarmEngine
|
|
151
179
|
child.x = child.style.margin_left + @current_position.x
|
152
180
|
child.y = child.style.margin_top + @current_position.y
|
153
181
|
|
154
|
-
child.recalculate
|
155
|
-
|
156
182
|
@current_position.x += child.outer_width
|
157
183
|
end
|
158
184
|
|
@@ -160,8 +186,6 @@ module CyberarmEngine
|
|
160
186
|
element.x = element.style.margin_left + @current_position.x
|
161
187
|
element.y = element.style.margin_top + @current_position.y
|
162
188
|
|
163
|
-
element.recalculate
|
164
|
-
|
165
189
|
@current_position.y += element.outer_height
|
166
190
|
end
|
167
191
|
|
@@ -176,17 +200,17 @@ module CyberarmEngine
|
|
176
200
|
# end
|
177
201
|
|
178
202
|
def value
|
179
|
-
@children.map {|c| c.class}.join(", ")
|
203
|
+
@children.map { |c| c.class }.join(", ")
|
180
204
|
end
|
181
205
|
|
182
206
|
def to_s
|
183
207
|
"#{self.class} x=#{x} y=#{y} width=#{width} height=#{height} children=#{@children.size}"
|
184
208
|
end
|
185
209
|
|
186
|
-
def write_tree(indent = "",
|
210
|
+
def write_tree(indent = "", _index = 0)
|
187
211
|
puts self
|
188
212
|
|
189
|
-
indent
|
213
|
+
indent += " "
|
190
214
|
@children.each_with_index do |child, i|
|
191
215
|
print "#{indent}#{i}: "
|
192
216
|
|