2020-06-30 19:15:15 -04:00

85 lines
2.1 KiB
Lua

-- LUALOCALS < ---------------------------------------------------------
local math, minetest, nodecore, tostring
= math, minetest, nodecore, tostring
local math_ceil, math_cos, math_pi
= math.ceil, math.cos, math.pi
-- LUALOCALS > ---------------------------------------------------------
local modname = minetest.get_current_modname()
minetest.register_node(modname .. ":sponge", {
description = "Sponge",
drawtype = "allfaces_optional",
tiles = {modname .. ".png"},
paramtype = "light",
groups = {
crumbly = 2,
flammable = 3,
fire_fuel = 3,
sponge = 1
},
air_pass = true,
sounds = nodecore.sounds("nc_terrain_swishy")
})
minetest.register_node(modname .. ":sponge_wet", {
description = "Wet Sponge",
drawtype = "allfaces_optional",
tiles = {modname .. ".png^(nc_terrain_water.png^[opacity:96)"},
paramtype = "light",
groups = {
crumbly = 2,
coolant = 1,
falling_node = 1,
moist = 1,
sponge = 1
},
sounds = nodecore.sounds("nc_terrain_swishy")
})
local base = (nodecore.tmod(modname .. ".png")
:resize(16, 16))
local liv1 = (nodecore.tmod(modname .. "_living.png")
:resize(16, 16)
:mask(modname .. "_mask1.png"))
local liv2 = (nodecore.tmod(modname .. "_living.png")
:resize(16, 16)
:mask(nodecore.tmod(modname .. "_mask1.png")
:invert("a")))
local water = (nodecore.tmod("nc_terrain_water.png")
:opacity(96))
local h = 32
local txr = nodecore.tmod:combine(16, h * 16)
for i = 0, h - 1 do
local a1 = math_ceil(math_cos(i * math_pi * 2 / h) * 63 + 192)
local a2 = math_ceil(-math_cos(i * math_pi * 2 / h) * 63 + 192)
txr = txr:layer(0, 16 * i, base
:add(liv1:opacity(a1))
:add(liv2:opacity(a2))
:add(water))
end
minetest.register_node(modname .. ":sponge_living", {
description = "Living Sponge",
drawtype = "allfaces_optional",
tiles = {
{
name = tostring(txr),
animation = {
["type"] = "vertical_frames",
aspect_w = 16,
aspect_h = 16,
length = 2
}
}
},
paramtype = "light",
groups = {
crumbly = 2,
coolant = 1,
moist = 1,
sponge = 1
},
sounds = nodecore.sounds("nc_terrain_swishy")
})