2019-03-14 00:05:35 +03:00
|
|
|
--[[
|
|
|
|
Minetest Ethereal Mod
|
|
|
|
|
|
|
|
Created by ChinChow
|
|
|
|
|
|
|
|
Updated by TenPlus1
|
|
|
|
]]
|
|
|
|
|
2024-08-16 13:05:33 +03:00
|
|
|
-- global
|
2022-04-05 10:27:51 +03:00
|
|
|
|
2024-08-29 13:39:32 +03:00
|
|
|
ethereal = {version = "20240829"}
|
2022-04-05 10:27:51 +03:00
|
|
|
|
2024-08-16 13:05:33 +03:00
|
|
|
-- setting helper
|
2022-04-05 10:27:51 +03:00
|
|
|
|
|
|
|
local function setting(stype, name, default)
|
|
|
|
|
|
|
|
local value
|
|
|
|
|
|
|
|
if stype == "bool" then
|
|
|
|
value = minetest.settings:get_bool("ethereal." .. name)
|
|
|
|
elseif stype == "string" then
|
|
|
|
value = minetest.settings:get("ethereal." .. name)
|
|
|
|
elseif stype == "number" then
|
|
|
|
value = tonumber(minetest.settings:get("ethereal." .. name))
|
|
|
|
end
|
|
|
|
|
2024-08-16 13:05:33 +03:00
|
|
|
if value == nil then value = default end
|
2022-04-05 10:27:51 +03:00
|
|
|
|
|
|
|
ethereal[name] = value
|
|
|
|
end
|
|
|
|
|
|
|
|
-- DO NOT change settings below, use the settings.conf file instead
|
|
|
|
|
|
|
|
setting("number", "leaftype", 0)
|
|
|
|
setting("bool", "leafwalk", false)
|
|
|
|
setting("bool", "cavedirt", true)
|
|
|
|
setting("bool", "torchdrop", true)
|
|
|
|
setting("bool", "papyruswalk", true)
|
|
|
|
setting("bool", "lilywalk", true)
|
|
|
|
setting("bool", "xcraft", true)
|
|
|
|
setting("bool", "flight", true)
|
|
|
|
setting("number", "glacier", 1)
|
|
|
|
setting("number", "bamboo", 1)
|
|
|
|
setting("number", "mesa", 1)
|
|
|
|
setting("number", "alpine", 1)
|
|
|
|
setting("number", "healing", 1)
|
|
|
|
setting("number", "snowy", 1)
|
|
|
|
setting("number", "frost", 1)
|
|
|
|
setting("number", "grassy", 1)
|
|
|
|
setting("number", "caves", 1)
|
|
|
|
setting("number", "grayness", 1)
|
|
|
|
setting("number", "grassytwo", 1)
|
|
|
|
setting("number", "prairie", 1)
|
|
|
|
setting("number", "jumble", 1)
|
|
|
|
setting("number", "junglee", 1)
|
|
|
|
setting("number", "desert", 1)
|
|
|
|
setting("number", "grove", 1)
|
|
|
|
setting("number", "mushroom", 1)
|
|
|
|
setting("number", "sandstone", 1)
|
|
|
|
setting("number", "quicksand", 1)
|
|
|
|
setting("number", "plains", 1)
|
|
|
|
setting("number", "savanna", 1)
|
|
|
|
setting("number", "fiery", 1)
|
|
|
|
setting("number", "swamp", 1)
|
|
|
|
setting("number", "sealife", 1)
|
|
|
|
setting("number", "reefs", 1)
|
|
|
|
setting("number", "tundra", 1)
|
|
|
|
setting("number", "mediterranean", 1)
|
2024-01-25 13:50:11 +03:00
|
|
|
setting("number", "logs", 1)
|
2024-07-08 17:12:52 +03:00
|
|
|
setting("bool", "wood_rotate", true)
|
2022-04-05 10:27:51 +03:00
|
|
|
|
2019-03-14 00:05:35 +03:00
|
|
|
|
|
|
|
local path = minetest.get_modpath("ethereal")
|
|
|
|
|
2022-04-05 10:27:51 +03:00
|
|
|
-- Load settings.conf file if found
|
2024-08-16 13:05:33 +03:00
|
|
|
|
2019-03-14 00:05:35 +03:00
|
|
|
local input = io.open(path.."/settings.conf", "r")
|
2022-09-30 19:26:44 +03:00
|
|
|
|
2019-03-14 00:05:35 +03:00
|
|
|
if input then
|
2024-08-16 13:05:33 +03:00
|
|
|
dofile(path .. "/settings.conf") ; input:close() ; input = nil
|
2019-03-14 00:05:35 +03:00
|
|
|
end
|
|
|
|
|
|
|
|
-- Falling node function
|
2024-08-16 13:05:33 +03:00
|
|
|
|
2019-03-14 00:05:35 +03:00
|
|
|
ethereal.check_falling = minetest.check_for_falling or nodeupdate
|
|
|
|
|
|
|
|
-- creative check
|
2024-08-16 13:05:33 +03:00
|
|
|
|
2019-03-14 00:05:35 +03:00
|
|
|
local creative_mode_cache = minetest.settings:get_bool("creative_mode")
|
2024-08-16 13:05:33 +03:00
|
|
|
|
2019-03-14 00:05:35 +03:00
|
|
|
function ethereal.check_creative(name)
|
|
|
|
return creative_mode_cache or minetest.check_player_privs(name, {creative = true})
|
|
|
|
end
|
|
|
|
|
2024-07-26 18:54:52 +03:00
|
|
|
-- helper function to add {eatable} group to food items
|
2024-08-16 13:05:33 +03:00
|
|
|
|
2024-07-26 18:54:52 +03:00
|
|
|
function ethereal.add_eatable(item, hp)
|
|
|
|
|
|
|
|
local def = minetest.registered_items[item]
|
|
|
|
|
|
|
|
if def then
|
|
|
|
|
2024-07-27 20:27:41 +03:00
|
|
|
local groups = table.copy(def.groups) or {}
|
2024-07-26 18:54:52 +03:00
|
|
|
|
2024-07-27 20:27:41 +03:00
|
|
|
groups.eatable = hp ; groups.flammable = 2
|
2024-07-26 18:54:52 +03:00
|
|
|
|
2024-08-04 01:56:53 +03:00
|
|
|
minetest.override_item(item, {groups = groups})
|
2024-07-26 18:54:52 +03:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2024-08-16 13:05:33 +03:00
|
|
|
-- strawberry check and load
|
|
|
|
|
2024-03-10 12:02:32 +03:00
|
|
|
if minetest.get_modpath("farming") and farming.mod and farming.mod == "redo" then
|
|
|
|
-- farming redo already has strawberry included
|
|
|
|
else
|
|
|
|
dofile(path .. "/strawberry.lua")
|
|
|
|
end
|
2022-09-30 19:26:44 +03:00
|
|
|
|
2024-08-16 13:05:33 +03:00
|
|
|
-- load mod sections
|
|
|
|
|
2019-03-14 00:05:35 +03:00
|
|
|
dofile(path .. "/plantlife.lua")
|
|
|
|
dofile(path .. "/onion.lua")
|
|
|
|
dofile(path .. "/crystal.lua")
|
|
|
|
dofile(path .. "/water.lua")
|
|
|
|
dofile(path .. "/dirt.lua")
|
|
|
|
dofile(path .. "/food.lua")
|
|
|
|
dofile(path .. "/wood.lua")
|
|
|
|
dofile(path .. "/leaves.lua")
|
|
|
|
dofile(path .. "/sapling.lua")
|
|
|
|
dofile(path .. "/fishing.lua")
|
|
|
|
dofile(path .. "/extra.lua")
|
|
|
|
dofile(path .. "/sealife.lua")
|
|
|
|
dofile(path .. "/fences.lua")
|
2022-11-28 11:56:15 +03:00
|
|
|
|
|
|
|
if minetest.settings:get_bool("ethereal.clear_default_biomes", true) then
|
|
|
|
dofile(path .. "/biomes_init.lua")
|
|
|
|
end
|
|
|
|
|
2020-05-28 16:20:31 +03:00
|
|
|
dofile(path .. "/biomes.lua")
|
|
|
|
dofile(path .. "/ores.lua")
|
2024-03-20 19:46:25 +03:00
|
|
|
dofile(path .. "/schems.lua")
|
2020-05-28 16:20:31 +03:00
|
|
|
dofile(path .. "/decor.lua")
|
2019-03-14 00:05:35 +03:00
|
|
|
dofile(path .. "/compatibility.lua")
|
|
|
|
dofile(path .. "/stairs.lua")
|
|
|
|
|
2022-09-30 19:26:44 +03:00
|
|
|
-- add flight if enabled
|
2024-08-16 13:05:33 +03:00
|
|
|
|
2021-02-10 15:08:46 +03:00
|
|
|
if ethereal.flight then
|
|
|
|
dofile(path .. "/flight.lua")
|
|
|
|
end
|
|
|
|
|
2022-09-30 19:26:44 +03:00
|
|
|
-- add lucky blocks if mod active
|
2024-08-16 13:05:33 +03:00
|
|
|
|
2022-09-30 19:26:44 +03:00
|
|
|
if minetest.get_modpath("lucky_block") then
|
|
|
|
dofile(path .. "/lucky_block.lua")
|
|
|
|
end
|
|
|
|
|
2019-03-14 00:05:35 +03:00
|
|
|
-- Set bonemeal aliases
|
2024-08-16 13:05:33 +03:00
|
|
|
|
2019-03-14 00:05:35 +03:00
|
|
|
if minetest.get_modpath("bonemeal") then
|
|
|
|
minetest.register_alias("ethereal:bone", "bonemeal:bone")
|
|
|
|
minetest.register_alias("ethereal:bonemeal", "bonemeal:bonemeal")
|
|
|
|
else -- or return to where it came from
|
|
|
|
minetest.register_alias("ethereal:bone", "default:dirt")
|
|
|
|
minetest.register_alias("ethereal:bonemeal", "default:dirt")
|
|
|
|
end
|
|
|
|
|
2021-10-29 09:41:32 +03:00
|
|
|
print ("[MOD] Ethereal loaded")
|