mirror of
https://forgejo.xatacraft.ru/Sunshine/mkxp-sunshine.git
synced 2026-08-19 13:29:54 +00:00
353 lines
12 KiB
Ruby
353 lines
12 KiB
Ruby
module Settings
|
|
class << self
|
|
def reset!
|
|
@data = {
|
|
# Audio
|
|
:bgm_volume => 100,
|
|
:sfx_volume => 100,
|
|
|
|
# Video
|
|
:fullscreen => false,
|
|
:colorblind => false,
|
|
:frameskip => true,
|
|
:twm_shader => true,
|
|
|
|
# UI
|
|
:in_game_timer => false,
|
|
:language => 0,
|
|
:fasttravel_ui => 0,
|
|
:debug_text_scene_title => true,
|
|
|
|
# Gameplay
|
|
:movement => 0,
|
|
:skip_text => false,
|
|
:en_purple_messagebox => true,
|
|
:enforce_april_fools => false,
|
|
:true_memory_mode => false,
|
|
:pre_solstice_update_content => false,
|
|
:dejavu_mode => false,
|
|
:demo => false,
|
|
:oneshot_mode => false,
|
|
|
|
# Advanced
|
|
|
|
#controls
|
|
:gamepad_led => true,
|
|
:gamepad_deadzone => 5,
|
|
|
|
# Debug
|
|
:debug => false,
|
|
:debug_character => false,
|
|
:debug_text => false,
|
|
}
|
|
reset_controls!
|
|
end
|
|
|
|
def reset_controls!
|
|
@data.merge!({
|
|
:controls_walk_down => [
|
|
KeyBind.key(Input::key_from_name("Down")),
|
|
KeyBind.caxis(Input::c_axis_from_name("LeftY"), KeyBind::Positive),
|
|
KeyBind.cbutton(Input::c_button_from_name("DpDown"))
|
|
],
|
|
:controls_walk_left => [
|
|
KeyBind.key(Input::key_from_name("Left")),
|
|
KeyBind.caxis(Input::c_axis_from_name("LeftX"), KeyBind::Negative),
|
|
KeyBind.cbutton(Input::c_button_from_name("DpLeft"))
|
|
],
|
|
:controls_walk_right => [
|
|
KeyBind.key(Input::key_from_name("Right")),
|
|
KeyBind.caxis(Input::c_axis_from_name("LeftX"), KeyBind::Positive),
|
|
KeyBind.cbutton(Input::c_button_from_name("DpRight"))
|
|
],
|
|
:controls_walk_up => [
|
|
KeyBind.key(Input::key_from_name("Up")),
|
|
KeyBind.caxis(Input::c_axis_from_name("LeftY"), KeyBind::Negative),
|
|
KeyBind.cbutton(Input::c_button_from_name("DpUp"))
|
|
],
|
|
:controls_run => [
|
|
KeyBind.key(Input::key_from_name("Left Shift")),
|
|
KeyBind.caxis(Input::c_axis_from_name("righttrigger"), KeyBind::Positive),
|
|
KeyBind.cbutton(Input::c_button_from_name("x"))
|
|
],
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
:controls_action => [
|
|
KeyBind.key(Input::key_from_name("Z")),
|
|
KeyBind.key(Input::key_from_name("Space")),
|
|
KeyBind.cbutton(Input::c_button_from_name("a")),
|
|
],
|
|
:controls_deactivate => [
|
|
KeyBind.key(Input::key_from_name("Left Shift")),
|
|
KeyBind.cbutton(Input::c_button_from_name("back")),
|
|
KeyBind.caxis(Input::c_axis_from_name("lefttrigger"), KeyBind::Positive),
|
|
],
|
|
:controls_cancel => [
|
|
KeyBind.key(Input::key_from_name("X")),
|
|
KeyBind.key(Input::key_from_name("Escape")),
|
|
KeyBind.cbutton(Input::c_button_from_name("b")),
|
|
],
|
|
:controls_menu => [
|
|
KeyBind.key(Input::key_from_name("A")),
|
|
KeyBind.key(Input::key_from_name("Return")),
|
|
KeyBind.cbutton(Input::c_button_from_name("start")),
|
|
],
|
|
:controls_items => [
|
|
KeyBind.key(Input::key_from_name("S")),
|
|
KeyBind.cbutton(Input::c_button_from_name("y")),
|
|
],
|
|
:controls_nav_left => [
|
|
KeyBind.key(Input::key_from_name("Q")),
|
|
KeyBind.cbutton(Input::c_button_from_name("leftshoulder")),
|
|
],
|
|
:controls_nav_right => [
|
|
KeyBind.key(Input::key_from_name("W")),
|
|
KeyBind.cbutton(Input::c_button_from_name("rightshoulder")),
|
|
],
|
|
# -----------------------------------------------------------------------------------------------------------
|
|
:controls_debug => [
|
|
KeyBind.key(Input::key_from_name("Left Ctrl")),
|
|
KeyBind.cbutton(Input::c_button_from_name("rightstick")),
|
|
],
|
|
})
|
|
end
|
|
end
|
|
end
|
|
|
|
class Window_Settings
|
|
# if parameter is linked to data in class Settings, then default value in this structure is ignored
|
|
DATA = {
|
|
tr("Audio") => [
|
|
{
|
|
:type => :slider,
|
|
:name => tr('BGM Volume'),
|
|
:parameter => :bgm_volume,
|
|
:min => 0,
|
|
:max => 100
|
|
},
|
|
{
|
|
:type => :slider,
|
|
:name => tr('SFX Volume'),
|
|
:parameter => :sfx_volume,
|
|
:min => 0,
|
|
:max => 100
|
|
},
|
|
],
|
|
tr("Video") => [
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Fullscreen'),
|
|
:parameter => :fullscreen
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Colorblind mode'),
|
|
:parameter => :colorblind
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Frameskip'),
|
|
:parameter => :frameskip
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('World machine shader'),
|
|
:parameter => :twm_shader
|
|
},
|
|
],
|
|
tr("UI") => [
|
|
{
|
|
:type => :bool,
|
|
:name => tr('In-Game Timer'),
|
|
:parameter => :in_game_timer
|
|
},
|
|
{
|
|
:type => :enum,
|
|
:name => tr('Language'),
|
|
:parameter => :language,
|
|
:values => Language::LANGUAGES
|
|
},
|
|
{
|
|
:type => :enum,
|
|
:name => tr('FastTravel UI'),
|
|
:parameter => :fasttravel_ui,
|
|
:values => [tr("Original"), tr("WME")]
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Draw debug text in main menu(RR)'),
|
|
:parameter => :debug_text_scene_title
|
|
},
|
|
],
|
|
tr("Gameplay") => [
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Skip Text (R)'),
|
|
:parameter => :skip_text
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Purple message box for Entity(WIP)'),
|
|
:parameter => :en_purple_messagebox
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Enforce april fools(WIP)'),
|
|
:parameter => :enforce_april_fools
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('True Memory Mode(WIP)'),
|
|
:parameter => :true_memory_mode
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Enable Pre-Solstice update content(WIP)'),
|
|
:parameter => :pre_solstice_update_content
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Dejavu mode(WIP)'),
|
|
:parameter => :dejavu_mode
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Demo mode(WIP)'),
|
|
:parameter => :demo
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Freeware Mode(!)'),
|
|
:parameter => :oneshot_mode
|
|
},
|
|
],
|
|
tr("Controls") => [
|
|
{
|
|
:type => :base,
|
|
:name => tr('Configure controls'),
|
|
:default => tr("Press F1")
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Control LED lighting on gamepads'),
|
|
:parameter => :gamepad_led
|
|
},
|
|
#{
|
|
# :type => :slider,
|
|
# :name => tr("Gamepad deadzone"),
|
|
# :parameter => :gamepad_deadzone,
|
|
# :min => 0,
|
|
# :max => 10
|
|
#},
|
|
{ :type => :sep, :name => tr("Walk") },
|
|
{
|
|
:type => :key,
|
|
:name => tr("Walk Down"),
|
|
:parameter => :controls_walk_down,
|
|
:bind => Input::DOWN
|
|
},
|
|
{
|
|
:type => :key,
|
|
:name => tr("Walk Left"),
|
|
:parameter => :controls_walk_left,
|
|
:bind => Input::LEFT
|
|
},
|
|
{
|
|
:type => :key,
|
|
:name => tr("Walk Right"),
|
|
:parameter => :controls_walk_right,
|
|
:bind => Input::RIGHT
|
|
},
|
|
{
|
|
:type => :key,
|
|
:name => tr("Walk Up"),
|
|
:parameter => :controls_walk_up,
|
|
:bind => Input::UP
|
|
},
|
|
{
|
|
:type => :key,
|
|
:name => tr("Run"),
|
|
:parameter => :controls_run,
|
|
:bind => Input::RUN
|
|
},
|
|
{ :type => :sep, :name => tr("Actions") },
|
|
{
|
|
:type => :key,
|
|
:name => tr("Action"),
|
|
:parameter => :controls_action,
|
|
:bind => Input::ACTION
|
|
},
|
|
{
|
|
:type => :key,
|
|
:name => tr("Deactivate"),
|
|
:parameter => :controls_deactivate,
|
|
:bind => Input::DEACTIVATE
|
|
},
|
|
{
|
|
:type => :key,
|
|
:name => tr("Cancel"),
|
|
:parameter => :controls_cancel,
|
|
:bind => Input::CANCEL
|
|
},
|
|
{
|
|
:type => :key,
|
|
:name => tr("Menu"),
|
|
:parameter => :controls_menu,
|
|
:bind => Input::MENU
|
|
},
|
|
{
|
|
:type => :key,
|
|
:name => tr("Items"),
|
|
:parameter => :controls_items,
|
|
:bind => Input::ITEMS
|
|
},
|
|
{
|
|
:type => :key,
|
|
:name => tr("Nav Left"),
|
|
:parameter => :controls_nav_left,
|
|
:bind => Input::L
|
|
},
|
|
{
|
|
:type => :key,
|
|
:name => tr("Nav Right"),
|
|
:parameter => :controls_nav_right,
|
|
:bind => Input::R
|
|
},
|
|
{ :type => :sep, :name => tr("Other") },
|
|
{
|
|
:type => :key,
|
|
:name => tr("Debug"),
|
|
:parameter => :controls_debug,
|
|
:bind => Input::DEBUGACTION
|
|
},
|
|
{
|
|
:type => :action,
|
|
:name => tr("Reset Controls"),
|
|
:action => Settings.method(:reset_controls!)
|
|
},
|
|
],
|
|
tr("Advanced") => [
|
|
{
|
|
:type => :bool,
|
|
:name => tr('useless option:3'),
|
|
:default => false
|
|
},
|
|
],
|
|
tr("Debug") => [
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Debug mode(!)'),
|
|
:parameter => :debug
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Show debug character'),
|
|
:parameter => :debug_character
|
|
},
|
|
{
|
|
:type => :bool,
|
|
:name => tr('Show debug text'),
|
|
:parameter => :debug_text
|
|
},
|
|
],
|
|
}
|
|
end
|