171 lines
4.2 KiB
Lua
171 lines
4.2 KiB
Lua
--[[
|
|
Minetest Ethereal Mod
|
|
|
|
Created by ChinChow
|
|
|
|
Updated by TenPlus1
|
|
]]
|
|
|
|
|
|
ethereal = {version = "20240803"}
|
|
|
|
|
|
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)
|
|
setting("number", "logs", 1)
|
|
setting("bool", "wood_rotate", true)
|
|
|
|
|
|
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
|
|
|
|
|
|
-- Translation support
|
|
ethereal.translate = minetest.get_translator("ethereal")
|
|
|
|
-- 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
|
|
|
|
-- helper function to add {eatable} group to food items
|
|
function ethereal.add_eatable(item, hp)
|
|
|
|
local def = minetest.registered_items[item]
|
|
|
|
if def then
|
|
|
|
local groups = table.copy(def.groups) or {}
|
|
|
|
groups.eatable = hp ; groups.flammable = 2
|
|
|
|
minetest.override_item(item, {groups = groups})
|
|
end
|
|
end
|
|
|
|
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
|
|
|
|
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")
|
|
|
|
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")
|
|
|