cyberarm_engine 0.21.0 → 0.23.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/assets/shaders/fragment/g_buffer.glsl +30 -0
- data/assets/shaders/fragment/lighting.glsl +63 -0
- data/assets/shaders/include/light_struct.glsl +11 -0
- data/assets/shaders/vertex/g_buffer.glsl +28 -0
- data/assets/shaders/vertex/lighting.glsl +17 -0
- data/cyberarm_engine.gemspec +0 -1
- data/lib/cyberarm_engine/background_image.rb +1 -1
- data/lib/cyberarm_engine/builtin/intro_state.rb +2 -2
- data/lib/cyberarm_engine/common.rb +17 -2
- data/lib/cyberarm_engine/game_state.rb +4 -0
- data/lib/cyberarm_engine/opengl/renderer/g_buffer.rb +1 -0
- data/lib/cyberarm_engine/opengl.rb +13 -1
- data/lib/cyberarm_engine/text.rb +97 -37
- data/lib/cyberarm_engine/ui/border_canvas.rb +2 -2
- data/lib/cyberarm_engine/ui/element.rb +51 -26
- data/lib/cyberarm_engine/ui/elements/container.rb +43 -10
- data/lib/cyberarm_engine/ui/elements/edit_line.rb +59 -25
- data/lib/cyberarm_engine/ui/elements/image.rb +2 -2
- data/lib/cyberarm_engine/ui/elements/list_box.rb +3 -1
- data/lib/cyberarm_engine/ui/elements/progress.rb +5 -0
- data/lib/cyberarm_engine/ui/elements/slider.rb +5 -3
- data/lib/cyberarm_engine/ui/elements/text_block.rb +23 -1
- data/lib/cyberarm_engine/ui/elements/toggle_button.rb +1 -1
- data/lib/cyberarm_engine/ui/gui_state.rb +33 -11
- data/lib/cyberarm_engine/ui/theme.rb +7 -1
- data/lib/cyberarm_engine/version.rb +1 -1
- data/lib/cyberarm_engine/window.rb +5 -6
- data/lib/cyberarm_engine.rb +0 -1
- metadata +8 -17
@@ -27,6 +27,8 @@ module CyberarmEngine
|
|
27
27
|
@pending_recalculate_request = false
|
28
28
|
@pending_element_recalculate_requests = []
|
29
29
|
|
30
|
+
@needs_repaint = false
|
31
|
+
|
30
32
|
@menu = nil
|
31
33
|
@min_drag_distance = 0
|
32
34
|
@mouse_pos = Vector.new
|
@@ -55,7 +57,7 @@ module CyberarmEngine
|
|
55
57
|
@menu.draw
|
56
58
|
end
|
57
59
|
|
58
|
-
if @tip.value.length.positive?
|
60
|
+
if @tip && @tip.value.length.positive?
|
59
61
|
Gosu.flush
|
60
62
|
|
61
63
|
@tip.draw
|
@@ -66,6 +68,12 @@ module CyberarmEngine
|
|
66
68
|
|
67
69
|
@root_container.debug_draw
|
68
70
|
end
|
71
|
+
|
72
|
+
@needs_repaint = false
|
73
|
+
end
|
74
|
+
|
75
|
+
def needs_repaint?
|
76
|
+
@needs_repaint
|
69
77
|
end
|
70
78
|
|
71
79
|
def update
|
@@ -88,9 +96,19 @@ module CyberarmEngine
|
|
88
96
|
end
|
89
97
|
|
90
98
|
@menu&.update
|
99
|
+
|
91
100
|
super
|
92
101
|
|
102
|
+
if @active_width != window.width || @active_height != window.height
|
103
|
+
request_recalculate
|
104
|
+
@root_container.publish(:window_size_changed)
|
105
|
+
end
|
106
|
+
|
107
|
+
@active_width = window.width
|
108
|
+
@active_height = window.height
|
109
|
+
|
93
110
|
return unless window.has_focus?
|
111
|
+
return unless window.current_state == self
|
94
112
|
|
95
113
|
new_mouse_over = @menu.hit_element?(window.mouse_x, window.mouse_y) if @menu
|
96
114
|
new_mouse_over ||= @root_container.hit_element?(window.mouse_x, window.mouse_y)
|
@@ -127,14 +145,6 @@ module CyberarmEngine
|
|
127
145
|
|
128
146
|
@last_mouse_pos = Vector.new(window.mouse_x, window.mouse_y)
|
129
147
|
@mouse_pos = @last_mouse_pos.clone
|
130
|
-
|
131
|
-
if @active_width != window.width || @active_height != window.height
|
132
|
-
request_recalculate
|
133
|
-
@root_container.publish(:window_size_changed)
|
134
|
-
end
|
135
|
-
|
136
|
-
@active_width = window.width
|
137
|
-
@active_height = window.height
|
138
148
|
end
|
139
149
|
|
140
150
|
def button_down(id)
|
@@ -171,6 +181,9 @@ module CyberarmEngine
|
|
171
181
|
end
|
172
182
|
|
173
183
|
@focus.button_up(id) if @focus.respond_to?(:button_up)
|
184
|
+
|
185
|
+
# Prevents menu from popping back up if the listbox is clicked to hide it.
|
186
|
+
@hid_menu_for = nil
|
174
187
|
end
|
175
188
|
|
176
189
|
def tool_tip_delay
|
@@ -185,7 +198,7 @@ module CyberarmEngine
|
|
185
198
|
@focus = nil
|
186
199
|
end
|
187
200
|
|
188
|
-
if @mouse_over
|
201
|
+
if @mouse_over && @hid_menu_for != @mouse_over
|
189
202
|
@mouse_down_position[button] = Vector.new(window.mouse_x, window.mouse_y)
|
190
203
|
@mouse_down_on[button] = @mouse_over
|
191
204
|
|
@@ -199,7 +212,7 @@ module CyberarmEngine
|
|
199
212
|
def redirect_released_mouse_button(button)
|
200
213
|
hide_menu if @menu && (@menu == @mouse_over) || (@mouse_over&.parent == @menu)
|
201
214
|
|
202
|
-
if @mouse_over
|
215
|
+
if @mouse_over && @hid_menu_for != @mouse_over
|
203
216
|
@mouse_over.publish(:"released_#{button}_mouse_button", window.mouse_x, window.mouse_y)
|
204
217
|
if @mouse_over == @mouse_down_on[button]
|
205
218
|
@mouse_over.publish(:"clicked_#{button}_mouse_button", window.mouse_x,
|
@@ -250,11 +263,20 @@ module CyberarmEngine
|
|
250
263
|
@pending_focus_element = element
|
251
264
|
end
|
252
265
|
|
266
|
+
def request_repaint
|
267
|
+
# puts caller[0..4]
|
268
|
+
# puts
|
269
|
+
@needs_repaint = true
|
270
|
+
end
|
271
|
+
|
253
272
|
def show_menu(list_box)
|
254
273
|
@menu = list_box
|
255
274
|
end
|
256
275
|
|
257
276
|
def hide_menu
|
277
|
+
return unless @menu
|
278
|
+
|
279
|
+
@hid_menu_for = @menu.parent
|
258
280
|
@menu = nil
|
259
281
|
end
|
260
282
|
|
@@ -76,6 +76,7 @@ module CyberarmEngine
|
|
76
76
|
border_radius: 0,
|
77
77
|
background: ["ffc75e61".to_i(16), "ffe26623".to_i(16)],
|
78
78
|
text_align: :center,
|
79
|
+
text_v_align: :center,
|
79
80
|
text_wrap: :none,
|
80
81
|
|
81
82
|
hover: {
|
@@ -102,7 +103,12 @@ module CyberarmEngine
|
|
102
103
|
caret_color: Gosu::Color::WHITE,
|
103
104
|
caret_interval: 500,
|
104
105
|
selection_color: Gosu::Color.rgba(255, 128, 50, 200),
|
105
|
-
text_align: :left
|
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
|
106
112
|
},
|
107
113
|
|
108
114
|
Image: { # < Element
|
@@ -41,6 +41,7 @@ module CyberarmEngine
|
|
41
41
|
|
42
42
|
@states = []
|
43
43
|
@exit_on_opengl_error = false
|
44
|
+
preload_default_shaders if respond_to?(:preload_default_shaders)
|
44
45
|
|
45
46
|
setup if defined?(setup)
|
46
47
|
end
|
@@ -139,18 +140,16 @@ module CyberarmEngine
|
|
139
140
|
@states.last
|
140
141
|
end
|
141
142
|
|
142
|
-
def previous_state
|
143
|
-
if @states.size > 1 && (state = @states[@states.size - 2])
|
144
|
-
state
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
143
|
def pop_state
|
149
144
|
@states.pop
|
145
|
+
|
146
|
+
current_state.request_repaint if current_state&.is_a?(GuiState)
|
150
147
|
end
|
151
148
|
|
152
149
|
def shift_state
|
153
150
|
@states.shift
|
151
|
+
|
152
|
+
current_state.request_repaint if current_state&.is_a?(GuiState)
|
154
153
|
end
|
155
154
|
|
156
155
|
def has_focus?
|
data/lib/cyberarm_engine.rb
CHANGED
metadata
CHANGED
@@ -1,29 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cyberarm_engine
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Cyberarm
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: clipboard
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.3'
|
20
|
-
type: :runtime
|
21
|
-
prerelease: false
|
22
|
-
version_requirements: !ruby/object:Gem::Requirement
|
23
|
-
requirements:
|
24
|
-
- - "~>"
|
25
|
-
- !ruby/object:Gem::Version
|
26
|
-
version: '1.3'
|
27
13
|
- !ruby/object:Gem::Dependency
|
28
14
|
name: excon
|
29
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -122,6 +108,11 @@ files:
|
|
122
108
|
- LICENSE.txt
|
123
109
|
- README.md
|
124
110
|
- Rakefile
|
111
|
+
- assets/shaders/fragment/g_buffer.glsl
|
112
|
+
- assets/shaders/fragment/lighting.glsl
|
113
|
+
- assets/shaders/include/light_struct.glsl
|
114
|
+
- assets/shaders/vertex/g_buffer.glsl
|
115
|
+
- assets/shaders/vertex/lighting.glsl
|
125
116
|
- assets/textures/default.png
|
126
117
|
- assets/textures/logo.png
|
127
118
|
- bin/console
|
@@ -211,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
211
202
|
- !ruby/object:Gem::Version
|
212
203
|
version: '0'
|
213
204
|
requirements: []
|
214
|
-
rubygems_version: 3.3.
|
205
|
+
rubygems_version: 3.3.15
|
215
206
|
signing_key:
|
216
207
|
specification_version: 4
|
217
208
|
summary: Make games quickly and easily with gosu
|