aboutsummaryrefslogtreecommitdiff
path: root/builtin/mainmenu/tab_settings.lua
diff options
context:
space:
mode:
Diffstat (limited to 'builtin/mainmenu/tab_settings.lua')
-rw-r--r--builtin/mainmenu/tab_settings.lua111
1 files changed, 72 insertions, 39 deletions
diff --git a/builtin/mainmenu/tab_settings.lua b/builtin/mainmenu/tab_settings.lua
index 881a63498..c17a39432 100644
--- a/builtin/mainmenu/tab_settings.lua
+++ b/builtin/mainmenu/tab_settings.lua
@@ -17,6 +17,17 @@
--------------------------------------------------------------------------------
+local leaves_style_labels = {
+ fgettext("Opaque Leaves"),
+ fgettext("Simple Leaves"),
+ fgettext("Fancy Leaves")
+}
+
+local leaves_style = {
+ {leaves_style_labels[1]..","..leaves_style_labels[2]..","..leaves_style_labels[3]},
+ {"opaque", "simple", "fancy"},
+}
+
local dd_filter_labels = {
fgettext("No Filter"),
fgettext("Bilinear Filter"),
@@ -39,6 +50,29 @@ local mipmap = {
{"", "mip_map", "anisotropic_filter"},
}
+local function getLeavesStyleSettingIndex()
+ local style = core.setting_get("leaves_style")
+ if (style == leaves_style[2][3]) then
+ return 3
+ elseif (style == leaves_style[2][2]) then
+ return 2
+ end
+ return 1
+end
+
+local dd_antialiasing_labels = {
+ fgettext("None"),
+ fgettext("2x"),
+ fgettext("4x"),
+ fgettext("8x"),
+}
+
+local antialiasing = {
+ {dd_antialiasing_labels[1]..","..dd_antialiasing_labels[2]..","..
+ dd_antialiasing_labels[3]..","..dd_antialiasing_labels[4]},
+ {"0", "2", "4", "8"}
+}
+
local function getFilterSettingIndex()
if (core.setting_get(filters[2][3]) == "true") then
return 3
@@ -59,16 +93,23 @@ local function getMipmapSettingIndex()
return 1
end
-local function video_driver_fname_to_name(selected_driver)
- local video_drivers = core.get_video_drivers()
-
- for i=1, #video_drivers do
- if selected_driver == video_drivers[i].friendly_name then
- return video_drivers[i].name:lower()
+local function getAntialiasingSettingIndex()
+ local antialiasing_setting = core.setting_get("fsaa")
+ for i = 1, #(antialiasing[2]) do
+ if antialiasing_setting == antialiasing[2][i] then
+ return i
end
end
+ return 1
+end
- return ""
+local function antialiasing_fname_to_name(fname)
+ for i = 1, #(dd_antialiasing_labels) do
+ if fname == dd_antialiasing_labels[i] then
+ return antialiasing[2][i]
+ end
+ end
+ return 0
end
local function dlg_confirm_reset_formspec(data)
@@ -159,50 +200,31 @@ local function scrollbar_to_gui_scale(value)
end
local function formspec(tabview, name, tabdata)
- local video_drivers = core.get_video_drivers()
- local current_video_driver = core.setting_get("video_driver"):lower()
-
- local driver_formspec_string = ""
- local driver_current_idx = 0
-
- for i=2, #video_drivers do
- driver_formspec_string = driver_formspec_string .. video_drivers[i].friendly_name
- if i ~= #video_drivers then
- driver_formspec_string = driver_formspec_string .. ","
- end
-
- if current_video_driver == video_drivers[i].name:lower() then
- driver_current_idx = i - 1
- end
- end
-
local tab_string =
- "box[0,0;3.5,3.9;#999999]" ..
+ "box[0,0;3.5,4.0;#999999]" ..
"checkbox[0.25,0;cb_smooth_lighting;".. fgettext("Smooth Lighting")
.. ";".. dump(core.setting_getbool("smooth_lighting")) .. "]"..
"checkbox[0.25,0.5;cb_particles;".. fgettext("Enable Particles") .. ";"
.. dump(core.setting_getbool("enable_particles")) .. "]"..
"checkbox[0.25,1;cb_3d_clouds;".. fgettext("3D Clouds") .. ";"
.. dump(core.setting_getbool("enable_3d_clouds")) .. "]"..
- "checkbox[0.25,1.5;cb_fancy_trees;".. fgettext("Fancy Trees") .. ";"
- .. dump(core.setting_getbool("new_style_leaves")) .. "]"..
- "checkbox[0.25,2.0;cb_opaque_water;".. fgettext("Opaque Water") .. ";"
+ "checkbox[0.25,1.5;cb_opaque_water;".. fgettext("Opaque Water") .. ";"
.. dump(core.setting_getbool("opaque_water")) .. "]"..
- "checkbox[0.25,2.5;cb_connected_glass;".. fgettext("Connected Glass") .. ";"
+ "checkbox[0.25,2.0;cb_connected_glass;".. fgettext("Connected Glass") .. ";"
.. dump(core.setting_getbool("connected_glass")) .. "]"..
- "checkbox[0.25,3.0;cb_node_highlighting;".. fgettext("Node Highlighting") .. ";"
+ "checkbox[0.25,2.5;cb_node_highlighting;".. fgettext("Node Highlighting") .. ";"
.. dump(core.setting_getbool("enable_node_highlighting")) .. "]"..
+ "dropdown[0.25,3.2;3.3;dd_leaves_style;" .. leaves_style[1][1] .. ";"
+ .. getLeavesStyleSettingIndex() .. "]" ..
"box[3.75,0;3.75,3.45;#999999]" ..
"label[3.85,0.1;".. fgettext("Texturing:") .. "]"..
"dropdown[3.85,0.55;3.85;dd_filters;" .. filters[1][1] .. ";"
.. getFilterSettingIndex() .. "]" ..
"dropdown[3.85,1.35;3.85;dd_mipmap;" .. mipmap[1][1] .. ";"
.. getMipmapSettingIndex() .. "]" ..
- "label[3.85,2.15;".. fgettext("Rendering:") .. "]"..
- "dropdown[3.85,2.6;3.85;dd_video_driver;"
- .. driver_formspec_string .. ";" .. driver_current_idx .. "]" ..
- "tooltip[dd_video_driver;" ..
- fgettext("Restart minetest for driver change to take effect") .. "]" ..
+ "label[3.85,2.15;".. fgettext("Antialiasing:") .. "]"..
+ "dropdown[3.85,2.6;3.85;dd_antialiasing;" .. antialiasing[1][1] .. ";"
+ .. getAntialiasingSettingIndex() .. "]" ..
"box[7.75,0;4,4;#999999]" ..
"checkbox[8,0;cb_shaders;".. fgettext("Shaders") .. ";"
.. dump(core.setting_getbool("enable_shaders")) .. "]"
@@ -353,10 +375,16 @@ local function handle_settings_buttons(this, fields, tabname, tabdata)
core.setting_set("touchscreen_threshold",fields["dd_touchthreshold"])
ddhandled = true
end
-
- if fields["dd_video_driver"] then
- core.setting_set("video_driver",
- video_driver_fname_to_name(fields["dd_video_driver"]))
+ if fields["dd_leaves_style"] == leaves_style_labels[3] then
+ core.setting_set("leaves_style", leaves_style[2][3])
+ ddhandled = true
+ end
+ if fields["dd_leaves_style"] == leaves_style_labels[2] then
+ core.setting_set("leaves_style", leaves_style[2][2])
+ ddhandled = true
+ end
+ if fields["dd_leaves_style"] == leaves_style_labels[1] then
+ core.setting_set("leaves_style", leaves_style[2][1])
ddhandled = true
end
if fields["dd_filters"] == dd_filter_labels[1] then
@@ -389,6 +417,11 @@ local function handle_settings_buttons(this, fields, tabname, tabdata)
core.setting_set("anisotropic_filter", "true")
ddhandled = true
end
+ if fields["dd_antialiasing"] then
+ core.setting_set("fsaa",
+ antialiasing_fname_to_name(fields["dd_antialiasing"]))
+ ddhandled = true
+ end
return ddhandled
end