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.
- checksums.yaml +4 -4
- data/.gitignore +9 -8
- data/.rubocop.yml +7 -7
- data/.travis.yml +5 -5
- data/Gemfile +6 -6
- data/Gemfile.lock +37 -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/assets/textures/ui/circle.png +0 -0
- data/assets/textures/ui/circle_small.png +0 -0
- data/assets/textures/ui/rounded.png +0 -0
- data/assets/textures/ui/rounded_bottom.png +0 -0
- data/assets/textures/ui/rounded_left.png +0 -0
- data/assets/textures/ui/rounded_left_bottom.png +0 -0
- data/assets/textures/ui/rounded_left_top.png +0 -0
- data/assets/textures/ui/rounded_right.png +0 -0
- data/assets/textures/ui/rounded_right_bottom.png +0 -0
- data/assets/textures/ui/rounded_right_top.png +0 -0
- data/assets/textures/ui/rounded_small.png +0 -0
- data/assets/textures/ui/rounded_tiny.png +0 -0
- data/assets/textures/ui/rounded_top.png +0 -0
- data/assets/textures/ui/square.png +0 -0
- data/bin/console +14 -14
- data/bin/setup +8 -8
- data/cyberarm_engine.gemspec +35 -36
- data/lib/cyberarm_engine/animator.rb +219 -219
- data/lib/cyberarm_engine/background.rb +156 -158
- data/lib/cyberarm_engine/background_image.rb +93 -93
- data/lib/cyberarm_engine/background_nine_slice.rb +182 -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 +133 -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/event_bus.rb +39 -0
- data/lib/cyberarm_engine/game_object.rb +244 -244
- data/lib/cyberarm_engine/game_state.rb +134 -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/pathfinding/graph.rb +64 -0
- data/lib/cyberarm_engine/pathfinding/graph_search.rb +6 -0
- data/lib/cyberarm_engine/pathfinding/graph_searches/astar_search.rb +6 -0
- data/lib/cyberarm_engine/pathfinding/graph_searches/breadth_first_search.rb +27 -0
- data/lib/cyberarm_engine/pathfinding/graph_searches/dijkstra_search.rb +6 -0
- data/lib/cyberarm_engine/pathfinding/graphs/grid.rb +52 -0
- data/lib/cyberarm_engine/ray.rb +56 -56
- data/lib/cyberarm_engine/result.rb +19 -0
- data/lib/cyberarm_engine/stats.rb +200 -200
- data/lib/cyberarm_engine/text.rb +288 -260
- data/lib/cyberarm_engine/timer.rb +27 -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/dialog.rb +24 -0
- data/lib/cyberarm_engine/ui/dsl.rb +170 -142
- data/lib/cyberarm_engine/ui/element.rb +664 -662
- data/lib/cyberarm_engine/ui/elements/button.rb +99 -100
- data/lib/cyberarm_engine/ui/elements/check_box.rb +58 -54
- data/lib/cyberarm_engine/ui/elements/container.rb +413 -407
- data/lib/cyberarm_engine/ui/elements/edit_box.rb +200 -179
- data/lib/cyberarm_engine/ui/elements/edit_line.rb +299 -297
- data/lib/cyberarm_engine/ui/elements/flow.rb +15 -15
- data/lib/cyberarm_engine/ui/elements/image.rb +78 -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 +95 -93
- data/lib/cyberarm_engine/ui/elements/radio.rb +6 -6
- data/lib/cyberarm_engine/ui/elements/slider.rb +111 -107
- data/lib/cyberarm_engine/ui/elements/stack.rb +11 -11
- data/lib/cyberarm_engine/ui/elements/text_block.rb +236 -222
- data/lib/cyberarm_engine/ui/elements/toggle_button.rb +71 -67
- data/lib/cyberarm_engine/ui/elements/widget.rb +45 -0
- data/lib/cyberarm_engine/ui/event.rb +54 -54
- data/lib/cyberarm_engine/ui/gui_state.rb +402 -326
- data/lib/cyberarm_engine/ui/page.rb +39 -0
- data/lib/cyberarm_engine/ui/style.rb +94 -61
- data/lib/cyberarm_engine/ui/theme.rb +237 -225
- data/lib/cyberarm_engine/vector.rb +312 -312
- data/lib/cyberarm_engine/version.rb +4 -4
- data/lib/cyberarm_engine/window.rb +234 -195
- data/lib/cyberarm_engine.rb +88 -76
- data/mrbgem.rake +29 -29
- metadata +30 -5
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
module CyberarmEngine
|
|
2
|
+
class Page
|
|
3
|
+
include CyberarmEngine::DSL
|
|
4
|
+
include CyberarmEngine::Common
|
|
5
|
+
|
|
6
|
+
attr_reader :parent
|
|
7
|
+
|
|
8
|
+
def initialize(parent:)
|
|
9
|
+
@parent = parent
|
|
10
|
+
|
|
11
|
+
@options = {}
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
def options=(options)
|
|
15
|
+
@options = options
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
def setup
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def focus
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def blur
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def draw
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def update
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
def button_down(id)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def button_up(id)
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -1,61 +1,94 @@
|
|
|
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
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
@
|
|
59
|
-
end
|
|
60
|
-
|
|
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 StyleData
|
|
20
|
+
def initialize(hash = {})
|
|
21
|
+
@hash = hash
|
|
22
|
+
@dirty = false
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
%i[
|
|
26
|
+
x y z design_width width height min_width min_height max_width max_height color background
|
|
27
|
+
background_image background_image_mode background_image_color
|
|
28
|
+
background_nine_slice background_nine_slice_mode background_nine_slice_color background_nine_slice_from_edge
|
|
29
|
+
background_nine_slice_left background_nine_slice_top background_nine_slice_right background_nine_slice_bottom
|
|
30
|
+
border_color border_color_left border_color_right border_color_top border_color_bottom
|
|
31
|
+
border_thickness border_thickness_left border_thickness_right border_thickness_top border_thickness_bottom
|
|
32
|
+
padding padding_left padding_right padding_top padding_bottom
|
|
33
|
+
margin margin_left margin_right margin_top margin_bottom
|
|
34
|
+
aspect_ratio
|
|
35
|
+
|
|
36
|
+
fraction_background scroll fill text_wrap v_align h_align delay tag font
|
|
37
|
+
text_align text_static text_size
|
|
38
|
+
text_shadow text_shadow_size text_shadow_alpha text_shadow_color
|
|
39
|
+
text_border text_border_size text_border_alpha text_border_color
|
|
40
|
+
image_width image_height
|
|
41
|
+
].each do |item|
|
|
42
|
+
define_method(item) do
|
|
43
|
+
@hash[item]
|
|
44
|
+
end
|
|
45
|
+
define_method(:"#{item}=") do |value|
|
|
46
|
+
@dirty = true if @hash[item] != value
|
|
47
|
+
|
|
48
|
+
@hash[item] = value
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
# NOTE: do not change return value
|
|
53
|
+
def default
|
|
54
|
+
nil
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def dirty?
|
|
58
|
+
@dirty
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
def mark_clean!
|
|
62
|
+
@dirty = false
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
def empty?
|
|
66
|
+
@hash.empty?
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
class Style < StyleData
|
|
71
|
+
attr_reader :hash, :hover, :active, :disabled
|
|
72
|
+
|
|
73
|
+
def initialize(hash = {})
|
|
74
|
+
@hash = hash
|
|
75
|
+
|
|
76
|
+
@hover = StyleData.new(hash[:hover] || {})
|
|
77
|
+
@active = StyleData.new(hash[:active] || {})
|
|
78
|
+
@disabled = StyleData.new(hash[:disabled] || {})
|
|
79
|
+
|
|
80
|
+
@substyles = [@hover, @active, @disabled]
|
|
81
|
+
|
|
82
|
+
super
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
def dirty?
|
|
86
|
+
@dirty || @substyles.any?(&:dirty?)
|
|
87
|
+
end
|
|
88
|
+
|
|
89
|
+
def mark_clean!
|
|
90
|
+
@substyles.each(&:mark_clean!)
|
|
91
|
+
@dirty = false
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
end
|
|
@@ -1,225 +1,237 @@
|
|
|
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
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
},
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
},
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
text_size:
|
|
148
|
-
},
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
text_size:
|
|
152
|
-
},
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
text_size:
|
|
156
|
-
},
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
text_size:
|
|
160
|
-
},
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
},
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
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
|
+
# css-like style classes, however First In, First Out- that is,
|
|
34
|
+
options[:style_class]&.each do |klass|
|
|
35
|
+
hash = deep_merge(hash, _theme[klass]) if _theme[klass]
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
deep_merge(hash, options)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# Derived from Rails Hash#deep_merge!
|
|
42
|
+
# Enables passing partial themes through Element options without issue
|
|
43
|
+
def deep_merge(original, intergrate, &block)
|
|
44
|
+
original.merge(intergrate) do |key, this_val, other_val|
|
|
45
|
+
if this_val.is_a?(Hash) && other_val.is_a?(Hash)
|
|
46
|
+
deep_merge(this_val, other_val, &block)
|
|
47
|
+
elsif block_given?
|
|
48
|
+
block.call(key, this_val, other_val)
|
|
49
|
+
else
|
|
50
|
+
other_val
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
THEME = {
|
|
56
|
+
Element: {
|
|
57
|
+
x: 0,
|
|
58
|
+
y: 0,
|
|
59
|
+
z: 30,
|
|
60
|
+
|
|
61
|
+
design_width: nil,
|
|
62
|
+
width: nil,
|
|
63
|
+
height: nil,
|
|
64
|
+
color: Gosu::Color::WHITE,
|
|
65
|
+
background: Gosu::Color::NONE,
|
|
66
|
+
margin: 0,
|
|
67
|
+
padding: 0,
|
|
68
|
+
border_thickness: 0,
|
|
69
|
+
border_color: Gosu::Color::NONE,
|
|
70
|
+
border_radius: 0
|
|
71
|
+
},
|
|
72
|
+
|
|
73
|
+
Container: { # < Element (Base class for Stack and Flow)
|
|
74
|
+
debug_color: Gosu::Color::YELLOW
|
|
75
|
+
},
|
|
76
|
+
|
|
77
|
+
Button: { # < TextBlock
|
|
78
|
+
margin: 1,
|
|
79
|
+
padding: 4,
|
|
80
|
+
border_thickness: 1,
|
|
81
|
+
border_color: [0xffd59674, 0xffff8746],
|
|
82
|
+
border_radius: 0,
|
|
83
|
+
background: [0xffc75e61, 0xffe26623],
|
|
84
|
+
text_align: :center,
|
|
85
|
+
text_v_align: :center,
|
|
86
|
+
text_wrap: :none,
|
|
87
|
+
|
|
88
|
+
hover: {
|
|
89
|
+
color: Gosu::Color.rgb(200, 200, 200),
|
|
90
|
+
background: [0xffB23E41, 0xffFF7C00]
|
|
91
|
+
},
|
|
92
|
+
|
|
93
|
+
active: {
|
|
94
|
+
color: Gosu::Color::BLACK,
|
|
95
|
+
background: [0xffB23E41]
|
|
96
|
+
},
|
|
97
|
+
|
|
98
|
+
disabled: {
|
|
99
|
+
color: Gosu::Color::GRAY,
|
|
100
|
+
background: 0xff303030
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
|
|
104
|
+
EditLine: { # < Button
|
|
105
|
+
type: :text,
|
|
106
|
+
width: 200,
|
|
107
|
+
password_character: "•",
|
|
108
|
+
caret_width: 2,
|
|
109
|
+
caret_color: Gosu::Color::WHITE,
|
|
110
|
+
caret_interval: 500,
|
|
111
|
+
selection_color: Gosu::Color.rgba(255, 128, 50, 200),
|
|
112
|
+
text_align: :left,
|
|
113
|
+
text_static: false # static text causes issues correctly displaying caret position
|
|
114
|
+
},
|
|
115
|
+
|
|
116
|
+
EditBox: { # < EditLine
|
|
117
|
+
text_v_align: :top
|
|
118
|
+
},
|
|
119
|
+
|
|
120
|
+
Image: { # < Element
|
|
121
|
+
color: Gosu::Color::WHITE,
|
|
122
|
+
tileable: false,
|
|
123
|
+
retro: false
|
|
124
|
+
},
|
|
125
|
+
|
|
126
|
+
TextBlock: { # < Element
|
|
127
|
+
text_size: 28,
|
|
128
|
+
text_wrap: :word_wrap, # :word_wrap, :break_word, :none
|
|
129
|
+
text_shadow: false,
|
|
130
|
+
text_shadow_color: 0,
|
|
131
|
+
text_shadow_alpha: 30,
|
|
132
|
+
text_shadow_size: 2,
|
|
133
|
+
text_border: false,
|
|
134
|
+
text_border_color: 0,
|
|
135
|
+
text_border_alpha: 30,
|
|
136
|
+
text_border_size: 2,
|
|
137
|
+
text_align: :left,
|
|
138
|
+
font: "Arial",
|
|
139
|
+
margin: 0,
|
|
140
|
+
padding: 2,
|
|
141
|
+
disabled: {
|
|
142
|
+
color: Gosu::Color.rgb(175, 175, 175),
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
|
|
146
|
+
Banner: { # < TextBlock
|
|
147
|
+
text_size: 48
|
|
148
|
+
},
|
|
149
|
+
|
|
150
|
+
Title: { # < TextBlock
|
|
151
|
+
text_size: 34
|
|
152
|
+
},
|
|
153
|
+
|
|
154
|
+
Subtitle: { # < TextBlock
|
|
155
|
+
text_size: 26
|
|
156
|
+
},
|
|
157
|
+
|
|
158
|
+
Tagline: { # < TextBlock
|
|
159
|
+
text_size: 24
|
|
160
|
+
},
|
|
161
|
+
|
|
162
|
+
Caption: { # < TextBlock
|
|
163
|
+
text_size: 22
|
|
164
|
+
},
|
|
165
|
+
|
|
166
|
+
Para: { # < TextBlock
|
|
167
|
+
text_size: 18
|
|
168
|
+
},
|
|
169
|
+
|
|
170
|
+
Inscription: { # < TextBlock
|
|
171
|
+
text_size: 16
|
|
172
|
+
},
|
|
173
|
+
|
|
174
|
+
ToolTip: { # < TextBlock
|
|
175
|
+
delay: 100, # ms
|
|
176
|
+
color: Gosu::Color::WHITE,
|
|
177
|
+
padding_top: 4,
|
|
178
|
+
padding_bottom: 4,
|
|
179
|
+
padding_left: 8,
|
|
180
|
+
padding_right: 8,
|
|
181
|
+
border_thickness: 1,
|
|
182
|
+
border_color: 0xffaaaaaa,
|
|
183
|
+
background: 0xff404040
|
|
184
|
+
},
|
|
185
|
+
Link: { # < TextBlock
|
|
186
|
+
color: Gosu::Color::BLUE,
|
|
187
|
+
border_thickness: 1,
|
|
188
|
+
border_bottom_color: Gosu::Color::BLUE,
|
|
189
|
+
hover: {
|
|
190
|
+
color: 0xff_ff00ff,
|
|
191
|
+
border_bottom_color: 0xff_ff00ff
|
|
192
|
+
},
|
|
193
|
+
active: {
|
|
194
|
+
color: 0xff_ff0000,
|
|
195
|
+
border_bottom_color: 0xff_ff0000
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
|
|
199
|
+
ToggleButton: { # < Button
|
|
200
|
+
checkmark: "√"
|
|
201
|
+
},
|
|
202
|
+
|
|
203
|
+
CheckBox: { # < Flow
|
|
204
|
+
text_wrap: :none
|
|
205
|
+
},
|
|
206
|
+
|
|
207
|
+
Progress: { # < Element
|
|
208
|
+
width: 250,
|
|
209
|
+
height: 36,
|
|
210
|
+
background: 0xff111111,
|
|
211
|
+
fraction_background: [0xffc75e61, 0xffe26623],
|
|
212
|
+
border_thickness: 1,
|
|
213
|
+
border_color: [0xffd59674, 0xffff8746]
|
|
214
|
+
},
|
|
215
|
+
|
|
216
|
+
Slider: { # < Element
|
|
217
|
+
width: 250,
|
|
218
|
+
height: 36,
|
|
219
|
+
background: 0xff111111,
|
|
220
|
+
fraction_background: [0xffc75e61, 0xffe26623],
|
|
221
|
+
border_thickness: 1,
|
|
222
|
+
border_color: [0xffd59674, 0xffff8746]
|
|
223
|
+
},
|
|
224
|
+
Menu: { # < Stack
|
|
225
|
+
width: 200,
|
|
226
|
+
border_color: 0xaa_efefef,
|
|
227
|
+
border_thickness: 1
|
|
228
|
+
},
|
|
229
|
+
|
|
230
|
+
MenuItem: { # < Button
|
|
231
|
+
width: 1.0,
|
|
232
|
+
text_left: :left,
|
|
233
|
+
margin: 0
|
|
234
|
+
}
|
|
235
|
+
}.freeze
|
|
236
|
+
end
|
|
237
|
+
end
|