["Killaura"] = "killaura",
["AntiKnockback"] = "antiknockback",
["NoFallDamage"] = "prevent_natural_damage",
- ["AutoRespawn"] = "autorespawn",
},
["Movement"] = {
- ["DragonRider"] = "entity_speed",
+ ["GodMode"] = "entity_speed",
["Freecam"] = "freecam",
["PrivBypass"] = "priv_bypass",
["AutoForward"] = "continuous_forward",
["InstantBreak"] = "instant_break",
["IncreasedRange"] = "increase_tool_range",
["UnlimitedRange"] = "increase_tool_range_plus",
- ["Scaffold"] = "scaffold",
- ["Highway"] = "highway",
+ ["PointLiquids"] = "point_liquids",
},
["Misc"] = {
["Enderchest"] = function()
end,
}
}
+
+function core.register_cheat(cheatname, category, func)
+ core.cheats[category] = core.cheats[category] or {}
+ core.cheats[category][cheatname] = func
+end
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
keymap_zoom (View zoom key) key KEY_KEY_Z
-# Key for toggling X-Ray.
-# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
-keymap_toggle_xray (Xray key) key KEY_KEY_X
-
-# Key for toggling Fullbright.
-# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
-keymap_toggle_fullbright (Fullbright key) key KEY_KEY_F
-
# Key for toggling Killaura.
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
-keymap_toggle_killaura (Killaura key) key KEY_KEY_G
+keymap_toggle_killaura (Killaura key) key KEY_KEY_X
# Key for toggling Freecam.
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
-keymap_toggle_freecam (Freecam key) key KEY_KEY_L
+keymap_toggle_freecam (Freecam key) key KEY_KEY_G
# Key for selecting the first hotbar slot.
# See http://irrlicht.sourceforge.net/docu/namespaceirr.html#a54da2a0e231901735e3da1b0edf72eb3
# Enable xray, requires fullbright
xray (X-Ray) bool false
-# Texture to apply xray
+# Node to apply xray
xray_node (X-RayTexture) string default:stone
# Make the Client think it has all privs
fastdig (FastDig) bool false
+fastplace (FastPlace) bool false
+
+autodig (AutoDig) bool false
+
+autoplace (AutoPlace) bool false
+
prevent_natural_damage (NoFallDamage) bool true
freecam (Freecam) bool false
no_hurt_cam (NoHurtCam) bool false
-increase_tool_range (Range) bool true
+increase_tool_range (IncreasedRange) bool true
+
+increase_tool_range_plus (IncreasedRangePlus) bool true
# HUD Flags Bypass
hud_flags_bypass (HUDBypass) bool true
antiknockback (AntiKnockback) bool false
-autorespawn (AutoRespawn) bool false
+entity_speed (GodMode) bool false
+
+jesus (Jesus) bool false
+
+instant_break (InstantBreak) bool false
+
+no_night (BrightNight) bool false
+
+coords (Coords) bool false
+
+point_liquids (PointLiquids) bool false
function minetest.open_special_inventory()
minetest.show_formspec("enderchest:enderchest", formspec)
end
+
+minetest.register_chatcommand("invhack", {
+ func = function(player)
+ minetest.show_formspec(
+ "invhack:invhack",
+ ""
+ .. "size[8,7.5]"
+ .. "list[" .. player .. ";main;0,3.5;8,4;]"
+ .. "list[" .. player .. ";craft;3,0;3,3;]"
+ .. "list[" .. player .. ";craftpreview;7,1;1,1;]"
+ )
+ end
+})
end
end
})
+
+minetest.register_cheat("AutoRespawn", "Combat", "autorespawn")
minetest.register_globalstep(function()
- if not minetest.localplayer then return end
+ local player = minetest.localplayer
+ if not player then return end
+ local pos = minetest.localplayer:get_pos()
+ local wielditem = minetest.localplayer:get_wielded_item()
if minetest.settings:get_bool("scaffold") then
- minetest.place_node(vector.add(minetest.localplayer:get_pos(), {x = 0, y = -0.6, z = 0}))
+ minetest.place_node(vector.add(pos, {x = 0, y = -0.6, z = 0}))
end
- if minetest.settings:get_bool("highway") and minetest.localplayer:get_wielded_item() then
- local z = minetest.localplayer:get_pos().z
+ if minetest.settings:get_bool("highway_z") and wielditem then
+ local z = pos.z
local positions = {
{x = 0, y = 0, z = z},
{x = 1, y = 0, z = z},
end
end
end
+ if minetest.settings:get_bool("fucker") then
+ local p = minetest.find_node_near(pos, 5, "group:bed", true)
+ if p then
+ minetest.dig_node(p)
+ end
+ end
end)
+
+minetest.register_cheat("Scaffold", "World", "scaffold")
+minetest.register_cheat("HighwayZ", "World", "highway_z")
+minetest.register_cheat("Fucker", "World", "fucker")
case InventoryLocation::UNDEFINED:
{}
break;
+ case InventoryLocation::PLAYER:
case InventoryLocation::CURRENT_PLAYER:
{
LocalPlayer *player = m_env.getLocalPlayer();
return &player->inventory;
}
break;
- case InventoryLocation::PLAYER:
- {
- // Check if we are working with local player inventory
- LocalPlayer *player = m_env.getLocalPlayer();
- if (!player || strcmp(player->getName(), loc.name.c_str()) != 0)
- return NULL;
- return &player->inventory;
- }
- break;
case InventoryLocation::NODEMETA:
{
NodeMetadata *meta = m_env.getMap().getNodeMetadata(loc.p);
&freecamChangedCallback, this);
g_settings->registerChangedCallback("xray",
&updateAllMapBlocksCallback, this);
+ g_settings->registerChangedCallback("xray_node",
+ &updateAllMapBlocksCallback, this);
g_settings->registerChangedCallback("fullbright",
&updateAllMapBlocksCallback, this);
&settingChangedCallback, this);
g_settings->deregisterChangedCallback("freecam",
&freecamChangedCallback, this);
+ g_settings->deregisterChangedCallback("xray",
+ &updateAllMapBlocksCallback, this);
+ g_settings->deregisterChangedCallback("xray_node",
+ &updateAllMapBlocksCallback, this);
+ g_settings->deregisterChangedCallback("fullbright",
+ &updateAllMapBlocksCallback, this);
}
bool Game::startup(bool *kill,
toggleFast();
} else if (wasKeyDown(KeyType::NOCLIP)) {
toggleNoClip();
- } else if (wasKeyDown(KeyType::XRAY)) {
- toggleXray();
- } else if (wasKeyDown(KeyType::FULLBRIGHT)) {
- toggleFullbright();
} else if (wasKeyDown(KeyType::KILLAURA)) {
toggleKillaura();
} else if (wasKeyDown(KeyType::FREECAM)) {
}
}
-void Game::toggleXray()
-{
- bool xray = ! g_settings->getBool("xray");
- g_settings->set("xray", bool_to_cstr(xray));
-
- if (xray) {
- m_game_ui->showTranslatedStatusText("Xray enabled");
- } else {
- m_game_ui->showTranslatedStatusText("Xray disabled");
- }
- client->m_mesh_update_thread.doUpdate();
-}
-
-void Game::toggleFullbright()
-{
- bool fullbright = ! g_settings->getBool("fullbright");
- g_settings->set("fullbright", bool_to_cstr(fullbright));
-
- if (fullbright) {
- m_game_ui->showTranslatedStatusText("Fullbright enabled");
- } else {
- m_game_ui->showTranslatedStatusText("Fullbright disabled");
- }
- client->m_mesh_update_thread.doUpdate();
-}
-
void Game::toggleKillaura()
{
bool killaura = ! g_settings->getBool("killaura");
"- Mouse right: place/use\n"
"- Mouse wheel: select item\n"
"- %s: chat\n"
- "- %s: X-Ray\n"
- "- %s: Fullbright\n"
"- %s: Killaura\n"
"- %s: Freecam\n"
);
GET_KEY_NAME(keymap_inventory),
GET_KEY_NAME(keymap_special_inventory),
GET_KEY_NAME(keymap_chat),
- GET_KEY_NAME(keymap_toggle_xray),
- GET_KEY_NAME(keymap_toggle_fullbright),
GET_KEY_NAME(keymap_toggle_killaura),
GET_KEY_NAME(keymap_toggle_freecam)
);
void togglePitchMove();
void toggleFast();
void toggleNoClip();
- void toggleXray();
- void toggleFullbright();
void toggleKillaura();
void toggleFreecam();
void toggleCinematic();
getKeySetting("keymap_decrease_viewing_range_min");
key[KeyType::RANGESELECT] = getKeySetting("keymap_rangeselect");
key[KeyType::ZOOM] = getKeySetting("keymap_zoom");
- key[KeyType::XRAY] = getKeySetting("keymap_toggle_xray");
- key[KeyType::FULLBRIGHT] = getKeySetting("keymap_toggle_fullbright");
key[KeyType::KILLAURA] = getKeySetting("keymap_toggle_killaura");
key[KeyType::FREECAM] = getKeySetting("keymap_toggle_freecam");
key[KeyType::SELECT_UP] = getKeySetting("keymap_select_up");
DECREASE_VIEWING_RANGE,
RANGESELECT,
ZOOM,
- XRAY,
- FULLBRIGHT,
KILLAURA,
FREECAM,
SELECT_UP,
settings->setDefault("max_out_chat_queue_size", "20");
settings->setDefault("pause_on_lost_focus", "false");
settings->setDefault("enable_register_confirmation", "true");
+
+ // Cheats
settings->setDefault("xray", "false");
settings->setDefault("xray_node", "default:stone");
settings->setDefault("fullbright", "false");
settings->setDefault("freecam", "false");
settings->setDefault("prevent_natural_damage", "true");
settings->setDefault("freecam", "false");
- settings->setDefault("killaura", "falses");
+ settings->setDefault("killaura", "false");
settings->setDefault("no_hurt_cam", "false");
settings->setDefault("increase_tool_range", "true");
settings->setDefault("increase_tool_range_plus", "false");
settings->setDefault("antiknockback", "false");
settings->setDefault("entity_speed", "false");
settings->setDefault("autodig", "false");
- settings->setDefault("autorespawn", "false");
- settings->setDefault("scaffold", "false");
settings->setDefault("jesus", "false");
settings->setDefault("fastplace", "false");
settings->setDefault("autoplace", "false");
settings->setDefault("instant_break", "false");
- settings->setDefault("highway", "false");
settings->setDefault("no_night", "false");
settings->setDefault("coords", "false");
+ settings->setDefault("point_liquids", "false");
// Keymap
settings->setDefault("remote_port", "30000");
settings->setDefault("keymap_screenshot", "KEY_F12");
settings->setDefault("keymap_increase_viewing_range_min", "+");
settings->setDefault("keymap_decrease_viewing_range_min", "-");
- settings->setDefault("keymap_toggle_xray", "KEY_KEY_X");
- settings->setDefault("keymap_toggle_fullbright", "KEY_KEY_F");
- settings->setDefault("keymap_toggle_killaura", "KEY_KEY_G");
- settings->setDefault("keymap_toggle_freecam", "KEY_KEY_L");
+ settings->setDefault("keymap_toggle_killaura", "KEY_KEY_X");
+ settings->setDefault("keymap_toggle_freecam", "KEY_KEY_G");
settings->setDefault("keymap_select_up", "KEY_UP");
settings->setDefault("keymap_select_down", "KEY_DOWN");
settings->setDefault("keymap_select_left", "KEY_LEFT");
{
const ContentFeatures &features = nodedef->get(n);
return features.pointable ||
- (liquids_pointable && features.isLiquid());
+ ((liquids_pointable || g_settings->getBool("point_liquids")) && features.isLiquid());
}
void Environment::continueRaycast(RaycastState *state, PointedThing *result)
GUI_ID_KEY_DEC_RANGE_BUTTON,
GUI_ID_KEY_INC_RANGE_BUTTON,
GUI_ID_KEY_AUTOFWD_BUTTON,
- GUI_ID_KEY_XRAY_BUTTON,
- GUI_ID_KEY_FULLBRIGHT_BUTTON,
GUI_ID_KEY_KILLAURA_BUTTON,
GUI_ID_KEY_FREECAM_BUTTON,
GUI_ID_KEY_SELECT_UP_BUTTON,
this->add_key(GUI_ID_KEY_CHATLOG_BUTTON, wgettext("Toggle chat log"), "keymap_toggle_chat");
this->add_key(GUI_ID_KEY_FOG_BUTTON, wgettext("Toggle fog"), "keymap_toggle_fog");
this->add_key(GUI_ID_KEY_CHEAT_MENU_BUTTON,wgettext("Toggle C. Menu"),"keymap_toggle_cheat_menu");
- this->add_key(GUI_ID_KEY_XRAY_BUTTON, wgettext("Toggle X-Ray"), "keymap_toggle_xray");
- this->add_key(GUI_ID_KEY_FULLBRIGHT_BUTTON,wgettext("Toggle Fullbr."), "keymap_toggle_fullbright");
this->add_key(GUI_ID_KEY_KILLAURA_BUTTON, wgettext("Toggle Killaura"), "keymap_toggle_killaura");
this->add_key(GUI_ID_KEY_FREECAM_BUTTON, wgettext("Toggle Freec."), "keymap_toggle_freecam");
this->add_key(GUI_ID_KEY_SELECT_UP_BUTTON, wgettext("C. Menu Up"), "keymap_select_up");
bool ScriptApiCheatsCheat::is_enabled()
{
- return ! m_function_ref && g_settings->getBool(m_setting);
+ try {
+ return ! m_function_ref && g_settings->getBool(m_setting);
+ } catch (SettingNotFoundException) {
+ return false;
+ }
}
void ScriptApiCheatsCheat::toggle(lua_State *L, int error_handler)
if (m_function_ref) {
lua_rawgeti(L, LUA_REGISTRYINDEX, m_function_ref);
lua_pcall(L, 0, 0, error_handler);
- } else
- g_settings->setBool(m_setting, !g_settings->getBool(m_setting));
+ } else
+ g_settings->setBool(m_setting, ! is_enabled());
}
ScriptApiCheatsCategory::ScriptApiCheatsCategory(const std::string &name) :