happy little git push, new textures
BIN
extras/SP_Palette_V2.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
@ -3,8 +3,9 @@
|
||||
atmos = {}
|
||||
|
||||
atmos.wind = {}
|
||||
atmos.wind.x = 0 -- radians
|
||||
atmos.wind.z = 0 -- radians
|
||||
atmos.wind.rads = 0.5
|
||||
atmos.wind.x = 0 -- result
|
||||
atmos.wind.z = 0 -- result
|
||||
atmos.wind.speed = 2 -- in nodes/meters per second
|
||||
|
||||
atmos.cloud = {}
|
||||
@ -12,29 +13,31 @@ atmos.cloud = {}
|
||||
atmos.cloud.density = {} -- overall cloud density
|
||||
atmos.cloud.density.min = 0
|
||||
atmos.cloud.density.max = 1
|
||||
atmos.cloud.density.now = 0
|
||||
atmos.cloud.density.now = 0.6
|
||||
|
||||
atmos.cloud.thicc = {}
|
||||
atmos.cloud.thicc.min = 1 -- thiccness in nodes
|
||||
atmos.cloud.thicc.max = 32
|
||||
atmos.cloud.thicc.max = 64
|
||||
atmos.cloud.thicc.now = 16
|
||||
|
||||
atmos.cloud.height= {} -- height in nodes from 0
|
||||
atmos.cloud.height.min = 80
|
||||
atmos.cloud.height.max = 220
|
||||
atmos.cloud.height.min = 120
|
||||
atmos.cloud.height.max = 320
|
||||
atmos.cloud.height.now = 120
|
||||
|
||||
atmos.cloud.colour = {} -- minetest.rgba components for colourising clouds
|
||||
atmos.cloud.colour.red = 250 -- replace these with the cloudy skybox with some brightening
|
||||
atmos.cloud.colour.red = 250 -- these are the default colours, blend with the cloudy skybox colours
|
||||
atmos.cloud.colour.grn = 250
|
||||
atmos.cloud.colour.blu = 255
|
||||
|
||||
atmos.cloud.colour.alp = {} -- tune this when clouds get thiccer
|
||||
atmos.cloud.colour.alp.min = 5
|
||||
atmos.cloud.colour.alp.min = 25
|
||||
atmos.cloud.colour.alp.max = 229
|
||||
|
||||
function atmos.wind_to_vector(rads, mult) -- forwards only
|
||||
local z = math.cos(rads) * mult
|
||||
local x = (math.sin(rads) * -1) * mult
|
||||
return x, z
|
||||
local z2 = math.cos(rads) * mult
|
||||
local x2 = (math.sin(rads) * -1) * mult
|
||||
return {x=x2, z=z2}
|
||||
end
|
||||
|
||||
atmos.current_weather = 3
|
||||
@ -60,7 +63,7 @@ for line in io.lines(storage.."skybox_cloud_gradient.atm") do
|
||||
end
|
||||
|
||||
local function atmos_ratio(current, next, ctime2)
|
||||
return current + (next - current) * ctime2
|
||||
return (current + (next - current) * ctime2)
|
||||
end
|
||||
|
||||
local function convert_hex(input_hex)
|
||||
@ -82,42 +85,7 @@ local function make_skybox(player)
|
||||
ctime = math.floor(ctime) -- remove the sig figs, since we're accessing table points
|
||||
|
||||
-- assemble the skyboxes to fade neatly
|
||||
local side_string_clear = "(atmos_sky.png^[multiply:" .. atmos_clear_weather[ctime].bottom .. ")^" ..
|
||||
"(atmos_sky_top.png^[multiply:" .. atmos_clear_weather[ctime].top .. ")"
|
||||
|
||||
local side_string_new_clear = "(atmos_sky.png^[multiply:" .. atmos_clear_weather[ctime+1].bottom .. ")^" ..
|
||||
"(atmos_sky_top.png^[multiply:" .. atmos_clear_weather[ctime+1].top .. ")"
|
||||
|
||||
local sky_top_clear = "(atmos_sky.png^[multiply:" .. atmos_clear_weather[ctime].bottom .. ")^" ..
|
||||
"(atmos_sky_top_radial.png^[multiply:" .. atmos_clear_weather[ctime].top .. ")"
|
||||
|
||||
local sky_top_new_clear = "(atmos_sky.png^[multiply:" .. atmos_clear_weather[ctime+1].bottom .. ")^" ..
|
||||
"(atmos_sky_top_radial.png^[multiply:".. atmos_clear_weather[ctime+1].top .. ")"
|
||||
|
||||
local sky_bottom_clear = "(atmos_sky.png^[multiply:" ..
|
||||
atmos_clear_weather[ctime].bottom .. ")"
|
||||
|
||||
local sky_bottom_new_clear = "(atmos_sky.png^[multiply:" ..
|
||||
atmos_clear_weather[ctime+1].bottom .. ")"
|
||||
|
||||
-- cloud sky textures
|
||||
local side_string_cloud = "(atmos_sky.png^[multiply:" .. atmos_cloudy_weather[ctime].bottom .. ")^" ..
|
||||
"(atmos_sky_top.png^[multiply:" .. atmos_cloudy_weather[ctime].top .. ")"
|
||||
|
||||
local side_string_cloud_new = "(atmos_sky.png^[multiply:" .. atmos_cloudy_weather[ctime+1].bottom .. ")^" ..
|
||||
"(atmos_sky_top.png^[multiply:" .. atmos_cloudy_weather[ctime+1].top .. ")"
|
||||
|
||||
local sky_top_cloud = "(atmos_sky.png^[multiply:" .. atmos_cloudy_weather[ctime].bottom .. ")^" ..
|
||||
"(atmos_sky_top_radial.png^[multiply:" .. atmos_cloudy_weather[ctime].top .. ")"
|
||||
|
||||
local sky_top_cloud_new = "(atmos_sky.png^[multiply:" .. atmos_cloudy_weather[ctime+1].bottom .. ")^" ..
|
||||
"(atmos_sky_top_radial.png^[multiply:" .. atmos_cloudy_weather[ctime+1].top .. ")"
|
||||
|
||||
local sky_bottom_cloud = "(atmos_sky.png^[multiply:" ..
|
||||
atmos_cloudy_weather[ctime].bottom .. ")"
|
||||
|
||||
local sky_bottom_cloud_new = "(atmos_sky.png^[multiply:" ..
|
||||
atmos_cloudy_weather[ctime+1].bottom .. ")"
|
||||
|
||||
-- let's convert the base colour to convert it into our transitioning fog colour:
|
||||
|
||||
@ -138,8 +106,8 @@ local function make_skybox(player)
|
||||
fog_clear.current.red, fog_clear.current.grn, fog_clear.current.blu = convert_hex(atmos_clear_weather[ctime].base)
|
||||
fog_clear.next.red, fog_clear.next.grn, fog_clear.next.blu = convert_hex(atmos_clear_weather[ctime+1].base)
|
||||
|
||||
fog_cloud.current.red, fog_cloud.current.grn, fog_cloud.current.blu = convert_hex(atmos_clear_weather[ctime].base)
|
||||
fog_cloud.next.red, fog_cloud.next.grn, fog_cloud.next.blu = convert_hex(atmos_clear_weather[ctime+1].base)
|
||||
fog_cloud.current.red, fog_cloud.current.grn, fog_cloud.current.blu = convert_hex(atmos_cloudy_weather[ctime].base)
|
||||
fog_cloud.next.red, fog_cloud.next.grn, fog_cloud.next.blu = convert_hex(atmos_cloudy_weather[ctime+1].base)
|
||||
|
||||
if atmos_clear_weather[ctime].base ~= atmos_clear_weather[ctime+1].base then
|
||||
-- we compare colours the same way we do it for the light level
|
||||
@ -162,46 +130,123 @@ local function make_skybox(player)
|
||||
fog_cloud.result.blu = fog_cloud.current.blu
|
||||
end
|
||||
|
||||
if atmos_clear_weather[ctime].bottom == atmos_clear_weather[ctime+1].bottom then -- prevent more leakage
|
||||
if atmos_clear_weather[ctime].top == atmos_clear_weather[ctime+1].top then
|
||||
fade_factor = 0
|
||||
end
|
||||
end
|
||||
-- blend sky textures in colour
|
||||
|
||||
local sky_clear = {}
|
||||
sky_clear.now = {}
|
||||
sky_clear.now.top = {}
|
||||
sky_clear.now.bot = {}
|
||||
|
||||
sky_clear.next = {}
|
||||
sky_clear.next.top = {}
|
||||
sky_clear.next.bot = {}
|
||||
|
||||
sky_clear.result = {}
|
||||
sky_clear.result.top = {}
|
||||
sky_clear.result.bot = {}
|
||||
|
||||
--load colours into memory
|
||||
sky_clear.now.top.r, sky_clear.now.top.g, sky_clear.now.top.b = convert_hex(atmos_clear_weather[ctime].top)
|
||||
sky_clear.now.bot.r, sky_clear.now.bot.g, sky_clear.now.bot.b = convert_hex(atmos_clear_weather[ctime].bottom)
|
||||
|
||||
local blend_curve = ((atmos.cloud.density.now / 0.9)^10)/2.867
|
||||
sky_clear.next.top.r, sky_clear.next.top.g, sky_clear.next.top.b = convert_hex(atmos_clear_weather[ctime+1].top)
|
||||
sky_clear.next.bot.r, sky_clear.next.bot.g, sky_clear.next.bot.b = convert_hex(atmos_clear_weather[ctime+1].bottom)
|
||||
|
||||
local clear_result = {}
|
||||
clear_result.top = {}
|
||||
clear_result.bot = {}
|
||||
|
||||
clear_result.top.r = atmos_ratio(sky_clear.now.top.r, sky_clear.next.top.r, ctime2)
|
||||
clear_result.top.g = atmos_ratio(sky_clear.now.top.g, sky_clear.next.top.g, ctime2)
|
||||
clear_result.top.b = atmos_ratio(sky_clear.now.top.b, sky_clear.next.top.b, ctime2)
|
||||
|
||||
clear_result.bot.r = atmos_ratio(sky_clear.now.bot.r, sky_clear.next.bot.r, ctime2)
|
||||
clear_result.bot.g = atmos_ratio(sky_clear.now.bot.g, sky_clear.next.bot.g, ctime2)
|
||||
clear_result.bot.b = atmos_ratio(sky_clear.now.bot.b, sky_clear.next.bot.b, ctime2)
|
||||
|
||||
-- handle cloud data
|
||||
local sky_cloud = {}
|
||||
sky_cloud.now = {}
|
||||
sky_cloud.now.top = {}
|
||||
sky_cloud.now.bot = {}
|
||||
|
||||
sky_cloud.next = {}
|
||||
sky_cloud.next.top = {}
|
||||
sky_cloud.next.bot = {}
|
||||
|
||||
sky_cloud.now.top.r, sky_cloud.now.top.g, sky_cloud.now.top.b = convert_hex(atmos_cloudy_weather[ctime].top)
|
||||
sky_cloud.now.bot.r, sky_cloud.now.bot.g, sky_cloud.now.bot.b = convert_hex(atmos_cloudy_weather[ctime].bottom)
|
||||
|
||||
sky_cloud.next.top.r, sky_cloud.next.top.g, sky_cloud.next.top.b = convert_hex(atmos_cloudy_weather[ctime+1].top)
|
||||
sky_cloud.next.bot.r, sky_cloud.next.bot.g, sky_cloud.next.bot.b = convert_hex(atmos_cloudy_weather[ctime+1].bottom)
|
||||
|
||||
local cloud_result = {}
|
||||
cloud_result.top = {}
|
||||
cloud_result.bot = {}
|
||||
|
||||
cloud_result.top.r = atmos_ratio(sky_cloud.now.top.r, sky_cloud.next.top.r, ctime2)
|
||||
cloud_result.top.g = atmos_ratio(sky_cloud.now.top.g, sky_cloud.next.top.g, ctime2)
|
||||
cloud_result.top.b = atmos_ratio(sky_cloud.now.top.b, sky_cloud.next.top.b, ctime2)
|
||||
|
||||
cloud_result.bot.r = atmos_ratio(sky_cloud.now.bot.r, sky_cloud.next.bot.r, ctime2)
|
||||
cloud_result.bot.g = atmos_ratio(sky_cloud.now.bot.g, sky_cloud.next.bot.g, ctime2)
|
||||
cloud_result.bot.b = atmos_ratio(sky_cloud.now.bot.b, sky_cloud.next.bot.b, ctime2)
|
||||
|
||||
-- mix and merge colours
|
||||
|
||||
-- atmos.cloud.density.now
|
||||
local blend_curve = ((atmos.cloud.density.now/0.9)^10)/0.125
|
||||
|
||||
if blend_curve < 0 then blend_curve = 0 end -- no stupid squaring here
|
||||
if blend_curve > 1 then blend_curve = 1 end
|
||||
|
||||
local blend_op = math.floor(255 * blend_curve)
|
||||
|
||||
-- blend sky textures in colour
|
||||
local clear_sky_top = sky_top_clear .. "^(" .. sky_top_new_clear .. "^[opacity:" .. fade_factor .. ")"
|
||||
local cloud_sky_top = sky_top_cloud .. "^(" .. sky_top_cloud_new .. "^[opacity:" .. fade_factor .. ")"
|
||||
local merge_result = {}
|
||||
merge_result.top = {}
|
||||
merge_result.bot = {}
|
||||
|
||||
local clear_sky_side = side_string_clear .. "^(" .. side_string_new_clear .. "^[opacity:" .. fade_factor .. ")"
|
||||
local cloud_sky_side = side_string_cloud .. "^(" .. side_string_cloud_new .. "^[opacity:" .. fade_factor .. ")"
|
||||
merge_result.top.r = atmos_ratio(clear_result.top.r, cloud_result.top.r, blend_curve)
|
||||
merge_result.top.g = atmos_ratio(clear_result.top.g, cloud_result.top.g, blend_curve)
|
||||
merge_result.top.b = atmos_ratio(clear_result.top.b, cloud_result.top.b, blend_curve)
|
||||
|
||||
merge_result.bot.r = atmos_ratio(clear_result.bot.r, cloud_result.bot.r, blend_curve)
|
||||
merge_result.bot.g = atmos_ratio(clear_result.bot.g, cloud_result.bot.g, blend_curve)
|
||||
merge_result.bot.b = atmos_ratio(clear_result.bot.b, cloud_result.bot.b, blend_curve)
|
||||
|
||||
local clear_sky_bottom = sky_bottom_clear .. "^(" .. sky_bottom_new_clear .. "^[opacity:" .. fade_factor .. ")"
|
||||
local cloud_sky_bottom = sky_bottom_cloud .. "^(" .. sky_bottom_cloud_new .. "^[opacity:" .. fade_factor .. ")"
|
||||
local sky_tex_top = "atmos_sky.png^[multiply:" .. minetest.rgba(
|
||||
merge_result.bot.r,
|
||||
merge_result.bot.g,
|
||||
merge_result.bot.b
|
||||
) .. "^(atmos_sky_top_radial.png^[multiply:" .. minetest.rgba(
|
||||
merge_result.top.r,
|
||||
merge_result.top.g,
|
||||
merge_result.top.b
|
||||
) .. ")"
|
||||
|
||||
-- "^[opacity:" .. blend_op
|
||||
local result_sky_top = clear_sky_top .. "^(" .. cloud_sky_top .. "^[opacity:" .. blend_op .. ")"
|
||||
local sky_tex_side = "atmos_sky.png^[multiply:" .. minetest.rgba(
|
||||
merge_result.bot.r,
|
||||
merge_result.bot.g,
|
||||
merge_result.bot.b
|
||||
) .. "^(atmos_sky_top.png^[multiply:" .. minetest.rgba(
|
||||
merge_result.top.r,
|
||||
merge_result.top.g,
|
||||
merge_result.top.b
|
||||
) .. ")"
|
||||
|
||||
local result_sky_bottom = clear_sky_bottom .. "^(" .. cloud_sky_bottom .. "^[opacity:" .. blend_op .. ")"
|
||||
local sky_tex_bottom = "atmos_sky.png^[multiply:" .. minetest.rgba(
|
||||
merge_result.bot.r,
|
||||
merge_result.bot.g,
|
||||
merge_result.bot.b
|
||||
)
|
||||
|
||||
local result_sky_side = clear_sky_side .. "^(" .. cloud_sky_side .. "^[opacity:" .. blend_op .. ")"
|
||||
-- merge fog colours;
|
||||
|
||||
local result_fog = {}
|
||||
|
||||
result_fog.r = atmos_ratio(fog_clear.result.red, fog_cloud.result.red, atmos.cloud.density.now)
|
||||
result_fog.g = atmos_ratio(fog_clear.result.grn, fog_cloud.result.grn, atmos.cloud.density.now)
|
||||
result_fog.b = atmos_ratio(fog_clear.result.blu, fog_cloud.result.blu, atmos.cloud.density.now)
|
||||
result_fog.a = math.floor(atmos.cloud.colour.alp.max * atmos.cloud.density.now)
|
||||
|
||||
if result_fog.a < atmos.cloud.colour.alp.min then
|
||||
result_fog.a = atmos.cloud.colour.alp.min
|
||||
end
|
||||
result_fog.r = atmos_ratio(fog_clear.result.red, fog_cloud.result.red, blend_curve)
|
||||
result_fog.g = atmos_ratio(fog_clear.result.grn, fog_cloud.result.grn, blend_curve)
|
||||
result_fog.b = atmos_ratio(fog_clear.result.blu, fog_cloud.result.blu, blend_curve)
|
||||
|
||||
player:set_sky(
|
||||
minetest.rgba(
|
||||
@ -211,15 +256,34 @@ local function make_skybox(player)
|
||||
),
|
||||
"skybox",
|
||||
{
|
||||
result_sky_top,
|
||||
result_sky_bottom,
|
||||
result_sky_side,
|
||||
result_sky_side,
|
||||
result_sky_side,
|
||||
result_sky_side,
|
||||
sky_tex_top,
|
||||
sky_tex_bottom,
|
||||
sky_tex_side,
|
||||
sky_tex_side,
|
||||
sky_tex_side,
|
||||
sky_tex_side
|
||||
},
|
||||
true
|
||||
)
|
||||
local cloud_curve = atmos.cloud.density.now^2
|
||||
local cloud_curve2 = ((((atmos.cloud.density.now-0.46)/1.2)^3)/0.1) + 0.56
|
||||
|
||||
result_fog.a = atmos_ratio(atmos.cloud.colour.alp.min, atmos.cloud.colour.alp.max, cloud_curve2)
|
||||
local height = atmos_ratio(atmos.cloud.height.min, atmos.cloud.height.max, cloud_curve)
|
||||
local thicc = atmos_ratio(atmos.cloud.thicc.min, atmos.cloud.thicc.max, cloud_curve)
|
||||
|
||||
player:set_clouds({
|
||||
density = atmos.cloud.density.now,
|
||||
height = height,
|
||||
thickness = thicc,
|
||||
color = minetest.rgba(
|
||||
atmos_ratio(atmos.cloud.colour.red, fog_cloud.result.red, blend_curve),
|
||||
atmos_ratio(atmos.cloud.colour.grn, fog_cloud.result.grn, blend_curve),
|
||||
atmos_ratio(atmos.cloud.colour.blu, fog_cloud.result.blu, blend_curve),
|
||||
result_fog.a
|
||||
),
|
||||
speed = atmos.wind_to_vector(atmos.wind.rads, atmos.wind.speed)
|
||||
})
|
||||
|
||||
local light_ratio = 0
|
||||
local light_level = 0
|
||||
@ -239,9 +303,6 @@ local function make_skybox(player)
|
||||
player:override_day_night_ratio(light_level)
|
||||
end
|
||||
|
||||
local atmos_crossfade = 0
|
||||
local atmos_start_fade = false
|
||||
|
||||
function atmos.sync_skybox()
|
||||
-- sync skyboxes to all players connected to the server.
|
||||
for _, player in ipairs(minetest.get_connected_players()) do
|
||||
@ -258,8 +319,6 @@ end
|
||||
minetest.after(1, atmos.sync_skybox)
|
||||
--minetest.after(math.random(43, 156), atmos.thunderstrike)
|
||||
|
||||
lightning.light_level = atmos.weather_light_level
|
||||
|
||||
-- abm to remove fires when it's raining, snowing or hailing?
|
||||
|
||||
-- logic to support taking damage when either too cold or too hot
|
||||
@ -441,6 +500,23 @@ minetest.register_chatcommand("frosty", { -- admin commands to debug the values
|
||||
|
||||
})
|
||||
|
||||
minetest.register_chatcommand("thicc", { -- admin commands to debug the values for testing
|
||||
|
||||
description = "debugs the current cloud level",
|
||||
param = "use 0-1 (float) to set cloud level.",
|
||||
func = function(name, param)
|
||||
|
||||
if not minetest.check_player_privs(name, "server") then
|
||||
return false, "You are not allowed to be changing the clouds."
|
||||
end
|
||||
|
||||
atmos.cloud.density.now = tonumber(param)
|
||||
|
||||
return true, "Current cloud density levels updated."
|
||||
end,
|
||||
|
||||
})
|
||||
|
||||
minetest.register_chatcommand("toasty", {
|
||||
|
||||
description = "debugs the current overheat level",
|
||||
|
Before Width: | Height: | Size: 392 B |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 592 B |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 503 B After Width: | Height: | Size: 365 B |
Before Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 24 KiB |
@ -27,14 +27,7 @@ minetest.register_node("core:grass", {
|
||||
sounds = mcore.sound_grass,
|
||||
})
|
||||
|
||||
minetest.register_node("core:grass_wildland", {
|
||||
tiles = {"core_grass_wild.png", "core_dirt.png", "core_dirt.png^core_grass_wild_side.png"},
|
||||
description = "Dirt with Grass",
|
||||
is_ground_content = true,
|
||||
drop = "core:dirt",
|
||||
groups = {crumbly=3, solid=1, dirt=1},
|
||||
sounds = mcore.sound_grass,
|
||||
})
|
||||
minetest.register_alias("core:grass_wildland", "core:grass")
|
||||
|
||||
minetest.register_node("core:stone", {
|
||||
tiles = {"core_stone.png"},
|
||||
@ -250,7 +243,7 @@ minetest.register_node("core:water_source", {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 2,
|
||||
length = 1.5,
|
||||
},
|
||||
},
|
||||
},
|
||||
@ -261,7 +254,7 @@ minetest.register_node("core:water_source", {
|
||||
type = "vertical_frames",
|
||||
aspect_w = 16,
|
||||
aspect_h = 16,
|
||||
length = 2,
|
||||
length = 1.5,
|
||||
},
|
||||
backface_culling = true,
|
||||
},
|
||||
@ -617,7 +610,7 @@ minetest.register_node("core:cherry_planks", {
|
||||
|
||||
minetest.register_node("core:fallen_cherry_leaves", {
|
||||
description = "Fallen Cherry Leaves",
|
||||
tiles = {"core_cherry_leaves.png"},
|
||||
tiles = {"core_cherry_leaves_floor.png"},
|
||||
drawtype = "mesh",
|
||||
mesh = "planar_flower.b3d",
|
||||
groups = {snappy=3, attached_node=1},
|
||||
@ -800,7 +793,7 @@ minetest.register_node("core:acacia_log", {
|
||||
|
||||
minetest.register_node("core:acacia_log_grassy", {
|
||||
description = "Acacia Log (Grassy)",
|
||||
tiles = {"core_acacia_log_top.png", "core_acacia_log_top.png", "core_acacia_log.png^core_long_grass_wild_1.png"},
|
||||
tiles = {"core_acacia_log_top.png", "core_acacia_log_top.png", "core_acacia_log.png^core_long_grass_2.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {tree=1, choppy=3, flammable=2, solid=1, nodec=1},
|
||||
@ -855,7 +848,7 @@ minetest.register_node("core:wimba_log", {
|
||||
|
||||
minetest.register_node("core:wimba_log_grassy", {
|
||||
description = "Wimba Log (Grassy)",
|
||||
tiles = {"core_wimba_log_top.png", "core_wimba_log_top.png", "core_wimba_log.png^core_long_grass_wild_1.png"},
|
||||
tiles = {"core_wimba_log_top.png", "core_wimba_log_top.png", "core_wimba_log.png^core_long_grass_3.png"},
|
||||
paramtype2 = "facedir",
|
||||
is_ground_content = false,
|
||||
groups = {tree=1, choppy=3, flammable=2, solid=1, nodec=1},
|
||||
@ -986,32 +979,7 @@ minetest.register_node("core:grass_1", {
|
||||
|
||||
})
|
||||
|
||||
minetest.register_node("core:grass_wild_1", {
|
||||
description = "Wildlands Long Grass",
|
||||
tiles = {"core_long_grass_wild_1.png"},
|
||||
waving = 1,
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
paramtype2 = "meshoptions",
|
||||
visual_scale = 1.0,
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
sunlight_propagates = true,
|
||||
groups = {attached_node=1, snappy=3},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
||||
},
|
||||
sounds = mcore.sound_plants,
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
local nname = "core:grass_wild_" .. math.random(1,3)
|
||||
local stack = ItemStack(nname)
|
||||
local ret = minetest.item_place_node(stack, placer, pointed_thing, mcore.options("cross", true, true, false))
|
||||
return ItemStack("core:grass_wild_1 "..itemstack:get_count() - (1 - ret:get_count()))
|
||||
end,
|
||||
|
||||
})
|
||||
|
||||
minetest.register_alias("core:grass_wild_1", "core:grass_1")
|
||||
|
||||
for i=2, 3 do
|
||||
|
||||
@ -1033,28 +1001,11 @@ for i=2, 3 do
|
||||
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
||||
},
|
||||
sounds = mcore.sound_plants,
|
||||
|
||||
|
||||
})
|
||||
|
||||
minetest.register_node("core:grass_wild_"..i, {
|
||||
description = "Wildlands Long Grass",
|
||||
tiles = {"core_long_grass_wild_"..i..".png"},
|
||||
waving = 1,
|
||||
drawtype = "plantlike",
|
||||
paramtype = "light",
|
||||
paramtype2 = "meshoptions",
|
||||
visual_scale = 1.0,
|
||||
walkable = false,
|
||||
buildable_to = true,
|
||||
drop = "core:grass_wild_1",
|
||||
sunlight_propagates = true,
|
||||
groups = {not_in_creative_inventory=1, attached_node=1, snappy=3},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.5, -0.5, -0.5, 0.5, -5/16, 0.5},
|
||||
},
|
||||
sounds = mcore.sound_plants,
|
||||
})
|
||||
|
||||
minetest.register_alias("core:grass_wild_" .. i, "core:grass_" .. i)
|
||||
end
|
||||
|
||||
-- plants
|
||||
|
@ -1054,7 +1054,7 @@ minetest.register_biome({
|
||||
|
||||
name = "jungle",
|
||||
|
||||
node_top = "core:grass_wildland",
|
||||
node_top = "core:grass",
|
||||
depth_top = 1,
|
||||
|
||||
node_filler = "core:dirt",
|
||||
@ -1075,7 +1075,7 @@ minetest.register_biome({
|
||||
|
||||
name = "wildlands",
|
||||
|
||||
node_top = "core:grass_wildland",
|
||||
node_top = "core:grass",
|
||||
depth_top = 1,
|
||||
|
||||
node_filler = "core:dirt",
|
||||
@ -1150,8 +1150,8 @@ minetest.register_decoration({
|
||||
place_on = "core:grass",
|
||||
decoration = {"core:mg_birch_sapling"},
|
||||
sidelen = 16,
|
||||
fill_ratio = 0.008,
|
||||
biomes = {"plains_forest"},
|
||||
fill_ratio = 0.006,
|
||||
biomes = {"highlands"},
|
||||
height = 1,
|
||||
})
|
||||
|
||||
@ -1168,7 +1168,7 @@ minetest.register_decoration({
|
||||
minetest.register_decoration({
|
||||
deco_type = "simple",
|
||||
place_on = {"core:grass"},
|
||||
decoration = {"core:mg_oak_sapling", "core:mg_cherry_sapling", "core:mg_birch_sapling"},
|
||||
decoration = {"core:mg_oak_sapling"},
|
||||
sidelen = 80,
|
||||
fill_ratio = 0.0001,
|
||||
biomes = {"plains"},
|
||||
@ -1188,7 +1188,7 @@ minetest.register_decoration({
|
||||
|
||||
minetest.register_decoration({
|
||||
deco_type = "simple",
|
||||
place_on = "core:grass_wildland",
|
||||
place_on = "core:grass",
|
||||
decoration = {"core:mg_acacia_sapling"},
|
||||
sidelen = 40,
|
||||
fill_ratio = 0.0002,
|
||||
@ -1198,8 +1198,8 @@ minetest.register_decoration({
|
||||
|
||||
minetest.register_decoration({
|
||||
deco_type = "simple",
|
||||
place_on = "core:grass_wildland",
|
||||
decoration = {"core:grass_wild_1", "core:grass_wild_2", "core:grass_wild_3"},
|
||||
place_on = "core:grass",
|
||||
decoration = {"core:grass_1", "core:grass_2", "core:grass_3"},
|
||||
sidelen = 20,
|
||||
fill_ratio = 0.02,
|
||||
biomes = {"wildlands"},
|
||||
@ -1209,8 +1209,8 @@ minetest.register_decoration({
|
||||
|
||||
minetest.register_decoration({
|
||||
deco_type = "simple",
|
||||
place_on = "core:grass_wildland",
|
||||
decoration = {"core:grass_wild_1", "core:grass_wild_2", "core:grass_wild_3"},
|
||||
place_on = "core:grass",
|
||||
decoration = {"core:grass_1", "core:grass_2", "core:grass_3"},
|
||||
sidelen = 20,
|
||||
fill_ratio = 0.3,
|
||||
biomes = {"jungle"},
|
||||
@ -1220,7 +1220,7 @@ minetest.register_decoration({
|
||||
|
||||
minetest.register_decoration({
|
||||
deco_type = "simple",
|
||||
place_on = "core:grass_wildland",
|
||||
place_on = "core:grass",
|
||||
decoration = {"core:bamboo"},
|
||||
sidelen = 20,
|
||||
fill_ratio = 0.02,
|
||||
@ -1231,7 +1231,7 @@ minetest.register_decoration({
|
||||
|
||||
minetest.register_decoration({
|
||||
deco_type = "simple",
|
||||
place_on = "core:grass_wildland",
|
||||
place_on = "core:grass",
|
||||
decoration = {"core:mg_wimba_sapling"},
|
||||
sidelen = 16,
|
||||
fill_ratio = 0.08,
|
||||
|
@ -147,8 +147,6 @@ minetest.register_on_joinplayer(function(player)
|
||||
default.player_set_model(player, "character.x")
|
||||
player:set_local_animation({x=0, y=79}, {x=168, y=187}, {x=189, y=198}, {x=200, y=219}, 30)
|
||||
-- anim: stand, sit, lay, walk, mine, walk and mine
|
||||
player:hud_set_hotbar_image("hud_hotbar.png")
|
||||
player:hud_set_hotbar_selected_image("hud_hotbar_selected.png")
|
||||
player:set_properties({
|
||||
visual_size = {x=1, y=1},
|
||||
collisionbox = {-0.3, 0.0, -0.3, 0.3, 1.77, 0.3},
|
||||
|
Before Width: | Height: | Size: 293 B After Width: | Height: | Size: 530 B |
Before Width: | Height: | Size: 381 B After Width: | Height: | Size: 802 B |
Before Width: | Height: | Size: 388 B After Width: | Height: | Size: 470 B |
Before Width: | Height: | Size: 369 B After Width: | Height: | Size: 911 B |
Before Width: | Height: | Size: 527 B After Width: | Height: | Size: 762 B |
Before Width: | Height: | Size: 263 B After Width: | Height: | Size: 384 B |
Before Width: | Height: | Size: 658 B After Width: | Height: | Size: 1.9 KiB |
Before Width: | Height: | Size: 376 B After Width: | Height: | Size: 532 B |
BIN
mods/core/textures/core_cherry_leaves_floor.png
Normal file
After Width: | Height: | Size: 562 B |
Before Width: | Height: | Size: 362 B After Width: | Height: | Size: 770 B |
Before Width: | Height: | Size: 574 B After Width: | Height: | Size: 785 B |
Before Width: | Height: | Size: 186 B After Width: | Height: | Size: 367 B |
Before Width: | Height: | Size: 469 B |
Before Width: | Height: | Size: 544 B |
Before Width: | Height: | Size: 360 B |
Before Width: | Height: | Size: 327 B After Width: | Height: | Size: 620 B |
Before Width: | Height: | Size: 172 B After Width: | Height: | Size: 386 B |
Before Width: | Height: | Size: 697 B After Width: | Height: | Size: 910 B |
Before Width: | Height: | Size: 904 B After Width: | Height: | Size: 921 B |
Before Width: | Height: | Size: 502 B After Width: | Height: | Size: 625 B |
Before Width: | Height: | Size: 404 B After Width: | Height: | Size: 885 B |
Before Width: | Height: | Size: 322 B After Width: | Height: | Size: 520 B |
Before Width: | Height: | Size: 481 B After Width: | Height: | Size: 590 B |
Before Width: | Height: | Size: 342 B After Width: | Height: | Size: 520 B |
Before Width: | Height: | Size: 497 B After Width: | Height: | Size: 590 B |
Before Width: | Height: | Size: 256 B After Width: | Height: | Size: 477 B |
Before Width: | Height: | Size: 422 B After Width: | Height: | Size: 947 B |
Before Width: | Height: | Size: 239 B After Width: | Height: | Size: 377 B |
Before Width: | Height: | Size: 242 B After Width: | Height: | Size: 532 B |
Before Width: | Height: | Size: 195 B After Width: | Height: | Size: 336 B |
Before Width: | Height: | Size: 413 B After Width: | Height: | Size: 464 B |
Before Width: | Height: | Size: 389 B After Width: | Height: | Size: 582 B |
Before Width: | Height: | Size: 482 B After Width: | Height: | Size: 774 B |
Before Width: | Height: | Size: 300 B After Width: | Height: | Size: 400 B |
Before Width: | Height: | Size: 402 B After Width: | Height: | Size: 661 B |
Before Width: | Height: | Size: 681 B After Width: | Height: | Size: 884 B |
Before Width: | Height: | Size: 686 B After Width: | Height: | Size: 873 B |
Before Width: | Height: | Size: 552 B After Width: | Height: | Size: 809 B |
Before Width: | Height: | Size: 624 B After Width: | Height: | Size: 811 B |
Before Width: | Height: | Size: 682 B After Width: | Height: | Size: 854 B |
Before Width: | Height: | Size: 285 B After Width: | Height: | Size: 394 B |
Before Width: | Height: | Size: 292 B After Width: | Height: | Size: 499 B |
Before Width: | Height: | Size: 437 B After Width: | Height: | Size: 770 B |
Before Width: | Height: | Size: 308 B After Width: | Height: | Size: 520 B |
Before Width: | Height: | Size: 337 B After Width: | Height: | Size: 409 B |
Before Width: | Height: | Size: 305 B After Width: | Height: | Size: 384 B |
Before Width: | Height: | Size: 309 B After Width: | Height: | Size: 543 B |
Before Width: | Height: | Size: 508 B After Width: | Height: | Size: 914 B |
Before Width: | Height: | Size: 285 B After Width: | Height: | Size: 914 B |
Before Width: | Height: | Size: 297 B After Width: | Height: | Size: 434 B |
Before Width: | Height: | Size: 351 B After Width: | Height: | Size: 649 B |
Before Width: | Height: | Size: 167 B After Width: | Height: | Size: 263 B |
Before Width: | Height: | Size: 370 B After Width: | Height: | Size: 749 B |
Before Width: | Height: | Size: 484 B After Width: | Height: | Size: 760 B |
Before Width: | Height: | Size: 379 B After Width: | Height: | Size: 729 B |
Before Width: | Height: | Size: 467 B After Width: | Height: | Size: 556 B |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 472 B After Width: | Height: | Size: 571 B |
Before Width: | Height: | Size: 246 B After Width: | Height: | Size: 541 B |
Before Width: | Height: | Size: 438 B After Width: | Height: | Size: 795 B |
Before Width: | Height: | Size: 222 B After Width: | Height: | Size: 389 B |
Before Width: | Height: | Size: 299 B After Width: | Height: | Size: 345 B |
Before Width: | Height: | Size: 267 B After Width: | Height: | Size: 344 B |
Before Width: | Height: | Size: 386 B After Width: | Height: | Size: 372 B |
Before Width: | Height: | Size: 248 B After Width: | Height: | Size: 299 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 404 B |
Before Width: | Height: | Size: 703 B After Width: | Height: | Size: 650 B |
Before Width: | Height: | Size: 284 B |
@ -167,9 +167,12 @@ function intro.spawn_title(player)
|
||||
end
|
||||
|
||||
function intro.reset_hud(player)
|
||||
|
||||
--intro.hud_bg(player)
|
||||
--hud.custom_hud(player)
|
||||
|
||||
player:hud_set_hotbar_image("hud_hotbar.png")
|
||||
player:hud_set_hotbar_selected_image("hud_hotbar_selected.png")
|
||||
|
||||
hb.custom_hud(player)
|
||||
player:hud_set_flags({crosshair = true, hotbar = true, healthbar = false, wielditem = true, breathbar = false})
|
||||
player:set_attribute("core_display_hud", "true")
|
||||
|
@ -1 +0,0 @@
|
||||
quickslots
|
@ -98,7 +98,6 @@ inventory_plus.get_formspec = function(player, page)
|
||||
|
||||
formspec = formspec
|
||||
.. "button[0,0;2.15,1;cguide;Crafting Guide]"
|
||||
.. "button[0,1;2.15,1;quickslots;QuickSlots]"
|
||||
.. "list[current_player;craftpreview;7,1;1,1;]"
|
||||
.. "list[current_player;craft;3,0;3,3;]"
|
||||
.. "listring[current_name;craft]"
|
||||
@ -110,33 +109,6 @@ inventory_plus.get_formspec = function(player, page)
|
||||
--.. "image[1.1,2.1;0.8,0.8;trash_icon.png]"
|
||||
end
|
||||
|
||||
if page == "quickslots" then
|
||||
|
||||
formspec = formspec ..
|
||||
"button[0,0;3,1;main;Return to Inventory]" ..
|
||||
"button[0,1;3,1;main;Save Slot Modes]" ..
|
||||
"label[0,2;Punch = item acts as if punched]"..
|
||||
"label[0,2.3;Use = item acts as if used]" ..
|
||||
"label[0,2.6;Place = item acts as if placed]" ..
|
||||
"label[0,2.9;Note, Place will be used automatically for blocks]" ..
|
||||
|
||||
"dropdown[3.95,0.15;1;slot1;Use,Punch,Place;1]" ..
|
||||
"dropdown[3.95,1.15;1;slot1;Use,Punch,Place;1]" ..
|
||||
"dropdown[3.95,2.15;1;slot1;Use,Punch,Place;1]" ..
|
||||
"dropdown[5.95,0.15;1;slot1;Use,Punch,Place;1]" ..
|
||||
"dropdown[5.95,1.15;1;slot1;Use,Punch,Place;1]" ..
|
||||
"dropdown[5.95,2.15;1;slot1;Use,Punch,Place;1]" ..
|
||||
|
||||
"list[current_player;quickslots;3,0;1,1;0]" ..
|
||||
"list[current_player;quickslots;3,1;1,1;1]" ..
|
||||
"list[current_player;quickslots;3,2;1,1;2]" ..
|
||||
"list[current_player;quickslots;7,0;1,1;3]" ..
|
||||
"list[current_player;quickslots;7,1;1,1;4]" ..
|
||||
"list[current_player;quickslots;7,2;1,1;5]" ..
|
||||
"background[-0.45,-0.5;8.9,10;core_inv_plus_guide.png]"
|
||||
|
||||
end
|
||||
|
||||
return formspec
|
||||
end
|
||||
|
||||
@ -168,15 +140,6 @@ minetest.register_on_player_receive_fields(function(player, formname, fields)
|
||||
|
||||
end
|
||||
|
||||
-- quickslots
|
||||
|
||||
if fields.quickslots then
|
||||
|
||||
inventory_plus.set_inventory_formspec(player,
|
||||
inventory_plus.get_formspec(player, "quickslots"))
|
||||
|
||||
end
|
||||
|
||||
-- craft
|
||||
if fields.main then
|
||||
|
||||
|
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 564 B |
Before Width: | Height: | Size: 141 B After Width: | Height: | Size: 778 B |
Before Width: | Height: | Size: 141 B After Width: | Height: | Size: 681 B |
Before Width: | Height: | Size: 140 B After Width: | Height: | Size: 622 B |