settings icons and parameters disabling
This commit is contained in:
parent
29998e2385
commit
bea36d374e
|
|
@ -23,8 +23,8 @@ module RPG
|
||||||
else
|
else
|
||||||
path = Graphics.adapted_file(folder_name + filename)
|
path = Graphics.adapted_file(folder_name + filename)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
path = Graphics.adapted_file(folder_name + filename)
|
path = Graphics.adapted_file(folder_name + filename)
|
||||||
end
|
end
|
||||||
if not @cache.include?(path) or @cache[path].disposed?
|
if not @cache.include?(path) or @cache[path].disposed?
|
||||||
if filename != ""
|
if filename != ""
|
||||||
|
|
|
||||||
|
|
@ -3,53 +3,53 @@ module Settings
|
||||||
def reset!
|
def reset!
|
||||||
@data = {
|
@data = {
|
||||||
# Audio
|
# Audio
|
||||||
:bgm_volume => 100,
|
:bgm_volume => 100,
|
||||||
:sfx_volume => 100,
|
:sfx_volume => 100,
|
||||||
:use_fight_crime_track => false,
|
:use_fight_crime_track => false,
|
||||||
|
|
||||||
# Video
|
# Video
|
||||||
:fullscreen => false,
|
:fullscreen => false,
|
||||||
:resolution => 0,
|
:resolution => 0,
|
||||||
:colorblind => false,
|
:colorblind => false,
|
||||||
:frameskip => true,
|
:frameskip => true,
|
||||||
:twm_shader => true,
|
:twm_shader => true,
|
||||||
:light => true,
|
:light => true,
|
||||||
:scaling_mode => 0,
|
:scaling_mode => 0,
|
||||||
|
|
||||||
# UI
|
# UI
|
||||||
:in_game_timer => false,
|
:in_game_timer => false,
|
||||||
:language => 0,
|
:language => 0,
|
||||||
:fasttravel_ui => 0,
|
:fasttravel_ui => 0,
|
||||||
|
|
||||||
# Gameplay
|
# Gameplay
|
||||||
:movement => 0,
|
:movement => 0,
|
||||||
:skip_text => false,
|
:skip_text => false,
|
||||||
:en_purple_messagebox => true,
|
:en_purple_messagebox => true,
|
||||||
:enforce_april_fools => false,
|
:enforce_april_fools => false,
|
||||||
:true_memory_mode => false,
|
:true_memory_mode => false,
|
||||||
:oneshot_mode => false,
|
:oneshot_mode => false,
|
||||||
:twm_shader_footprint => true,
|
:twm_shader_footprint => true,
|
||||||
|
|
||||||
# Advanced
|
# Advanced
|
||||||
:crashlog_privacy => false,
|
:crashlog_privacy => false,
|
||||||
:streamer_privacy => false,
|
:streamer_privacy => false,
|
||||||
:SDL_HINT_INVALID_PARAM_CHECKS => false,
|
:SDL_HINT_INVALID_PARAM_CHECKS => false,
|
||||||
|
|
||||||
#controls
|
#controls
|
||||||
:gamepad_led => true,
|
:gamepad_led => true,
|
||||||
:gamepad_deadzone => 5,
|
:gamepad_deadzone => 5,
|
||||||
|
|
||||||
# Debug
|
# Debug
|
||||||
:debug => false,
|
:debug => false,
|
||||||
:debug_character => false,
|
:debug_character => false,
|
||||||
:debug_text => false,
|
:debug_text => false,
|
||||||
:debug_text_scene_title => true,
|
:debug_text_scene_title => true,
|
||||||
:debug_picture_names => false,
|
:debug_picture_names => false,
|
||||||
:debug_lightmap => false,
|
:debug_lightmap => false,
|
||||||
:SDL_HINT_SHUTDOWN_DBUS_ON_QUIT => false,
|
:SDL_HINT_SHUTDOWN_DBUS_ON_QUIT => false,
|
||||||
|
|
||||||
#Hidden
|
#Hidden
|
||||||
:is_dejavu => false,
|
:is_dejavu => false,
|
||||||
}
|
}
|
||||||
reset_controls!
|
reset_controls!
|
||||||
end
|
end
|
||||||
|
|
@ -127,12 +127,29 @@ end
|
||||||
class Window_Settings
|
class Window_Settings
|
||||||
# if parameter is linked to data in class Settings, then default value in this structure is ignored
|
# if parameter is linked to data in class Settings, then default value in this structure is ignored
|
||||||
DATA = {
|
DATA = {
|
||||||
"Help" => [
|
"Help" => [
|
||||||
{ :type => :base, :name => "(!) - It's Dangerous!" },
|
#{ :type => :sep }
|
||||||
{ :type => :base, :name => "(WIP) - Work In Progress" },
|
{
|
||||||
{ :type => :base, :name => "(GRR) - Game Restart Required" },
|
:type => :base,
|
||||||
{ :type => :base, :name => "(LRR) - Location Reload Required" },
|
:name => "- It's Dangerous!",
|
||||||
],
|
:icon => [1, 0]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
:type => :base,
|
||||||
|
:name => "- Work In Progress",
|
||||||
|
:icon => [0, 1]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
:type => :base,
|
||||||
|
:name => "- Game Restart Required",
|
||||||
|
:icon => [3, 0]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
:type => :base,
|
||||||
|
:name => "- Location Reload Required",
|
||||||
|
:icon => [1, 1]
|
||||||
|
},
|
||||||
|
],
|
||||||
"Audio" => [
|
"Audio" => [
|
||||||
{
|
{
|
||||||
:type => :slider,
|
:type => :slider,
|
||||||
|
|
@ -208,11 +225,12 @@ class Window_Settings
|
||||||
:type => :enum,
|
:type => :enum,
|
||||||
:name => "FastTravel UI",
|
:name => "FastTravel UI",
|
||||||
:parameter => :fasttravel_ui,
|
:parameter => :fasttravel_ui,
|
||||||
|
:icon => [0, 1],
|
||||||
:values => ["Original", "WME (WIP)"]
|
:values => ["Original", "WME (WIP)"]
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
"Gameplay" => [
|
"Gameplay" => [
|
||||||
{ :type => :sep, :name => "Vanila" },
|
{ :type => :sep, :name => "Vanilla" },
|
||||||
{
|
{
|
||||||
:type => :bool,
|
:type => :bool,
|
||||||
:name => "Colorblind mode",
|
:name => "Colorblind mode",
|
||||||
|
|
@ -247,12 +265,14 @@ class Window_Settings
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
:type => :bool,
|
:type => :bool,
|
||||||
:name => "Freeware Mode(!)",
|
:name => "Freeware Mode",
|
||||||
|
:icon => [1, 0],
|
||||||
:parameter => :oneshot_mode
|
:parameter => :oneshot_mode
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
:type => :bool,
|
:type => :bool,
|
||||||
:name => "World machine shader on Entity footprints(WIP)",
|
:name => "World machine shader on Entity footprints",
|
||||||
|
:icon => [0, 1],
|
||||||
:parameter => :twm_shader_footprint
|
:parameter => :twm_shader_footprint
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
@ -357,14 +377,16 @@ class Window_Settings
|
||||||
{ :type => :sep, :name => "Other" },
|
{ :type => :sep, :name => "Other" },
|
||||||
{
|
{
|
||||||
:type => :bool,
|
:type => :bool,
|
||||||
:name => "SDL_HINT_INVALID_PARAM_CHECKS (!)",
|
:name => "SDL_HINT_INVALID_PARAM_CHECKS",
|
||||||
|
:icon => [1, 0],
|
||||||
:parameter => :SDL_HINT_INVALID_PARAM_CHECKS
|
:parameter => :SDL_HINT_INVALID_PARAM_CHECKS
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
"Debug" => [
|
"Debug" => [
|
||||||
{
|
{
|
||||||
:type => :bool,
|
:type => :bool,
|
||||||
:name => "Debug mode(!)",
|
:name => "Debug mode",
|
||||||
|
:icon => [1, 0],
|
||||||
:parameter => :debug
|
:parameter => :debug
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
@ -404,7 +426,7 @@ class Window_Settings
|
||||||
:parameter => :controls_debug,
|
:parameter => :controls_debug,
|
||||||
:bind => Input::DEBUGACTION
|
:bind => Input::DEBUGACTION
|
||||||
},
|
},
|
||||||
{ :type => :seps},
|
{ :type => :sep },
|
||||||
{
|
{
|
||||||
:type => :action,
|
:type => :action,
|
||||||
:name => "Clear image cache",
|
:name => "Clear image cache",
|
||||||
|
|
@ -412,7 +434,12 @@ class Window_Settings
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"Mods" => [
|
"Mods" => [
|
||||||
{ :type => :base, :name => "Modloader enabled? #{ModLoader::IS_ENABLED}" },
|
{
|
||||||
|
:type => :base,
|
||||||
|
:name => "Modloader enabled?",
|
||||||
|
:default => ModLoader::IS_ENABLED ? "ON" : "OFF",
|
||||||
|
:disabled => true
|
||||||
|
},
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ class Window_Settings
|
||||||
PARAMETER_HEIGHT = 32
|
PARAMETER_HEIGHT = 32
|
||||||
PARAMETER_VALUE_WIDTH = PARAMETER_WIDTH / 2
|
PARAMETER_VALUE_WIDTH = PARAMETER_WIDTH / 2
|
||||||
PARAMETER_KEY_WIDTH = PARAMETER_WIDTH / 5
|
PARAMETER_KEY_WIDTH = PARAMETER_WIDTH / 5
|
||||||
|
ICON_SIZE = 16
|
||||||
# typed sizes
|
# typed sizes
|
||||||
BOOL_VALUE_WIDTH = 120
|
BOOL_VALUE_WIDTH = 120
|
||||||
|
|
||||||
|
|
@ -108,6 +109,7 @@ class Window_Settings
|
||||||
|
|
||||||
def add_parameter(sreen_name, parameter)
|
def add_parameter(sreen_name, parameter)
|
||||||
@parameters[sreen_name] << parameter
|
@parameters[sreen_name] << parameter
|
||||||
|
parameter
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_parameter(screen_name, parameter_id)
|
def get_parameter(screen_name, parameter_id)
|
||||||
|
|
@ -120,6 +122,21 @@ class Window_Settings
|
||||||
@parameters&.values&.[](@screen)&.[](@index)
|
@parameters&.values&.[](@screen)&.[](@index)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def disable_setting(screen, position)
|
||||||
|
if screen.is_a?(String)
|
||||||
|
get_parameter(screen, position).disable
|
||||||
|
else
|
||||||
|
get_parameter_by_sceen_id(screen, position).disable
|
||||||
|
end
|
||||||
|
end
|
||||||
|
def enable_setting(screen, position)
|
||||||
|
if screen.is_a?(String)
|
||||||
|
get_parameter(screen, position).enable
|
||||||
|
else
|
||||||
|
get_parameter_by_sceen_id(screen, position).enable
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
# updating
|
# updating
|
||||||
def update()
|
def update()
|
||||||
screen_result_pos = @screen * Graphics.width
|
screen_result_pos = @screen * Graphics.width
|
||||||
|
|
@ -309,7 +326,7 @@ class Window_Settings
|
||||||
class BaseParameter
|
class BaseParameter
|
||||||
TYPE = :base
|
TYPE = :base
|
||||||
|
|
||||||
def initialize(settings_content, screen_id, position, name, parameter, init_value)
|
def initialize(settings_content, screen_id, position, name, icon, parameter, init_value)
|
||||||
@settings_content = settings_content
|
@settings_content = settings_content
|
||||||
@screen_id = screen_id
|
@screen_id = screen_id
|
||||||
@position = position
|
@position = position
|
||||||
|
|
@ -317,24 +334,38 @@ class Window_Settings
|
||||||
@value = Settings[parameter] || init_value
|
@value = Settings[parameter] || init_value
|
||||||
@parameter = parameter
|
@parameter = parameter
|
||||||
@opacity = 1.0
|
@opacity = 1.0
|
||||||
|
@icon_position = icon
|
||||||
|
@disabled = false
|
||||||
|
|
||||||
@sprite = Sprite.new(@settings_content.viewport)
|
@sprite = Sprite.new(@settings_content.viewport)
|
||||||
@sprite.bitmap = Bitmap.new(PARAMETER_WIDTH, PARAMETER_HEIGHT + 1)
|
@sprite.bitmap = Bitmap.new(PARAMETER_WIDTH, PARAMETER_HEIGHT + 1)
|
||||||
@sprite.bitmap.font.size = 20
|
@sprite.bitmap.font.size = 20
|
||||||
|
|
||||||
|
if @icon_position
|
||||||
|
@icon = Sprite.new(@settings_content.viewport)
|
||||||
|
@icon.bitmap = Bitmap.new(ICON_SIZE, ICON_SIZE)
|
||||||
|
@icon.zoom_x = @icon.zoom_y = 2
|
||||||
|
end
|
||||||
|
|
||||||
Language.register_text_sprite("settings_parameter #{screen_id}-#{position}", @sprite)
|
Language.register_text_sprite("settings_parameter #{screen_id}-#{position}", @sprite)
|
||||||
|
|
||||||
@value_width = PARAMETER_VALUE_WIDTH
|
@value_width = PARAMETER_VALUE_WIDTH
|
||||||
self.value = self.value # appling init settings
|
self.value = self.value # appling init settings
|
||||||
redraw
|
redraw
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def enable
|
||||||
|
@disabled = false
|
||||||
|
end
|
||||||
|
def disable
|
||||||
|
@disabled = true
|
||||||
|
end
|
||||||
|
|
||||||
def opacity
|
def opacity
|
||||||
@opacity
|
@opacity
|
||||||
end
|
end
|
||||||
def opacity=(value)
|
def opacity=(value)
|
||||||
@opacity = value.to_f / 255.0
|
@opacity = value.to_f / 255.0
|
||||||
redraw
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def value
|
def value
|
||||||
|
|
@ -358,35 +389,59 @@ class Window_Settings
|
||||||
end
|
end
|
||||||
def name=(name)
|
def name=(name)
|
||||||
@name = name
|
@name = name
|
||||||
redraw()
|
redraw
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_display_value()
|
def get_display_value()
|
||||||
self.value.to_s || "null"
|
self.value.to_s || "null"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def redraw_icon()
|
||||||
|
if @icon_position
|
||||||
|
@icon.bitmap.clear
|
||||||
|
@icon.bitmap.blt(0, 0, RPG::Cache.menu("icons"), Rect.new(@icon_position[0] * ICON_SIZE, @icon_position[1] * ICON_SIZE, ICON_SIZE, ICON_SIZE))
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def redraw()
|
def redraw()
|
||||||
|
offset = !!@icon_position ? ICON_SIZE * 2 + 8 : 0
|
||||||
@sprite.bitmap.clear
|
@sprite.bitmap.clear
|
||||||
@sprite.bitmap.draw_text(0, 0, @sprite.bitmap.width - @value_width, @sprite.bitmap.height, tr(@name))
|
@sprite.bitmap.draw_text(offset, 0, @sprite.bitmap.width - @value_width - offset, @sprite.bitmap.height, tr(@name))
|
||||||
@sprite.bitmap.draw_text(@sprite.bitmap.width - @value_width, 0, @value_width, @sprite.bitmap.height, tr(get_display_value), 2)
|
@sprite.bitmap.draw_text(@sprite.bitmap.width - @value_width, 0, @value_width, @sprite.bitmap.height, tr(get_display_value), 2)
|
||||||
if (@settings_content.need_draw_line(@screen_id, @position))
|
if (@settings_content.need_draw_line(@screen_id, @position))
|
||||||
@sprite.bitmap.fill_rect(Rect.new(0, PARAMETER_HEIGHT - 1, PARAMETER_WIDTH, 2), Color.new(255, 255, 255, 24))
|
@sprite.bitmap.fill_rect(Rect.new(0, PARAMETER_HEIGHT - 1, PARAMETER_WIDTH, 2), Color.new(255, 255, 255, 24))
|
||||||
end
|
end
|
||||||
|
#if @icon_position
|
||||||
|
# @sprite.bitmap.blt(0, (PARAMETER_HEIGHT - ICON_SIZE * 2) / 2, RPG::Cache.menu("icons"), Rect.new(@icon_position[0] * ICON_SIZE, @icon_position[1] * ICON_SIZE, ICON_SIZE, ICON_SIZE))
|
||||||
|
#end
|
||||||
|
redraw_icon
|
||||||
end
|
end
|
||||||
|
|
||||||
def update()
|
def update()
|
||||||
|
disabled_opacity = @disabled ? 0.5 : 1
|
||||||
|
|
||||||
@sprite.x = @screen_id * Graphics.width - @settings_content.visible_x + @settings_content.x
|
@sprite.x = @screen_id * Graphics.width - @settings_content.visible_x + @settings_content.x
|
||||||
@sprite.y = @settings_content.visible_y + @position * PARAMETER_HEIGHT
|
@sprite.y = @settings_content.visible_y + @position * PARAMETER_HEIGHT
|
||||||
@sprite.opacity = ((1.0 + ((@sprite.y - @settings_content.offset).to_f / 64.0).clamp(-1.0, 0.0)) * @opacity * (@settings_content.opacity.to_f / 255.0) * 255.0).to_i
|
@sprite.opacity = ((1.0 + ((@sprite.y - @settings_content.offset).to_f / 64.0).clamp(-1.0, 0.0)) * @opacity * (@settings_content.opacity.to_f / 255.0) * disabled_opacity * 255.0).to_i
|
||||||
|
|
||||||
|
if @icon_position
|
||||||
|
@icon.opacity = (@opacity * (@settings_content.opacity.to_f / 255.0) * disabled_opacity * 255.0)
|
||||||
|
@icon.x = @sprite.x
|
||||||
|
@icon.y = @sprite.y - (PARAMETER_HEIGHT - ICON_SIZE * 2) / 2
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def dispose()
|
def dispose()
|
||||||
@sprite.dispose
|
@sprite.dispose
|
||||||
|
if @icon_position
|
||||||
|
@icon.dispose
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def value_left() end
|
def value_left() end
|
||||||
def value_right() end
|
def value_right() end
|
||||||
def action() end
|
def action() end
|
||||||
|
# only for visual updating, its not selecting for real
|
||||||
def select(previous) end
|
def select(previous) end
|
||||||
def deselect() end
|
def deselect() end
|
||||||
end
|
end
|
||||||
|
|
@ -395,17 +450,23 @@ class Window_Settings
|
||||||
class Separator < BaseParameter
|
class Separator < BaseParameter
|
||||||
TYPE = :sep
|
TYPE = :sep
|
||||||
|
|
||||||
def initialize(settings_content, screen_id, position, name)
|
def initialize(settings_content, screen_id, position, name, icon)
|
||||||
super(settings_content, screen_id, position, name, nil, "")
|
super(settings_content, screen_id, position, name, icon, nil, "")
|
||||||
end
|
end
|
||||||
|
|
||||||
def redraw()
|
def redraw()
|
||||||
|
redraw_icon
|
||||||
@sprite.bitmap.clear
|
@sprite.bitmap.clear
|
||||||
@sprite.bitmap.fill_rect(Rect.new(0, PARAMETER_HEIGHT / 2 - 1, PARAMETER_WIDTH, 2), Color.new(255, 255, 255, 64))
|
@sprite.bitmap.fill_rect(Rect.new(0, PARAMETER_HEIGHT / 2 - 1, PARAMETER_WIDTH, 2), Color.new(255, 255, 255, 64))
|
||||||
if (@name && @name != "")
|
if (@name && @name != "")
|
||||||
|
offset = !!@icon_position ? ICON_SIZE + 8 : 0
|
||||||
name = tr(@name)
|
name = tr(@name)
|
||||||
@sprite.bitmap.clear_rect(Rect.new((PARAMETER_WIDTH - name.length * 10) / 2 - 8, 0, name.length * 10 + 16, PARAMETER_HEIGHT))
|
text_width = @sprite.bitmap.text_size(name).width
|
||||||
@sprite.bitmap.draw_text(0, 0, @sprite.bitmap.width, @sprite.bitmap.height, name, 1)
|
@sprite.bitmap.clear_rect(Rect.new((PARAMETER_WIDTH - text_width - offset) / 2 - 8, 0, text_width + 16 + offset, PARAMETER_HEIGHT))
|
||||||
|
@sprite.bitmap.draw_text(offset, 0, @sprite.bitmap.width - offset, @sprite.bitmap.height, name, 1)
|
||||||
|
#if @icon_position
|
||||||
|
# @sprite.bitmap.blt((PARAMETER_WIDTH - text_width - offset - 16) / 2, (PARAMETER_HEIGHT - ICON_SIZE * 2) / 2, RPG::Cache.menu("icons"), Rect.new(@icon_position[0] * ICON_SIZE, @icon_position[1] * ICON_SIZE, ICON_SIZE, ICON_SIZE))
|
||||||
|
#end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
@ -414,8 +475,8 @@ class Window_Settings
|
||||||
class BoolParameter < BaseParameter
|
class BoolParameter < BaseParameter
|
||||||
TYPE = :bool
|
TYPE = :bool
|
||||||
|
|
||||||
def initialize(settings_content, screen_id, position, name, parameter, bool_value)
|
def initialize(settings_content, screen_id, position, name, icon, parameter, bool_value)
|
||||||
super(settings_content, screen_id, position, name, parameter, bool_value || false)
|
super(settings_content, screen_id, position, name, icon, parameter, bool_value || false)
|
||||||
@value_width = BOOL_VALUE_WIDTH
|
@value_width = BOOL_VALUE_WIDTH
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -431,14 +492,17 @@ class Window_Settings
|
||||||
end
|
end
|
||||||
|
|
||||||
def value_left()
|
def value_left()
|
||||||
|
return if @disabled
|
||||||
self.value = !self.value
|
self.value = !self.value
|
||||||
redraw
|
redraw
|
||||||
end
|
end
|
||||||
def value_right()
|
def value_right()
|
||||||
|
return if @disabled
|
||||||
self.value = !self.value
|
self.value = !self.value
|
||||||
redraw
|
redraw
|
||||||
end
|
end
|
||||||
def action()
|
def action()
|
||||||
|
return if @disabled
|
||||||
self.value = !self.value
|
self.value = !self.value
|
||||||
redraw
|
redraw
|
||||||
end
|
end
|
||||||
|
|
@ -448,11 +512,11 @@ class Window_Settings
|
||||||
class SwitchPatameter < BoolParameter
|
class SwitchPatameter < BoolParameter
|
||||||
TYPE = :switch
|
TYPE = :switch
|
||||||
|
|
||||||
def initialize(settings_content, screen_id, position, name, parameter, bool_value, switch, invert)
|
def initialize(settings_content, screen_id, position, name, icon, parameter, bool_value, switch, invert)
|
||||||
@switch = switch
|
@switch = switch
|
||||||
@invert = invert
|
@invert = invert
|
||||||
|
|
||||||
super(settings_content, screen_id, position, name, parameter, bool_value)
|
super(settings_content, screen_id, position, name, icon, parameter, bool_value)
|
||||||
end
|
end
|
||||||
|
|
||||||
def value=(value)
|
def value=(value)
|
||||||
|
|
@ -471,11 +535,11 @@ class Window_Settings
|
||||||
attr_reader :max_value
|
attr_reader :max_value
|
||||||
attr_reader :min_value
|
attr_reader :min_value
|
||||||
|
|
||||||
def initialize(settings_content, screen_id, position, name, parameter, int_value, min_value, max_value)
|
def initialize(settings_content, screen_id, position, name, icon, parameter, int_value, min_value, max_value)
|
||||||
@min_value = min_value
|
@min_value = min_value
|
||||||
@max_value = max_value
|
@max_value = max_value
|
||||||
|
|
||||||
super(settings_content, screen_id, position, name, parameter, int_value)
|
super(settings_content, screen_id, position, name, icon, parameter, int_value)
|
||||||
end
|
end
|
||||||
|
|
||||||
def value=(value)
|
def value=(value)
|
||||||
|
|
@ -486,10 +550,12 @@ class Window_Settings
|
||||||
end
|
end
|
||||||
|
|
||||||
def value_left()
|
def value_left()
|
||||||
|
return if @disabled
|
||||||
self.value = (self.value - 1).clamp(@min_value, @max_value)
|
self.value = (self.value - 1).clamp(@min_value, @max_value)
|
||||||
redraw
|
redraw
|
||||||
end
|
end
|
||||||
def value_right()
|
def value_right()
|
||||||
|
return if @disabled
|
||||||
self.value = (self.value + 1).clamp(@min_value, @max_value)
|
self.value = (self.value + 1).clamp(@min_value, @max_value)
|
||||||
redraw
|
redraw
|
||||||
end
|
end
|
||||||
|
|
@ -499,8 +565,8 @@ class Window_Settings
|
||||||
class SliderParameter < IntParameter
|
class SliderParameter < IntParameter
|
||||||
TYPE = :slider
|
TYPE = :slider
|
||||||
|
|
||||||
def initialize(settings_content, screen_id, position, name, parameter, int_value, min_value, max_value)
|
def initialize(settings_content, screen_id, position, name, icon, parameter, int_value, min_value, max_value)
|
||||||
super(settings_content, screen_id, position, name, parameter, int_value, min_value, max_value)
|
super(settings_content, screen_id, position, name, icon, parameter, int_value, min_value, max_value)
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_display_value()
|
def get_display_value()
|
||||||
|
|
@ -509,10 +575,12 @@ class Window_Settings
|
||||||
end
|
end
|
||||||
|
|
||||||
def redraw()
|
def redraw()
|
||||||
|
redraw_icon
|
||||||
|
offset = !!@icon_position ? ICON_SIZE * 2 + 8 : 0
|
||||||
@sprite.bitmap.clear
|
@sprite.bitmap.clear
|
||||||
@sprite.bitmap.font.color = Color.new(255, 255, 255)
|
@sprite.bitmap.font.color = Color.new(255, 255, 255)
|
||||||
|
|
||||||
@sprite.bitmap.draw_text(0, 0, @sprite.bitmap.width - @value_width, @sprite.bitmap.height, tr(@name))
|
@sprite.bitmap.draw_text(offset, 0, @sprite.bitmap.width - @value_width - offset, @sprite.bitmap.height, tr(@name))
|
||||||
|
|
||||||
percent = (self.value.to_f - @min_value.to_f) / @max_value.to_f
|
percent = (self.value.to_f - @min_value.to_f) / @max_value.to_f
|
||||||
width = (@value_width * percent).to_i
|
width = (@value_width * percent).to_i
|
||||||
|
|
@ -531,6 +599,10 @@ class Window_Settings
|
||||||
if (@settings_content.need_draw_line(@screen_id, @position))
|
if (@settings_content.need_draw_line(@screen_id, @position))
|
||||||
@sprite.bitmap.fill_rect(Rect.new(0, PARAMETER_HEIGHT - 1, PARAMETER_WIDTH, 2), Color.new(255, 255, 255, 24))
|
@sprite.bitmap.fill_rect(Rect.new(0, PARAMETER_HEIGHT - 1, PARAMETER_WIDTH, 2), Color.new(255, 255, 255, 24))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#if @icon_position
|
||||||
|
# @sprite.bitmap.blt(0, (PARAMETER_HEIGHT - ICON_SIZE * 2) / 2, RPG::Cache.menu("icons"), Rect.new(@icon_position[0] * ICON_SIZE, @icon_position[1] * ICON_SIZE, ICON_SIZE, ICON_SIZE))
|
||||||
|
#end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
@ -542,12 +614,12 @@ class Window_Settings
|
||||||
attr_reader :min_value
|
attr_reader :min_value
|
||||||
attr_reader :step
|
attr_reader :step
|
||||||
|
|
||||||
def initialize(settings_content, screen_id, position, name, parameter, float_value, step, min_value, max_value)
|
def initialize(settings_content, screen_id, position, name, icon, parameter, float_value, step, min_value, max_value)
|
||||||
@step = step
|
@step = step
|
||||||
@min_value = min_value
|
@min_value = min_value
|
||||||
@max_value = max_value
|
@max_value = max_value
|
||||||
|
|
||||||
super(settings_content, screen_id, position, name, parameter, float_value)
|
super(settings_content, screen_id, position, name, icon, parameter, float_value)
|
||||||
end
|
end
|
||||||
|
|
||||||
def value=(value)
|
def value=(value)
|
||||||
|
|
@ -558,10 +630,12 @@ class Window_Settings
|
||||||
end
|
end
|
||||||
|
|
||||||
def value_left()
|
def value_left()
|
||||||
|
return if @disabled
|
||||||
self.value = (self.value - @step).clamp(@min_value, @max_value)
|
self.value = (self.value - @step).clamp(@min_value, @max_value)
|
||||||
redraw
|
redraw
|
||||||
end
|
end
|
||||||
def value_right()
|
def value_right()
|
||||||
|
return if @disabled
|
||||||
self.value = (self.value + @step).clamp(@min_value, @max_value)
|
self.value = (self.value + @step).clamp(@min_value, @max_value)
|
||||||
redraw
|
redraw
|
||||||
end
|
end
|
||||||
|
|
@ -571,10 +645,10 @@ class Window_Settings
|
||||||
class EnumParameter < IntParameter
|
class EnumParameter < IntParameter
|
||||||
TYPE = :enum
|
TYPE = :enum
|
||||||
|
|
||||||
def initialize(settings_content, screen_id, position, name, parameter, int_value, enum_texts)
|
def initialize(settings_content, screen_id, position, name, icon, parameter, int_value, enum_texts)
|
||||||
@texts = enum_texts
|
@texts = enum_texts
|
||||||
|
|
||||||
super(settings_content, screen_id, position, name, parameter, int_value, 0, enum_texts.length - 1)
|
super(settings_content, screen_id, position, name, icon, parameter, int_value, 0, enum_texts.length - 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
def get_display_value
|
def get_display_value
|
||||||
|
|
@ -582,10 +656,12 @@ class Window_Settings
|
||||||
end
|
end
|
||||||
|
|
||||||
def value_left()
|
def value_left()
|
||||||
|
return if @disabled
|
||||||
self.value = (self.value - 1) % [1, @max_value + 1].max
|
self.value = (self.value - 1) % [1, @max_value + 1].max
|
||||||
redraw
|
redraw
|
||||||
end
|
end
|
||||||
def value_right()
|
def value_right()
|
||||||
|
return if @disabled
|
||||||
self.value = (self.value + 1) % [1, @max_value + 1].max
|
self.value = (self.value + 1) % [1, @max_value + 1].max
|
||||||
redraw
|
redraw
|
||||||
end
|
end
|
||||||
|
|
@ -599,7 +675,7 @@ class Window_Settings
|
||||||
|
|
||||||
attr_reader :selection
|
attr_reader :selection
|
||||||
|
|
||||||
def initialize(settings_content, screen_id, position, name, parameter, key_binds, input_bind)
|
def initialize(settings_content, screen_id, position, name, icon, parameter, key_binds, input_bind)
|
||||||
@selected = false
|
@selected = false
|
||||||
@selection = 0
|
@selection = 0
|
||||||
@key_binds = parameter ? Settings[parameter] : key_binds
|
@key_binds = parameter ? Settings[parameter] : key_binds
|
||||||
|
|
@ -607,7 +683,7 @@ class Window_Settings
|
||||||
@waiting_for_key = false
|
@waiting_for_key = false
|
||||||
@accept_action = false
|
@accept_action = false
|
||||||
|
|
||||||
super(settings_content, screen_id, position, name, parameter, nil)
|
super(settings_content, screen_id, position, name, icon, parameter, nil)
|
||||||
|
|
||||||
apply
|
apply
|
||||||
end
|
end
|
||||||
|
|
@ -657,6 +733,8 @@ class Window_Settings
|
||||||
end
|
end
|
||||||
|
|
||||||
def redraw()
|
def redraw()
|
||||||
|
redraw_icon
|
||||||
|
offset = !!@icon_position ? ICON_SIZE * 2 + 8 : 0
|
||||||
if (@parameter)
|
if (@parameter)
|
||||||
@key_binds = Settings[@parameter]
|
@key_binds = Settings[@parameter]
|
||||||
end
|
end
|
||||||
|
|
@ -669,7 +747,7 @@ class Window_Settings
|
||||||
@sprite.bitmap.draw_text(@sprite.bitmap.width - PARAMETER_KEY_WIDTH * (3 - @selection) - SELECTED_KEYS_MARGIN, 0, SELECTED_KEYS_MARGIN, @sprite.bitmap.height, "←", 1)
|
@sprite.bitmap.draw_text(@sprite.bitmap.width - PARAMETER_KEY_WIDTH * (3 - @selection) - SELECTED_KEYS_MARGIN, 0, SELECTED_KEYS_MARGIN, @sprite.bitmap.height, "←", 1)
|
||||||
end
|
end
|
||||||
|
|
||||||
@sprite.bitmap.draw_text(0, 0, @sprite.bitmap.width - PARAMETER_KEY_WIDTH * 4, @sprite.bitmap.height, tr(@name))
|
@sprite.bitmap.draw_text(offset, 0, @sprite.bitmap.width - PARAMETER_KEY_WIDTH * 4 - offset, @sprite.bitmap.height, tr(@name))
|
||||||
for i in 0..3
|
for i in 0..3
|
||||||
offset = (@selected && i == @selection ? SELECTED_KEYS_MARGIN : 4)
|
offset = (@selected && i == @selection ? SELECTED_KEYS_MARGIN : 4)
|
||||||
parameter_x = @sprite.bitmap.width - PARAMETER_KEY_WIDTH * (4 - i) + offset
|
parameter_x = @sprite.bitmap.width - PARAMETER_KEY_WIDTH * (4 - i) + offset
|
||||||
|
|
@ -680,6 +758,10 @@ class Window_Settings
|
||||||
if (@settings_content.need_draw_line(@screen_id, @position))
|
if (@settings_content.need_draw_line(@screen_id, @position))
|
||||||
@sprite.bitmap.fill_rect(Rect.new(0, PARAMETER_HEIGHT - 1, PARAMETER_WIDTH, 2), Color.new(255, 255, 255, 24))
|
@sprite.bitmap.fill_rect(Rect.new(0, PARAMETER_HEIGHT - 1, PARAMETER_WIDTH, 2), Color.new(255, 255, 255, 24))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
#if @icon_position
|
||||||
|
# @sprite.bitmap.blt(0, (PARAMETER_HEIGHT - ICON_SIZE * 2) / 2, RPG::Cache.menu("icons"), Rect.new(@icon_position[0] * ICON_SIZE, @icon_position[1] * ICON_SIZE, ICON_SIZE, ICON_SIZE))
|
||||||
|
#end
|
||||||
end
|
end
|
||||||
|
|
||||||
def value_left()
|
def value_left()
|
||||||
|
|
@ -698,6 +780,7 @@ class Window_Settings
|
||||||
end
|
end
|
||||||
|
|
||||||
def action()
|
def action()
|
||||||
|
return if @disabled
|
||||||
@accept_action = false
|
@accept_action = false
|
||||||
@waiting_for_key = true
|
@waiting_for_key = true
|
||||||
@settings_content.waiting_for_key = true
|
@settings_content.waiting_for_key = true
|
||||||
|
|
@ -762,17 +845,18 @@ class Window_Settings
|
||||||
class ActionParameter < BaseParameter
|
class ActionParameter < BaseParameter
|
||||||
TYPE = :action
|
TYPE = :action
|
||||||
|
|
||||||
def initialize(settings_content, screen_id, position, name, value_text, func, arg1, arg2, arg3, arg4)
|
def initialize(settings_content, screen_id, position, name, icon, value_text, func, arg1, arg2, arg3, arg4)
|
||||||
@func = func
|
@func = func
|
||||||
@arg1 = arg1
|
@arg1 = arg1
|
||||||
@arg2 = arg2
|
@arg2 = arg2
|
||||||
@arg3 = arg3
|
@arg3 = arg3
|
||||||
@arg4 = arg4
|
@arg4 = arg4
|
||||||
|
|
||||||
super(settings_content, screen_id, position, name, nil, value_text)
|
super(settings_content, screen_id, position, name, icon, nil, value_text)
|
||||||
end
|
end
|
||||||
|
|
||||||
def action()
|
def action()
|
||||||
|
return if @disabled
|
||||||
if @arg1 == nil && @arg2 == nil && @arg3 == nil && @arg4 == nil
|
if @arg1 == nil && @arg2 == nil && @arg3 == nil && @arg4 == nil
|
||||||
@func.call
|
@func.call
|
||||||
elsif @arg2 == nil && @arg3 == nil && @arg4 == nil
|
elsif @arg2 == nil && @arg3 == nil && @arg4 == nil
|
||||||
|
|
|
||||||
|
|
@ -452,4 +452,16 @@ class Scene_Map
|
||||||
@window_settings.redraw_all
|
@window_settings.redraw_all
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def disable_setting(screen, parameter_id)
|
||||||
|
if @window_settings
|
||||||
|
@window_settings.disable_setting(screen, parameter_id)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def enable_setting(screen, parameter_id)
|
||||||
|
if @window_settings
|
||||||
|
@window_settings.enable_setting(screen, parameter_id)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -67,43 +67,61 @@ class Window_Settings
|
||||||
DATA.each_with_index do |(screen_title, parameters_info), screen_index|
|
DATA.each_with_index do |(screen_title, parameters_info), screen_index|
|
||||||
@content.add_screen(screen_title)
|
@content.add_screen(screen_title)
|
||||||
parameters_info.each_with_index do |parameter_info, parameter_index|
|
parameters_info.each_with_index do |parameter_info, parameter_index|
|
||||||
|
parameter = nil
|
||||||
if parameters_info == :sep
|
if parameters_info == :sep
|
||||||
@content.add_parameter(screen_title, Separator.new(@content, screen_index, parameter_index, ""))
|
parameter = @content.add_parameter(screen_title, Separator.new(@content, screen_index, parameter_index, ""))
|
||||||
else
|
else
|
||||||
case parameter_info[:type]
|
case parameter_info[:type]
|
||||||
when :base
|
when :base
|
||||||
|
parameter =
|
||||||
@content.add_parameter(screen_title, BaseParameter.new(@content, screen_index, parameter_index,
|
@content.add_parameter(screen_title, BaseParameter.new(@content, screen_index, parameter_index,
|
||||||
parameter_info[:name], parameter_info[:parameter], parameter_info[:default]))
|
parameter_info[:name], parameter_info[:icon], parameter_info[:parameter], parameter_info[:default]))
|
||||||
when :bool
|
when :bool
|
||||||
|
parameter =
|
||||||
@content.add_parameter(screen_title, BoolParameter.new(@content, screen_index, parameter_index,
|
@content.add_parameter(screen_title, BoolParameter.new(@content, screen_index, parameter_index,
|
||||||
parameter_info[:name], parameter_info[:parameter], parameter_info[:default]))
|
parameter_info[:name], parameter_info[:icon], parameter_info[:parameter], parameter_info[:default]))
|
||||||
when :switch
|
when :switch
|
||||||
|
parameter =
|
||||||
@content.add_parameter(screen_title, SwitchPatameter.new(@content, screen_index, parameter_index,
|
@content.add_parameter(screen_title, SwitchPatameter.new(@content, screen_index, parameter_index,
|
||||||
parameter_info[:name], parameter_info[:parameter], parameter_info[:default], parameter_info[:switch], parameter_info[:invert]))
|
parameter_info[:name], parameter_info[:icon], parameter_info[:parameter], parameter_info[:default],
|
||||||
|
parameter_info[:switch], parameter_info[:invert]))
|
||||||
when :int
|
when :int
|
||||||
|
parameter =
|
||||||
@content.add_parameter(screen_title, IntParameter.new(@content, screen_index, parameter_index,
|
@content.add_parameter(screen_title, IntParameter.new(@content, screen_index, parameter_index,
|
||||||
parameter_info[:name], parameter_info[:parameter], parameter_info[:default], parameter_info[:min], parameter_info[:max]))
|
parameter_info[:name], parameter_info[:icon], parameter_info[:parameter], parameter_info[:default],
|
||||||
|
parameter_info[:min], parameter_info[:max]))
|
||||||
when :slider
|
when :slider
|
||||||
|
parameter =
|
||||||
@content.add_parameter(screen_title, SliderParameter.new(@content, screen_index, parameter_index,
|
@content.add_parameter(screen_title, SliderParameter.new(@content, screen_index, parameter_index,
|
||||||
parameter_info[:name], parameter_info[:parameter], parameter_info[:default], parameter_info[:min], parameter_info[:max]))
|
parameter_info[:name], parameter_info[:icon], parameter_info[:parameter], parameter_info[:default],
|
||||||
|
parameter_info[:min], parameter_info[:max]))
|
||||||
when :float
|
when :float
|
||||||
|
parameter =
|
||||||
@content.add_parameter(screen_title, FloatParameter.new(@content, screen_index, parameter_index,
|
@content.add_parameter(screen_title, FloatParameter.new(@content, screen_index, parameter_index,
|
||||||
parameter_info[:name], parameter_info[:parameter], parameter_info[:default], parameter_info[:step], parameter_info[:min], parameter_info[:max]))
|
parameter_info[:name], parameter_info[:icon], parameter_info[:parameter], parameter_info[:default],
|
||||||
|
parameter_info[:step], parameter_info[:min], parameter_info[:max]))
|
||||||
when :enum
|
when :enum
|
||||||
|
parameter =
|
||||||
@content.add_parameter(screen_title, EnumParameter.new(@content, screen_index, parameter_index,
|
@content.add_parameter(screen_title, EnumParameter.new(@content, screen_index, parameter_index,
|
||||||
parameter_info[:name], parameter_info[:parameter], parameter_info[:default], parameter_info[:values]))
|
parameter_info[:name], parameter_info[:icon], parameter_info[:parameter], parameter_info[:default],
|
||||||
|
parameter_info[:values]))
|
||||||
when :sep
|
when :sep
|
||||||
|
parameter =
|
||||||
@content.add_parameter(screen_title, Separator.new(@content, screen_index, parameter_index,
|
@content.add_parameter(screen_title, Separator.new(@content, screen_index, parameter_index,
|
||||||
parameter_info[:name]))
|
parameter_info[:name], parameter_info[:icon]))
|
||||||
when :key
|
when :key
|
||||||
|
parameter =
|
||||||
@content.add_parameter(screen_title, KeyParameter.new(@content, screen_index, parameter_index,
|
@content.add_parameter(screen_title, KeyParameter.new(@content, screen_index, parameter_index,
|
||||||
parameter_info[:name], parameter_info[:parameter], parameter_info[:key_binds], parameter_info[:bind]))
|
parameter_info[:name], parameter_info[:icon], parameter_info[:parameter], parameter_info[:key_binds],
|
||||||
|
parameter_info[:bind]))
|
||||||
when :action
|
when :action
|
||||||
|
parameter =
|
||||||
@content.add_parameter(screen_title, ActionParameter.new(@content, screen_index, parameter_index,
|
@content.add_parameter(screen_title, ActionParameter.new(@content, screen_index, parameter_index,
|
||||||
parameter_info[:name], parameter_info[:default], parameter_info[:action],
|
parameter_info[:name], parameter_info[:icon], parameter_info[:default], parameter_info[:action],
|
||||||
parameter_info[:arg1], parameter_info[:arg2], parameter_info[:arg3], parameter_info[:arg4]))
|
parameter_info[:arg1], parameter_info[:arg2], parameter_info[:arg3], parameter_info[:arg4]))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
parameter.disable if parameter_info[:disabled] && parameter
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
@content.redraw_all
|
@content.redraw_all
|
||||||
|
|
@ -116,6 +134,13 @@ class Window_Settings
|
||||||
@update_connection.disconnect
|
@update_connection.disconnect
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def disable_setting(screen, position)
|
||||||
|
@content.disable_setting(screen, position)
|
||||||
|
end
|
||||||
|
def enable_setting(screen, position)
|
||||||
|
@content.enable_setting(screen, position)
|
||||||
|
end
|
||||||
|
|
||||||
def open
|
def open
|
||||||
self.visible = true
|
self.visible = true
|
||||||
self.opacity = 0
|
self.opacity = 0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue