SHARE
TWEET

Windowskin Options

Holy87 Oct 19th, 2015 (edited) 85 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. =begin
  2.  ==============================================================================
  3.   ■ Opzioni skin finestre di Holy87
  4.       versione 1.0.1
  5.       Difficoltà utente: ★★
  6.       Licenza: CC. Chiunque può scaricare, modificare, distribuire e utilizzare
  7.       lo script nei propri progetti, sia amatoriali che commerciali. Vietata
  8.       l'attribuzione impropria.
  9.  ==============================================================================
  10.     Questo script aggiunge al menu delle opzioni le impostazioni per i temi
  11.     personalizzati dei menu. Puoi:
  12.     - Inserire tutte le windowskin che vuoi in Graphics/Windowskins
  13.     - Permettere al giocatore di inserire temi custom in Documenti/Gioco/Skins
  14.     - Impostare tutte le proprietà della windowskin come font, trasparenza e
  15.       tonalità predefinita in un file di testo
  16.  ==============================================================================
  17.   ■ Compatibilità
  18.     Window_Base -> alias initialize
  19.  ==============================================================================
  20.   ■ Installazione e istruzioni
  21.     Installare questo script sotto Materials e prima del Main.
  22.  
  23.     ● Requisiti
  24.     RICHIEDE IL MENU DELLE OPZIONI DI GIOCO DI HOLY87 (1.2 o superiore)
  25.     http://pastebin.com/raw.php?i=qmq1qpdV
  26.     Se vuoi fare in modo che il giocatore possa inserire le windowskin
  27.     personalizzate nella sua cartella utente, hai bisogno anche dello script
  28.     dei salvataggi nei documenti:
  29.     https://holy87.wordpress.com/2015/08/12/savegame-in-my-documents/
  30.  
  31.     ● Istruzioni di base
  32.     Crea una cartella Windowskins nella cartella Graphics del tuo progetto.
  33.     Inserisci tutte le windowskin che vuoi.
  34.     Puoi personalizzare ulteriormente la winowskin impostandone la trasparenza,
  35.     la tonalità predefinita, il/i font, grandezza font, tipo (grassetto, corsivo)
  36.     ombra, contorno ecc...
  37.  
  38.     ● Personalizzazione windowskin
  39.     Se vuoi personalizzare nel dettaglio la skin, ecco cosa devi fare:
  40.     - Crea un documento di testo nella cartella Windowskins con lo stesso
  41.       nome del file. Ad esempio, se la skin si chiama Window.png, il file
  42.       deve chiamarsi Window.txt
  43.     - Scrivi all'interno del file gli attributi su ogni riga. Gli attributi
  44.       che puoi scrivere sono i seguenti:
  45.  
  46.       name: Nuovo nome
  47.       per assegnare un nome della finestra diverso dal nome del file
  48.  
  49.       fonts: Arial, Verdana, Elvetica
  50.       Assegna un font diverso da quello di default per questo tema. Puoi mettere
  51.       più font separati da virgola in modo che se nel computer non è installato
  52.       quel determinato font, potrai utilizzare il successivo.
  53.  
  54.       bold: true
  55.       Imposta il font in grassetto quando è attivato questo tema.
  56.  
  57.       italic: true
  58.       Imposta il font in corsivo quando è attivato questo tema.
  59.  
  60.       font size: x
  61.       Impsota la grandezza del carattere a x
  62.  
  63.       outline: false
  64.       Elimina il contorno del testo
  65.  
  66.       shadow: true
  67.       Aggiunge l'ombra al testo (come in RPG Maker MV)
  68.  
  69.       opacity: x
  70.       Imposta l'opacità dello sfondo finestra da 0 a 255 (192 di default)
  71.  
  72.       tone: X,Y,Z
  73.       Imposta una tonalità personalizzata della finestra, dove X, Y e Z sono
  74.       rispettivamente i colori rosso, verde e blu (da -255 a 255)
  75.  
  76.       tone locked: true
  77.       Blocca il cambio di tonalità per questo tema. L'utente non può cambiare
  78.       tonalità della windowskin
  79.  
  80.       background: x
  81.       Imposta uno sfondo (nella cartella Picture) quando si seleziona questa
  82.       windowskin.
  83.  
  84.       outline color: A,B,C,D
  85.       Imposta un colore del contorno dove A: Colore rosso, B: Verde, C: Blu,
  86.       D: Trasparenza. Quest'ultimo è facoltativo.
  87.  ==============================================================================
  88. =end
  89.  
  90. #==============================================================================
  91. # ** CONFIGURAZIONE
  92. #==============================================================================
  93. module WindowskinsManager
  94.   #--------------------------------------------------------------------------
  95.   # * Imposta la finestra predefinita all'avvio del gioco
  96.   #--------------------------------------------------------------------------
  97.   DEFAULT_SKIN = "Stripes"
  98.   #--------------------------------------------------------------------------
  99.   # * Vuoi aggiungere la cartella delle windowskins custom in Documenti?
  100.   #--------------------------------------------------------------------------
  101.   USE_CUSTOM = true #false se non vuoi questa funzione
  102.   # Nome della cartella
  103.   INT_SK_FOLDER = "Graphics/Windowskins"
  104.   EXT_SK_FOLDER = "Skins"
  105.   #--------------------------------------------------------------------------
  106.   # * Stringhe di testo nelle opzioni
  107.   #--------------------------------------------------------------------------
  108.   SET_HELP = "Imposta un tema delle finestre personalizzato."
  109.   SET_TEXT = "Tema"
  110.   SET_REDC = "Rosso"
  111.   SET_REDH = "Cambia la tonalità di rosso dello sfondo."
  112.   SET_GREE = "Verde"
  113.   SET_GREH = "Cambia la tonalità di verde dello sfondo."
  114.   SET_BLUE = "Blu"
  115.   SET_BLUH = "Cambia la tonalità di blu dello sfondo."
  116. end
  117.  
  118. # --- --- --- --- --- --- FINE DELLA CONFIGURAZIONE --- --- --- --- --- ---
  119. #    Non modificare oltre questo script se non sai dove mettere le mani.
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127. $imported = {} if $imported == nil
  128. $imported["H87_Windowskins"] = true
  129. unless $imported["H87_Options"]
  130.   msgbox "Windowskins script requires Holy87 Settings Menu v1.2.0 or better."
  131. end
  132. #==============================================================================
  133. # ** WindowskinsManager
  134. #------------------------------------------------------------------------------
  135. #  Handles the windowskins list
  136. #==============================================================================
  137. module WindowskinsManager
  138.   module_function
  139.   #--------------------------------------------------------------------------
  140.   # * Returns the windows folder name
  141.   #--------------------------------------------------------------------------
  142.   def window_folder; EXT_SK_FOLDER; end
  143.   #--------------------------------------------------------------------------
  144.   # * Gets the list of all windowskins objects
  145.   #--------------------------------------------------------------------------
  146.   def list
  147.     default_windowskins.merge(user_windowskins)
  148.   end
  149.   #--------------------------------------------------------------------------
  150.   # * An hash with all the windowskin names {"name" => "name"}
  151.   #--------------------------------------------------------------------------
  152.   def name_list
  153.     h = {}
  154.     list.keys.each{|key| h[key] = key}
  155.     h
  156.   end
  157.   #--------------------------------------------------------------------------
  158.   # * Gets all the default windowskins in the game folder
  159.   #--------------------------------------------------------------------------
  160.   def default_windowskins
  161.     fetch_windowskin_folder(INT_SK_FOLDER)
  162.   end
  163.   #--------------------------------------------------------------------------
  164.   # * Gets all the custom windowskins in user folder
  165.   #--------------------------------------------------------------------------
  166.   def user_windowskins
  167.     return {} unless $imported['H87_Homesave']
  168.     return {} unless USE_CUSTOM
  169.     fetch_windowskin_folder(custom_windowskins_folder)
  170.   end
  171.   #--------------------------------------------------------------------------
  172.   # * Searches for all windowskins in the folder
  173.   #--------------------------------------------------------------------------
  174.   def fetch_windowskin_folder(path)
  175.     windowskins = {}
  176.     Dir.foreach(path) do |file_name|
  177.       next if file_name == "." || file_name == '..'
  178.       file = path + "/" + file_name
  179.       next if File.directory?(file)
  180.       next unless File.extname(file).downcase == '.png'
  181.       ws = Window_Skin.new(file)
  182.       windowskins[ws.name] = ws
  183.     end
  184.     windowskins
  185.   end
  186.   #--------------------------------------------------------------------------
  187.   # * Returns the complete folder path
  188.   # noinspection RubyResolve
  189.   # @return [String]
  190.   #--------------------------------------------------------------------------
  191.   def custom_windowskins_folder
  192.     fpath = Homesave.mydocuments
  193.     Dir.mkdir(fpath) unless File.directory?(fpath)
  194.     fpath << '/' + Homesave.folder_name
  195.     Dir.mkdir(fpath) unless File.directory?(fpath)
  196.     fpath << '/' + window_folder
  197.     Dir.mkdir(fpath) unless File.directory?(fpath)
  198.     fpath
  199.   end
  200.   #--------------------------------------------------------------------------
  201.   # * Adds the skin options in the settings menu
  202.   #--------------------------------------------------------------------------
  203.   def set_options
  204.     H87Options.push_appearance_option(window_hash)
  205.     H87Options.push_appearance_option(red_hash)
  206.     H87Options.push_appearance_option(green_hash)
  207.     H87Options.push_appearance_option(blue_hash)
  208.   end
  209.   #--------------------------------------------------------------------------
  210.   # * Gets the windowskin selection hash
  211.   # @return [Hash]
  212.   #--------------------------------------------------------------------------
  213.   def window_hash
  214.     {
  215.         :type => :variable,
  216.         :var => 0,
  217.         :text => SET_TEXT,
  218.         :help => SET_HELP,
  219.         :val_mt => :get_windowskin,
  220.         :method => :set_windowskin,
  221.         :values => name_list,
  222.         :popup => "Window_SkinPopup"
  223.     }
  224.   end
  225.   #--------------------------------------------------------------------------
  226.   # * Gets the red color selection hash
  227.   # @return [Hash]
  228.   #--------------------------------------------------------------------------
  229.   def red_hash
  230.     {
  231.         :type => :bar,
  232.         :text => SET_REDC,
  233.         :help => SET_REDH,
  234.         :var => 0,
  235.         :max => 255,
  236.         :min => -255,
  237.         :color => Color.new(255,0,0),
  238.         :perc => false,
  239.         :not_initialize => true,
  240.         :condition => "$game_system.tone_allowed?",
  241.         :val_mt => :get_red_tone,
  242.         :method => :set_red_tone}
  243.   end
  244.   #--------------------------------------------------------------------------
  245.   # * Gets the gren color selection hash
  246.   # @return [Hash]
  247.   #--------------------------------------------------------------------------
  248.   def green_hash
  249.     {
  250.         :type => :bar,
  251.         :text => SET_GREE,
  252.         :help => SET_GREH,
  253.         :var => 0,
  254.         :max => 255,
  255.         :min => -255,
  256.         :color => Color.new(0,255,0),
  257.         :perc => false,
  258.         :not_initialize => true,
  259.         :condition => "$game_system.tone_allowed?",
  260.         :val_mt => :get_green_tone,
  261.         :method => :set_green_tone}
  262.   end
  263.   #--------------------------------------------------------------------------
  264.   # * Gets the blue color selection hash
  265.   # @return [Hash]
  266.   #--------------------------------------------------------------------------
  267.   def blue_hash
  268.     {
  269.         :type => :bar,
  270.         :text => SET_BLUE,
  271.         :help => SET_BLUH,
  272.         :var => 0,
  273.         :max => 255,
  274.         :min => -255,
  275.         :color => Color.new(0,0,255),
  276.         :perc => false,
  277.         :not_initialize => true,
  278.         :condition => "$game_system.tone_allowed?",
  279.         :val_mt => :get_blue_tone,
  280.         :method => :set_blue_tone}
  281.   end
  282. end
  283.  
  284. #==============================================================================
  285. # ** Window_Skin
  286. #------------------------------------------------------------------------------
  287. #  Class that handles all windowskin informations
  288. #==============================================================================
  289. class Window_Skin
  290.   #--------------------------------------------------------------------------
  291.   # * Public instance variables
  292.   #--------------------------------------------------------------------------
  293.   attr_reader :path       #file path
  294.   attr_reader :name       #windowskin name
  295.   attr_reader :tone       #windowskin color
  296.   attr_reader :bold       #text bold
  297.   attr_reader :italic     #text italic
  298.   attr_reader :outline    #text outline
  299.   attr_reader :opacity    #text opacity
  300.   attr_reader :shadow     #text shadow
  301.   attr_reader :font_name  #fonts array
  302.   attr_reader :file_name  #file name
  303.   attr_reader :font_size  #text size
  304.   attr_reader :font_color #font color
  305.   attr_reader :font_out_color #outline color
  306.   attr_reader :background #background image
  307.   attr_reader :tone_locked#tone locked?
  308.   #--------------------------------------------------------------------------
  309.   # * Object initialization
  310.   #   path: file path
  311.   #--------------------------------------------------------------------------
  312.   def initialize(path)
  313.     @path = File.dirname(path) + "/"
  314.     @file_name = File.basename(path,".*")
  315.     @name = @file_name
  316.     @font_color = text_color
  317.     check_skin_settings
  318.   end
  319.   #--------------------------------------------------------------------------
  320.   # * Check if a skin setting file exists
  321.   #--------------------------------------------------------------------------
  322.   def check_skin_settings
  323.     settings_file = @path + @file_name + ".txt"
  324.     if File.exist?(settings_file)
  325.       fetch_skin_settings(settings_file)
  326.     end
  327.   end
  328.   #--------------------------------------------------------------------------
  329.   # * Reads the settings file and settes the proper parameters
  330.   #   settings_file: Settings file to read
  331.   #--------------------------------------------------------------------------
  332.   def fetch_skin_settings(settings_file)
  333.     File.open(settings_file, "r") do |file|
  334.       file.each_line do |line|
  335.         case line
  336.           when /name[ ]*[=:][ ]*(.+)/i; @name = $1
  337.           when /bold[ ]*[=:][ ]*(.+)/i; @bold = ch_tf($1)
  338.           when /italic[ ]*[=:][ ]*(.+)/i; @italic = ch_tf($1)
  339.           when /outline[ ]*[=:][ ]*(.+)/i; @outline = ch_tf($1)
  340.           when /shadow[ ]*[=:][ ]*(.+)/i; @shadow = ch_tf($1)
  341.           when /tone locked[ ]*[=:][ ]*(.+)/i; @tone_locked = ch_tf($1)
  342.           when /fonts[ ]*[=:][ ]*(.+)/i; @font_name = $1.split(",")
  343.           when /font size[ ]*[=:][ ]*(\d+)/i; @font_size = $1.to_i
  344.           when /opacity[ ]*[=:][ ]*(\d+)/i; @opacity = $1.to_i
  345.           when /background[ ]*[=:][ ]*(.+)/i; @background = $1
  346.           when /^color[ ]*[=:][ ]*(.+)/i
  347.             colors = $1.split(/[ ]*,[ ]*/)
  348.             @font_color = Color.new(255,255,255,255)
  349.             @font_color.red = colors[0].to_i if colors[0]
  350.             @font_color.green = colors[1].to_i if colors[1]
  351.             @font_color.blue = colors[2].to_i if colors[2]
  352.             @font_color.alpha = colors[3].to_i if colors[3]
  353.           when /^outline color[ ]*[=:][ ]*(.+)/i
  354.             colors = $1.split(/[ ]*,[ ]*/)
  355.             @font_out_color = Color.new(0,0,0,255)
  356.             @font_out_color.red = colors[0].to_i if colors[0]
  357.             @font_out_color.green = colors[1].to_i if colors[1]
  358.             @font_out_color.blue = colors[2].to_i if colors[2]
  359.             @font_out_color.alpha = colors[3].to_i if colors[3]
  360.           when /tone[ ]*[=:][ ]*(.+)/i
  361.             begin
  362.               colors = $1.split(/[ ]*,[ ]*/).collect{|a| a.to_i}
  363.               @tone = Tone.new(colors[0], colors[1], colors[2])
  364.             rescue Exception
  365.               println $!
  366.               println $!.message
  367.             end
  368.           else
  369.             puts 'Invalid ' + line + ' data'
  370.         end
  371.       end
  372.     end
  373.   end
  374.   #--------------------------------------------------------------------------
  375.   # * Returns true or false for a proper string
  376.   #   string: string to read. Returns true if string == "true",
  377.   #                           Returns false if string == "false",
  378.   #                           Otherwise, returns nil.
  379.   #--------------------------------------------------------------------------
  380.   def ch_tf(string)
  381.     if string =~ /(true|false)/i
  382.       return true if string.downcase == "true"
  383.       return false if string.downcase == "false"
  384.     end
  385.     nil
  386.   end
  387.   #--------------------------------------------------------------------------
  388.   # * Returns the windowskin bitmap
  389.   # @return [Bitmap]
  390.   #--------------------------------------------------------------------------
  391.   def bitmap; Cache.windowskin(@file_name, @path); end
  392.   #--------------------------------------------------------------------------
  393.   # * Get Text Color
  394.   #     n : Text color number  (0-31)
  395.   # @param [Integer] n
  396.   # @return [Color]
  397.   #--------------------------------------------------------------------------
  398.   def text_color(n = 0)
  399.     x = 64 + (n % 8) * 8
  400.     y = 96 + (n / 8) * 8
  401.     bitmap.get_pixel(x, y)
  402.   end
  403. end
  404.  
  405. #==============================================================================
  406. # ** Cache
  407. #------------------------------------------------------------------------------
  408. #  Module for loading resources
  409. #==============================================================================
  410. module Cache
  411.   #--------------------------------------------------------------------------
  412.   # * Returns the windowskin bitmap
  413.   #--------------------------------------------------------------------------
  414.   def self.windowskin(filename, path = WindowskinsManager::INT_SK_FOLDER + '/')
  415.     load_bitmap(path, filename)
  416.   end
  417. end
  418.  
  419. #==============================================================================
  420. # ** Game_System
  421. #==============================================================================
  422. class Game_System
  423.   attr_accessor :tone_customized
  424.   #--------------------------------------------------------------------------
  425.   # * Returns the selected windowskin or default if none is setted
  426.   # @return [Window_Skin]
  427.   #--------------------------------------------------------------------------
  428.   def selected_windowskin
  429.     set_windowskin(default_windowskin) if @selected_windowskin.nil?
  430.     @selected_windowskin
  431.   end
  432.   #--------------------------------------------------------------------------
  433.   # * Returns the default widnowskin
  434.   # @return [Window_Skin]
  435.   #--------------------------------------------------------------------------
  436.   def default_windowskin
  437.     Window_Skin.new(WindowskinsManager::INT_SK_FOLDER + '/' + WindowskinsManager::DEFAULT_SKIN)
  438.   end
  439.   #--------------------------------------------------------------------------
  440.   # * Sets a windowskin to the game
  441.   #   skin_name: if it's a string, sets the windowskin of the list from key
  442.   #              if it's an integer or nil, sets the default windowskin
  443.   #              if it's a Window_Skin object, sets that windowskin
  444.   # @param [String] skin_name
  445.   #--------------------------------------------------------------------------
  446.   def set_windowskin(skin_name)
  447.     if skin_name == 0 or skin_name.nil?
  448.       windowskin = default_windowskin
  449.     elsif skin_name.is_a?(Window_Skin)
  450.       windowskin = skin_name
  451.     else
  452.       windowskin = WindowskinsManager.list[skin_name]
  453.     end
  454.     if windowskin.nil?
  455.       puts "Nessuna Windowskin per #{skin_name}"
  456.       return
  457.     end
  458.     @selected_windowskin = windowskin
  459.     if windowskin.tone != nil
  460.       @backup_tone = self.window_tone.clone if @tone_customized
  461.       self.window_tone = windowskin.tone
  462.       @tone_customized = false
  463.     else
  464.       if @backup_tone != nil
  465.         self.window_tone = @backup_tone
  466.         @backup_tone = nil
  467.       else
  468.         self.window_tone = $data_system.window_tone if $data_system
  469.       end
  470.     end
  471.     update_font_settings
  472.   end
  473.   #--------------------------------------------------------------------------
  474.   # * Refreshes the windowskin as the save loads
  475.   #--------------------------------------------------------------------------
  476.   def refresh_windowskin
  477.     set_windowskin(selected_windowskin)
  478.   end
  479.   #--------------------------------------------------------------------------
  480.   # * Change the font settings setted in the windowskin.
  481.   #--------------------------------------------------------------------------
  482.   def update_font_settings
  483.     change_font_setting("default_name","font_name")
  484.     change_font_setting("default_size","font_size")
  485.     change_font_setting("default_bold","bold")
  486.     change_font_setting("default_italic","italic")
  487.     change_font_setting("default_shadow","shadow")
  488.     change_font_setting("default_outline","outline")
  489.     change_font_setting("default_color","font_color")
  490.     change_font_setting("default_out_color","font_out_color")
  491.   end
  492.   #--------------------------------------------------------------------------
  493.   # * Change the specified font setting.
  494.   #   f_param: Font class attribute
  495.   #   w_param: Window_Skin class proper attribute
  496.   #   If w_param is nil, loads the default font setting.
  497.   # @param [String] f_param font param
  498.   # @param [String] w_param windowskin param
  499.   #--------------------------------------------------------------------------
  500.   def change_font_setting(f_param, w_param)
  501.     if eval("selected_windowskin.#{w_param}") != nil
  502.       eval("Font.#{f_param} = selected_windowskin.#{w_param}")
  503.     else
  504.       eval("Font.#{f_param} = Font_BK.#{f_param}")
  505.     end
  506.   end
  507.   #--------------------------------------------------------------------------
  508.   # * Returns true if the player can change the windowskin tone
  509.   #--------------------------------------------------------------------------
  510.   def tone_allowed?; !selected_windowskin.tone_locked; end
  511. end
  512.  
  513. #==============================================================================
  514. # ** Window_SkinPopup
  515. #------------------------------------------------------------------------------
  516. #  Window for windowskin selection
  517. #==============================================================================
  518. class Window_SkinPopup < Generic_PopupWindow
  519.   #--------------------------------------------------------------------------
  520.   # * Override method for cursor up
  521.   #--------------------------------------------------------------------------
  522.   def cursor_up(wrap = false)
  523.     super(wrap)
  524.     update_skins
  525.   end
  526.   #--------------------------------------------------------------------------
  527.   # * Override method for curson down
  528.   #--------------------------------------------------------------------------
  529.   def cursor_down(wrap = false)
  530.     super(wrap)
  531.     update_skins
  532.   end
  533.   #--------------------------------------------------------------------------
  534.   # * Update the system windowskin for all windows
  535.   #--------------------------------------------------------------------------
  536.   def update_skins
  537.     $game_system.set_windowskin(item)
  538.     SceneManager.scene.change_skin
  539.     refresh_windowskin(true)
  540.   end
  541. end
  542.  
  543. #==============================================================================
  544. # ** Scene_Options
  545. #------------------------------------------------------------------------------
  546. #  Adds the method to refresh all windows
  547. #==============================================================================
  548. class Scene_Options < Scene_MenuBase
  549.   #--------------------------------------------------------------------------
  550.   # * Change scene windowskin
  551.   #--------------------------------------------------------------------------
  552.   def change_skin
  553.     reset_skins
  554.     recheck_background
  555.   end
  556.   #--------------------------------------------------------------------------
  557.   # * Refresh all windows skins
  558.   #--------------------------------------------------------------------------
  559.   def reset_skins
  560.     instance_variables.each do |varname|
  561.       ivar = instance_variable_get(varname)
  562.       ivar.refresh_windowskin(true) if ivar.is_a?(Window)
  563.     end
  564.   end
  565.   #--------------------------------------------------------------------------
  566.   # * Refresh background
  567.   #--------------------------------------------------------------------------
  568.   def recheck_background
  569.     dispose_background
  570.     create_background
  571.   end
  572. end
  573.  
  574. #==============================================================================
  575. # ** Option
  576. #------------------------------------------------------------------------------
  577. #  New option methods
  578. #==============================================================================
  579. class Option
  580.   #--------------------------------------------------------------------------
  581.   # * Get the system windowskin name
  582.   # @return [String]
  583.   #--------------------------------------------------------------------------
  584.   def get_windowskin
  585.     $game_system.selected_windowskin.name
  586.   end
  587.   #--------------------------------------------------------------------------
  588.   # * Sets the windowskin (useless, anyway)
  589.   #--------------------------------------------------------------------------
  590.   def set_windowskin(value)
  591.     $game_system.set_windowskin(value)
  592.   end
  593.   #--------------------------------------------------------------------------
  594.   # * Gets the system red tone
  595.   # @return [Integer]
  596.   #--------------------------------------------------------------------------
  597.   def get_red_tone
  598.     $game_system.window_tone.red
  599.   end
  600.   #--------------------------------------------------------------------------
  601.   # * Sets the system red tone
  602.   # @param [Integer] value
  603.   #--------------------------------------------------------------------------
  604.   def set_red_tone(value)
  605.     $game_system.window_tone.red = value
  606.     $game_system.tone_customized = true
  607.   end
  608.   #--------------------------------------------------------------------------
  609.   # * Gets the system green tone
  610.   # @return [Integer]
  611.   #--------------------------------------------------------------------------
  612.   def get_green_tone
  613.     $game_system.window_tone.green
  614.   end
  615.   #--------------------------------------------------------------------------
  616.   # * Sets the system green tone
  617.   # @param [Integer] value
  618.   #--------------------------------------------------------------------------
  619.   def set_green_tone(value)
  620.     $game_system.window_tone.green = value
  621.     $game_system.tone_customized = true
  622.   end
  623.   #--------------------------------------------------------------------------
  624.   # * Gets the system blue tone
  625.   # @return [Integer]
  626.   #--------------------------------------------------------------------------
  627.   def get_blue_tone
  628.     $game_system.window_tone.blue
  629.   end
  630.   #--------------------------------------------------------------------------
  631.   # * Sets the system blue tone
  632.   # @param [Integer] value
  633.   #--------------------------------------------------------------------------
  634.   def set_blue_tone(value)
  635.     $game_system.window_tone.blue = value
  636.     $game_system.tone_customized = true
  637.   end
  638. end
  639.  
  640. #==============================================================================
  641. # ** Window_Base
  642. #------------------------------------------------------------------------------
  643. #  Windowskin reset for windows
  644. #==============================================================================
  645. class Window_Base < Window
  646.   alias h87_wskins_initialize initialize unless $@
  647.   #--------------------------------------------------------------------------
  648.   # * Initialization alias
  649.   # @param [Integer] x
  650.   # @param [Integer] y
  651.   # @param [Integer] width
  652.   # @param [Integer] height
  653.   #--------------------------------------------------------------------------
  654.   def initialize(x, y, width, height)
  655.     h87_wskins_initialize(x, y, width, height)
  656.     refresh_windowskin
  657.   end
  658. #--------------------------------------------------------------------------
  659. # * Loads the windowskin
  660. #   need_refresh: true if you want to recreate contents and refresh.
  661. #--------------------------------------------------------------------------
  662.   def refresh_windowskin(need_refresh = false)
  663.     if $game_system.selected_windowskin != nil
  664.       self.windowskin = $game_system.selected_windowskin.bitmap
  665.       unless @boc
  666.         if $game_system.selected_windowskin.opacity != nil
  667.           self.back_opacity = $game_system.selected_windowskin.opacity
  668.           @boc = false
  669.         else
  670.           self.back_opacity = 192
  671.           @boc = false
  672.         end
  673.       end
  674.       if need_refresh
  675.         create_contents
  676.         refresh
  677.       end
  678.     end
  679.   end
  680.   #--------------------------------------------------------------------------
  681.   # * Back opacity setting override
  682.   #--------------------------------------------------------------------------
  683.   def back_opacity=(value)
  684.     super
  685.     @boc = true
  686.   end
  687. end
  688.  
  689. class Scene_MenuBase < Scene_Base
  690.   alias h87_wsk_create_background create_background unless $@
  691.   alias h87_wsk_dispose_background dispose_background unless $@
  692.   #--------------------------------------------------------------------------
  693.   # * Create Background
  694.   #--------------------------------------------------------------------------
  695.   def create_background
  696.     h87_wsk_create_background
  697.     @background_sprite2 = Sprite.new
  698.     picture_name = $game_system.selected_windowskin.background
  699.     if picture_name.nil?
  700.       @background_sprite2.bitmap = nil
  701.     else
  702.       @background_sprite2.bitmap = Cache.picture(picture_name)
  703.     end
  704.   end
  705.   #--------------------------------------------------------------------------
  706.   # * Menu Background disposer
  707.   #--------------------------------------------------------------------------
  708.   def dispose_background
  709.     h87_wsk_dispose_background
  710.     @background_sprite2.dispose
  711.   end
  712. end
  713.  
  714. #==============================================================================
  715. # ** Font_BK
  716. #------------------------------------------------------------------------------
  717. #  backup container for fonts
  718. #==============================================================================
  719. module Font_BK
  720.   #--------------------------------------------------------------------------
  721.   # * Stores the default font settings
  722.   #--------------------------------------------------------------------------
  723.   def self.make_font_bk
  724.     @fdn = Font.default_name.clone
  725.     @fds = Font.default_size
  726.     @fdb = Font.default_bold
  727.     @fdi = Font.default_italic
  728.     @fdh = Font.default_shadow
  729.     @fdo = Font.default_outline
  730.     @fdc = Font.default_color.clone
  731.     @fdoc = Font.default_out_color.clone
  732.   end
  733.   #--------------------------------------------------------------------------
  734.   # * Releases the stored settings to the font.
  735.   #--------------------------------------------------------------------------
  736.   def self.default_name; @fdn; end
  737.   def self.default_size; @fds; end
  738.   def self.default_bold; @fdb; end
  739.   def self.default_italic; @fdi; end
  740.   def self.default_shadow; @fdh; end
  741.   def self.default_outline; @fdo; end
  742.   def self.default_color; @fdc; end
  743.   def self.default_out_color; @fdoc; end
  744. end
  745.  
  746. #==============================================================================
  747. # ** DataManager
  748. #==============================================================================
  749. module DataManager
  750.   # noinspection ALL
  751.   class << self
  752.     alias wsk_extract_save_contents extract_save_contents
  753.   end
  754.   #--------------------------------------------------------------------------
  755.   # * Alias method extract_save_contents
  756.   #--------------------------------------------------------------------------
  757.   def self.extract_save_contents(contents)
  758.     wsk_extract_save_contents(contents)
  759.     $game_system.refresh_windowskin
  760.   end
  761. end
  762.  
  763. # Creates a backup for font default settings
  764. Font_BK.make_font_bk
  765.  
  766. # Inserts the option
  767. WindowskinsManager.set_options
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top