forked from Minetest/dripstone
Refactor dripstone block definition
parent
f6774858db
commit
6301616925
119
init.lua
119
init.lua
|
@ -26,6 +26,9 @@ end
|
||||||
-- Create a node box for any given dripstone size.
|
-- Create a node box for any given dripstone size.
|
||||||
-- Size 8 is a normal block size
|
-- Size 8 is a normal block size
|
||||||
local function nodebox_of_size(size)
|
local function nodebox_of_size(size)
|
||||||
|
if size >= 8 then
|
||||||
|
return nil
|
||||||
|
else
|
||||||
return {
|
return {
|
||||||
type = "fixed",
|
type = "fixed",
|
||||||
fixed = {
|
fixed = {
|
||||||
|
@ -33,6 +36,15 @@ local function nodebox_of_size(size)
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local function nodebox_type(size)
|
||||||
|
if size >= 8 then
|
||||||
|
return "normal"
|
||||||
|
else
|
||||||
|
return "nodebox"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Sounds
|
-- Sounds
|
||||||
local dripstone_sounds = nil
|
local dripstone_sounds = nil
|
||||||
|
@ -45,7 +57,7 @@ local speed_factor = 30
|
||||||
local seconds_per_growth = 10 * speed_factor
|
local seconds_per_growth = 10 * speed_factor
|
||||||
local seconds_per_water_trickle = 1 * speed_factor
|
local seconds_per_water_trickle = 1 * speed_factor
|
||||||
local seconds_per_lava_trickle = 6 * speed_factor
|
local seconds_per_lava_trickle = 6 * speed_factor
|
||||||
local samples_per_interval = 10
|
local samples_per_interval = 30
|
||||||
|
|
||||||
-- Namespaced node names
|
-- Namespaced node names
|
||||||
local dry_dripstone_block = "noordstar_dripstone:dripstone_block"
|
local dry_dripstone_block = "noordstar_dripstone:dripstone_block"
|
||||||
|
@ -194,67 +206,12 @@ local watered_dripstone_tiles =
|
||||||
, "noordstar_dripstone_watered_dripstone_side.png"
|
, "noordstar_dripstone_watered_dripstone_side.png"
|
||||||
}
|
}
|
||||||
|
|
||||||
-- BASE BLOCKS
|
|
||||||
-- These blocks are able to absorb water or lava from above them.
|
|
||||||
|
|
||||||
minetest.register_node(dry_dripstone_block,
|
|
||||||
{ description = "Dripstone block"
|
|
||||||
, _doc_items_longdesc = "Dripstone block that can suck up liquids above it and creates stalactites below it."
|
|
||||||
, tiles = dry_dripstone_tiles
|
|
||||||
, drawtype = "normal"
|
|
||||||
, groups = { pickaxey=2, material_stone=1 }
|
|
||||||
, is_ground_content = true
|
|
||||||
, drop = dry_dripstone_spike
|
|
||||||
, sounds = dripstone_sounds
|
|
||||||
, _mcl_hardness = 2
|
|
||||||
, _mcl_blast_resistance = 5
|
|
||||||
, _mcl_silk_touch_drop = true
|
|
||||||
}
|
|
||||||
)
|
|
||||||
minetest.register_node(hardened_dripstone_block,
|
|
||||||
{ description = "Hardened dripstone block"
|
|
||||||
, _doc_items_longdesc = "Dripstone block that is no longer able to absorb liquids above it."
|
|
||||||
, tiles = hardened_dripstone_tiles
|
|
||||||
, drawtype = "normal"
|
|
||||||
, groups = { pickaxey=2, material_stone=1 }
|
|
||||||
, is_ground_content = true
|
|
||||||
, drop = dry_dripstone_spike
|
|
||||||
, sounds = dripstone_sounds
|
|
||||||
, _mcl_hardness = 2
|
|
||||||
, _mcl_blast_resistance = 5
|
|
||||||
, _mcl_silk_touch_drop = true
|
|
||||||
}
|
|
||||||
)
|
|
||||||
minetest.register_node(molten_dripstone_block,
|
|
||||||
{ description = "Molten dripstone block"
|
|
||||||
, _doc_items_longdesc = "A dripstone block that has absorbed some lava, allowing it to form a stalactite."
|
|
||||||
, tiles = molten_dripstone_tiles
|
|
||||||
, drawtype = "normal"
|
|
||||||
, groups = { pickaxey=2, material_stone=1 }
|
|
||||||
, is_ground_content = true
|
|
||||||
, drop = dry_dripstone_spike
|
|
||||||
, sounds = dripstone_sounds
|
|
||||||
, _mcl_hardness = 2
|
|
||||||
, _mcl_blast_resistance = 5
|
|
||||||
, _mcl_silk_touch_drop = true
|
|
||||||
}
|
|
||||||
)
|
|
||||||
minetest.register_node(watered_dripstone_block,
|
|
||||||
{ description = "Watered dripstone block"
|
|
||||||
, _doc_items_longdesc = "A dripstone block that has absorbed some water, allowing it to form a stalactite."
|
|
||||||
, tiles = watered_dripstone_tiles
|
|
||||||
, drawtype = "normal"
|
|
||||||
, groups = { pickaxey=2, material_stone=1 }
|
|
||||||
, is_ground_content = true
|
|
||||||
, drop = dry_dripstone_spike
|
|
||||||
, sounds = dripstone_sounds
|
|
||||||
, _mcl_hardness = 2
|
|
||||||
, _mcl_blast_resistance = 5
|
|
||||||
, _mcl_silk_touch_drop = true
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
local function make_dripstone(name, desc, longdesc, tiles, drop, size)
|
local function make_dripstone(name, desc, longdesc, tiles, drop, size)
|
||||||
|
local sunlight_propagates = nil
|
||||||
|
if size < 8 then
|
||||||
|
sunlight_propagates = true
|
||||||
|
end
|
||||||
|
|
||||||
minetest.register_node(name,
|
minetest.register_node(name,
|
||||||
{ description = desc
|
{ description = desc
|
||||||
, _doc_items_longdesc = longdesc
|
, _doc_items_longdesc = longdesc
|
||||||
|
@ -279,9 +236,9 @@ local function make_dripstone(name, desc, longdesc, tiles, drop, size)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
, sounds = dripstone_sounds
|
, sounds = dripstone_sounds
|
||||||
, drawtype = "nodebox"
|
, drawtype = nodebox_type(size)
|
||||||
, paramtype = "light"
|
, paramtype = "light"
|
||||||
, sunlight_propagates = true
|
, sunlight_propagates = sunlight_propagates
|
||||||
, node_box = nodebox_of_size(size)
|
, node_box = nodebox_of_size(size)
|
||||||
, _mcl_hardness = 1.0 + size / 8
|
, _mcl_hardness = 1.0 + size / 8
|
||||||
, _mcl_blast_resistance = 1 + size / 2
|
, _mcl_blast_resistance = 1 + size / 2
|
||||||
|
@ -290,6 +247,42 @@ local function make_dripstone(name, desc, longdesc, tiles, drop, size)
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- BASE BLOCKS
|
||||||
|
-- These blocks are able to absorb water or lava from above them.
|
||||||
|
|
||||||
|
make_dripstone(
|
||||||
|
dry_dripstone_block,
|
||||||
|
"Dripstone block",
|
||||||
|
"Dripstone block that can suck up liquids above it and creates stalactites below it.",
|
||||||
|
dry_dripstone_tiles,
|
||||||
|
dry_dripstone_spike,
|
||||||
|
8
|
||||||
|
)
|
||||||
|
make_dripstone(
|
||||||
|
hardened_dripstone_block,
|
||||||
|
"Hardened dripstone block",
|
||||||
|
"Dripstone block that is no longer able to absorb liquids above it.",
|
||||||
|
hardened_dripstone_tiles,
|
||||||
|
dry_dripstone_spike,
|
||||||
|
8
|
||||||
|
)
|
||||||
|
make_dripstone(
|
||||||
|
molten_dripstone_block,
|
||||||
|
"Molten dripstone block",
|
||||||
|
"A dripstone block that has absorbed some lava, allowing it to form a stalactite.",
|
||||||
|
molten_dripstone_tiles,
|
||||||
|
dry_dripstone_spike,
|
||||||
|
8
|
||||||
|
)
|
||||||
|
make_dripstone(
|
||||||
|
watered_dripstone_block,
|
||||||
|
"Watered dripstone block",
|
||||||
|
"A dripstone block that has absorbed some water, allowing it to form a stalactite.",
|
||||||
|
watered_dripstone_tiles,
|
||||||
|
dry_dripstone_spike,
|
||||||
|
8
|
||||||
|
)
|
||||||
|
|
||||||
-- HUGE DRIPSTONE
|
-- HUGE DRIPSTONE
|
||||||
-- This is the largest form a non-block can get.
|
-- This is the largest form a non-block can get.
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue