f37a918f0f
- Storeboxes are now scalable. - Standardize touch-hurt operation. - Touch-hurt damage on scaling. - Now possible to alter scaling time via scaling_time group (percent of original scaling time)
140 lines
3.4 KiB
Lua
140 lines
3.4 KiB
Lua
-- LUALOCALS < ---------------------------------------------------------
|
|
local minetest, nodecore
|
|
= minetest, nodecore
|
|
-- LUALOCALS > ---------------------------------------------------------
|
|
|
|
local modname = minetest.get_current_modname()
|
|
|
|
minetest.register_node(modname .. ":glass", {
|
|
description = "Clear Glass",
|
|
drawtype = "glasslike_framed_optional",
|
|
tiles = {
|
|
modname .. "_glass_glare.png^" .. modname .. "_glass_edges.png",
|
|
modname .. "_glass_glare.png"
|
|
},
|
|
groups = {
|
|
silica = 1,
|
|
silica_clear = 1,
|
|
cracky = 3
|
|
},
|
|
sunlight_propagates = true,
|
|
paramtype = "light",
|
|
sounds = nodecore.sounds("nc_optics_glassy")
|
|
})
|
|
|
|
minetest.register_node(modname .. ":glass_opaque", {
|
|
description = "Chromatic Glass",
|
|
tiles = {modname .. "_glass_frost.png"},
|
|
groups = {
|
|
silica = 1,
|
|
cracky = 3
|
|
},
|
|
paramtype = "light",
|
|
sounds = nodecore.sounds("nc_optics_glassy")
|
|
})
|
|
|
|
minetest.register_node(modname .. ":glass_crude", {
|
|
description = "Crude Glass",
|
|
drawtype = "glasslike_framed_optional",
|
|
tiles = {
|
|
modname .. "_glass_crude.png^" .. modname .. "_glass_edges.png",
|
|
modname .. "_glass_crude.png"
|
|
},
|
|
paramtype = "light",
|
|
groups = {
|
|
silica = 1,
|
|
falling_node = 1,
|
|
crumbly = 2
|
|
},
|
|
sounds = nodecore.sounds("nc_terrain_crunchy")
|
|
})
|
|
|
|
minetest.register_node(modname .. ":glass_float", {
|
|
description = "Float Glass",
|
|
drawtype = "glasslike_framed_optional",
|
|
tiles = {
|
|
modname .. "_glass_edges.png",
|
|
"[combine:16x16"
|
|
},
|
|
propagates_sunlight = true,
|
|
paramtype = "light",
|
|
groups = {
|
|
silica = 1,
|
|
silica_clear = 1,
|
|
cracky = 3
|
|
},
|
|
sounds = nodecore.sounds("nc_optics_glassy")
|
|
})
|
|
|
|
local function anim(name, len)
|
|
return {
|
|
name = name,
|
|
animation = {
|
|
["type"] = "vertical_frames",
|
|
aspect_w = 16,
|
|
aspect_h = 16,
|
|
length = len
|
|
}
|
|
}
|
|
end
|
|
|
|
local animglass = ""
|
|
for i = 0, 31 do
|
|
animglass = animglass .. ":0," .. (i * 16) .. "=nc_optics_glass_sparkle.png"
|
|
end
|
|
local molttxr = anim("[combine:16x512:0,0=nc_terrain_lava.png" .. animglass, 8)
|
|
local flowtxr = anim("[combine:16x512:0,0=nc_terrain_lava_flow.png" .. animglass, 8)
|
|
|
|
local moltdef = {
|
|
description = "Molten Glass",
|
|
drawtype = "liquid",
|
|
tiles = {molttxr},
|
|
special_tiles = {flowtxr, flowtxr},
|
|
paramtype = "light",
|
|
liquid_viscosity = 7,
|
|
liquid_renewable = false,
|
|
liquid_range = 2,
|
|
light_source = 4,
|
|
walkable = false,
|
|
diggable = false,
|
|
buildable_to = false,
|
|
drowning = 2,
|
|
damage_per_second = 3,
|
|
drop = "",
|
|
groups = {igniter = 1, silica = 1, stack_as_node = 1},
|
|
post_effect_color = {a = 191, r = 255, g = 64, b = 0},
|
|
liquid_alternative_flowing = modname .. ":glass_hot_flowing",
|
|
liquid_alternative_source = modname .. ":glass_hot_source",
|
|
sounds = nodecore.sounds("nc_terrain_bubbly")
|
|
}
|
|
|
|
minetest.register_node(modname .. ":glass_hot_source",
|
|
nodecore.underride({
|
|
liquidtype = "source"
|
|
}, moltdef))
|
|
minetest.register_node(modname .. ":glass_hot_flowing",
|
|
nodecore.underride({
|
|
liquidtype = "flowing",
|
|
drawtype = "flowingliquid",
|
|
paramtype2 = "flowingliquid"
|
|
}, moltdef))
|
|
|
|
nodecore.register_ambiance({
|
|
label = "Glass Source Ambiance",
|
|
nodenames = {modname .. ":glass_hot_source"},
|
|
neigbors = {"air"},
|
|
interval = 1,
|
|
chance = 10,
|
|
sound_name = "nc_terrain_bubbly",
|
|
sound_gain = 0.2
|
|
})
|
|
nodecore.register_ambiance({
|
|
label = "Glass Flow Ambiance",
|
|
nodenames = {modname .. ":glass_hot_flowing"},
|
|
neigbors = {"air"},
|
|
interval = 1,
|
|
chance = 10,
|
|
sound_name = "nc_terrain_bubbly",
|
|
sound_gain = 0.2
|
|
})
|