cyberarm_engine 0.25.0 → 0.25.1
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/.gitignore +8 -8
- data/.rubocop.yml +7 -7
- data/.travis.yml +5 -5
- data/Gemfile +6 -6
- data/Gemfile.lock +25 -25
- data/LICENSE.txt +21 -21
- data/README.md +74 -74
- data/Rakefile +10 -10
- data/assets/shaders/fragment/g_buffer.glsl +30 -30
- data/assets/shaders/fragment/lighting.glsl +115 -115
- data/assets/shaders/include/light_struct.glsl +11 -11
- data/assets/shaders/include/material_struct.glsl +16 -16
- data/assets/shaders/vertex/g_buffer.glsl +28 -28
- data/assets/shaders/vertex/lighting.glsl +24 -24
- data/bin/console +14 -14
- data/bin/setup +8 -8
- data/cyberarm_engine.gemspec +36 -36
- data/lib/cyberarm_engine/animator.rb +219 -219
- data/lib/cyberarm_engine/background.rb +158 -158
- data/lib/cyberarm_engine/background_image.rb +93 -93
- data/lib/cyberarm_engine/background_nine_slice.rb +142 -142
- data/lib/cyberarm_engine/bounding_box.rb +150 -150
- data/lib/cyberarm_engine/builtin/intro_state.rb +130 -130
- data/lib/cyberarm_engine/cache/download_manager.rb +123 -123
- data/lib/cyberarm_engine/cache.rb +4 -4
- data/lib/cyberarm_engine/common.rb +131 -131
- data/lib/cyberarm_engine/config_file.rb +46 -46
- data/lib/cyberarm_engine/console/command.rb +157 -157
- data/lib/cyberarm_engine/console/commands/help_command.rb +43 -43
- data/lib/cyberarm_engine/console/subcommand.rb +99 -99
- data/lib/cyberarm_engine/console.rb +248 -248
- data/lib/cyberarm_engine/game_object.rb +244 -244
- data/lib/cyberarm_engine/game_state.rb +124 -124
- data/lib/cyberarm_engine/gosu_ext/draw_arc.rb +111 -111
- data/lib/cyberarm_engine/gosu_ext/draw_circle.rb +30 -30
- data/lib/cyberarm_engine/gosu_ext/draw_path.rb +17 -17
- data/lib/cyberarm_engine/model/material.rb +21 -21
- data/lib/cyberarm_engine/model/mesh.rb +131 -131
- data/lib/cyberarm_engine/model/parser.rb +74 -74
- data/lib/cyberarm_engine/model/parsers/collada_parser.rb +138 -138
- data/lib/cyberarm_engine/model/parsers/wavefront_parser.rb +154 -154
- data/lib/cyberarm_engine/model.rb +216 -216
- data/lib/cyberarm_engine/model_cache.rb +31 -31
- data/lib/cyberarm_engine/notification.rb +82 -82
- data/lib/cyberarm_engine/notification_manager.rb +241 -241
- data/lib/cyberarm_engine/opengl/light.rb +52 -52
- data/lib/cyberarm_engine/opengl/orthographic_camera.rb +46 -46
- data/lib/cyberarm_engine/opengl/perspective_camera.rb +41 -41
- data/lib/cyberarm_engine/opengl/renderer/bounding_box_renderer.rb +249 -249
- data/lib/cyberarm_engine/opengl/renderer/g_buffer.rb +167 -167
- data/lib/cyberarm_engine/opengl/renderer/opengl_renderer.rb +307 -307
- data/lib/cyberarm_engine/opengl/renderer/renderer.rb +33 -33
- data/lib/cyberarm_engine/opengl/shader.rb +408 -408
- data/lib/cyberarm_engine/opengl/texture.rb +69 -69
- data/lib/cyberarm_engine/opengl.rb +53 -53
- data/lib/cyberarm_engine/ray.rb +56 -56
- data/lib/cyberarm_engine/result.rb +20 -0
- data/lib/cyberarm_engine/stats.rb +200 -200
- data/lib/cyberarm_engine/text.rb +260 -260
- data/lib/cyberarm_engine/timer.rb +23 -23
- data/lib/cyberarm_engine/transform.rb +296 -296
- data/lib/cyberarm_engine/trees/aabb_node.rb +126 -126
- data/lib/cyberarm_engine/trees/aabb_tree.rb +55 -55
- data/lib/cyberarm_engine/trees/aabb_tree_debug.rb +29 -29
- data/lib/cyberarm_engine/ui/border_canvas.rb +102 -102
- data/lib/cyberarm_engine/ui/dsl.rb +142 -142
- data/lib/cyberarm_engine/ui/element.rb +662 -662
- data/lib/cyberarm_engine/ui/elements/button.rb +100 -100
- data/lib/cyberarm_engine/ui/elements/check_box.rb +54 -54
- data/lib/cyberarm_engine/ui/elements/container.rb +407 -407
- data/lib/cyberarm_engine/ui/elements/edit_box.rb +179 -179
- data/lib/cyberarm_engine/ui/elements/edit_line.rb +297 -297
- data/lib/cyberarm_engine/ui/elements/flow.rb +15 -15
- data/lib/cyberarm_engine/ui/elements/image.rb +72 -72
- data/lib/cyberarm_engine/ui/elements/list_box.rb +79 -79
- data/lib/cyberarm_engine/ui/elements/menu.rb +27 -27
- data/lib/cyberarm_engine/ui/elements/menu_item.rb +6 -6
- data/lib/cyberarm_engine/ui/elements/progress.rb +93 -93
- data/lib/cyberarm_engine/ui/elements/radio.rb +6 -6
- data/lib/cyberarm_engine/ui/elements/slider.rb +107 -107
- data/lib/cyberarm_engine/ui/elements/stack.rb +11 -11
- data/lib/cyberarm_engine/ui/elements/text_block.rb +222 -222
- data/lib/cyberarm_engine/ui/elements/toggle_button.rb +67 -67
- data/lib/cyberarm_engine/ui/event.rb +54 -54
- data/lib/cyberarm_engine/ui/gui_state.rb +326 -326
- data/lib/cyberarm_engine/ui/style.rb +61 -61
- data/lib/cyberarm_engine/ui/theme.rb +225 -225
- data/lib/cyberarm_engine/vector.rb +312 -312
- data/lib/cyberarm_engine/version.rb +4 -4
- data/lib/cyberarm_engine/window.rb +195 -195
- data/lib/cyberarm_engine.rb +77 -76
- data/mrbgem.rake +29 -29
- metadata +4 -3
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
module Gosu
|
|
2
|
-
class Color
|
|
3
|
-
def _dump(_level)
|
|
4
|
-
[
|
|
5
|
-
"%02X" % alpha,
|
|
6
|
-
"%02X" % red,
|
|
7
|
-
"%02X" % green,
|
|
8
|
-
"%02X" % blue
|
|
9
|
-
].join
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def self._load(hex)
|
|
13
|
-
argb(hex.to_i(16))
|
|
14
|
-
end
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
module CyberarmEngine
|
|
19
|
-
class Style
|
|
20
|
-
attr_reader :hash
|
|
21
|
-
|
|
22
|
-
%i[
|
|
23
|
-
x y z width height min_width min_height max_width max_height color background
|
|
24
|
-
background_image background_image_mode background_image_color
|
|
25
|
-
background_nine_slice background_nine_slice_mode background_nine_slice_color background_nine_slice_from_edge
|
|
26
|
-
background_nine_slice_left background_nine_slice_top background_nine_slice_right background_nine_slice_bottom
|
|
27
|
-
border_color border_color_left border_color_right border_color_top border_color_bottom
|
|
28
|
-
border_thickness border_thickness_left border_thickness_right border_thickness_top border_thickness_bottom
|
|
29
|
-
padding padding_left padding_right padding_top padding_bottom
|
|
30
|
-
margin margin_left margin_right margin_top margin_bottom
|
|
31
|
-
background_canvas background_nine_slice_canvas background_image_canvas border_canvas
|
|
32
|
-
|
|
33
|
-
fraction_background scroll fill text_wrap v_align h_align delay tag
|
|
34
|
-
image_width image_height
|
|
35
|
-
|
|
36
|
-
default hover active disabled
|
|
37
|
-
].each do |item|
|
|
38
|
-
define_method(item) do
|
|
39
|
-
@hash[item]
|
|
40
|
-
end
|
|
41
|
-
define_method(:"#{item}=") do |value|
|
|
42
|
-
@hash[item] = value
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def initialize(hash = {})
|
|
47
|
-
h = hash
|
|
48
|
-
# h = Marshal.load(Marshal.dump(hash))
|
|
49
|
-
|
|
50
|
-
h[:default] = {}
|
|
51
|
-
|
|
52
|
-
h.each do |key, value|
|
|
53
|
-
next if value.is_a?(Hash)
|
|
54
|
-
|
|
55
|
-
h[:default][key] = value
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
@hash = h
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
1
|
+
module Gosu
|
|
2
|
+
class Color
|
|
3
|
+
def _dump(_level)
|
|
4
|
+
[
|
|
5
|
+
"%02X" % alpha,
|
|
6
|
+
"%02X" % red,
|
|
7
|
+
"%02X" % green,
|
|
8
|
+
"%02X" % blue
|
|
9
|
+
].join
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def self._load(hex)
|
|
13
|
+
argb(hex.to_i(16))
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
module CyberarmEngine
|
|
19
|
+
class Style
|
|
20
|
+
attr_reader :hash
|
|
21
|
+
|
|
22
|
+
%i[
|
|
23
|
+
x y z width height min_width min_height max_width max_height color background
|
|
24
|
+
background_image background_image_mode background_image_color
|
|
25
|
+
background_nine_slice background_nine_slice_mode background_nine_slice_color background_nine_slice_from_edge
|
|
26
|
+
background_nine_slice_left background_nine_slice_top background_nine_slice_right background_nine_slice_bottom
|
|
27
|
+
border_color border_color_left border_color_right border_color_top border_color_bottom
|
|
28
|
+
border_thickness border_thickness_left border_thickness_right border_thickness_top border_thickness_bottom
|
|
29
|
+
padding padding_left padding_right padding_top padding_bottom
|
|
30
|
+
margin margin_left margin_right margin_top margin_bottom
|
|
31
|
+
background_canvas background_nine_slice_canvas background_image_canvas border_canvas
|
|
32
|
+
|
|
33
|
+
fraction_background scroll fill text_wrap v_align h_align delay tag
|
|
34
|
+
image_width image_height
|
|
35
|
+
|
|
36
|
+
default hover active disabled
|
|
37
|
+
].each do |item|
|
|
38
|
+
define_method(item) do
|
|
39
|
+
@hash[item]
|
|
40
|
+
end
|
|
41
|
+
define_method(:"#{item}=") do |value|
|
|
42
|
+
@hash[item] = value
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def initialize(hash = {})
|
|
47
|
+
h = hash
|
|
48
|
+
# h = Marshal.load(Marshal.dump(hash))
|
|
49
|
+
|
|
50
|
+
h[:default] = {}
|
|
51
|
+
|
|
52
|
+
h.each do |key, value|
|
|
53
|
+
next if value.is_a?(Hash)
|
|
54
|
+
|
|
55
|
+
h[:default][key] = value
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
@hash = h
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -1,225 +1,225 @@
|
|
|
1
|
-
module CyberarmEngine
|
|
2
|
-
module Theme
|
|
3
|
-
def default(*args)
|
|
4
|
-
value = @options
|
|
5
|
-
args.each do |arg|
|
|
6
|
-
value = value.dig(arg)
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
value
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
def theme_defaults(options)
|
|
13
|
-
raise "Error" unless self.class.ancestors.include?(CyberarmEngine::Element)
|
|
14
|
-
|
|
15
|
-
_theme = THEME
|
|
16
|
-
_theme = deep_merge(_theme, options[:theme]) if options[:theme]
|
|
17
|
-
_theme.delete(:theme) if options[:theme]
|
|
18
|
-
|
|
19
|
-
hash = {}
|
|
20
|
-
class_names = self.class.ancestors
|
|
21
|
-
class_names = class_names[0..class_names.index(CyberarmEngine::Element)].map! do |c|
|
|
22
|
-
c.to_s.split("::").last.to_sym
|
|
23
|
-
end.reverse!
|
|
24
|
-
|
|
25
|
-
class_names.each do |klass|
|
|
26
|
-
next unless data = _theme.dig(klass)
|
|
27
|
-
|
|
28
|
-
data.each do |_key, _value|
|
|
29
|
-
hash.merge!(data)
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
deep_merge(hash, options)
|
|
34
|
-
end
|
|
35
|
-
|
|
36
|
-
# Derived from Rails Hash#deep_merge!
|
|
37
|
-
# Enables passing partial themes through Element options without issue
|
|
38
|
-
def deep_merge(original, intergrate, &block)
|
|
39
|
-
original.merge(intergrate) do |key, this_val, other_val|
|
|
40
|
-
if this_val.is_a?(Hash) && other_val.is_a?(Hash)
|
|
41
|
-
deep_merge(this_val, other_val, &block)
|
|
42
|
-
elsif block_given?
|
|
43
|
-
block.call(key, this_val, other_val)
|
|
44
|
-
else
|
|
45
|
-
other_val
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
THEME = {
|
|
51
|
-
Element: {
|
|
52
|
-
x: 0,
|
|
53
|
-
y: 0,
|
|
54
|
-
z: 30,
|
|
55
|
-
|
|
56
|
-
width: nil,
|
|
57
|
-
height: nil,
|
|
58
|
-
color: Gosu::Color::WHITE,
|
|
59
|
-
background: Gosu::Color::NONE,
|
|
60
|
-
margin: 0,
|
|
61
|
-
padding: 0,
|
|
62
|
-
border_thickness: 0,
|
|
63
|
-
border_color: Gosu::Color::NONE,
|
|
64
|
-
border_radius: 0
|
|
65
|
-
},
|
|
66
|
-
|
|
67
|
-
Container: { # < Element (Base class for Stack and Flow)
|
|
68
|
-
debug_color: Gosu::Color::YELLOW
|
|
69
|
-
},
|
|
70
|
-
|
|
71
|
-
Button: { # < Label
|
|
72
|
-
margin: 1,
|
|
73
|
-
padding: 4,
|
|
74
|
-
border_thickness: 1,
|
|
75
|
-
border_color: ["ffd59674".hex, "ffff8746".hex],
|
|
76
|
-
border_radius: 0,
|
|
77
|
-
background: ["ffc75e61".to_i(16), "ffe26623".to_i(16)],
|
|
78
|
-
text_align: :center,
|
|
79
|
-
text_v_align: :center,
|
|
80
|
-
text_wrap: :none,
|
|
81
|
-
|
|
82
|
-
hover: {
|
|
83
|
-
color: Gosu::Color.rgb(200, 200, 200),
|
|
84
|
-
background: ["ffB23E41".to_i(16), "ffFF7C00".to_i(16)]
|
|
85
|
-
},
|
|
86
|
-
|
|
87
|
-
active: {
|
|
88
|
-
color: Gosu::Color::BLACK,
|
|
89
|
-
background: ["ffB23E41".to_i(16)]
|
|
90
|
-
},
|
|
91
|
-
|
|
92
|
-
disabled: {
|
|
93
|
-
color: Gosu::Color::GRAY,
|
|
94
|
-
background: 0xff303030
|
|
95
|
-
}
|
|
96
|
-
},
|
|
97
|
-
|
|
98
|
-
EditLine: { # < Button
|
|
99
|
-
type: :text,
|
|
100
|
-
width: 200,
|
|
101
|
-
password_character: "•",
|
|
102
|
-
caret_width: 2,
|
|
103
|
-
caret_color: Gosu::Color::WHITE,
|
|
104
|
-
caret_interval: 500,
|
|
105
|
-
selection_color: Gosu::Color.rgba(255, 128, 50, 200),
|
|
106
|
-
text_align: :left,
|
|
107
|
-
text_static: false # static text causes issues correctly displaying caret position
|
|
108
|
-
},
|
|
109
|
-
|
|
110
|
-
EditBox: { # < EditLine
|
|
111
|
-
text_v_align: :top
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
Image: { # < Element
|
|
115
|
-
color: Gosu::Color::WHITE,
|
|
116
|
-
tileable: false,
|
|
117
|
-
retro: false
|
|
118
|
-
},
|
|
119
|
-
|
|
120
|
-
TextBlock: { # < Element
|
|
121
|
-
text_size: 28,
|
|
122
|
-
text_wrap: :word_wrap, # :word_wrap, :break_word, :none
|
|
123
|
-
text_shadow: false,
|
|
124
|
-
text_border: false,
|
|
125
|
-
text_align: :left,
|
|
126
|
-
font: "Arial",
|
|
127
|
-
margin: 0,
|
|
128
|
-
padding: 2,
|
|
129
|
-
disabled: {
|
|
130
|
-
color: Gosu::Color.rgb(175, 175, 175),
|
|
131
|
-
}
|
|
132
|
-
},
|
|
133
|
-
|
|
134
|
-
Banner: { # < TextBlock
|
|
135
|
-
text_size: 48
|
|
136
|
-
},
|
|
137
|
-
|
|
138
|
-
Title: { # < TextBlock
|
|
139
|
-
text_size: 34
|
|
140
|
-
},
|
|
141
|
-
|
|
142
|
-
Subtitle: { # < TextBlock
|
|
143
|
-
text_size: 26
|
|
144
|
-
},
|
|
145
|
-
|
|
146
|
-
Tagline: { # < TextBlock
|
|
147
|
-
text_size: 24
|
|
148
|
-
},
|
|
149
|
-
|
|
150
|
-
Caption: { # < TextBlock
|
|
151
|
-
text_size: 22
|
|
152
|
-
},
|
|
153
|
-
|
|
154
|
-
Para: { # < TextBlock
|
|
155
|
-
text_size: 18
|
|
156
|
-
},
|
|
157
|
-
|
|
158
|
-
Inscription: { # < TextBlock
|
|
159
|
-
text_size: 16
|
|
160
|
-
},
|
|
161
|
-
|
|
162
|
-
ToolTip: { # < TextBlock
|
|
163
|
-
delay: 100, # ms
|
|
164
|
-
color: Gosu::Color::WHITE,
|
|
165
|
-
padding_top: 4,
|
|
166
|
-
padding_bottom: 4,
|
|
167
|
-
padding_left: 8,
|
|
168
|
-
padding_right: 8,
|
|
169
|
-
border_thickness: 1,
|
|
170
|
-
border_color: 0xffaaaaaa,
|
|
171
|
-
background: 0xff404040
|
|
172
|
-
},
|
|
173
|
-
Link: { # < TextBlock
|
|
174
|
-
color: Gosu::Color::BLUE,
|
|
175
|
-
border_thickness: 1,
|
|
176
|
-
border_bottom_color: Gosu::Color::BLUE,
|
|
177
|
-
hover: {
|
|
178
|
-
color: 0xff_ff00ff,
|
|
179
|
-
border_bottom_color: 0xff_ff00ff
|
|
180
|
-
},
|
|
181
|
-
active: {
|
|
182
|
-
color: 0xff_ff0000,
|
|
183
|
-
border_bottom_color: 0xff_ff0000
|
|
184
|
-
}
|
|
185
|
-
},
|
|
186
|
-
|
|
187
|
-
ToggleButton: { # < Button
|
|
188
|
-
checkmark: "√"
|
|
189
|
-
},
|
|
190
|
-
|
|
191
|
-
CheckBox: { # < Flow
|
|
192
|
-
text_wrap: :none
|
|
193
|
-
},
|
|
194
|
-
|
|
195
|
-
Progress: { # < Element
|
|
196
|
-
width: 250,
|
|
197
|
-
height: 36,
|
|
198
|
-
background: 0xff111111,
|
|
199
|
-
fraction_background: [0xffc75e61, 0xffe26623],
|
|
200
|
-
border_thickness: 1,
|
|
201
|
-
border_color: [0xffd59674, 0xffff8746]
|
|
202
|
-
},
|
|
203
|
-
|
|
204
|
-
Slider: { # < Element
|
|
205
|
-
width: 250,
|
|
206
|
-
height: 36,
|
|
207
|
-
background: 0xff111111,
|
|
208
|
-
fraction_background: [0xffc75e61, 0xffe26623],
|
|
209
|
-
border_thickness: 1,
|
|
210
|
-
border_color: [0xffd59674, 0xffff8746]
|
|
211
|
-
},
|
|
212
|
-
Menu: { # < Stack
|
|
213
|
-
width: 200,
|
|
214
|
-
border_color: 0xaa_efefef,
|
|
215
|
-
border_thickness: 1
|
|
216
|
-
},
|
|
217
|
-
|
|
218
|
-
MenuItem: { # < Button
|
|
219
|
-
width: 1.0,
|
|
220
|
-
text_left: :left,
|
|
221
|
-
margin: 0
|
|
222
|
-
}
|
|
223
|
-
}.freeze
|
|
224
|
-
end
|
|
225
|
-
end
|
|
1
|
+
module CyberarmEngine
|
|
2
|
+
module Theme
|
|
3
|
+
def default(*args)
|
|
4
|
+
value = @options
|
|
5
|
+
args.each do |arg|
|
|
6
|
+
value = value.dig(arg)
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
value
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def theme_defaults(options)
|
|
13
|
+
raise "Error" unless self.class.ancestors.include?(CyberarmEngine::Element)
|
|
14
|
+
|
|
15
|
+
_theme = THEME
|
|
16
|
+
_theme = deep_merge(_theme, options[:theme]) if options[:theme]
|
|
17
|
+
_theme.delete(:theme) if options[:theme]
|
|
18
|
+
|
|
19
|
+
hash = {}
|
|
20
|
+
class_names = self.class.ancestors
|
|
21
|
+
class_names = class_names[0..class_names.index(CyberarmEngine::Element)].map! do |c|
|
|
22
|
+
c.to_s.split("::").last.to_sym
|
|
23
|
+
end.reverse!
|
|
24
|
+
|
|
25
|
+
class_names.each do |klass|
|
|
26
|
+
next unless data = _theme.dig(klass)
|
|
27
|
+
|
|
28
|
+
data.each do |_key, _value|
|
|
29
|
+
hash.merge!(data)
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
deep_merge(hash, options)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Derived from Rails Hash#deep_merge!
|
|
37
|
+
# Enables passing partial themes through Element options without issue
|
|
38
|
+
def deep_merge(original, intergrate, &block)
|
|
39
|
+
original.merge(intergrate) do |key, this_val, other_val|
|
|
40
|
+
if this_val.is_a?(Hash) && other_val.is_a?(Hash)
|
|
41
|
+
deep_merge(this_val, other_val, &block)
|
|
42
|
+
elsif block_given?
|
|
43
|
+
block.call(key, this_val, other_val)
|
|
44
|
+
else
|
|
45
|
+
other_val
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
THEME = {
|
|
51
|
+
Element: {
|
|
52
|
+
x: 0,
|
|
53
|
+
y: 0,
|
|
54
|
+
z: 30,
|
|
55
|
+
|
|
56
|
+
width: nil,
|
|
57
|
+
height: nil,
|
|
58
|
+
color: Gosu::Color::WHITE,
|
|
59
|
+
background: Gosu::Color::NONE,
|
|
60
|
+
margin: 0,
|
|
61
|
+
padding: 0,
|
|
62
|
+
border_thickness: 0,
|
|
63
|
+
border_color: Gosu::Color::NONE,
|
|
64
|
+
border_radius: 0
|
|
65
|
+
},
|
|
66
|
+
|
|
67
|
+
Container: { # < Element (Base class for Stack and Flow)
|
|
68
|
+
debug_color: Gosu::Color::YELLOW
|
|
69
|
+
},
|
|
70
|
+
|
|
71
|
+
Button: { # < Label
|
|
72
|
+
margin: 1,
|
|
73
|
+
padding: 4,
|
|
74
|
+
border_thickness: 1,
|
|
75
|
+
border_color: ["ffd59674".hex, "ffff8746".hex],
|
|
76
|
+
border_radius: 0,
|
|
77
|
+
background: ["ffc75e61".to_i(16), "ffe26623".to_i(16)],
|
|
78
|
+
text_align: :center,
|
|
79
|
+
text_v_align: :center,
|
|
80
|
+
text_wrap: :none,
|
|
81
|
+
|
|
82
|
+
hover: {
|
|
83
|
+
color: Gosu::Color.rgb(200, 200, 200),
|
|
84
|
+
background: ["ffB23E41".to_i(16), "ffFF7C00".to_i(16)]
|
|
85
|
+
},
|
|
86
|
+
|
|
87
|
+
active: {
|
|
88
|
+
color: Gosu::Color::BLACK,
|
|
89
|
+
background: ["ffB23E41".to_i(16)]
|
|
90
|
+
},
|
|
91
|
+
|
|
92
|
+
disabled: {
|
|
93
|
+
color: Gosu::Color::GRAY,
|
|
94
|
+
background: 0xff303030
|
|
95
|
+
}
|
|
96
|
+
},
|
|
97
|
+
|
|
98
|
+
EditLine: { # < Button
|
|
99
|
+
type: :text,
|
|
100
|
+
width: 200,
|
|
101
|
+
password_character: "•",
|
|
102
|
+
caret_width: 2,
|
|
103
|
+
caret_color: Gosu::Color::WHITE,
|
|
104
|
+
caret_interval: 500,
|
|
105
|
+
selection_color: Gosu::Color.rgba(255, 128, 50, 200),
|
|
106
|
+
text_align: :left,
|
|
107
|
+
text_static: false # static text causes issues correctly displaying caret position
|
|
108
|
+
},
|
|
109
|
+
|
|
110
|
+
EditBox: { # < EditLine
|
|
111
|
+
text_v_align: :top
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
Image: { # < Element
|
|
115
|
+
color: Gosu::Color::WHITE,
|
|
116
|
+
tileable: false,
|
|
117
|
+
retro: false
|
|
118
|
+
},
|
|
119
|
+
|
|
120
|
+
TextBlock: { # < Element
|
|
121
|
+
text_size: 28,
|
|
122
|
+
text_wrap: :word_wrap, # :word_wrap, :break_word, :none
|
|
123
|
+
text_shadow: false,
|
|
124
|
+
text_border: false,
|
|
125
|
+
text_align: :left,
|
|
126
|
+
font: "Arial",
|
|
127
|
+
margin: 0,
|
|
128
|
+
padding: 2,
|
|
129
|
+
disabled: {
|
|
130
|
+
color: Gosu::Color.rgb(175, 175, 175),
|
|
131
|
+
}
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
Banner: { # < TextBlock
|
|
135
|
+
text_size: 48
|
|
136
|
+
},
|
|
137
|
+
|
|
138
|
+
Title: { # < TextBlock
|
|
139
|
+
text_size: 34
|
|
140
|
+
},
|
|
141
|
+
|
|
142
|
+
Subtitle: { # < TextBlock
|
|
143
|
+
text_size: 26
|
|
144
|
+
},
|
|
145
|
+
|
|
146
|
+
Tagline: { # < TextBlock
|
|
147
|
+
text_size: 24
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
Caption: { # < TextBlock
|
|
151
|
+
text_size: 22
|
|
152
|
+
},
|
|
153
|
+
|
|
154
|
+
Para: { # < TextBlock
|
|
155
|
+
text_size: 18
|
|
156
|
+
},
|
|
157
|
+
|
|
158
|
+
Inscription: { # < TextBlock
|
|
159
|
+
text_size: 16
|
|
160
|
+
},
|
|
161
|
+
|
|
162
|
+
ToolTip: { # < TextBlock
|
|
163
|
+
delay: 100, # ms
|
|
164
|
+
color: Gosu::Color::WHITE,
|
|
165
|
+
padding_top: 4,
|
|
166
|
+
padding_bottom: 4,
|
|
167
|
+
padding_left: 8,
|
|
168
|
+
padding_right: 8,
|
|
169
|
+
border_thickness: 1,
|
|
170
|
+
border_color: 0xffaaaaaa,
|
|
171
|
+
background: 0xff404040
|
|
172
|
+
},
|
|
173
|
+
Link: { # < TextBlock
|
|
174
|
+
color: Gosu::Color::BLUE,
|
|
175
|
+
border_thickness: 1,
|
|
176
|
+
border_bottom_color: Gosu::Color::BLUE,
|
|
177
|
+
hover: {
|
|
178
|
+
color: 0xff_ff00ff,
|
|
179
|
+
border_bottom_color: 0xff_ff00ff
|
|
180
|
+
},
|
|
181
|
+
active: {
|
|
182
|
+
color: 0xff_ff0000,
|
|
183
|
+
border_bottom_color: 0xff_ff0000
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
|
|
187
|
+
ToggleButton: { # < Button
|
|
188
|
+
checkmark: "√"
|
|
189
|
+
},
|
|
190
|
+
|
|
191
|
+
CheckBox: { # < Flow
|
|
192
|
+
text_wrap: :none
|
|
193
|
+
},
|
|
194
|
+
|
|
195
|
+
Progress: { # < Element
|
|
196
|
+
width: 250,
|
|
197
|
+
height: 36,
|
|
198
|
+
background: 0xff111111,
|
|
199
|
+
fraction_background: [0xffc75e61, 0xffe26623],
|
|
200
|
+
border_thickness: 1,
|
|
201
|
+
border_color: [0xffd59674, 0xffff8746]
|
|
202
|
+
},
|
|
203
|
+
|
|
204
|
+
Slider: { # < Element
|
|
205
|
+
width: 250,
|
|
206
|
+
height: 36,
|
|
207
|
+
background: 0xff111111,
|
|
208
|
+
fraction_background: [0xffc75e61, 0xffe26623],
|
|
209
|
+
border_thickness: 1,
|
|
210
|
+
border_color: [0xffd59674, 0xffff8746]
|
|
211
|
+
},
|
|
212
|
+
Menu: { # < Stack
|
|
213
|
+
width: 200,
|
|
214
|
+
border_color: 0xaa_efefef,
|
|
215
|
+
border_thickness: 1
|
|
216
|
+
},
|
|
217
|
+
|
|
218
|
+
MenuItem: { # < Button
|
|
219
|
+
width: 1.0,
|
|
220
|
+
text_left: :left,
|
|
221
|
+
margin: 0
|
|
222
|
+
}
|
|
223
|
+
}.freeze
|
|
224
|
+
end
|
|
225
|
+
end
|