172 lines
4.2 KiB
Lua
172 lines
4.2 KiB
Lua
|
--[[
|
||
|
Minetest Ethereal Mod
|
||
|
|
||
|
Created by ChinChow
|
||
|
|
||
|
Updated by TenPlus1
|
||
|
]]
|
||
|
|
||
|
|
||
|
ethereal = {version = "20221230"}
|
||
|
|
||
|
|
||
|
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
|
||
|
|
||
|
if value == nil then
|
||
|
value = default
|
||
|
end
|
||
|
|
||
|
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", "sandclay", 1)
|
||
|
setting("number", "swamp", 1)
|
||
|
setting("number", "sealife", 1)
|
||
|
setting("number", "reefs", 1)
|
||
|
setting("number", "sakura", 1)
|
||
|
setting("number", "tundra", 1)
|
||
|
setting("number", "mediterranean", 1)
|
||
|
|
||
|
|
||
|
local path = minetest.get_modpath("ethereal")
|
||
|
|
||
|
-- Load settings.conf file if found
|
||
|
local input = io.open(path.."/settings.conf", "r")
|
||
|
|
||
|
if input then
|
||
|
dofile(path .. "/settings.conf")
|
||
|
input:close()
|
||
|
input = nil
|
||
|
end
|
||
|
|
||
|
|
||
|
-- Intllib
|
||
|
local S
|
||
|
if minetest.get_translator ~= nil then
|
||
|
S = minetest.get_translator("ethereal") -- 5.x translation function
|
||
|
else
|
||
|
if minetest.get_modpath("intllib") then
|
||
|
dofile(minetest.get_modpath("intllib") .. "/init.lua")
|
||
|
if intllib.make_gettext_pair then
|
||
|
gettext, ngettext = intllib.make_gettext_pair() -- new gettext method
|
||
|
else
|
||
|
gettext = intllib.Getter() -- old text file method
|
||
|
end
|
||
|
S = gettext
|
||
|
else -- boilerplate function
|
||
|
S = function(str, ...)
|
||
|
local args = {...}
|
||
|
return str:gsub("@%d+", function(match)
|
||
|
return args[tonumber(match:sub(2))]
|
||
|
end)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
ethereal.intllib = S
|
||
|
|
||
|
|
||
|
-- Falling node function
|
||
|
ethereal.check_falling = minetest.check_for_falling or nodeupdate
|
||
|
|
||
|
-- creative check
|
||
|
local creative_mode_cache = minetest.settings:get_bool("creative_mode")
|
||
|
function ethereal.check_creative(name)
|
||
|
return creative_mode_cache or minetest.check_player_privs(name, {creative = true})
|
||
|
end
|
||
|
|
||
|
|
||
|
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 .. "/strawberry.lua")
|
||
|
dofile(path .. "/fishing.lua")
|
||
|
dofile(path .. "/extra.lua")
|
||
|
dofile(path .. "/sealife.lua")
|
||
|
dofile(path .. "/fences.lua")
|
||
|
|
||
|
if minetest.settings:get_bool("ethereal.clear_default_biomes", true) then
|
||
|
dofile(path .. "/biomes_init.lua")
|
||
|
end
|
||
|
|
||
|
dofile(path .. "/biomes.lua")
|
||
|
dofile(path .. "/ores.lua")
|
||
|
dofile(path .. "/schems.lua")
|
||
|
dofile(path .. "/decor.lua")
|
||
|
dofile(path .. "/compatibility.lua")
|
||
|
dofile(path .. "/stairs.lua")
|
||
|
|
||
|
-- add flight if enabled
|
||
|
if ethereal.flight then
|
||
|
dofile(path .. "/flight.lua")
|
||
|
end
|
||
|
|
||
|
-- add lucky blocks if mod active
|
||
|
if minetest.get_modpath("lucky_block") then
|
||
|
dofile(path .. "/lucky_block.lua")
|
||
|
end
|
||
|
|
||
|
-- Set bonemeal aliases
|
||
|
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
|
||
|
|
||
|
if minetest.get_modpath("xanadu") then
|
||
|
dofile(path .. "/plantpack.lua")
|
||
|
end
|
||
|
|
||
|
|
||
|
print ("[MOD] Ethereal loaded")
|