cyberarm_engine 0.18.0 → 0.19.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/lib/cyberarm_engine/animator.rb +165 -2
- data/lib/cyberarm_engine/background_nine_slice.rb +51 -34
- data/lib/cyberarm_engine/builtin/intro_state.rb +10 -7
- data/lib/cyberarm_engine/common.rb +14 -2
- data/lib/cyberarm_engine/console/command.rb +158 -0
- data/lib/cyberarm_engine/console/commands/help_command.rb +43 -0
- data/lib/cyberarm_engine/console/subcommand.rb +100 -0
- data/lib/cyberarm_engine/console.rb +248 -0
- data/lib/cyberarm_engine/model.rb +6 -1
- data/lib/cyberarm_engine/opengl/perspective_camera.rb +2 -2
- data/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb +9 -0
- data/lib/cyberarm_engine/text.rb +72 -45
- data/lib/cyberarm_engine/ui/element.rb +60 -11
- data/lib/cyberarm_engine/ui/elements/container.rb +2 -0
- data/lib/cyberarm_engine/ui/elements/text_block.rb +10 -1
- data/lib/cyberarm_engine/ui/event.rb +9 -2
- data/lib/cyberarm_engine/ui/gui_state.rb +1 -1
- data/lib/cyberarm_engine/ui/theme.rb +5 -1
- data/lib/cyberarm_engine/version.rb +1 -1
- data/lib/cyberarm_engine.rb +6 -0
- metadata +6 -2
@@ -36,7 +36,8 @@ module CyberarmEngine
|
|
36
36
|
@style.height = default(:height) || nil
|
37
37
|
|
38
38
|
@style.background_canvas = Background.new
|
39
|
-
@style.
|
39
|
+
@style.background_nine_slice_canvas = BackgroundNineSlice.new
|
40
|
+
@style.border_canvas = BorderCanvas.new(element: self)
|
40
41
|
|
41
42
|
@style_event = :default
|
42
43
|
|
@@ -54,6 +55,7 @@ module CyberarmEngine
|
|
54
55
|
set_margin
|
55
56
|
|
56
57
|
set_background
|
58
|
+
set_background_nine_slice
|
57
59
|
|
58
60
|
set_border_thickness
|
59
61
|
set_border_color
|
@@ -74,6 +76,21 @@ module CyberarmEngine
|
|
74
76
|
@style.background_canvas.background = @style.background
|
75
77
|
end
|
76
78
|
|
79
|
+
def set_background_nine_slice
|
80
|
+
@style.background_nine_slice = safe_style_fetch(:background_nine_slice)
|
81
|
+
|
82
|
+
@style.background_nine_slice_mode = safe_style_fetch(:background_nine_slice_mode) || :stretch
|
83
|
+
@style.background_nine_slice_color = safe_style_fetch(:background_nine_slice_color) || Gosu::Color::WHITE
|
84
|
+
@style.background_nine_slice_canvas.color = @style.background_nine_slice_color
|
85
|
+
|
86
|
+
@style.background_nine_slice_from_edge = safe_style_fetch(:background_nine_slice_from_edge)
|
87
|
+
|
88
|
+
@style.background_nine_slice_left = safe_style_fetch(:background_nine_slice_left) || @style.background_nine_slice_from_edge
|
89
|
+
@style.background_nine_slice_top = safe_style_fetch(:background_nine_slice_top) || @style.background_nine_slice_from_edge
|
90
|
+
@style.background_nine_slice_right = safe_style_fetch(:background_nine_slice_right) || @style.background_nine_slice_from_edge
|
91
|
+
@style.background_nine_slice_bottom = safe_style_fetch(:background_nine_slice_bottom) || @style.background_nine_slice_from_edge
|
92
|
+
end
|
93
|
+
|
77
94
|
def set_border_thickness
|
78
95
|
@style.border_thickness = safe_style_fetch(:border_thickness)
|
79
96
|
|
@@ -118,6 +135,9 @@ module CyberarmEngine
|
|
118
135
|
end
|
119
136
|
|
120
137
|
def update_styles(event = :default)
|
138
|
+
old_width = width
|
139
|
+
old_height = height
|
140
|
+
|
121
141
|
_style = @style.send(event)
|
122
142
|
@style_event = event
|
123
143
|
|
@@ -126,7 +146,13 @@ module CyberarmEngine
|
|
126
146
|
@text.swap_font(_style&.dig(:text_size) || @style.default[:text_size], _style&.dig(:font) || @style.default[:font])
|
127
147
|
end
|
128
148
|
|
129
|
-
|
149
|
+
return if self.is_a?(ToolTip)
|
150
|
+
|
151
|
+
if old_width != width || old_height != height
|
152
|
+
(root&.gui_state || @gui_state).request_recalculate
|
153
|
+
else
|
154
|
+
stylize
|
155
|
+
end
|
130
156
|
end
|
131
157
|
|
132
158
|
def default_events
|
@@ -241,6 +267,7 @@ module CyberarmEngine
|
|
241
267
|
return unless visible?
|
242
268
|
|
243
269
|
@style.background_canvas.draw
|
270
|
+
@style.background_nine_slice_canvas.draw
|
244
271
|
@style.border_canvas.draw
|
245
272
|
|
246
273
|
Gosu.clip_to(@x, @y, width, height) do
|
@@ -343,11 +370,11 @@ module CyberarmEngine
|
|
343
370
|
end
|
344
371
|
|
345
372
|
def scroll_width
|
346
|
-
@children.sum
|
373
|
+
@children.sum(&:width) + noncontent_width
|
347
374
|
end
|
348
375
|
|
349
376
|
def scroll_height
|
350
|
-
@children.sum
|
377
|
+
@children.sum(&:height) + noncontent_height
|
351
378
|
end
|
352
379
|
|
353
380
|
def max_scroll_width
|
@@ -361,12 +388,10 @@ module CyberarmEngine
|
|
361
388
|
def dimensional_size(size, dimension)
|
362
389
|
raise "dimension must be either :width or :height" unless %i[width height].include?(dimension)
|
363
390
|
|
364
|
-
if size && size.
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
size
|
369
|
-
end
|
391
|
+
if size.is_a?(Numeric) && size.between?(0.0, 1.0)
|
392
|
+
(@parent.send(:"content_#{dimension}") * size).round - send(:"noncontent_#{dimension}").round
|
393
|
+
else
|
394
|
+
size
|
370
395
|
end
|
371
396
|
end
|
372
397
|
|
@@ -383,10 +408,34 @@ module CyberarmEngine
|
|
383
408
|
@style.background_canvas.height = height
|
384
409
|
|
385
410
|
@style.background_canvas.update
|
386
|
-
|
411
|
+
update_background_nine_slice
|
387
412
|
@style.border_canvas.update
|
388
413
|
end
|
389
414
|
|
415
|
+
def background_nine_slice=(_image_path)
|
416
|
+
@style.background_nine_slice_canvas.image = _image_path
|
417
|
+
update_background_nine_slice
|
418
|
+
end
|
419
|
+
|
420
|
+
def update_background_nine_slice
|
421
|
+
@style.background_nine_slice_canvas.x = @x
|
422
|
+
@style.background_nine_slice_canvas.y = @y
|
423
|
+
@style.background_nine_slice_canvas.z = @z
|
424
|
+
@style.background_nine_slice_canvas.width = width
|
425
|
+
@style.background_nine_slice_canvas.height = height
|
426
|
+
|
427
|
+
@style.background_nine_slice_canvas.mode = @style.background_nine_slice_mode
|
428
|
+
|
429
|
+
@style.background_nine_slice_canvas.color = @style.background_nine_slice_color
|
430
|
+
|
431
|
+
@style.background_nine_slice_canvas.left = @style.background_nine_slice_left
|
432
|
+
@style.background_nine_slice_canvas.top = @style.background_nine_slice_top
|
433
|
+
@style.background_nine_slice_canvas.right = @style.background_nine_slice_right
|
434
|
+
@style.background_nine_slice_canvas.bottom = @style.background_nine_slice_bottom
|
435
|
+
|
436
|
+
@style.background_nine_slice_canvas.image = @style.background_nine_slice
|
437
|
+
end
|
438
|
+
|
390
439
|
def root
|
391
440
|
return self if is_root?
|
392
441
|
|
@@ -8,7 +8,10 @@ module CyberarmEngine
|
|
8
8
|
text, font: @options[:font], z: @z, color: @options[:color],
|
9
9
|
size: @options[:text_size], shadow: @options[:text_shadow],
|
10
10
|
shadow_size: @options[:text_shadow_size],
|
11
|
-
shadow_color: @options[:text_shadow_color]
|
11
|
+
shadow_color: @options[:text_shadow_color],
|
12
|
+
border: @options[:text_border],
|
13
|
+
border_size: @options[:text_border_size],
|
14
|
+
border_color: @options[:text_border_color]
|
12
15
|
)
|
13
16
|
|
14
17
|
@raw_text = text
|
@@ -19,6 +22,12 @@ module CyberarmEngine
|
|
19
22
|
end
|
20
23
|
|
21
24
|
def recalculate
|
25
|
+
unless @enabled
|
26
|
+
@text.color = @style.disabled[:color]
|
27
|
+
else
|
28
|
+
@text.color = @style.color
|
29
|
+
end
|
30
|
+
|
22
31
|
@width = 0
|
23
32
|
@height = 0
|
24
33
|
|
@@ -15,12 +15,19 @@ module CyberarmEngine
|
|
15
15
|
|
16
16
|
return unless enabled?
|
17
17
|
|
18
|
-
|
18
|
+
was_handled = false
|
19
|
+
|
20
|
+
was_handled = true if respond_to?(event) && (send(event, self, *args) == :handled)
|
19
21
|
|
20
22
|
@event_handler[event].reverse_each do |handler|
|
21
|
-
|
23
|
+
if handler.call(self, *args) == :handled
|
24
|
+
was_handled = true
|
25
|
+
break
|
26
|
+
end
|
22
27
|
end
|
23
28
|
|
29
|
+
return :handled if was_handled
|
30
|
+
|
24
31
|
parent.publish(event, *args) if parent
|
25
32
|
nil
|
26
33
|
end
|
@@ -103,7 +103,7 @@ module CyberarmEngine
|
|
103
103
|
if Vector.new(window.mouse_x, window.mouse_y) == @last_mouse_pos
|
104
104
|
if @mouse_over && (Gosu.milliseconds - @mouse_moved_at) > tool_tip_delay
|
105
105
|
@tip.value = @mouse_over.tip if @mouse_over
|
106
|
-
@tip.x = window.mouse_x
|
106
|
+
@tip.x = window.mouse_x
|
107
107
|
@tip.x = 0 if @tip.x < 0
|
108
108
|
@tip.x = window.width - @tip.width if @tip.x + @tip.width > window.width
|
109
109
|
@tip.y = window.mouse_y - (@tip.height + 5)
|
@@ -115,10 +115,14 @@ module CyberarmEngine
|
|
115
115
|
text_size: 28,
|
116
116
|
text_wrap: :word_wrap, # :word_wrap, :break_word, :none
|
117
117
|
text_shadow: false,
|
118
|
+
text_border: false,
|
118
119
|
text_align: :left,
|
119
120
|
font: "Arial",
|
120
121
|
margin: 0,
|
121
|
-
padding: 2
|
122
|
+
padding: 2,
|
123
|
+
disabled: {
|
124
|
+
color: Gosu::Color.rgb(175, 175, 175),
|
125
|
+
}
|
122
126
|
},
|
123
127
|
|
124
128
|
Banner: { # < TextBlock
|
data/lib/cyberarm_engine.rb
CHANGED
@@ -23,12 +23,18 @@ require_relative "cyberarm_engine/vector"
|
|
23
23
|
require_relative "cyberarm_engine/transform"
|
24
24
|
require_relative "cyberarm_engine/ray"
|
25
25
|
require_relative "cyberarm_engine/background"
|
26
|
+
require_relative "cyberarm_engine/background_nine_slice"
|
26
27
|
require_relative "cyberarm_engine/animator"
|
27
28
|
|
28
29
|
require_relative "cyberarm_engine/text"
|
29
30
|
require_relative "cyberarm_engine/timer"
|
30
31
|
require_relative "cyberarm_engine/config_file"
|
31
32
|
|
33
|
+
require_relative "cyberarm_engine/console"
|
34
|
+
require_relative "cyberarm_engine/console/command"
|
35
|
+
require_relative "cyberarm_engine/console/subcommand"
|
36
|
+
require_relative "cyberarm_engine/console/commands/help_command"
|
37
|
+
|
32
38
|
require_relative "cyberarm_engine/ui/dsl"
|
33
39
|
|
34
40
|
require_relative "cyberarm_engine/ui/theme"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cyberarm_engine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.19.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cyberarm
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: clipboard
|
@@ -137,6 +137,10 @@ files:
|
|
137
137
|
- lib/cyberarm_engine/cache/download_manager.rb
|
138
138
|
- lib/cyberarm_engine/common.rb
|
139
139
|
- lib/cyberarm_engine/config_file.rb
|
140
|
+
- lib/cyberarm_engine/console.rb
|
141
|
+
- lib/cyberarm_engine/console/command.rb
|
142
|
+
- lib/cyberarm_engine/console/commands/help_command.rb
|
143
|
+
- lib/cyberarm_engine/console/subcommand.rb
|
140
144
|
- lib/cyberarm_engine/game_object.rb
|
141
145
|
- lib/cyberarm_engine/game_state.rb
|
142
146
|
- lib/cyberarm_engine/model.rb
|