85 lines
2.1 KiB
Lua
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")
|
|
})
|