mirror of
https://github.com/luanti-org/luanti.git
synced 2025-06-27 16:36:03 +00:00
rename settings, make keybindings work properly
set default secondary keybind address review fix whitespace fix review comments address reviews Apply a compromise remove excess newline in components.lua address most review requests fix whitespace errors
This commit is contained in:
parent
9ba613c363
commit
dc813bd651
7 changed files with 54 additions and 16 deletions
|
@ -438,11 +438,41 @@ function make.key(setting)
|
||||||
if value == "" then
|
if value == "" then
|
||||||
return height
|
return height
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local critical_keys = {
|
||||||
|
keymap_chat = true,
|
||||||
|
keymap_drop = true,
|
||||||
|
keymap_inventory = true,
|
||||||
|
keymap_cmd = true,
|
||||||
|
keymap_cmd_local = true,
|
||||||
|
keymap_dig = true,
|
||||||
|
keymap_place = true,
|
||||||
|
}
|
||||||
|
|
||||||
for _, o in ipairs(core.full_settingtypes) do
|
for _, o in ipairs(core.full_settingtypes) do
|
||||||
if o.type == "key" and o.name ~= setting.name and core.are_keycodes_equal(core.settings:get(o.name), value) then
|
if o.type == "key" and o.name ~= setting.name and
|
||||||
table.insert(fs, ("label[0,%f;%s]"):format(height + 0.3,
|
core.are_keycodes_equal(core.settings:get(o.name), value) then
|
||||||
core.colorize(mt_color_orange, fgettext([[Conflicts with "$1"]], fgettext(o.readable_name)))))
|
|
||||||
height = height + 0.6
|
local is_current_close_world = setting.name == "keymap_close_world"
|
||||||
|
local is_other_close_world = o.name == "keymap_close_world"
|
||||||
|
|
||||||
|
-- Current means current key you've messed with, other means the other key it conflicts with.
|
||||||
|
local is_current_critical = critical_keys[setting.name]
|
||||||
|
local is_other_critical = critical_keys[o.name]
|
||||||
|
|
||||||
|
local show_warning_current = false
|
||||||
|
|
||||||
|
if (is_current_close_world and is_other_critical)
|
||||||
|
or (is_other_close_world and is_current_critical)
|
||||||
|
or (not is_current_close_world and not is_other_close_world) then
|
||||||
|
show_warning_current = true
|
||||||
|
end
|
||||||
|
|
||||||
|
if show_warning_current then
|
||||||
|
table.insert(fs, ("label[0,%f;%s]"):format(height + 0.3,
|
||||||
|
core.colorize(mt_color_orange, fgettext([[Conflicts with "$1"]], fgettext(o.readable_name)))))
|
||||||
|
height = height + 0.6
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return height
|
return height
|
||||||
|
@ -454,12 +484,12 @@ function make.key(setting)
|
||||||
|
|
||||||
get_formspec = function(self, avail_w)
|
get_formspec = function(self, avail_w)
|
||||||
self.resettable = core.settings:has(setting.name)
|
self.resettable = core.settings:has(setting.name)
|
||||||
local btn_bind_width = math.max(2.5, avail_w/2)
|
local btn_bind_width = math.max(2.5, avail_w / 2)
|
||||||
local value = core.settings:get(setting.name)
|
local value = core.settings:get(setting.name)
|
||||||
local fs = {
|
local fs = {
|
||||||
("label[0,0.4;%s]"):format(get_label(setting)),
|
("label[0,0.4;%s]"):format(get_label(setting)),
|
||||||
("button_key[%f,0;%f,0.8;%s;%s]"):format(
|
("button_key[%f,0;%f,0.8;%s;%s]"):format(
|
||||||
btn_bind_width, btn_bind_width-0.8,
|
btn_bind_width, btn_bind_width - 0.8,
|
||||||
btn_bind, core.formspec_escape(value)),
|
btn_bind, core.formspec_escape(value)),
|
||||||
("image_button[%f,0;0.8,0.8;%s;%s;]"):format(avail_w - 0.8,
|
("image_button[%f,0;0.8,0.8;%s;%s;]"):format(avail_w - 0.8,
|
||||||
core.formspec_escape(defaulttexturedir .. "clear.png"),
|
core.formspec_escape(defaulttexturedir .. "clear.png"),
|
||||||
|
|
|
@ -182,8 +182,6 @@ invert_hotbar_mouse_wheel (Hotbar: Invert mouse wheel direction) bool false
|
||||||
|
|
||||||
[**Keybindings]
|
[**Keybindings]
|
||||||
|
|
||||||
keymap_close_game (Close game) key
|
|
||||||
|
|
||||||
keymap_forward (Move forward) key SYSTEM_SCANCODE_26
|
keymap_forward (Move forward) key SYSTEM_SCANCODE_26
|
||||||
|
|
||||||
# Will also disable autoforward, when active.
|
# Will also disable autoforward, when active.
|
||||||
|
@ -339,6 +337,10 @@ keymap_slot31 (Hotbar slot 31) key
|
||||||
|
|
||||||
keymap_slot32 (Hotbar slot 32) key
|
keymap_slot32 (Hotbar slot 32) key
|
||||||
|
|
||||||
|
# Modifier key bind for closing your world.
|
||||||
|
# Requires ESC + the selected key to work.
|
||||||
|
keymap_close_world (Return to Main Menu) key SYSTEM_SCANCODE_225
|
||||||
|
|
||||||
[*Touchscreen]
|
[*Touchscreen]
|
||||||
|
|
||||||
# Enables the touchscreen controls, allowing you to play the game with a touchscreen.
|
# Enables the touchscreen controls, allowing you to play the game with a touchscreen.
|
||||||
|
|
|
@ -73,8 +73,6 @@ void MyEventReceiver::reloadKeybindings()
|
||||||
keybindings[KeyType::SLOT_1 + i] = getKeySetting(slot_key_name.c_str());
|
keybindings[KeyType::SLOT_1 + i] = getKeySetting(slot_key_name.c_str());
|
||||||
}
|
}
|
||||||
|
|
||||||
keybindings[KeyType::CLOSE_GAME] = getKeySetting("keymap_close_game");
|
|
||||||
|
|
||||||
// First clear all keys, then re-add the ones we listen for
|
// First clear all keys, then re-add the ones we listen for
|
||||||
keysListenedFor.clear();
|
keysListenedFor.clear();
|
||||||
for (int i = 0; i < KeyType::INTERNAL_ENUM_COUNT; i++) {
|
for (int i = 0; i < KeyType::INTERNAL_ENUM_COUNT; i++) {
|
||||||
|
@ -139,6 +137,7 @@ bool MyEventReceiver::OnEvent(const SEvent &event)
|
||||||
// This is separate from other keyboard handling so that it also works in menus.
|
// This is separate from other keyboard handling so that it also works in menus.
|
||||||
if (event.EventType == EET_KEY_INPUT_EVENT) {
|
if (event.EventType == EET_KEY_INPUT_EVENT) {
|
||||||
KeyPress keyCode(event.KeyInput);
|
KeyPress keyCode(event.KeyInput);
|
||||||
|
|
||||||
if (keyCode == getKeySetting("keymap_fullscreen")) {
|
if (keyCode == getKeySetting("keymap_fullscreen")) {
|
||||||
if (event.KeyInput.PressedDown && !fullscreen_is_down) {
|
if (event.KeyInput.PressedDown && !fullscreen_is_down) {
|
||||||
IrrlichtDevice *device = RenderingEngine::get_raw_device();
|
IrrlichtDevice *device = RenderingEngine::get_raw_device();
|
||||||
|
@ -152,7 +151,15 @@ bool MyEventReceiver::OnEvent(const SEvent &event)
|
||||||
}
|
}
|
||||||
fullscreen_is_down = event.KeyInput.PressedDown;
|
fullscreen_is_down = event.KeyInput.PressedDown;
|
||||||
return true;
|
return true;
|
||||||
} else if (keyCode == getKeySetting("keymap_close_game") && event.KeyInput.PressedDown) {
|
|
||||||
|
} else if (keyCode == getKeySetting("keymap_close_world")) {
|
||||||
|
close_world_down = event.KeyInput.PressedDown;
|
||||||
|
|
||||||
|
} else if (keyCode == EscapeKey) {
|
||||||
|
esc_down = event.KeyInput.PressedDown;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (esc_down && close_world_down) {
|
||||||
g_gamecallback->disconnect();
|
g_gamecallback->disconnect();
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,6 +128,9 @@ private:
|
||||||
// Intentionally not reset by clearInput/releaseAllKeys.
|
// Intentionally not reset by clearInput/releaseAllKeys.
|
||||||
bool fullscreen_is_down = false;
|
bool fullscreen_is_down = false;
|
||||||
|
|
||||||
|
bool close_world_down = false;
|
||||||
|
bool esc_down = false;
|
||||||
|
|
||||||
PointerType last_pointer_type = PointerType::Mouse;
|
PointerType last_pointer_type = PointerType::Mouse;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -97,7 +97,6 @@ public:
|
||||||
SLOT_32,
|
SLOT_32,
|
||||||
|
|
||||||
// Fake keycode for array size and internal checks
|
// Fake keycode for array size and internal checks
|
||||||
CLOSE_GAME,
|
|
||||||
INTERNAL_ENUM_COUNT
|
INTERNAL_ENUM_COUNT
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -134,7 +134,6 @@ void set_default_settings()
|
||||||
#else
|
#else
|
||||||
#define USEKEY2(name, _, value) settings->setDefault(name, value)
|
#define USEKEY2(name, _, value) settings->setDefault(name, value)
|
||||||
#endif
|
#endif
|
||||||
settings->setDefault("keymap_close_game", "");
|
|
||||||
USEKEY2("keymap_forward", "SYSTEM_SCANCODE_26", "KEY_KEY_W");
|
USEKEY2("keymap_forward", "SYSTEM_SCANCODE_26", "KEY_KEY_W");
|
||||||
settings->setDefault("keymap_autoforward", "");
|
settings->setDefault("keymap_autoforward", "");
|
||||||
USEKEY2("keymap_backward", "SYSTEM_SCANCODE_22", "KEY_KEY_S");
|
USEKEY2("keymap_backward", "SYSTEM_SCANCODE_22", "KEY_KEY_S");
|
||||||
|
@ -220,6 +219,7 @@ void set_default_settings()
|
||||||
settings->setDefault("keymap_slot30", "");
|
settings->setDefault("keymap_slot30", "");
|
||||||
settings->setDefault("keymap_slot31", "");
|
settings->setDefault("keymap_slot31", "");
|
||||||
settings->setDefault("keymap_slot32", "");
|
settings->setDefault("keymap_slot32", "");
|
||||||
|
USEKEY2("keymap_close_world", "SYSTEM_SCANCODE_225", "KEY_LSHIFT");
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
// Default keybinds for quicktune in debug builds
|
// Default keybinds for quicktune in debug builds
|
||||||
|
|
|
@ -1082,9 +1082,6 @@ fake_function() {
|
||||||
gettext("Chat message format");
|
gettext("Chat message format");
|
||||||
gettext("Format of player chat messages. The following strings are valid placeholders:\n@name, @message, @timestamp (optional)");
|
gettext("Format of player chat messages. The following strings are valid placeholders:\n@name, @message, @timestamp (optional)");
|
||||||
gettext("Chat command time message threshold");
|
gettext("Chat command time message threshold");
|
||||||
gettext("Close game");
|
|
||||||
gettext("Key for closing the game directly.");
|
|
||||||
}
|
|
||||||
gettext("If the execution of a chat command takes longer than this specified time in\nseconds, add the time information to the chat command message");
|
gettext("If the execution of a chat command takes longer than this specified time in\nseconds, add the time information to the chat command message");
|
||||||
gettext("Shutdown message");
|
gettext("Shutdown message");
|
||||||
gettext("A message to be displayed to all clients when the server shuts down.");
|
gettext("A message to be displayed to all clients when the server shuts down.");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue