# # GUI configuration # init offset = -2 init python in gui: import store from store import settings init(1280, 720) def is_dark(): theme = settings.get("theme") if theme == "auto": return not renpy.store.game.daytime return (theme == "dark") def is_light(): return not is_dark() def theme(name=None): """ Returns a style name or prefix that accounts for dark/light theme. The returned form is "{theme}_{name}", so styles can fall back on parent styles. """ theme = "dark" if is_dark() else "light" if name: return f"{theme}_{name}" return theme def format(template): """ Formats a string using the current theme. Note: Theme name follows folder naming, so "gray/gold" instead of "dark/light". """ return template.format("gray" if is_dark() else "gold") def rebuild_styles(): """ Evaluates and rebuilds styles. """ for s in renpy.translation.deferred_styles: s.apply() renpy.style.rebuild() def menu_item(label, value, **kwargs): """ Creates a menu item with arguments. """ location = renpy.game.context().current action = renpy.ui.ChoiceReturn(label, value, location, kwargs=kwargs) return (label, action) def in_context(label, *args, **kwargs): """ Calls label in a new context with captured background. """ renpy.store.disable_game_menu() renpy.choice_for_skipping() renpy.pause(0.001) # Give renderer the chance to catch up with transitions renpy.store.screenshot.capture() renpy.call_in_new_context("gui_init_context", label, *args, **kwargs) label gui_init_context(label, *args , **kwargs): $ renpy.show("screenshot", what=screenshot.image, at_list=[Transform(size=(config.screen_width, config.screen_height))]) $ renpy.call(label, *args, **kwargs) return # Colors define gui.text_color = "#fff" define gui.interface_text_color = "#fff" # An accent color used throughout the interface to label and highlight text. define gui.accent_color = "#f9a001" # "#ee7700" # "#cc6600" # The color used for a text button when it is neither selected nor hovered. define gui.idle_color = Color("#000", alpha=0.5) # The small color is used for small text, which needs to be brighter/darker to achieve the same effect. define gui.idle_small_color = Color("#000", alpha=0.5) # The color that is used for buttons and bars that are hovered. define gui.hover_color = "#000" # The color used for a text button when it is selected but not focused. define gui.selected_color = "#000" # The color used for a text button when it cannot be selected. define gui.insensitive_color = Color("#000", alpha=0.3) # Colors used for the portions of bars that are not filled in. define gui.muted_color = "#88888844" # "#512800" define gui.hover_muted_color = "#ee770044" # "#7a3d00" # Fonts define gui.text_font = "gui/CreativeBlockRegular.ttf" define gui.bold_font = "gui/CreativeBlockBold.ttf" define gui.glyph_font = "DejaVuSans.ttf" # Main and game menus define gui.main_menu_background = "main_menu" define gui.game_menu_background = "game_menu" # Save slot size define gui.slot_width = 350 define gui.slot_height = 50 define gui.page_button_borders = Borders(9, 4, 9, 4) # Menu navigation define gui.navigation_padding = 34 define gui.navigation_spacing = 4 # Save thumbnail size define config.thumbnail_width = 94 define config.thumbnail_height = 50 # Save slots table define gui.file_slot_cols = 2 define gui.file_slot_rows = 6 # Spacing define gui.pref_spacing = 9 define gui.pref_button_spacing = 0 define gui.page_spacing = 0 define gui.slot_spacing = 9 # Sliders and Bars define gui.bar_size = 20 define gui.scrollbar_size = 12 define gui.slider_size = 20 define gui.thumb_size = 12 define gui.slider_tile = False define gui.slider_borders = Borders(10, 10, 10, 10) define gui.unscrollable = "hide"