mirror of
https://github.com/cyberarm/i-mic-fps.git
synced 2025-12-16 08:02:36 +00:00
Moved shaders to cyberarm_engine, patched up settings menu, updated gems.
This commit is contained in:
@@ -30,15 +30,17 @@ class IMICFPS
|
||||
stack(width: 0.25, height: 1.0) do
|
||||
end
|
||||
|
||||
stack(width: 0.5, height: 1.0) do
|
||||
stack(width: 1.0, height: 0.25) do
|
||||
title "Settings"
|
||||
stack(fill: true, height: 1.0) do
|
||||
title "Settings", width: 1.0, text_align: :center
|
||||
|
||||
stack(width: 1.0, height: 96) do
|
||||
flow(width: 1.0) do
|
||||
link I18n.t("menus.back"), width: nil do
|
||||
pop_state
|
||||
end
|
||||
|
||||
flow(fill: true)
|
||||
|
||||
button get_image("#{GAME_ROOT_PATH}/static/icons/settings_display.png"), image_width: 64, tip: I18n.t("settings.display") do
|
||||
show_page(:display)
|
||||
end
|
||||
@@ -61,9 +63,12 @@ class IMICFPS
|
||||
end
|
||||
end
|
||||
|
||||
@page_container = stack(width: 1.0, height: 0.75, scroll: true) do
|
||||
@page_container = stack(width: 1.0, fill: true, scroll: true, padding: 10) do
|
||||
end
|
||||
end
|
||||
|
||||
stack(width: 0.25, height: 1.0) do
|
||||
end
|
||||
end
|
||||
|
||||
# @categories.each do |category|
|
||||
@@ -90,41 +95,42 @@ class IMICFPS
|
||||
def page_display
|
||||
label "Display", text_size: 50
|
||||
|
||||
label "Resolution"
|
||||
flow do
|
||||
stack do
|
||||
label "Width"
|
||||
label "Height"
|
||||
stack(width: 1.0, height: 128) do
|
||||
flow(width: 1.0) do
|
||||
label "Width", width: 96
|
||||
edit_line window.width.to_s, fill: true
|
||||
end
|
||||
stack do
|
||||
edit_line window.width.to_s
|
||||
edit_line window.height.to_s
|
||||
|
||||
flow(width: 1.0) do
|
||||
label "Height", width: 96
|
||||
edit_line window.height.to_s, fill: true
|
||||
end
|
||||
end
|
||||
|
||||
check_box "Fullscreen", margin_top: 25, margin_bottom: 25
|
||||
# check_box "Fullscreen", margin_top: 25, margin_bottom: 25, width: 1.0
|
||||
|
||||
stack do
|
||||
longest_string = "Gamma Correction"
|
||||
flow do
|
||||
label "Gamma Correction".ljust(longest_string.length, " ")
|
||||
@display_gamma_correction = slider range: 0.0..1.0, value: 0.5
|
||||
stack(width: 1.0, height: 128, margin_top: 20) do
|
||||
flow(width: 1.0, fill: true) do
|
||||
label "Gamma Correction", width: 256
|
||||
@display_gamma_correction = slider range: 0.0..1.0, value: 0.5, fill: true
|
||||
@display_gamma_correction.subscribe(:changed) do |_sender, value|
|
||||
@display_gamma_correction_label.value = value.round(1).to_s
|
||||
end
|
||||
@display_gamma_correction_label = label "0.0"
|
||||
end
|
||||
flow do
|
||||
label "Brightness".ljust(longest_string.length, " ")
|
||||
@display_brightness = slider range: 0.0..1.0, value: 0.5
|
||||
|
||||
flow(width: 1.0, fill: true) do
|
||||
label "Brightness", width: 256
|
||||
@display_brightness = slider range: 0.0..1.0, value: 0.5, fill: true
|
||||
@display_brightness.subscribe(:changed) do |_sender, value|
|
||||
@display_brightness_label.value = value.round(1).to_s
|
||||
end
|
||||
@display_brightness_label = label "0.0"
|
||||
end
|
||||
flow do
|
||||
label "Contrast".ljust(longest_string.length, " ")
|
||||
@display_contrast = slider range: 0.0..1.0, value: 0.5
|
||||
|
||||
flow(width: 1.0, fill: true) do
|
||||
label "Contrast", width: 256
|
||||
@display_contrast = slider range: 0.0..1.0, value: 0.5, fill: true
|
||||
@display_contrast.subscribe(:changed) do |_sender, value|
|
||||
@display_contrast_label.value = value.round(1).to_s
|
||||
end
|
||||
@@ -135,29 +141,22 @@ class IMICFPS
|
||||
|
||||
def page_audio
|
||||
label "Audio", text_size: 50
|
||||
longest_string = "Dialogue".length
|
||||
volumes = %i[master sound_effects music dialogue]
|
||||
|
||||
stack(width: 1.0) do
|
||||
stack(width: 1.0, height: 48 * volumes.count) do
|
||||
volumes.each do |volume|
|
||||
config_value = window.config.get(:options, :audio, :"volume_#{volume}")
|
||||
|
||||
flow(width: 1.0, margin_bottom: 10) do
|
||||
flow(width: 0.25) do
|
||||
label volume.to_s.split("_").map(&:capitalize).join(" ").ljust(longest_string, " ")
|
||||
flow(width: 1.0, fill: true, margin_bottom: 10) do
|
||||
label volume.to_s.split("_").map(&:capitalize).join(" "), width: 172
|
||||
|
||||
instance_variable_set(:"@volume_#{volume}", slider(range: 0.0..1.0, value: config_value, fill: true))
|
||||
instance_variable_get(:"@volume_#{volume}").subscribe(:changed) do |_sender, value|
|
||||
instance_variable_get(:"@volume_#{volume}_label").value = format("%03.2f%%", value * 100.0)
|
||||
window.config[:options, :audio, :"volume_#{volume}"] = value
|
||||
end
|
||||
|
||||
flow(width: 0.5) do
|
||||
instance_variable_set(:"@volume_#{volume}", slider(range: 0.0..1.0, value: config_value, width: 1.0))
|
||||
instance_variable_get(:"@volume_#{volume}").subscribe(:changed) do |_sender, value|
|
||||
instance_variable_get(:"@volume_#{volume}_label").value = format("%03.2f%%", value * 100.0)
|
||||
window.config[:options, :audio, :"volume_#{volume}"] = value
|
||||
end
|
||||
end
|
||||
|
||||
flow(width: 0.25) do
|
||||
instance_variable_set(:"@volume_#{volume}_label", label(format("%03.2f%%", config_value * 100.0)))
|
||||
end
|
||||
instance_variable_set(:"@volume_#{volume}_label", label(format("%03.2f%%", config_value * 100.0), width: 96, text_align: :right))
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -167,16 +166,16 @@ class IMICFPS
|
||||
label "Controls", text_size: 50
|
||||
|
||||
InputMapper.keymap.each do |key, values|
|
||||
flow do
|
||||
label key.to_s
|
||||
flow(width: 1.0, height: 64) do
|
||||
label key.to_s, width: 0.5, max_width: 312
|
||||
|
||||
[values].flatten.each do |value|
|
||||
if name = Gosu.button_name(value)
|
||||
else
|
||||
unless (name = Gosu.button_name(value))
|
||||
name = Gosu.constants.find { |const| Gosu.const_get(const) == value }
|
||||
name = name.to_s.capitalize.split("_").join(" ") if name
|
||||
end
|
||||
button name
|
||||
|
||||
button name, fill: true
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -185,61 +184,55 @@ class IMICFPS
|
||||
def page_graphics
|
||||
label "Graphics", text_size: 50
|
||||
|
||||
longest_string = "Surface Effect Detail"
|
||||
check_box "V-Sync (Not Disableable, Yet.)", checked: true, enabled: false, width: 1.0
|
||||
|
||||
flow do
|
||||
check_box "V-Sync (Not Disableable, Yet.)", checked: true, enabled: false
|
||||
end
|
||||
|
||||
flow do
|
||||
label "Field of View".ljust(longest_string.length, " ")
|
||||
@fov = slider range: 70.0..110.0
|
||||
flow(width: 1.0, height: 64) do
|
||||
label "Field of View", width: 128
|
||||
@fov = slider range: 70.0..110.0, fill: true
|
||||
@fov.subscribe(:changed) do |_sender, value|
|
||||
@fov_label.value = value.round.to_s
|
||||
end
|
||||
@fov_label = label "90.0"
|
||||
end
|
||||
|
||||
flow do
|
||||
label "Detail".ljust(longest_string.length, " ")
|
||||
list_box items: %i[high medium low], width: 250
|
||||
flow(width: 1.0, height: 64) do
|
||||
label "Detail", width: 128
|
||||
list_box items: %i[high medium low], fill: true
|
||||
end
|
||||
|
||||
label ""
|
||||
advanced_mode = check_box "Advanced Settings"
|
||||
label ""
|
||||
advanced_mode = check_box "Advanced Settings", margin_top: 20, margin_bottom: 20
|
||||
|
||||
advanced_settings = stack width: 1.0 do |element|
|
||||
advanced_settings = stack(width: 1.0) do |element|
|
||||
element.hide
|
||||
|
||||
stack do
|
||||
flow do
|
||||
label "Geometry Detail".ljust(longest_string.length, " ")
|
||||
list_box items: %i[high medium low], width: 250
|
||||
stack(width: 1.0, height: 64 * 7) do
|
||||
flow(width: 1.0, height: 64) do
|
||||
label "Geometry Detail", width: 312
|
||||
list_box items: %i[high medium low], fill: true
|
||||
end
|
||||
flow do
|
||||
label "Shadow Detail".ljust(longest_string.length, " ")
|
||||
list_box items: %i[high medium low off], width: 250
|
||||
flow(width: 1.0, height: 64) do
|
||||
label "Shadow Detail", width: 312
|
||||
list_box items: %i[high medium low off], fill: true
|
||||
end
|
||||
flow do
|
||||
label "Texture Detail".ljust(longest_string.length, " ")
|
||||
list_box items: %i[high medium low], width: 250
|
||||
flow(width: 1.0, height: 64) do
|
||||
label "Texture Detail", width: 312
|
||||
list_box items: %i[high medium low], fill: true
|
||||
end
|
||||
flow do
|
||||
label "Particle Detail".ljust(longest_string.length, " ")
|
||||
list_box items: %i[high medium low off], width: 250
|
||||
flow(width: 1.0, height: 64) do
|
||||
label "Particle Detail", width: 312
|
||||
list_box items: %i[high medium low off], fill: true
|
||||
end
|
||||
flow do
|
||||
label "Surface Effect Detail".ljust(longest_string.length, " ")
|
||||
list_box items: %i[high medium low], width: 250
|
||||
flow(width: 1.0, height: 64) do
|
||||
label "Surface Effect Detail", width: 312
|
||||
list_box items: %i[high medium low], fill: true
|
||||
end
|
||||
flow do
|
||||
label "Lighting Mode".ljust(longest_string.length, " ")
|
||||
list_box items: %i[per_pixel per_vertex], width: 250
|
||||
flow(width: 1.0, height: 64) do
|
||||
label "Lighting Mode", width: 312
|
||||
list_box items: %i[per_pixel per_vertex], fill: true
|
||||
end
|
||||
flow do
|
||||
label "Texture Filtering".ljust(longest_string.length, " ")
|
||||
list_box items: [:none], width: 250
|
||||
flow(width: 1.0, height: 64) do
|
||||
label "Texture Filtering", width: 312
|
||||
list_box items: [:none], fill: true
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -253,10 +246,11 @@ class IMICFPS
|
||||
def page_multiplayer
|
||||
label "Multiplayer", text_size: 50
|
||||
|
||||
flow do
|
||||
label "Player Name"
|
||||
edit_line "player-#{SecureRandom.hex(2)}"
|
||||
flow(width: 1.0, height: 64) do
|
||||
label "Player Name", width: 172
|
||||
edit_line "player-#{SecureRandom.hex(2)}", fill: true
|
||||
end
|
||||
|
||||
check_box "Show player names"
|
||||
end
|
||||
end
|
||||
|
||||
@@ -27,7 +27,6 @@ class IMICFPS
|
||||
SettingsMenu.set_defaults
|
||||
|
||||
@renderer = Renderer.new
|
||||
preload_default_shaders
|
||||
@scene = TurnTableScene.new
|
||||
@overlay = Overlay.new
|
||||
|
||||
@@ -42,18 +41,6 @@ class IMICFPS
|
||||
@delta_time = Gosu.milliseconds
|
||||
end
|
||||
|
||||
def preload_default_shaders
|
||||
shaders = %w[g_buffer lighting]
|
||||
shaders.each do |shader|
|
||||
Shader.new(
|
||||
name: shader,
|
||||
includes_dir: "shaders/include",
|
||||
vertex: "shaders/vertex/#{shader}.glsl",
|
||||
fragment: "shaders/fragment/#{shader}.glsl"
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
def input_hijack=(hijacker)
|
||||
@input_hijacker = hijacker
|
||||
|
||||
|
||||
Reference in New Issue
Block a user