2022-05-16 23:48:22 +00:00
|
|
|
screen dropdown_menu(pos=(0, 0), name="", spacing=0, items_offset=(0, 0), background="#00000080", style="empty", iconset=["▾", "▴"]):
|
|
|
|
tag dropdown
|
|
|
|
modal True
|
|
|
|
default visible = False
|
|
|
|
default iconset = iconset
|
|
|
|
default icon = iconset[0]
|
|
|
|
|
|
|
|
if visible:
|
|
|
|
use invisible_button(action=[SetLocalVariable("visible", False), SetLocalVariable("icon", iconset[0])])
|
|
|
|
|
|
|
|
window:
|
|
|
|
style "empty"
|
|
|
|
pos pos
|
|
|
|
|
|
|
|
textbutton "[name] {unicode}{size=+1}[icon]{/size}{/unicode}":
|
|
|
|
style style
|
|
|
|
ysize 24
|
|
|
|
text_yalign 0.5
|
|
|
|
text_size 12
|
|
|
|
text_hover_color "#FFF"
|
|
|
|
action [ToggleLocalVariable("visible", True, False), ToggleLocalVariable("icon", iconset[0], iconset[1])]
|
|
|
|
if visible:
|
|
|
|
frame:
|
|
|
|
pos (0, 24)
|
|
|
|
style "empty"
|
|
|
|
offset items_offset
|
|
|
|
background background
|
|
|
|
padding (5, 5, 5, 5)
|
|
|
|
vbox:
|
|
|
|
spacing spacing
|
|
|
|
transclude
|
|
|
|
|
|
|
|
#Close Button
|
|
|
|
screen close_button(xoffset=0, yoffset=0, action=Return("Close"), key=["game_menu"]):
|
|
|
|
zorder 32
|
|
|
|
|
|
|
|
# Restore menu access if we're leaving nested context
|
|
|
|
if renpy.context_nesting_level() == 1:
|
|
|
|
$ action = [Function(enable_game_menu), action]
|
|
|
|
|
|
|
|
imagebutton:
|
|
|
|
keyboard_focus False
|
|
|
|
xalign 1.0
|
|
|
|
offset (xoffset, yoffset)
|
|
|
|
idle gui.format("interface/topbar/buttons/{}/ui_close.webp")
|
|
|
|
hover image_hover(gui.format("interface/topbar/buttons/{}/ui_close.webp"))
|
|
|
|
action action
|
|
|
|
|
|
|
|
key key action action
|
|
|
|
|
|
|
|
screen close_button_background(action=Return("Close"), keysym=None):
|
|
|
|
|
|
|
|
# Restore menu access if we're leaving nested context
|
|
|
|
if renpy.context_nesting_level() == 1:
|
|
|
|
$ action = [Function(enable_game_menu), action]
|
|
|
|
|
|
|
|
# Note: Actions cannot be passed as transclude, separate parameter is required.
|
|
|
|
button style "empty":
|
|
|
|
action action
|
|
|
|
keysym keysym
|
2024-05-28 20:10:37 +00:00
|
|
|
mouse "default"
|
2022-05-16 23:48:22 +00:00
|
|
|
transclude
|
|
|
|
|
|
|
|
# Animation effect controller
|
|
|
|
screen gfx_effect(start_x=None, start_y=None, target_x=None, target_y=None, img=None, xanchor=0.5, yanchor=0.5, zoom=0.5, duration=1.0, timer=0.5):
|
|
|
|
tag gfx
|
2024-10-29 14:06:38 +00:00
|
|
|
layer "interface"
|
2022-05-16 23:48:22 +00:00
|
|
|
zorder 30
|
|
|
|
|
|
|
|
if target_x:
|
2024-10-29 14:06:38 +00:00
|
|
|
add img xanchor xanchor yanchor yanchor zoom zoom at move_to(start_x, start_y, target_x, target_y, duration), gfx_effect_hide(timer)
|
2022-05-16 23:48:22 +00:00
|
|
|
else:
|
|
|
|
add img xanchor xanchor yanchor yanchor zoom zoom xpos start_x ypos start_y
|
|
|
|
timer timer action Hide("gfx_effect")
|
|
|
|
|
|
|
|
screen ctc():
|
|
|
|
zorder 30
|
|
|
|
add "ctc"
|
2024-10-29 14:06:38 +00:00
|
|
|
|
|
|
|
transform gfx_effect_hide(timer):
|
|
|
|
alpha 1
|
|
|
|
linear timer alpha 0
|