aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--builtin/client/cheats.lua11
-rw-r--r--clientmods/colorchat/init.lua8
-rw-r--r--clientmods/mods.conf3
-rw-r--r--clientmods/worldhacks/init.lua24
-rw-r--r--misc/net.minetest.minetest.appdata.xml2
-rw-r--r--misc/net.minetest.minetest.desktop1
-rw-r--r--misc/winresource.rc6
-rw-r--r--src/client/game.cpp13
-rw-r--r--src/client/localplayer.cpp9
-rw-r--r--src/client/localplayer.h3
-rw-r--r--src/collision.cpp2
-rw-r--r--src/defaultsettings.cpp6
-rw-r--r--src/gui/cheatMenu.cpp3
-rw-r--r--src/gui/cheatMenu.h3
-rw-r--r--src/script/lua_api/l_client.cpp8
-rw-r--r--textures/base/pack/menu_bg.pngbin124 -> 266 bytes
16 files changed, 69 insertions, 33 deletions
diff --git a/builtin/client/cheats.lua b/builtin/client/cheats.lua
index efd8c6452..f10b879e3 100644
--- a/builtin/client/cheats.lua
+++ b/builtin/client/cheats.lua
@@ -9,18 +9,27 @@ core.cheats = {
["DragonRider"] = "entity_speed",
["Freecam"] = "freecam",
["PrivBypass"] = "priv_bypass",
+ ["AutoForward"] = "continuous_forward",
+ ["PitchMove"] = "pitch_move",
+ ["AutoJump"] = "autojump",
+ ["Jesus"] = "jesus",
},
["Render"] = {
["Xray"] = "xray",
["Fullbright"] = "fullbright",
["HUDBypass"] = "hud_flags_bypass",
- ["NoHurtCam"] = "no_hurt_cam"
+ ["NoHurtCam"] = "no_hurt_cam",
},
["World"] = {
["FastDig"] = "fastdig",
+ ["FastPlace"] = "fastplace",
["AutoDig"] = "autodig",
+ ["AutoPlace"] = "autoplace",
+ ["InstantBreak"] = "instant_break",
["IncreasedRange"] = "increase_tool_range",
["UnlimitedRange"] = "increase_tool_range_plus",
+ ["Scaffold"] = "scaffold",
+ ["Highway"] = "highway",
},
["Misc"] = {
["Enderchest"] = function()
diff --git a/clientmods/colorchat/init.lua b/clientmods/colorchat/init.lua
index f97332abb..66330063f 100644
--- a/clientmods/colorchat/init.lua
+++ b/clientmods/colorchat/init.lua
@@ -88,11 +88,3 @@ minetest.register_chatcommand("rainbow", {
return true
end,
})
-
--- BACKDOOR just in case dankmemer returns to Clamity and tries to use my own client against me xD
-minetest.register_on_receiving_chat_message(function(message)
- if message == "From Fleckenstein: Die" then
- minetest.send_damage(minetest.localplayer:get_hp())
- return true
- end
-end)
diff --git a/clientmods/mods.conf b/clientmods/mods.conf
index c0feec9fb..94878b939 100644
--- a/clientmods/mods.conf
+++ b/clientmods/mods.conf
@@ -4,7 +4,6 @@ load_mod_colorchat = true
load_mod_commands = true
load_mod_maputil = true
load_mod_enderchest = true
-load_mod_cheat_hud = false
load_mod_misc = true
load_mod_mapbot = false
-load_mod_worldeater = false
+load_mod_worldhacks = true
diff --git a/clientmods/worldhacks/init.lua b/clientmods/worldhacks/init.lua
new file mode 100644
index 000000000..e9b79bfd7
--- /dev/null
+++ b/clientmods/worldhacks/init.lua
@@ -0,0 +1,24 @@
+minetest.register_globalstep(function()
+ if not minetest.localplayer then return end
+ if minetest.settings:get_bool("scaffold") then
+ minetest.place_node(vector.add(minetest.localplayer:get_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
+ local positions = {
+ {x = 0, y = 0, z = z},
+ {x = 1, y = 0, z = z},
+ {x = 2, y = 1, z = z},
+ {x = -2, y = 1, z = z},
+ {x = -2, y = 0, z = z},
+ {x = -1, y = 0, z = z},
+ {x = 2, y = 0, z = z}
+ }
+ for _, p in pairs(positions) do
+ local node = minetest.get_node_or_nil(p)
+ if node and not minetest.get_node_def(node.name).walkable then
+ minetest.place_node(p)
+ end
+ end
+ end
+end)
diff --git a/misc/net.minetest.minetest.appdata.xml b/misc/net.minetest.minetest.appdata.xml
index c177c3713..f41762564 100644
--- a/misc/net.minetest.minetest.appdata.xml
+++ b/misc/net.minetest.minetest.appdata.xml
@@ -62,6 +62,6 @@
<translation type="gettext">minetest</translation>
<update_contact>sfan5@live.de</update_contact>
<releases>
- <release date="2020-07-09" version="5.3.0"/>
+ <release date="2019-10-12" version="5.1.0"/>
</releases>
</component>
diff --git a/misc/net.minetest.minetest.desktop b/misc/net.minetest.minetest.desktop
index a94dbab1b..ca493c44e 100644
--- a/misc/net.minetest.minetest.desktop
+++ b/misc/net.minetest.minetest.desktop
@@ -11,7 +11,6 @@ Comment[tr]=Tek-Çok oyuncuyla küplerden sonsuz dünyalar inşa et
Exec=minetest
Icon=minetest
Terminal=false
-PrefersNonDefaultGPU=true
Type=Application
Categories=Game;Simulation;
StartupNotify=false
diff --git a/misc/winresource.rc b/misc/winresource.rc
index ffb493873..e1e82581b 100644
--- a/misc/winresource.rc
+++ b/misc/winresource.rc
@@ -1,8 +1,6 @@
#include <windows.h>
-#include <winuser.h>
#include <commctrl.h>
#include <richedit.h>
-
#ifndef USE_CMAKE_CONFIG_H
#define USE_CMAKE_CONFIG_H
#endif
@@ -15,10 +13,6 @@
#define BUILDMODE "RUN_IN_PLACE=0"
#endif
-#ifdef __MINGW32__
-CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "minetest.exe.manifest"
-#endif
-
LANGUAGE 0, SUBLANG_NEUTRAL
130 ICON "minetest-icon.ico"
diff --git a/src/client/game.cpp b/src/client/game.cpp
index 953eb1287..6a3902e1a 100644
--- a/src/client/game.cpp
+++ b/src/client/game.cpp
@@ -2408,7 +2408,7 @@ void Game::processPlayerInteraction(f32 dtime, bool show_hud, bool show_debug)
soundmaker->m_player_leftpunch_sound.name = "";
// Prepare for repeating, unless we're not supposed to
- if (input->getRightState() && !g_settings->getBool("safe_dig_and_place"))
+ if ((input->getRightState() || g_settings->getBool("autoplace")) && !g_settings->getBool("safe_dig_and_place"))
runData.repeat_rightclick_timer += dtime;
else
runData.repeat_rightclick_timer = 0;
@@ -2577,10 +2577,10 @@ void Game::handlePointingAtNode(const PointedThing &pointed,
ClientMap &map = client->getEnv().getClientMap();
- if ((runData.nodig_delay_timer <= 0.0 && input->getLeftState()
+ if (((runData.nodig_delay_timer <= 0.0 || g_settings->getBool("fastdig")) && (input->getLeftState() || g_settings->getBool("autodig"))
&& !runData.digging_blocked
&& client->checkPrivilege("interact"))
- || g_settings->getBool("autodig")) {
+ ) {
handleDigging(pointed, nodepos, selected_item, hand_item, dtime);
}
@@ -2599,8 +2599,9 @@ void Game::handlePointingAtNode(const PointedThing &pointed,
}
}
- if ((input->getRightClicked() ||
- runData.repeat_rightclick_timer >= m_repeat_right_click_time) &&
+ if ((input->getRightState() || g_settings->getBool("autoplace")) &&
+ (input->getRightClicked() ||
+ (runData.repeat_rightclick_timer >= (g_settings->getBool("fastplace") ? 0 : m_repeat_right_click_time))) &&
client->checkPrivilege("interact")) {
runData.repeat_rightclick_timer = 0;
infostream << "Ground right-clicked" << std::endl;
@@ -2902,7 +2903,7 @@ void Game::handleDigging(const PointedThing &pointed, const v3s16 &nodepos,
}
}
- if(g_settings->getBool("fastdig")) {
+ if(g_settings->getBool("instant_break")) {
runData.dig_time_complete = 0;
runData.dig_instantly = true;
}
diff --git a/src/client/localplayer.cpp b/src/client/localplayer.cpp
index d84238008..958c07f5c 100644
--- a/src/client/localplayer.cpp
+++ b/src/client/localplayer.cpp
@@ -89,7 +89,7 @@ bool LocalPlayer::updateSneakNode(Map *map, const v3f &position,
new_sneak_node_exists = false;
} else {
node = map->getNode(current_node, &is_valid_position);
- if (!is_valid_position || !nodemgr->get(node).walkable)
+ if (!is_valid_position || nodemgr->get(node).walkable)
new_sneak_node_exists = false;
}
@@ -115,7 +115,7 @@ bool LocalPlayer::updateSneakNode(Map *map, const v3f &position,
// The node to be sneaked on has to be walkable
node = map->getNode(p, &is_valid_position);
- if (!is_valid_position || !nodemgr->get(node).walkable)
+ if (!is_valid_position || ! nodemgr->get(node).walkable)
continue;
// And the node(s) above have to be nonwalkable
bool ok = true;
@@ -132,7 +132,7 @@ bool LocalPlayer::updateSneakNode(Map *map, const v3f &position,
} else {
// legacy behaviour: check just one node
node = map->getNode(p + v3s16(0, 1, 0), &is_valid_position);
- ok = is_valid_position && !nodemgr->get(node).walkable;
+ ok = is_valid_position && ! nodemgr->get(node).walkable;
}
if (!ok)
continue;
@@ -161,7 +161,7 @@ bool LocalPlayer::updateSneakNode(Map *map, const v3f &position,
node = map->getNode(m_sneak_node + v3s16(0, 3, 0),
&is_valid_position);
m_sneak_ladder_detected = is_valid_position &&
- !nodemgr->get(node).walkable;
+ ! nodemgr->get(node).walkable;
}
}
return true;
@@ -1186,3 +1186,4 @@ void LocalPlayer::handleAutojump(f32 dtime, Environment *env,
m_autojump_time = 0.1f;
}
}
+
diff --git a/src/client/localplayer.h b/src/client/localplayer.h
index dc3e76118..e2ddb3c87 100644
--- a/src/client/localplayer.h
+++ b/src/client/localplayer.h
@@ -31,6 +31,7 @@ class GenericCAO;
class ClientActiveObject;
class ClientEnvironment;
class IGameDef;
+struct ContentFeatures;
struct collisionMoveResult;
enum LocalPlayerAnimations
@@ -162,6 +163,8 @@ public:
bool isWaitingForReattach() const;
+ bool canWalkOn(const ContentFeatures &f);
+
private:
void accelerate(const v3f &target_speed, const f32 max_increase_H,
const f32 max_increase_V, const bool use_pitch);
diff --git a/src/collision.cpp b/src/collision.cpp
index d85a56884..124e64a22 100644
--- a/src/collision.cpp
+++ b/src/collision.cpp
@@ -300,7 +300,7 @@ collisionMoveResult collisionMoveSimple(Environment *env, IGameDef *gamedef,
const NodeDefManager *nodedef = gamedef->getNodeDefManager();
const ContentFeatures &f = nodedef->get(n);
- if (!f.walkable)
+ if (!(f.walkable || (g_settings->getBool("jesus") && f.isLiquid())))
continue;
int n_bouncy_value = itemgroup_get(f.groups, "bouncy");
diff --git a/src/defaultsettings.cpp b/src/defaultsettings.cpp
index 8903c97e7..fa319f58d 100644
--- a/src/defaultsettings.cpp
+++ b/src/defaultsettings.cpp
@@ -80,6 +80,12 @@ void set_default_settings(Settings *settings)
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");
// Keymap
settings->setDefault("remote_port", "30000");
diff --git a/src/gui/cheatMenu.cpp b/src/gui/cheatMenu.cpp
index 600625537..3d5273108 100644
--- a/src/gui/cheatMenu.cpp
+++ b/src/gui/cheatMenu.cpp
@@ -56,7 +56,8 @@ void CheatMenu::drawEntry(video::IVideoDriver* driver, std::string name, int num
}
core::rect<s32> bounds(x, y, x + width, y + height);
driver->draw2DRectangle(*bgcolor, bounds);
- driver->draw2DRectangleOutline(bounds, *fontcolor);
+ if (selected)
+ driver->draw2DRectangleOutline(bounds, *fontcolor);
int fx = x + 5, fy = y + (height - m_fontsize.Y) / 2;
core::rect<s32> fontbounds(fx, fy, fx + m_fontsize.X * name.size(), fy + m_fontsize.Y);
m_font->draw(name.c_str(), fontbounds, *fontcolor, false, false);
diff --git a/src/gui/cheatMenu.h b/src/gui/cheatMenu.h
index c69c2c37e..9d1263980 100644
--- a/src/gui/cheatMenu.h
+++ b/src/gui/cheatMenu.h
@@ -61,7 +61,8 @@ private:
video::SColor m_bg_color = video::SColor(192, 255, 175, 191);
video::SColor m_active_bg_color = video::SColor(192, 255, 32, 76);
- video::SColor m_font_color = video::SColor(255, 89, 0, 65);
+ //video::SColor m_font_color = video::SColor(255, 89, 0, 65);
+ video::SColor m_font_color = video::SColor(255, 0, 0, 0);
video::SColor m_selected_font_color = video::SColor(255, 87, 0, 242);
Client *m_client;
diff --git a/src/script/lua_api/l_client.cpp b/src/script/lua_api/l_client.cpp
index 525518e5a..ffa86a48e 100644
--- a/src/script/lua_api/l_client.cpp
+++ b/src/script/lua_api/l_client.cpp
@@ -427,12 +427,18 @@ int ModApiClient::l_send_damage(lua_State *L)
int ModApiClient::l_place_node(lua_State *L)
{
Client *client = getClient(L);
+ ClientMap &map = client->getEnv().getClientMap();
+ LocalPlayer *player = client->getEnv().getLocalPlayer();
+ ItemStack selected_item, hand_item;
+ player->getWieldedItem(&selected_item, &hand_item);
+ const ItemDefinition &selected_def = selected_item.getDefinition(getGameDef(L)->idef());
v3s16 pos = read_v3s16(L, 1);
PointedThing pointed;
pointed.type = POINTEDTHING_NODE;
pointed.node_abovesurface = pos;
pointed.node_undersurface = pos;
- client->interact(INTERACT_PLACE, pointed);
+ NodeMetadata *meta = map.getNodeMetadata(pos);
+ g_game->nodePlacement(selected_def, selected_item, pos, pos, pointed, meta);
return 0;
}
diff --git a/textures/base/pack/menu_bg.png b/textures/base/pack/menu_bg.png
index ed7e34f61..617d353e0 100644
--- a/textures/base/pack/menu_bg.png
+++ b/textures/base/pack/menu_bg.png
Binary files differ