mirror of
https://github.com/minetest-mods/nether.git
synced 2025-07-23 10:40:31 +02:00
Merge remote-tracking branch 'upstream/master'
This commit is contained in:
92
init.lua
92
init.lua
@ -42,12 +42,18 @@ end
|
||||
|
||||
-- Global Nether namespace
|
||||
nether = {}
|
||||
nether.mapgen = {} -- Shared Nether mapgen namespace, for mapgen files to expose functions and constants
|
||||
nether.modname = minetest.get_current_modname()
|
||||
nether.path = minetest.get_modpath(nether.modname)
|
||||
nether.get_translator = S
|
||||
-- nether.useBiomes allows other mods to know whether they can register ores etc. in the Nether.
|
||||
-- See mapgen.lua for an explanation of why minetest.read_schematic is being checked
|
||||
nether.useBiomes = minetest.get_mapgen_setting("mg_name") ~= "v6" and minetest.read_schematic ~= nil
|
||||
nether.fogColor = { -- only used if climate_api is installed
|
||||
netherCaverns = "#1D0504", -- Distance-fog colour for classic nether
|
||||
mantle = "#070916", -- Distance-fog colour for the Mantle region
|
||||
geodes = "#300530" -- Distance-fog colour for secondary region
|
||||
}
|
||||
|
||||
|
||||
-- Settings
|
||||
@ -227,7 +233,91 @@ The expedition parties have found no diamonds or gold, and after an experienced
|
||||
end
|
||||
|
||||
})
|
||||
end
|
||||
|
||||
|
||||
-- Set appropriate nether distance-fog if climate_api is available
|
||||
--
|
||||
-- Delegating to a mod like climate_api means nether won't unexpectedly stomp on the sky of
|
||||
-- any other mod.
|
||||
-- Skylayer is another mod which can perform this role, and skylayer support could be added
|
||||
-- here as well. However skylayer doesn't provide a position-based method of specifying sky
|
||||
-- colours out-of-the-box, so the nether mod will have to monitor when players enter and
|
||||
-- leave the nether.
|
||||
if minetest.get_modpath("climate_api") and minetest.global_exists("climate_api") and climate_api.register_weather ~= nil then
|
||||
|
||||
climate_api.register_influence(
|
||||
"nether_biome",
|
||||
function(pos)
|
||||
local result = "surface"
|
||||
|
||||
if pos.y <= nether.DEPTH_CEILING and pos.y >= nether.DEPTH_FLOOR then
|
||||
result = "nether"
|
||||
|
||||
-- since mapgen_nobiomes.lua has no regions it doesn't implement getRegion(),
|
||||
-- so only use getRegion() if it exists
|
||||
if nether.mapgen.getRegion ~= nil then
|
||||
-- the biomes-based mapgen supports 2 extra regions
|
||||
local regions = nether.mapgen.RegionEnum
|
||||
local region = nether.mapgen.getRegion(pos)
|
||||
if region == regions.CENTER or region == regions.CENTERSHELL then
|
||||
result = "mantle"
|
||||
elseif region == regions.NEGATIVE or region == regions.NEGATIVESHELL then
|
||||
result = "geode"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
)
|
||||
|
||||
-- using sky type "plain" unfortunately means we don't get smooth fading transitions when
|
||||
-- the color of the sky changes, but it seems to be the only way to obtain a sky colour
|
||||
-- which doesn't brighten during the daytime.
|
||||
local undergroundSky = {
|
||||
sky_data = {
|
||||
base_color = nil,
|
||||
type = "plain",
|
||||
textures = nil,
|
||||
clouds = false,
|
||||
},
|
||||
sun_data = {
|
||||
visible = false,
|
||||
sunrise_visible = false
|
||||
},
|
||||
moon_data = {
|
||||
visible = false
|
||||
},
|
||||
star_data = {
|
||||
visible = false
|
||||
}
|
||||
}
|
||||
|
||||
local netherSky, mantleSky, geodeSky = table.copy(undergroundSky), table.copy(undergroundSky), table.copy(undergroundSky)
|
||||
netherSky.sky_data.base_color = nether.fogColor.netherCaverns
|
||||
mantleSky.sky_data.base_color = nether.fogColor.mantle
|
||||
geodeSky.sky_data.base_color = nether.fogColor.geodes
|
||||
|
||||
climate_api.register_weather(
|
||||
"nether:nether",
|
||||
{ nether_biome = "nether" },
|
||||
{ ["climate_api:skybox"] = netherSky }
|
||||
)
|
||||
|
||||
climate_api.register_weather(
|
||||
"nether:mantle",
|
||||
{ nether_biome = "mantle" },
|
||||
{ ["climate_api:skybox"] = mantleSky }
|
||||
)
|
||||
|
||||
climate_api.register_weather(
|
||||
"nether:geode",
|
||||
{ nether_biome = "geode" },
|
||||
{ ["climate_api:skybox"] = geodeSky }
|
||||
)
|
||||
end
|
||||
|
||||
end -- end of "if nether.NETHER_REALM_ENABLED..."
|
||||
|
||||
|
||||
-- Play bubbling lava sounds if player killed by lava
|
||||
|
Reference in New Issue
Block a user