Compare commits

...

4 Commits

Author SHA1 Message Date
Jacob Lifshay de08a9d481
Fix bedrock in mineclone2 (#49)
* adjust more mcl_vars variables that were recently added to MineClone2

* try to detect mcl_vars values that should have been changed
2023-12-03 00:36:34 -07:00
Github is a non-free platform owned by Microsoft. Reasonable alternatives exist, such as Gitea, Sourcehut. We need a federated, mastodon-like forge based on ForgeFed. See: https://forgefed.org 8edf220213
fix crash when fake player dig slade (#46)
When a fake player, for example a node, dig slade, it return player ~= nil but it is not a current player, the server_diggable_only function tries to check the privs of the node, then this crashes

Here we use the built-in check player:is_player() so the node privs are not checked

This crash occurred in the technic mod when the corium eats the slade
2023-12-03 00:33:53 -07:00
FaceDeer 2f2577eada add mine_gas to optional depends 2023-01-08 02:38:10 -07:00
Awkanimus 06096ddc8f
No achievement when torch is placed by mods (#43) 2022-12-05 00:29:35 -07:00
4 changed files with 31 additions and 5 deletions

View File

@ -60,6 +60,7 @@ local plant_node_achievements =
}
minetest.register_on_placenode(function(pos, newnode, placer, oldnode, itemstack, pointed_thing)
if placer == nil then return end
local player_name = placer:get_player_name()
if player_name == nil then return end
local player_awards = awards.player(player_name)
@ -150,4 +151,4 @@ awards.register_achievement("dfcaverns_plant_all_farmables", {
achievement_name="dfcaverns_plant_all_farmables",
target=df_achievements.get_child_achievement_count("dfcaverns_plant_all_farmables"),
},
})
})

View File

@ -1,4 +1,4 @@
name = df_caverns
description = Adds vast underground caverns in the style of Dwarf Fortress, complete with underground flora in diverse biomes. Also adds stalactite/stalagmite decorations in the smaller tunnels.
depends = df_dependencies, subterrane, df_trees, df_mapitems
optional_depends = df_farming, ice_sprites, oil, df_underworld_items, magma_conduits, bones_loot, named_waypoints, name_generator, fireflies, chasms, big_webs, mcl_flowers
depends = df_dependencies, subterrane, df_trees, df_mapitems,
optional_depends = df_farming, ice_sprites, oil, df_underworld_items, magma_conduits, bones_loot, named_waypoints, name_generator, fireflies, chasms, big_webs, mcl_flowers, mine_gas

View File

@ -215,8 +215,33 @@ if minetest.get_modpath("mcl_init") then -- Mineclone 2
mcl_vars.mg_overworld_min = lowest_elevation
mcl_vars.mg_bedrock_overworld_min = mcl_vars.mg_overworld_min
mcl_vars.mg_bedrock_overworld_max = mcl_vars.mg_overworld_min + 4
mcl_vars.mg_lava_overworld_max = mcl_vars.mg_overworld_min + 10
mcl_vars.mg_end_max = mcl_vars.mg_overworld_min - 2000
mcl_vars.mg_realm_barrier_overworld_end_max = mcl_vars.mg_end_max
mcl_vars.mg_realm_barrier_overworld_end_min = mcl_vars.mg_end_max - 11
-- try to detect any variables that should have been modified but weren't
local bad_entries = {}
for k, v in pairs(mcl_vars) do
-- if a value is in this range, it's probably a new value added by MineClone2 that we should be adjusting, add it to the table
if type(v) == "number" and v <= old_overworld_min + 10 and v >= mcl_vars.mg_overworld_min + 100 then
bad_entries[k] = v
end
end
-- mark variables as ignored that we intentionally don't change, like so:
-- bad_entries.mg_value_that_shouldnt_be_adjusted = nil
for k, v in pairs(bad_entries) do
local new_value = v + mcl_vars.mg_overworld_min - old_overworld_min
minetest.log("error", "dfcaverns: variable wasn't modified or marked as ignored! guessing new value:")
minetest.log("error", "mcl_var." .. tostring(k) .. " = " .. tostring(new_value) .. " -- was " .. tostring(v))
minetest.log("error", "if it shouldn't be changed, mark it as ignored in df_dependencies/mapgen.lua like so:")
minetest.log("error", "bad_entries." .. tostring(k) .. " = nil")
minetest.log("error", "This is a bug, please report it to https://github.com/FaceDeer/dfcaverns/issues/new")
mcl_vars[k] = new_value
end
-- shouldn't need to worry about the setting, extend_ores checks if the ores
-- have already been registered.

View File

@ -3,7 +3,7 @@ local S = minetest.get_translator(minetest.get_current_modname())
local invulnerable = df_underworld_items.config.invulnerable_slade and not minetest.settings:get_bool("creative_mode")
local server_diggable_only = function(pos, player)
if player then
if player and player:is_player() then
return minetest.check_player_privs(player, "server")
end
return false
@ -181,4 +181,4 @@ end
if minetest.get_modpath("mesecons_mvps") and df_underworld_items.config.invulnerable_slade then
mesecon.register_mvps_stopper("df_underworld_items:slade")
end
end