forked from mtcontrib/minetest-mod-sea
Compare commits
5 Commits
nalc-1.0
...
b0fd455b7e
Author | SHA1 | Date | |
---|---|---|---|
b0fd455b7e | |||
e1ca03e6f3 | |||
b2fc8936bf | |||
5ec73557de | |||
ef1efe65d9 |
@ -1,3 +1,6 @@
|
||||
local sand_sounds = minetest.registered_nodes["default:sand"].sounds
|
||||
local dirt_sounds = minetest.registered_nodes["default:dirt"].sounds
|
||||
|
||||
-- NODES
|
||||
|
||||
minetest.register_node("clams:sandalgae", {
|
||||
@ -16,7 +19,7 @@ minetest.register_node("clams:sandalgae", {
|
||||
}
|
||||
}
|
||||
},
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
sounds = sand_sounds,
|
||||
})
|
||||
|
||||
minetest.register_node("clams:dirtalgae", {
|
||||
@ -35,25 +38,25 @@ minetest.register_node("clams:dirtalgae", {
|
||||
}
|
||||
}
|
||||
},
|
||||
sounds = default.node_sound_dirt_defaults,
|
||||
sounds = dirt_sounds,
|
||||
})
|
||||
|
||||
minetest.register_node("clams:sandalgaeused", {
|
||||
description = "Used sandalgae",
|
||||
tiles = {"default_sand.png^clams_algaeused.png"},
|
||||
inventory_image = {"default_sand.png^clams_algaeused.png"},
|
||||
inventory_image = "default_sand.png^clams_algaeused.png",
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3, falling_node=1, sand=1},
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
sounds = sand_sounds,
|
||||
})
|
||||
|
||||
minetest.register_node("clams:dirtalgaeused", {
|
||||
description = "Used dirtalgae",
|
||||
tiles = {"default_dirt.png^clams_algaeused.png"},
|
||||
inventory_image = {"default_dirt.png^clams_algaeused.png"},
|
||||
inventory_image = "default_dirt.png^clams_algaeused.png",
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3},
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
sounds = dirt_sounds,
|
||||
})
|
||||
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
default
|
||||
noairblocks
|
||||
nalc_lib
|
||||
unifieddyes
|
||||
colormachine?
|
@ -1,639 +1,174 @@
|
||||
-- NODES
|
||||
|
||||
-- Add magenta, aqua, skyblue seacorals
|
||||
for color, cname in pairs({magenta = "Magenta", aqua = "Aqua", skyblue = "Skyblue"}) do
|
||||
minetest.register_node(
|
||||
"seacoral:coral_"..color, {
|
||||
description = cname.." Coral",
|
||||
drawtype = "plantlike_rooted",
|
||||
waving = 1,
|
||||
paramtype = "light",
|
||||
tiles = {"default_coral_skeleton.png"},
|
||||
special_tiles = {{name = "seacoral_coral"..color..".png", tileable_vertical = true}},
|
||||
inventory_image = "seacoral_coral"..color..".png",
|
||||
groups = {snappy = 3, seacoral = 1},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
{-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},
|
||||
},
|
||||
},
|
||||
node_dig_prediction = "default:coral_skeleton",
|
||||
node_placement_prediction = "",
|
||||
sounds = default.node_sound_stone_defaults(
|
||||
{
|
||||
dig = {name = "default_dig_snappy", gain = 0.2},
|
||||
dug = {name = "default_grass_footstep", gain = 0.25},
|
||||
}),
|
||||
|
||||
minetest.register_node("seacoral:coralcyan", {
|
||||
description = "Cyan Coral",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"seacoral_coralcyan.png"},
|
||||
inventory_image = "seacoral_coralcyan.png",
|
||||
wield_image = "seacoral_coralcyan.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
drowning = 1,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3}
|
||||
},
|
||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||
groups = {snappy=3, seacoral=1, sea=1,basecolor_cyan=1},
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
if pointed_thing.type ~= "node" or not placer then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
local player_name = placer:get_player_name()
|
||||
local pos_under = pointed_thing.under
|
||||
local pos_above = pointed_thing.above
|
||||
|
||||
if minetest.get_node(pos_under).name ~= "default:coral_skeleton" or
|
||||
minetest.get_node(pos_above).name ~= "default:water_source" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
if minetest.is_protected(pos_under, player_name) or
|
||||
minetest.is_protected(pos_above, player_name) then
|
||||
minetest.chat_send_player(player_name, "Node is protected")
|
||||
minetest.record_protection_violation(pos_under, player_name)
|
||||
return itemstack
|
||||
end
|
||||
|
||||
minetest.set_node(pos_under, {name = "seacoral:coral"..color})
|
||||
if not (creative and creative.is_enabled_for(player_name)) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, {name = "default:coral_skeleton"})
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:coralmagenta", {
|
||||
description = "Magenta Coral",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"seacoral_coralmagenta.png"},
|
||||
inventory_image = "seacoral_coralmagenta.png",
|
||||
wield_image = "seacoral_coralmagenta.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
drowning = 1,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
|
||||
},
|
||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||
groups = {snappy=3, seacoral=1, sea=1,basecolor_magenta=1},
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
-- Replace Old seacorals with new defined ones
|
||||
minetest.register_alias("seacoral:coral"..color, "default:water_source")
|
||||
minetest.register_alias("seacoral:seacoralsand"..color, "seacoral:coral_"..color)
|
||||
minetest.register_alias("seacoral:seacoraldirt"..color, "seacoral:coral_"..color)
|
||||
end
|
||||
|
||||
minetest.register_node("seacoral:coralaqua", {
|
||||
description = "Aqua Coral",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"seacoral_coralaqua.png"},
|
||||
inventory_image = "seacoral_coralaqua.png",
|
||||
wield_image = "seacoral_coralaqua.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
drowning = 1,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3}
|
||||
},
|
||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||
groups = {snappy=3, seacoral=1, sea=1,excolor_aqua=1},
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
-- Replace cyan, redviolet, lime seacorals with default Minetest's ones
|
||||
minetest.register_alias("seacoral:coralcyan", "default:water_source")
|
||||
minetest.register_alias("seacoral:seacoralsandcyan", "default:coral_cyan")
|
||||
minetest.register_alias("seacoral:seacoraldirtcyan", "default:coral_cyan")
|
||||
nalc.add_group("default:coral_cyan", "seacoral", 1)
|
||||
|
||||
minetest.register_node("seacoral:corallime", {
|
||||
description = "Lime Coral",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"seacoral_corallime.png"},
|
||||
inventory_image = "seacoral_corallime.png",
|
||||
wield_image = "seacoral_corallime.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
drowning = 1,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
|
||||
},
|
||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||
groups = {snappy=3, seacoral=1, sea=1,excolor_lime=1},
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:coralskyblue", {
|
||||
description = "Skyblue Coral",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"seacoral_coralskyblue.png"},
|
||||
inventory_image = "seacoral_coralskyblue.png",
|
||||
wield_image = "seacoral_coralskyblue.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
drowning = 1,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
|
||||
},
|
||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||
groups = {snappy=3, seacoral=1, sea=1,excolor_skyblue=1},
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:coralredviolet", {
|
||||
description = "Redviolet Coral",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"seacoral_coralredviolet.png"},
|
||||
inventory_image = "seacoral_coralredviolet.png",
|
||||
wield_image = "seacoral_coralredviolet.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
drowning = 1,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
|
||||
},
|
||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||
groups = {snappy=3, seacoral=1, sea=1,excolor_redviolet=1},
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:seacoralsandcyan", {
|
||||
description = "Sea coral sand cyan",
|
||||
tiles = {"default_sand.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:sand',
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:seacoraldirtcyan", {
|
||||
description = "Sea coral dirt cyan",
|
||||
tiles = {"default_dirt.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:seacoralsandmagenta", {
|
||||
description = "Sea coral sand magenta",
|
||||
tiles = {"default_sand.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:sand',
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:seacoraldirtmagenta", {
|
||||
description = "Sea coral dirt magenta",
|
||||
tiles = {"default_dirt.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:seacoralsandaqua", {
|
||||
description = "Sea coral sand aqua",
|
||||
tiles = {"default_sand.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:sand',
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:seacoraldirtaqua", {
|
||||
description = "Sea coral dirt aqua",
|
||||
tiles = {"default_dirt.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:seacoralsandlime", {
|
||||
description = "Sea coral sand lime",
|
||||
tiles = {"default_sand.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:sand',
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:seacoraldirtlime", {
|
||||
description = "Sea coral dirt lime",
|
||||
tiles = {"default_dirt.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:seacoralsandskyblue", {
|
||||
description = "Sea coral sand skyblue",
|
||||
tiles = {"default_sand.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:sand',
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:seacoraldirtskyblue", {
|
||||
description = "Sea coral dirt skyblue",
|
||||
tiles = {"default_dirt.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:seacoralsandredviolet", {
|
||||
description = "Sea coral sand redviolet",
|
||||
tiles = {"default_sand.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:sand',
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
|
||||
minetest.register_node("seacoral:seacoraldirtredviolet", {
|
||||
description = "Sea coral dirt redviolet",
|
||||
tiles = {"default_dirt.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
minetest.register_alias("seacoral:coralredviolet", "default:water_source")
|
||||
minetest.register_alias("seacoral:seacoralsandredviolet", "default:coral_pink")
|
||||
minetest.register_alias("seacoral:seacoraldirtredviolet", "default:coral_pink")
|
||||
nalc.add_group("default:coral_pink", "seacoral", 1)
|
||||
|
||||
minetest.register_alias("seacoral:corallime", "default:water_source")
|
||||
minetest.register_alias("seacoral:seacoralsandlime", "default:coral_green")
|
||||
minetest.register_alias("seacoral:seacoraldirtlime", "default:coral_green")
|
||||
nalc.add_group("default:coral_green", "seacoral", 1)
|
||||
|
||||
-- CRAFTING
|
||||
|
||||
|
||||
if( minetest.get_modpath( "colormachine") == nil ) then
|
||||
register_seacoral_craft = function(output,recipe)
|
||||
minetest.register_craft({
|
||||
type = 'shapeless',
|
||||
output = output,
|
||||
recipe = recipe,
|
||||
})
|
||||
minetest.register_craft(
|
||||
{
|
||||
type = 'shapeless',
|
||||
output = output,
|
||||
recipe = recipe,
|
||||
})
|
||||
end
|
||||
|
||||
register_seacoral_craft('dye:cyan 4', {'seacoral:coralcyan'})
|
||||
register_seacoral_craft('dye:magenta 4', {'seacoral:coralmagenta'})
|
||||
register_seacoral_craft('dye:lime 4', {'seacoral:corallime'})
|
||||
register_seacoral_craft('dye:aqua 4', {'seacoral:coralaqua'})
|
||||
register_seacoral_craft('dye:skyblue 4', {'seacoral:coralskyblue'})
|
||||
register_seacoral_craft('dye:redviolet 4', {'seacoral:coralredviolet'})
|
||||
register_seacoral_craft('dye:cyan 4', {'default:coral_cyan'})
|
||||
register_seacoral_craft('dye:magenta 4', {'seacoral:coral_magenta'})
|
||||
register_seacoral_craft('dye:lime 4', {'default:coral_green'})
|
||||
register_seacoral_craft('dye:spring 4', {'seacoral:coral_aqua'})
|
||||
register_seacoral_craft('dye:azure 4', {'seacoral:coral_skyblue'})
|
||||
register_seacoral_craft('dye:pink 4', {'default:coral_pink'})
|
||||
end
|
||||
|
||||
-- SEACORAL SAND AND DIRT GENERATION
|
||||
|
||||
-- Coral reef
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seacoral:seacoralsandcyan",
|
||||
wherein = "default:sand",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -4,
|
||||
y_min = -8,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seacoral:seacoraldirtcyan",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -4,
|
||||
y_min = -8,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seacoral:seacoralsandmagenta",
|
||||
wherein = "default:sand",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -4,
|
||||
y_min = -8,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seacoral:seacoraldirtmagenta",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -4,
|
||||
y_min = -8,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seacoral:seacoralsandaqua",
|
||||
wherein = "default:sand",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -4,
|
||||
y_min = -8,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seacoral:seacoraldirtaqua",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -4,
|
||||
y_min = -8,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seacoral:seacoralsandlime",
|
||||
wherein = "default:sand",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -4,
|
||||
y_min = -8,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seacoral:seacoraldirtlime",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -4,
|
||||
y_min = -8,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seacoral:seacoralsandskyblue",
|
||||
wherein = "default:sand",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -4,
|
||||
y_min = -8,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seacoral:seacoraldirtskyblue",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -4,
|
||||
y_min = -8,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seacoral:seacoralsandredviolet",
|
||||
wherein = "default:sand",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -4,
|
||||
y_min = -8,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seacoral:seacoraldirtredviolet",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -4,
|
||||
y_min = -8,
|
||||
})
|
||||
|
||||
local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, y_min, y_max)
|
||||
if maxp.y < y_min or minp.y > y_max then
|
||||
return
|
||||
end
|
||||
local y_min = math.max(minp.y, y_min)
|
||||
local y_max = math.min(maxp.y, y_max)
|
||||
if chunk_size >= y_max - y_min + 1 then
|
||||
return
|
||||
end
|
||||
local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1)
|
||||
local pr = PseudoRandom(seed)
|
||||
local num_chunks = math.floor(chunks_per_volume * volume)
|
||||
local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk)
|
||||
for i=1,num_chunks do
|
||||
local y0 = pr:next(y_min, y_max-chunk_size+1)
|
||||
if y0 >= y_min and y0 <= y_max then
|
||||
local x0 = pr:next(minp.x, maxp.x-chunk_size+1)
|
||||
local z0 = pr:next(minp.z, maxp.z-chunk_size+1)
|
||||
local p0 = {x=x0, y=y0, z=z0}
|
||||
for x1=0,chunk_size-1 do
|
||||
for y1=0,chunk_size-1 do
|
||||
for z1=0,chunk_size-1 do
|
||||
if pr:next(1,inverse_chance) == 1 then
|
||||
local x2 = x0+x1
|
||||
local y2 = y0+y1
|
||||
local z2 = z0+z1
|
||||
local p2 = {x=x2, y=y2, z=z2}
|
||||
if minetest.get_node(p2).name == wherein then
|
||||
minetest.set_node(p2, {name=name})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_decoration(
|
||||
{
|
||||
name = "seacoral:corals",
|
||||
deco_type = "simple",
|
||||
place_on = {"default:sand"},
|
||||
place_offset_y = -1,
|
||||
sidelen = 4,
|
||||
noise_params = {
|
||||
offset = -4,
|
||||
scale = 4,
|
||||
spread = {x = 50, y = 50, z = 50},
|
||||
seed = 7014,
|
||||
octaves = 3,
|
||||
persist = 0.7,
|
||||
},
|
||||
biomes = {
|
||||
"desert_ocean",
|
||||
"savanna_ocean",
|
||||
"rainforest_ocean",
|
||||
},
|
||||
y_max = -2,
|
||||
y_min = -8,
|
||||
flags = "force_placement",
|
||||
decoration = {
|
||||
"seacoral:coral_magenta", "default:coral_orange",
|
||||
"seacoral:coral_aqua", "default:coral_brown",
|
||||
"seacoral:coral_skyblue", "default:coral_skeleton",
|
||||
"default:coral_green", "default:coral_pink",
|
||||
"default:coral_cyan"
|
||||
},
|
||||
})
|
||||
|
||||
-- ABM'S
|
||||
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seacoral:seacoraldirtcyan"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seacoral:coralcyan"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seacoral:seacoralsandcyan"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seacoral:coralcyan"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seacoral:seacoraldirtmagenta"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seacoral:coralmagenta"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seacoral:seacoralsandmagenta"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seacoral:coralmagenta"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seacoral:seacoraldirtaqua"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seacoral:coralaqua"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seacoral:seacoralsandaqua"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seacoral:coralaqua"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seacoral:seacoraldirtlime"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seacoral:corallime"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seacoral:seacoralsandlime"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seacoral:corallime"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seacoral:seacoraldirtskyblue"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seacoral:coralskyblue"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seacoral:seacoralsandskyblue"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seacoral:coralskyblue"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seacoral:seacoraldirtredviolet"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seacoral:coralredviolet"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seacoral:seacoralsandredviolet"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seacoral:coralredviolet"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"group:seacoral"},
|
||||
interval = 3,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local yyp = {x = pos.x, y = pos.y + 2, z = pos.z}
|
||||
if ((minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") and
|
||||
(minetest.get_node(yyp).name == "default:water_source" or
|
||||
minetest.get_node(yyp).name == "noairblocks:water_sourcex")) then
|
||||
local objs = minetest.get_objects_inside_radius(pos, 2)
|
||||
for k, obj in pairs(objs) do
|
||||
obj:set_hp(obj:get_hp()+ 1)
|
||||
minetest.register_abm(
|
||||
{
|
||||
nodenames = {"group:seacoral"},
|
||||
interval = 3,
|
||||
chance = 1,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local yyp = {x = pos.x, y = pos.y + 2, z = pos.z}
|
||||
if ((minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") and
|
||||
(minetest.get_node(yyp).name == "default:water_source" or
|
||||
minetest.get_node(yyp).name == "noairblocks:water_sourcex")) then
|
||||
local objs = minetest.get_objects_inside_radius(pos, 2)
|
||||
for k, obj in pairs(objs) do
|
||||
obj:set_hp(obj:get_hp()+ 1)
|
||||
end
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
-- OPTIONAL DEPENDENCY
|
||||
|
||||
|
||||
if( minetest.get_modpath( "colormachine") ~= nil ) then
|
||||
colormachine.basic_dye_sources = { "flowers:rose", "flowers:tulip", "flowers:dandelion_yellow", "seacoral:corallime", "default:cactus", "seacoral:coralaqua", "seacoral:coralcyan", "seacoral:coralskyblue", "flowers:geranium", "flowers:viola", "seacoral:coralmagenta", "seacoral:coralredviolet", "default:stone", "", "", "", "default:coal_lump" };
|
||||
colormachine.basic_dye_sources = { "flowers:rose", "flowers:tulip", "flowers:dandelion_yellow", "default:coral_green", "default:cactus", "seacoral:coral_aqua", "default::coral_cyan", "seacoral:coral_skyblue", "flowers:geranium", "flowers:viola", "seacoral:coral_magenta", "default:coral_pink", "default:stone", "", "", "", "default:coal_lump" };
|
||||
else
|
||||
return
|
||||
end
|
||||
@ -645,8 +180,8 @@ end
|
||||
minetest.register_alias("seadye:cyan","dye:cyan")
|
||||
minetest.register_alias("seadye:magenta","dye:magenta")
|
||||
minetest.register_alias("seadye:lime","dye:lime")
|
||||
minetest.register_alias("seadye:aqua","dye:aqua")
|
||||
minetest.register_alias("seadye:skyblue","dye:skyblue")
|
||||
minetest.register_alias("seadye:redviolet","dye:redviolet")
|
||||
minetest.register_alias("seadye:aqua","dye:spring")
|
||||
minetest.register_alias("seadye:skyblue","dye:azure")
|
||||
minetest.register_alias("seadye:redviolet","dye:pink")
|
||||
|
||||
minetest.log("action", "[sea - seacoral] loaded.")
|
||||
|
@ -1,248 +1,107 @@
|
||||
-- NODES
|
||||
|
||||
local repl = {
|
||||
["off"] = "",
|
||||
["on"] = "off",
|
||||
}
|
||||
|
||||
minetest.register_node("seaglass:seaglass", {
|
||||
description = "Standard seaglass on",
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass.png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass.png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = 14,
|
||||
is_ground_content = true,
|
||||
drop = 'seaglass:seaglassoff',
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, shine=1, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
local colors = {"yellow", "red", "blue", "white", "black"}
|
||||
|
||||
minetest.register_node("seaglass:seaglass_yellow", {
|
||||
description = "Seaglass yellow on",
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass_yellow.png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass_yellow.png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = 14,
|
||||
is_ground_content = true,
|
||||
drop = 'seaglass:seaglassoff_yellow',
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, shine=1, yellowshine=1, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
local function register_glass(suffix, color, cgroups)
|
||||
-- suffix : bool (false:off | true:on)
|
||||
local desc = "Seaglass "
|
||||
|
||||
minetest.register_node("seaglass:seaglass_red", {
|
||||
description = "Seaglass red on",
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass_red.png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass_red.png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = 14,
|
||||
is_ground_content = true,
|
||||
drop = 'seaglass:seaglassoff_red',
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_red=1, shine=1, redshine=1, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
local col, c = "", ""
|
||||
if color and color ~= "" then
|
||||
col,c = color, "_"..color
|
||||
desc = desc..color.." "
|
||||
end
|
||||
|
||||
minetest.register_node("seaglass:seaglass_blue", {
|
||||
description = "Seaglass blue on",
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass_blue.png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass_blue.png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = 14,
|
||||
is_ground_content = true,
|
||||
drop = 'seaglass:seaglassoff_blue',
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, shine=1, blueshine=1, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
local l, light, ls = "", "on", 7
|
||||
if not suffix then
|
||||
l,light = "off","off"
|
||||
ls = 0
|
||||
end
|
||||
|
||||
minetest.register_node("seaglass:seaglass_white", {
|
||||
description = "Seaglass white on",
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass_white.png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass_white.png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = 14,
|
||||
is_ground_content = true,
|
||||
drop = 'seaglass:seaglassoff_white',
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, shine=1, whiteshine=1, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
desc = desc..light
|
||||
|
||||
minetest.register_node("seaglass:seaglass_black", {
|
||||
description = "Seaglass black on",
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass_black.png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass_black.png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = 14,
|
||||
is_ground_content = true,
|
||||
drop = 'seaglass:seaglassoff_black',
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, shine=1, blackshine=1, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
minetest.register_node(
|
||||
"seaglass:seaglass"..l..c,
|
||||
{
|
||||
description = desc,
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass"..c..".png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass"..c..".png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
light_source = ls,
|
||||
is_ground_content = true,
|
||||
drop = "seaglass:seaglassoff"..c,
|
||||
groups = cgroups, -- {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, shine=1, not_in_creative_inventory=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
node.name = "seaglass:seaglass"..repl[light]..c
|
||||
minetest.set_node(pos, node)
|
||||
end,
|
||||
})
|
||||
|
||||
minetest.register_node("seaglass:seaglassoff", {
|
||||
description = "Standard seaglass off",
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass.png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass.png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = true,
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, noshine=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
stairs.register_stair_and_slab("seaglass"..l..c, "seaglass:seaglass"..l..c,
|
||||
cgroups,
|
||||
{"seaglass_seaglass"..c..".png"},
|
||||
"Seaglass stair "..light.." "..col,
|
||||
"Seaglass slab "..light.." "..col,
|
||||
default.node_sound_glass_defaults())
|
||||
|
||||
minetest.register_node("seaglass:seaglassoff_yellow", {
|
||||
description = "Seaglass yellow off",
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass_yellow.png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass_yellow.png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = true,
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, noshine=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
for _,i in ipairs({"slab", "stair", "stair_outer", "stair_inner"}) do
|
||||
minetest.override_item(
|
||||
"stairs:"..i.."_seaglass"..l..c,
|
||||
{
|
||||
light_source = ls,
|
||||
drop = "stairs:"..i.."_seaglassoff"..c,
|
||||
on_rightclick = function(pos, node, clicker, itemstack, pointed_thing)
|
||||
node.name = "stairs:"..i.."_seaglass"..repl[light]..c
|
||||
minetest.set_node(pos, node)
|
||||
end
|
||||
})
|
||||
if suffix then
|
||||
minetest.register_alias("stairsshine:"..i.."_seaglass"..c, "stairs:"..i.."_seaglass"..c)
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node("seaglass:seaglassoff_red", {
|
||||
description = "Seaglass red off",
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass_red.png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass_red.png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = true,
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_red=1, noshine=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
end
|
||||
|
||||
minetest.register_node("seaglass:seaglassoff_blue", {
|
||||
description = "Seaglass blue off",
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass_blue.png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass_blue.png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = true,
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, noshine=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
for _,color in ipairs(colors) do
|
||||
local groups_off = {noshine=1, snappy=2, cracky=3, oddly_breakable_by_hand=3}
|
||||
local groups_on = {not_in_creative_inventory=1, shine=1, snappy=2, cracky=3, oddly_breakable_by_hand=3}
|
||||
|
||||
minetest.register_node("seaglass:seaglassoff_white", {
|
||||
description = "Seaglass white off",
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass_white.png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass_white.png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = true,
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, noshine=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
if color == "yellow" then
|
||||
groups_off.color_yellow = 1
|
||||
groups_on.color_yellow = 1
|
||||
groups_on.yellowshine = 1
|
||||
elseif color == "red" then
|
||||
groups_off.color_red = 1
|
||||
groups_on.color_red = 1
|
||||
groups_on.redshine = 1
|
||||
elseif color == "blue" then
|
||||
groups_off.color_blue = 1
|
||||
groups_on.color_blue = 1
|
||||
groups_on.blueshine = 1
|
||||
elseif color == "white" then
|
||||
groups_off.color_white = 1
|
||||
groups_on.color_white = 1
|
||||
groups_on.whiteshine = 1
|
||||
elseif color == "black" then
|
||||
groups_off.color_black = 1
|
||||
groups_on.color_black = 1
|
||||
groups_on.blackshine = 1
|
||||
end
|
||||
|
||||
minetest.register_node("seaglass:seaglassoff_black", {
|
||||
description = "Seaglass black off",
|
||||
drawtype = "glasslike",
|
||||
tiles = {"seaglass_seaglass_black.png"},
|
||||
inventory_image = minetest.inventorycube("seaglass_seaglass_black.png"),
|
||||
paramtype = "light",
|
||||
sunlight_propagates = true,
|
||||
is_ground_content = true,
|
||||
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, noshine=1},
|
||||
sounds = default.node_sound_glass_defaults(),
|
||||
})
|
||||
register_glass(false, color, groups_off)
|
||||
register_glass(true, color, groups_on)
|
||||
end
|
||||
|
||||
|
||||
-- STAIRS
|
||||
|
||||
stairsshine.register_stair_and_slab("seaglass", "seaglass:seaglass",
|
||||
{snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, shine=1, not_in_creative_inventory=1},
|
||||
{"seaglass_seaglass.png"},
|
||||
"Seaglass stair on",
|
||||
"Seaglass slab on",
|
||||
default.node_sound_glass_defaults())
|
||||
|
||||
stairsshine.register_stair_and_slab("seaglass_yellow", "seaglass:seaglass_yellow",
|
||||
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, shine=1, yellowshine=1, not_in_creative_inventory=1},
|
||||
{"seaglass_seaglass_yellow.png"},
|
||||
"seaglass stair on yellow",
|
||||
"seaglass slab on yellow",
|
||||
default.node_sound_glass_defaults())
|
||||
|
||||
stairsshine.register_stair_and_slab("seaglass_red", "seaglass:seaglass_red",
|
||||
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_red=1, shine=1, redshine=1, not_in_creative_inventory=1},
|
||||
{"seaglass_seaglass_red.png"},
|
||||
"Seaglass stair on red",
|
||||
"Seaglass slab on red",
|
||||
default.node_sound_glass_defaults())
|
||||
|
||||
stairsshine.register_stair_and_slab("seaglass_blue", "seaglass:seaglass_blue",
|
||||
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, shine=1, blueshine=1, not_in_creative_inventory=1},
|
||||
{"seaglass_seaglass_blue.png"},
|
||||
"Seaglass stair on blue",
|
||||
"Seaglass slab on blue",
|
||||
default.node_sound_glass_defaults())
|
||||
|
||||
stairsshine.register_stair_and_slab("seaglass_white", "seaglass:seaglass_white",
|
||||
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, shine=1, whiteshine=1, not_in_creative_inventory=1},
|
||||
{"seaglass_seaglass_white.png"},
|
||||
"Seaglass stair on white",
|
||||
"Seaglass slab on white",
|
||||
default.node_sound_glass_defaults())
|
||||
|
||||
stairsshine.register_stair_and_slab("seaglass_black", "seaglass:seaglass_black",
|
||||
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, shine=1, blackshine=1, not_in_creative_inventory=1},
|
||||
{"seaglass_seaglass_black.png"},
|
||||
"Seaglass stair on black ",
|
||||
"Seaglass slab on black",
|
||||
default.node_sound_glass_defaults())
|
||||
|
||||
stairs.register_stair_and_slab("seaglassoff", "seaglass:seaglassoff",
|
||||
{snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, noshine=1},
|
||||
{"seaglass_seaglass.png"},
|
||||
"Seaglass stair off",
|
||||
"Seaglass slab off",
|
||||
default.node_sound_glass_defaults())
|
||||
|
||||
stairs.register_stair_and_slab("seaglassoff_yellow", "seaglass:seaglassoff_yellow",
|
||||
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, noshine=1},
|
||||
{"seaglass_seaglass_yellow.png"},
|
||||
"seaglass stair off yellow",
|
||||
"seaglass slab off yellow",
|
||||
default.node_sound_glass_defaults())
|
||||
|
||||
stairs.register_stair_and_slab("seaglassoff_red", "seaglass:seaglassoff_red",
|
||||
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_red=1, noshine=1},
|
||||
{"seaglass_seaglass_red.png"},
|
||||
"Seaglass stair off red",
|
||||
"Seaglass slab off red",
|
||||
default.node_sound_glass_defaults())
|
||||
|
||||
stairs.register_stair_and_slab("seaglassoff_blue", "seaglass:seaglassoff_blue",
|
||||
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, noshine=1},
|
||||
{"seaglass_seaglass_blue.png"},
|
||||
"Seaglass stair off blue",
|
||||
"Seaglass slab off blue",
|
||||
default.node_sound_glass_defaults())
|
||||
|
||||
stairs.register_stair_and_slab("seaglassoff_white", "seaglass:seaglassoff_white",
|
||||
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, noshine=1},
|
||||
{"seaglass_seaglass_white.png"},
|
||||
"Seaglass stair off white",
|
||||
"Seaglass slab off white",
|
||||
default.node_sound_glass_defaults())
|
||||
|
||||
stairs.register_stair_and_slab("seaglassoff_black", "seaglass:seaglassoff_black",
|
||||
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, noshine=1},
|
||||
{"seaglass_seaglass_black.png"},
|
||||
"Seaglass stair off black ",
|
||||
"Seaglass slab off black",
|
||||
default.node_sound_glass_defaults())
|
||||
register_glass(false, nil, {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, noshine=1})
|
||||
register_glass(true, nil, {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, shine=1, not_in_creative_inventory=1})
|
||||
|
||||
|
||||
-- CRAFTING
|
||||
@ -290,444 +149,61 @@ register_seaglass_craft("seaglass:seaglass_blue", {'seaglass:seaglassoff_blue'})
|
||||
register_seaglass_craft("seaglass:seaglass_white", {'seaglass:seaglassoff_white'})
|
||||
register_seaglass_craft("seaglass:seaglass_black", {'seaglass:seaglassoff_black'})
|
||||
|
||||
register_seaglass_craft("stairsshine:stair_seaglass", {'stairs:stair_seaglassoff'})
|
||||
register_seaglass_craft("stairsshine:stair_seaglass_yellow", {'stairs:stair_seaglassoff_yellow'})
|
||||
register_seaglass_craft("stairsshine:stair_seaglass_red", {'stairs:stair_seaglassoff_red'})
|
||||
register_seaglass_craft("stairsshine:stair_seaglass_blue", {'stairs:stair_seaglassoff_blue'})
|
||||
register_seaglass_craft("stairsshine:stair_seaglass_white", {'stairs:stair_seaglassoff_white'})
|
||||
register_seaglass_craft("stairsshine:stair_seaglass_black", {'stairs:stair_seaglassoff_black'})
|
||||
register_seaglass_craft("stairs:stair_seaglass", {'stairs:stair_seaglassoff'})
|
||||
register_seaglass_craft("stairs:stair_seaglass_yellow", {'stairs:stair_seaglassoff_yellow'})
|
||||
register_seaglass_craft("stairs:stair_seaglass_red", {'stairs:stair_seaglassoff_red'})
|
||||
register_seaglass_craft("stairs:stair_seaglass_blue", {'stairs:stair_seaglassoff_blue'})
|
||||
register_seaglass_craft("stairs:stair_seaglass_white", {'stairs:stair_seaglassoff_white'})
|
||||
register_seaglass_craft("stairs:stair_seaglass_black", {'stairs:stair_seaglassoff_black'})
|
||||
|
||||
register_seaglass_craft("stairs:stair_seaglassoff", {'stairsshine:stair_seaglass'})
|
||||
register_seaglass_craft("stairs:stair_seaglassoff_yellow", {'stairsshine:stair_seaglass_yellow'})
|
||||
register_seaglass_craft("stairs:stair_seaglassoff_red", {'stairsshine:stair_seaglass_red'})
|
||||
register_seaglass_craft("stairs:stair_seaglassoff_blue", {'stairsshine:stair_seaglass_blue'})
|
||||
register_seaglass_craft("stairs:stair_seaglassoff_white", {'stairsshine:stair_seaglass_white'})
|
||||
register_seaglass_craft("stairs:stair_seaglassoff_black", {'stairsshine:stair_seaglass_black'})
|
||||
register_seaglass_craft("stairs:stair_seaglassoff", {'stairs:stair_seaglass'})
|
||||
register_seaglass_craft("stairs:stair_seaglassoff_yellow", {'stairs:stair_seaglass_yellow'})
|
||||
register_seaglass_craft("stairs:stair_seaglassoff_red", {'stairs:stair_seaglass_red'})
|
||||
register_seaglass_craft("stairs:stair_seaglassoff_blue", {'stairs:stair_seaglass_blue'})
|
||||
register_seaglass_craft("stairs:stair_seaglassoff_white", {'stairs:stair_seaglass_white'})
|
||||
register_seaglass_craft("stairs:stair_seaglassoff_black", {'stairs:stair_seaglass_black'})
|
||||
|
||||
register_seaglass_craft("stairsshine:slab_seaglass", {'stairs:slab_seaglassoff'})
|
||||
register_seaglass_craft("stairsshine:slab_seaglass_yellow", {'stairs:slab_seaglassoff_yellow'})
|
||||
register_seaglass_craft("stairsshine:slab_seaglass_red", {'stairs:slab_seaglassoff_red'})
|
||||
register_seaglass_craft("stairsshine:slab_seaglass_blue", {'stairs:slab_seaglassoff_blue'})
|
||||
register_seaglass_craft("stairsshine:slab_seaglass_white", {'stairs:slab_seaglassoff_white'})
|
||||
register_seaglass_craft("stairsshine:slab_seaglass_black", {'stairs:slab_seaglassoff_black'})
|
||||
register_seaglass_craft("stairs:stair_outer_seaglass", {'stairs:stair_outer_seaglassoff'})
|
||||
register_seaglass_craft("stairs:stair_outer_seaglass_yellow", {'stairs:stair_outer_seaglassoff_yellow'})
|
||||
register_seaglass_craft("stairs:stair_outer_seaglass_red", {'stairs:stair_outer_seaglassoff_red'})
|
||||
register_seaglass_craft("stairs:stair_outer_seaglass_blue", {'stairs:stair_outer_seaglassoff_blue'})
|
||||
register_seaglass_craft("stairs:stair_outer_seaglass_white", {'stairs:stair_outer_seaglassoff_white'})
|
||||
register_seaglass_craft("stairs:stair_outer_seaglass_black", {'stairs:stair_outer_seaglassoff_black'})
|
||||
|
||||
register_seaglass_craft("stairs:slab_seaglassoff", {'stairsshine:slab_seaglass'})
|
||||
register_seaglass_craft("stairs:slab_seaglassoff_yellow", {'stairsshine:slab_seaglass_yellow'})
|
||||
register_seaglass_craft("stairs:slab_seaglassoff_red", {'stairsshine:slab_seaglass_red'})
|
||||
register_seaglass_craft("stairs:slab_seaglassoff_blue", {'stairsshine:slab_seaglass_blue'})
|
||||
register_seaglass_craft("stairs:slab_seaglassoff_white", {'stairsshine:slab_seaglass_white'})
|
||||
register_seaglass_craft("stairs:slab_seaglassoff_black", {'stairsshine:slab_seaglass_black'})
|
||||
register_seaglass_craft("stairs:stair_outer_seaglassoff", {'stairs:stair_outer_seaglass'})
|
||||
register_seaglass_craft("stairs:stair_outer_seaglassoff_yellow", {'stairs:stair_outer_seaglass_yellow'})
|
||||
register_seaglass_craft("stairs:stair_outer_seaglassoff_red", {'stairs:stair_outer_seaglass_red'})
|
||||
register_seaglass_craft("stairs:stair_outer_seaglassoff_blue", {'stairs:stair_outer_seaglass_blue'})
|
||||
register_seaglass_craft("stairs:stair_outer_seaglassoff_white", {'stairs:stair_outer_seaglass_white'})
|
||||
register_seaglass_craft("stairs:stair_outer_seaglassoff_black", {'stairs:stair_outer_seaglass_black'})
|
||||
|
||||
register_seaglass_craft("stairs:stair_inner_seaglass", {'stairs:stair_inner_seaglassoff'})
|
||||
register_seaglass_craft("stairs:stair_inner_seaglass_yellow", {'stairs:stair_inner_seaglassoff_yellow'})
|
||||
register_seaglass_craft("stairs:stair_inner_seaglass_red", {'stairs:stair_inner_seaglassoff_red'})
|
||||
register_seaglass_craft("stairs:stair_inner_seaglass_blue", {'stairs:stair_inner_seaglassoff_blue'})
|
||||
register_seaglass_craft("stairs:stair_inner_seaglass_white", {'stairs:stair_inner_seaglassoff_white'})
|
||||
register_seaglass_craft("stairs:stair_inner_seaglass_black", {'stairs:stair_inner_seaglassoff_black'})
|
||||
|
||||
-- FUNCTIONS
|
||||
register_seaglass_craft("stairs:stair_inner_seaglassoff", {'stairs:stair_inner_seaglass'})
|
||||
register_seaglass_craft("stairs:stair_inner_seaglassoff_yellow", {'stairs:stair_inner_seaglass_yellow'})
|
||||
register_seaglass_craft("stairs:stair_inner_seaglassoff_red", {'stairs:stair_inner_seaglass_red'})
|
||||
register_seaglass_craft("stairs:stair_inner_seaglassoff_blue", {'stairs:stair_inner_seaglass_blue'})
|
||||
register_seaglass_craft("stairs:stair_inner_seaglassoff_white", {'stairs:stair_inner_seaglass_white'})
|
||||
register_seaglass_craft("stairs:stair_inner_seaglassoff_black", {'stairs:stair_inner_seaglass_black'})
|
||||
|
||||
register_seaglass_craft("stairs:slab_seaglass", {'stairs:slab_seaglassoff'})
|
||||
register_seaglass_craft("stairs:slab_seaglass_yellow", {'stairs:slab_seaglassoff_yellow'})
|
||||
register_seaglass_craft("stairs:slab_seaglass_red", {'stairs:slab_seaglassoff_red'})
|
||||
register_seaglass_craft("stairs:slab_seaglass_blue", {'stairs:slab_seaglassoff_blue'})
|
||||
register_seaglass_craft("stairs:slab_seaglass_white", {'stairs:slab_seaglassoff_white'})
|
||||
register_seaglass_craft("stairs:slab_seaglass_black", {'stairs:slab_seaglassoff_black'})
|
||||
|
||||
local on_lamp_puncher = function (pos, node, puncher)
|
||||
if node.name == "seaglass:seaglass" then
|
||||
minetest.add_node(pos, {name="seaglass:seaglassoff"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "seaglass:seaglassoff" then
|
||||
minetest.add_node(pos, {name="seaglass:seaglass"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "seaglass:seaglass_yellow" then
|
||||
minetest.add_node(pos, {name="seaglass:seaglassoff_yellow"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "seaglass:seaglassoff_yellow" then
|
||||
minetest.add_node(pos, {name="seaglass:seaglass_yellow"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "seaglass:seaglass_red" then
|
||||
minetest.add_node(pos, {name="seaglass:seaglassoff_red"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "seaglass:seaglassoff_red" then
|
||||
minetest.add_node(pos, {name="seaglass:seaglass_red"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "seaglass:seaglass_blue" then
|
||||
minetest.add_node(pos, {name="seaglass:seaglassoff_blue"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "seaglass:seaglassoff_blue" then
|
||||
minetest.add_node(pos, {name="seaglass:seaglass_blue"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "seaglass:seaglass_white" then
|
||||
minetest.add_node(pos, {name="seaglass:seaglassoff_white"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "seaglass:seaglassoff_white" then
|
||||
minetest.add_node(pos, {name="seaglass:seaglass_white"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "seaglass:seaglass_black" then
|
||||
minetest.add_node(pos, {name="seaglass:seaglassoff_black"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "seaglass:seaglassoff_black" then
|
||||
minetest.add_node(pos, {name="seaglass:seaglass_black"})
|
||||
nodeupdate(pos)
|
||||
|
||||
elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 0 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 0})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 0 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 0})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 1 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 1})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 1 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 1})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 2 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 2})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 2 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 2})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 3 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 3})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 3 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 3})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 21 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 21})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 21 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 21})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 22 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 22})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 22 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 22})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass" and node.param2 == 23 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff", param2 = 23})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff" and node.param2 == 23 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass", param2 = 23})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 0 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 0})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 0 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 0})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 1 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 1})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 1 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 1})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 2 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 2})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 2 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 2})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 3 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 3})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 3 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 3})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 21 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 21})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 21 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 21})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 22 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 22})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 22 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 22})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_yellow" and node.param2 == 23 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_yellow", param2 = 23})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_yellow" and node.param2 == 23 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_yellow", param2 = 23})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 0 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 0})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 0 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 0})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 1 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 1})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 1 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 1})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 2 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 2})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 2 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 2})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 3 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 3})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 3 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 3})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 21 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 21})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 21 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 21})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 22 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 22})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 22 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 22})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_red" and node.param2 == 23 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_red", param2 = 23})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_red" and node.param2 == 23 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_red", param2 = 23})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 0 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 0})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 0 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 0})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 1 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 1})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 1 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 1})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 2 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 2})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 2 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 2})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 3 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 3})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 3 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 3})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 21 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 21})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 21 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 21})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 22 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 22})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 22 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 22})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_blue" and node.param2 == 23 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_blue", param2 = 23})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_blue" and node.param2 == 23 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_blue", param2 = 23})
|
||||
nodeupdate(pos)
|
||||
|
||||
elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 0 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 0})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 0 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 0})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 1 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 1})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 1 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 1})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 2 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 2})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 2 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 2})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 3 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 3})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 3 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 3})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 21 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 21})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 21 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 21})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 22 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 22})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 22 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 22})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_white" and node.param2 == 23 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_white", param2 = 23})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_white" and node.param2 == 23 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_white", param2 = 23})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 0 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 0})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 0 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 0})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 1 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 1})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 1 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 1})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 2 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 2})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 2 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 2})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 3 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 3})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 3 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 3})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 21 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 21})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 21 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 21})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 22 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 22})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 22 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 22})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:stair_seaglass_black" and node.param2 == 23 then
|
||||
minetest.add_node(pos, {name="stairs:stair_seaglassoff_black", param2 = 23})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:stair_seaglassoff_black" and node.param2 == 23 then
|
||||
minetest.add_node(pos, {name="stairsshine:stair_seaglass_black", param2 = 23})
|
||||
nodeupdate(pos)
|
||||
|
||||
elseif node.name == "stairsshine:slab_seaglass" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairs:slab_seaglassoff", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:slab_seaglassoff" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairsshine:slab_seaglass", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:slab_seaglass" then
|
||||
minetest.add_node(pos, {name="stairs:slab_seaglassoff"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:slab_seaglassoff" then
|
||||
minetest.add_node(pos, {name="stairsshine:slab_seaglass"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:slab_seaglass_yellow" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairs:slab_seaglassoff_yellow", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:slab_seaglassoff_yellow" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairsshine:slab_seaglass_yellow", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:slab_seaglass_yellow" then
|
||||
minetest.add_node(pos, {name="stairs:slab_seaglassoff_yellow"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:slab_seaglassoff_yellow" then
|
||||
minetest.add_node(pos, {name="stairsshine:slab_seaglass_yellow"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:slab_seaglass_red" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairs:slab_seaglassoff_red", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:slab_seaglassoff_red" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairsshine:slab_seaglass_red", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:slab_seaglass_red" then
|
||||
minetest.add_node(pos, {name="stairs:slab_seaglassoff_red"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:slab_seaglassoff_red" then
|
||||
minetest.add_node(pos, {name="stairsshine:slab_seaglass_red"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:slab_seaglass_blue" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairs:slab_seaglassoff_blue", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:slab_seaglassoff_blue" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairsshine:slab_seaglass_blue", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:slab_seaglass_blue" then
|
||||
minetest.add_node(pos, {name="stairs:slab_seaglassoff_blue"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:slab_seaglassoff_blue" then
|
||||
minetest.add_node(pos, {name="stairsshine:slab_seaglass_blue"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:slab_seaglass_white" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairs:slab_seaglassoff_white", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:slab_seaglassoff_white" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairsshine:slab_seaglass_white", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:slab_seaglass_white" then
|
||||
minetest.add_node(pos, {name="stairs:slab_seaglassoff_white"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:slab_seaglassoff_white" then
|
||||
minetest.add_node(pos, {name="stairsshine:slab_seaglass_white"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:slab_seaglass_black" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairs:slab_seaglassoff_black", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:slab_seaglassoff_black" and node.param2 == 20 then
|
||||
minetest.add_node(pos, {name="stairsshine:slab_seaglass_black", param2 = 20})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairsshine:slab_seaglass_black" then
|
||||
minetest.add_node(pos, {name="stairs:slab_seaglassoff_black"})
|
||||
nodeupdate(pos)
|
||||
elseif node.name == "stairs:slab_seaglassoff_black" then
|
||||
minetest.add_node(pos, {name="stairsshine:slab_seaglass_black"})
|
||||
nodeupdate(pos) else
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_on_punchnode(on_lamp_puncher)
|
||||
|
||||
register_seaglass_craft("stairs:slab_seaglassoff", {'stairs:slab_seaglass'})
|
||||
register_seaglass_craft("stairs:slab_seaglassoff_yellow", {'stairs:slab_seaglass_yellow'})
|
||||
register_seaglass_craft("stairs:slab_seaglassoff_red", {'stairs:slab_seaglass_red'})
|
||||
register_seaglass_craft("stairs:slab_seaglassoff_blue", {'stairs:slab_seaglass_blue'})
|
||||
register_seaglass_craft("stairs:slab_seaglassoff_white", {'stairs:slab_seaglass_white'})
|
||||
register_seaglass_craft("stairs:slab_seaglassoff_black", {'stairs:slab_seaglass_black'})
|
||||
|
||||
|
||||
-- ALIASES
|
||||
|
@ -1,2 +1 @@
|
||||
default
|
||||
noairblocks
|
@ -1,202 +1,155 @@
|
||||
-- NODES
|
||||
|
||||
minetest.register_node("seaplants:kelpgreen", {
|
||||
description = "Green Kelp",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"seaplants_kelpgreen.png"},
|
||||
inventory_image = "seaplants_kelpgreen.png",
|
||||
wield_image = "seaplants_kelpgreen.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
drowning = 1,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3}
|
||||
},
|
||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||
groups = {snappy=3, seaplants=1, sea=1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
on_use = minetest.item_eat(1)
|
||||
})
|
||||
for color, cname in pairs({green = "Green", brown = "Brown"}) do
|
||||
minetest.register_node(
|
||||
"seaplants:sand_with_kelp_"..color, {
|
||||
description = cname.." Kelp",
|
||||
drawtype = "plantlike_rooted",
|
||||
waving = 1,
|
||||
tiles = {"default_sand.png"},
|
||||
special_tiles = {{name = "seaplants_kelp"..color.."middle.png", tileable_vertical = true}},
|
||||
inventory_image = "seaplants_kelp"..color..".png",
|
||||
paramtype = "light",
|
||||
paramtype2 = "leveled",
|
||||
groups = {snappy = 3},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
{-2/16, 0.5, -2/16, 2/16, 3.5, 2/16},
|
||||
},
|
||||
},
|
||||
node_dig_prediction = "default:sand",
|
||||
node_placement_prediction = "",
|
||||
sounds = default.node_sound_sand_defaults(
|
||||
{
|
||||
dig = {name = "default_dig_snappy", gain = 0.2},
|
||||
dug = {name = "default_grass_footstep", gain = 0.25},
|
||||
}),
|
||||
|
||||
minetest.register_node("seaplants:kelpgreenmiddle", {
|
||||
description = "Green Kelp middle",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"seaplants_kelpgreenmiddle.png"},
|
||||
inventory_image = "seaplants_kelpgreenmiddle.png",
|
||||
wield_image = "seaplants_kelpgreenmiddle.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
drowning = 1,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
|
||||
},
|
||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||
groups = {snappy=3, seaplants=1, sea=1},
|
||||
drop = "seaplants:kelpgreen",
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
})
|
||||
on_use = minetest.item_eat(1),
|
||||
|
||||
minetest.register_node("seaplants:kelpbrown", {
|
||||
description = "Brown Kelp ",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"seaplants_kelpbrown.png"},
|
||||
inventory_image = "seaplants_kelpbrown.png",
|
||||
wield_image = "seaplants_kelpbrown.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
drowning = 1,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3}
|
||||
},
|
||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||
groups = {snappy=3, seaplants=1, sea=1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
on_use = minetest.item_eat(1)
|
||||
})
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
-- Call on_rightclick if the pointed node defines it
|
||||
if pointed_thing.type == "node" and placer and
|
||||
not placer:get_player_control().sneak then
|
||||
local node_ptu = minetest.get_node(pointed_thing.under)
|
||||
local def_ptu = minetest.registered_nodes[node_ptu.name]
|
||||
if def_ptu and def_ptu.on_rightclick then
|
||||
return def_ptu.on_rightclick(pointed_thing.under, node_ptu, placer,
|
||||
itemstack, pointed_thing)
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node("seaplants:kelpbrownmiddle", {
|
||||
description = "Brown Kelp middle",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"seaplants_kelpbrownmiddle.png"},
|
||||
inventory_image = "seaplants_kelpbrownmiddle.png",
|
||||
wield_image = "seaplants_kelpbrownmiddle.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
drowning = 1,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
|
||||
},
|
||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||
groups = {snappy=3, seaplants=1, sea=1},
|
||||
drop = "seaplants:kelpbrown",
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
})
|
||||
local pos = pointed_thing.under
|
||||
if minetest.get_node(pos).name ~= "default:sand" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
minetest.register_node("seaplants:seagrassgreen", {
|
||||
description = "Green Seagrass",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"seaplants_seagrassgreen.png"},
|
||||
inventory_image = "seaplants_seagrassgreen.png",
|
||||
wield_image = "seaplants_seagrassgreen.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
drowning = 1,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3}
|
||||
},
|
||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||
groups = {snappy=3, seaplants=1, sea=1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
on_use = minetest.item_eat(1)
|
||||
})
|
||||
local height = math.random(4, 6)
|
||||
local pos_top = {x = pos.x, y = pos.y + height, z = pos.z}
|
||||
local node_top = minetest.get_node(pos_top)
|
||||
local def_top = minetest.registered_nodes[node_top.name]
|
||||
local player_name = placer:get_player_name()
|
||||
|
||||
minetest.register_node("seaplants:seagrassred", {
|
||||
description = "Red Seagrass",
|
||||
drawtype = "plantlike",
|
||||
tiles = {"seaplants_seagrassred.png"},
|
||||
inventory_image = "seaplants_seagrassred.png",
|
||||
wield_image = "seaplants_seagrassred.png",
|
||||
paramtype = "light",
|
||||
walkable = false,
|
||||
climbable = true,
|
||||
drowning = 1,
|
||||
is_ground_content = true,
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3}
|
||||
},
|
||||
post_effect_color = {a=64, r=100, g=100, b=200},
|
||||
groups = {snappy=3, seaplants=1, sea=1},
|
||||
sounds = default.node_sound_leaves_defaults(),
|
||||
on_use = minetest.item_eat(1)
|
||||
})
|
||||
if def_top and def_top.liquidtype == "source" and
|
||||
minetest.get_item_group(node_top.name, "water") > 0 then
|
||||
if not minetest.is_protected(pos, player_name) and
|
||||
not minetest.is_protected(pos_top, player_name) then
|
||||
minetest.set_node(pos, {name = "seaplants:sand_with_kelp_"..color,
|
||||
param2 = height * 16})
|
||||
if not (creative and creative.is_enabled_for
|
||||
and creative.is_enabled_for(player_name)) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
else
|
||||
minetest.chat_send_player(player_name, "Node is protected")
|
||||
minetest.record_protection_violation(pos, player_name)
|
||||
end
|
||||
end
|
||||
|
||||
minetest.register_node("seaplants:seaplantssandkelpgreen", {
|
||||
description = "Sea plants sand kelp green",
|
||||
tiles = {"default_sand.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:sand',
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
minetest.register_node("seaplants:seaplantsdirtkelpgreen", {
|
||||
description = "Sea plants dirt kelp green",
|
||||
tiles = {"default_dirt.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, {name = "default:sand"})
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_node("seaplants:seaplantssandkelpbrown", {
|
||||
description = "Sea plants sand kelp brown",
|
||||
tiles = {"default_sand.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:sand',
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
-- Replace Old Kelps by new ones
|
||||
minetest.register_alias("seaplants:kelp"..color, "default:water_source")
|
||||
minetest.register_alias("seaplants:kelp"..color.."middle", "default:water_source")
|
||||
minetest.register_alias("seaplants:seaplantssandkelp"..color, "seaplants:sand_with_kelp_"..color)
|
||||
minetest.register_alias("seaplants:seaplantsdirtkelp"..color, "seaplants:sand_with_kelp_"..color)
|
||||
end
|
||||
|
||||
minetest.register_node("seaplants:seaplantsdirtkelpbrown", {
|
||||
description = "Sea plants dirt kelp brown",
|
||||
tiles = {"default_dirt.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
for color, cname in pairs({green = "Green", red = "Red"}) do
|
||||
minetest.register_node(
|
||||
"seaplants:seagrass_"..color, {
|
||||
description = cname.." Seagrass",
|
||||
drawtype = "plantlike_rooted",
|
||||
waving = 1,
|
||||
paramtype = "light",
|
||||
tiles = {"default_sand.png"},
|
||||
special_tiles = {{name = "seaplants_seagrass"..color..".png", tileable_vertical = true}},
|
||||
inventory_image = "seaplants_seagrass"..color..".png",
|
||||
groups = {snappy = 3},
|
||||
selection_box = {
|
||||
type = "fixed",
|
||||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0.5, 0.5},
|
||||
{-4/16, 0.5, -4/16, 4/16, 1.5, 4/16},
|
||||
},
|
||||
},
|
||||
node_dig_prediction = "default:sand",
|
||||
node_placement_prediction = "",
|
||||
sounds = default.node_sound_sand_defaults(
|
||||
{
|
||||
dig = {name = "default_dig_snappy", gain = 0.2},
|
||||
dug = {name = "default_grass_footstep", gain = 0.25},
|
||||
}),
|
||||
|
||||
minetest.register_node("seaplants:seaplantssandseagrassgreen", {
|
||||
description = "Sea plants sand seagrass green",
|
||||
tiles = {"default_sand.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:sand',
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
on_use = minetest.item_eat(1),
|
||||
|
||||
minetest.register_node("seaplants:seaplantsdirtseagrassgreen", {
|
||||
description = "Sea plants dirt seagrass green",
|
||||
tiles = {"default_dirt.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
on_place = function(itemstack, placer, pointed_thing)
|
||||
if pointed_thing.type ~= "node" or not placer then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
minetest.register_node("seaplants:seaplantssandseagrassred", {
|
||||
description = "Sea plants sand seagrass red",
|
||||
tiles = {"default_sand.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:sand',
|
||||
sounds = default.node_sound_sand_defaults(),
|
||||
})
|
||||
local player_name = placer:get_player_name()
|
||||
local pos_under = pointed_thing.under
|
||||
local pos_above = pointed_thing.above
|
||||
|
||||
minetest.register_node("seaplants:seaplantsdirtseagrassred", {
|
||||
description = "Sea plants dirt seagrass red",
|
||||
tiles = {"default_dirt.png"},
|
||||
is_ground_content = true,
|
||||
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
|
||||
drop = 'default:dirt',
|
||||
sounds = default.node_sound_dirt_defaults(),
|
||||
})
|
||||
if minetest.get_node(pos_under).name ~= "default:sand" or
|
||||
minetest.get_node(pos_above).name ~= "default:water_source" then
|
||||
return itemstack
|
||||
end
|
||||
|
||||
if minetest.is_protected(pos_under, player_name) or
|
||||
minetest.is_protected(pos_above, player_name) then
|
||||
minetest.chat_send_player(player_name, "Node is protected")
|
||||
minetest.record_protection_violation(pos_under, player_name)
|
||||
return itemstack
|
||||
end
|
||||
|
||||
minetest.set_node(pos_under, {name = "seaplants:seagrass_"..color})
|
||||
if not (creative and creative.is_enabled_for(player_name)) then
|
||||
itemstack:take_item()
|
||||
end
|
||||
|
||||
return itemstack
|
||||
end,
|
||||
|
||||
after_destruct = function(pos, oldnode)
|
||||
minetest.set_node(pos, {name = "default:sand"})
|
||||
end,
|
||||
})
|
||||
|
||||
-- Replace Old seagrasses by new ones
|
||||
minetest.register_alias("seaplants:seagrass"..color, "default:water_source")
|
||||
minetest.register_alias("seaplants:seaplantssandseagrass"..color, "seaplants:seagrass_"..color)
|
||||
minetest.register_alias("seaplants:seaplantsdirtseagrass"..color, "seaplants:seagrass_"..color)
|
||||
end
|
||||
|
||||
|
||||
-- CRAFT ITEMS
|
||||
@ -214,328 +167,61 @@ minetest.register_craftitem("seaplants:seasaladmix", {
|
||||
minetest.register_craft({
|
||||
type = "shapeless",
|
||||
output = "seaplants:seasaladmix",
|
||||
recipe = {"seaplants:kelpgreen", "seaplants:kelpbrown", "seaplants:seagrassgreen", "seaplants:seagrassred"}
|
||||
recipe = {"seaplants:sand_with_kelp_green", "seaplants:sand_with_kelp_brown", "seaplants:seagrass_green", "seaplants:seagrass_red"}
|
||||
})
|
||||
|
||||
|
||||
-- SEAPLANTS SAND AND DIRT GENERATION
|
||||
-- SEAPLANTS GENERATION
|
||||
|
||||
-- Kelp
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seaplants:seaplantssandkelpgreen",
|
||||
wherein = "default:sand",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -14,
|
||||
y_min = -31000,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seaplants:seaplantsdirtkelpgreen",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -14,
|
||||
y_min = -31000,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seaplants:seaplantssandkelpbrown",
|
||||
wherein = "default:sand",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -14,
|
||||
y_min = -31000,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seaplants:seaplantsdirtkelpbrown",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -14,
|
||||
y_min = -31000,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seaplants:seaplantssandseagrassgreen",
|
||||
wherein = "default:sand",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -14,
|
||||
y_min = -31000,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seaplants:seaplantsdirtseagrassgreen",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -14,
|
||||
y_min = -31000,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seaplants:seaplantssandseagrassred",
|
||||
wherein = "default:sand",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -14,
|
||||
y_min = -31000,
|
||||
})
|
||||
|
||||
minetest.register_ore({
|
||||
ore_type = "scatter",
|
||||
ore = "seaplants:seaplantsdirtseagrassred",
|
||||
wherein = "default:dirt",
|
||||
clust_scarcity = 10*10*10,
|
||||
clust_num_ores = 24,
|
||||
clust_size = 4,
|
||||
y_max = -14,
|
||||
y_min = -31000,
|
||||
})
|
||||
|
||||
local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, y_min, y_max)
|
||||
if maxp.y < y_min or minp.y > y_max then
|
||||
return
|
||||
end
|
||||
local y_min = math.max(minp.y, y_min)
|
||||
local y_max = math.min(maxp.y, y_max)
|
||||
if chunk_size >= y_max - y_min + 1 then
|
||||
return
|
||||
end
|
||||
local volume = (maxp.x-minp.x+1)*(y_max-y_min+1)*(maxp.z-minp.z+1)
|
||||
local pr = PseudoRandom(seed)
|
||||
local num_chunks = math.floor(chunks_per_volume * volume)
|
||||
local inverse_chance = math.floor(chunk_size*chunk_size*chunk_size / ore_per_chunk)
|
||||
for i=1,num_chunks do
|
||||
local y0 = pr:next(y_min, y_max-chunk_size+1)
|
||||
if y0 >= y_min and y0 <= y_max then
|
||||
local x0 = pr:next(minp.x, maxp.x-chunk_size+1)
|
||||
local z0 = pr:next(minp.z, maxp.z-chunk_size+1)
|
||||
local p0 = {x=x0, y=y0, z=z0}
|
||||
for x1=0,chunk_size-1 do
|
||||
for y1=0,chunk_size-1 do
|
||||
for z1=0,chunk_size-1 do
|
||||
if pr:next(1,inverse_chance) == 1 then
|
||||
local x2 = x0+x1
|
||||
local y2 = y0+y1
|
||||
local z2 = z0+z1
|
||||
local p2 = {x=x2, y=y2, z=z2}
|
||||
if minetest.get_node(p2).name == wherein then
|
||||
minetest.set_node(p2, {name=name})
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
-- ABM'S
|
||||
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seaplants:seaplantsdirtkelpgreen"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seaplants:kelpgreen"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seaplants:seaplantssandkelpgreen"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seaplants:kelpgreen"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seaplants:kelpgreen"},
|
||||
interval = 6,
|
||||
chance = 3,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local yyp = {x = pos.x, y = pos.y + 2, z = pos.z}
|
||||
local yyyp = {x = pos.x, y = pos.y + 3, z = pos.z}
|
||||
if minetest.get_node(pos).name == "seaplants:kelpgreen" and
|
||||
(minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
if (minetest.get_node(yyp).name == "default:water_source" or
|
||||
minetest.get_node(yyp).name == "noairblocks:water_sourcex") then
|
||||
if (minetest.get_node(yyyp).name == "default:water_source" or
|
||||
minetest.get_node(yyyp).name == "noairblocks:water_sourcex") then
|
||||
minetest.add_node(pos, {name = "seaplants:kelpgreenmiddle"})
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seaplants:kelpgreen"})
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seaplants:seaplantsdirtkelpbrown"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seaplants:kelpbrown"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seaplants:seaplantssandkelpbrown"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seaplants:kelpbrown"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seaplants:kelpbrown"},
|
||||
interval = 6,
|
||||
chance = 3,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
local yyp = {x = pos.x, y = pos.y + 2, z = pos.z}
|
||||
local yyyp = {x = pos.x, y = pos.y + 3, z = pos.z}
|
||||
if minetest.get_node(pos).name == "seaplants:kelpbrown" and
|
||||
(minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
if (minetest.get_node(yyp).name == "default:water_source" or
|
||||
minetest.get_node(yyp).name == "noairblocks:water_sourcex") then
|
||||
if (minetest.get_node(yyyp).name == "default:water_source" or
|
||||
minetest.get_node(yyyp).name == "noairblocks:water_sourcex") then
|
||||
minetest.add_node(pos, {name = "seaplants:kelpbrownmiddle"})
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seaplants:kelpbrown"})
|
||||
else
|
||||
return
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seaplants:seaplantsdirtseagrassgreen"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seaplants:seagrassgreen"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seaplants:seaplantssandseagrassgreen"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seaplants:seagrassgreen"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seaplants:seaplantsdirtseagrassred"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seaplants:seagrassred"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
nodenames = {"seaplants:seaplantssandseagrassred"},
|
||||
interval = 12,
|
||||
chance = 12,
|
||||
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
|
||||
if (minetest.get_node(yp).name == "default:water_source" or
|
||||
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
|
||||
pos.y = pos.y + 1
|
||||
minetest.add_node(pos, {name = "seaplants:seagrassred"}) else
|
||||
return
|
||||
end
|
||||
end
|
||||
})
|
||||
minetest.register_decoration(
|
||||
{
|
||||
name = "seaplants:seaplants",
|
||||
deco_type = "simple",
|
||||
place_on = {"default:sand"},
|
||||
place_offset_y = -1,
|
||||
sidelen = 16,
|
||||
noise_params = {
|
||||
offset = -0.04,
|
||||
scale = 0.1,
|
||||
spread = {x = 200, y = 200, z = 200},
|
||||
seed = 87113,
|
||||
octaves = 3,
|
||||
persist = 0.7
|
||||
},
|
||||
biomes = {
|
||||
"taiga_ocean",
|
||||
"snowy_grassland_ocean",
|
||||
"grassland_ocean",
|
||||
"coniferous_forest_ocean",
|
||||
"deciduous_forest_ocean",
|
||||
"sandstone_desert_ocean",
|
||||
"cold_desert_ocean"},
|
||||
y_max = -5,
|
||||
y_min = -10,
|
||||
flags = "force_placement",
|
||||
decoration = {
|
||||
"default:sand_with_kelp", "seaplants:sand_with_kelp_green",
|
||||
"seaplants:sand_with_kelp_brown", "seaplants:seagrass_green",
|
||||
"seaplants:seagrass_red"
|
||||
},
|
||||
param2 = 48,
|
||||
param2_max = 96,
|
||||
})
|
||||
|
||||
|
||||
-- ALIASES
|
||||
|
||||
|
||||
minetest.register_alias("seaplants:stemsgreen","default:sand")
|
||||
minetest.register_alias("seaplants:stemsbrown","default:dirt")
|
||||
minetest.register_alias("seaplants:leafyblue","default:sand")
|
||||
minetest.register_alias("seaplants:leafygreen","default:dirt")
|
||||
|
||||
minetest.register_alias("seaplants:chewstickgreen","seaplants:kelpgreen")
|
||||
minetest.register_alias("seaplants:chewstickbrown","seaplants:kelpbrown")
|
||||
minetest.register_alias("seaplants:leavysnackgreen","seaplants:seagrassgreen")
|
||||
minetest.register_alias("seaplants:leavysnackblue","seaplants:seagrassred")
|
||||
minetest.register_alias("seaplants:chewstickgreen","seaplants:sand_with_kelp_green")
|
||||
minetest.register_alias("seaplants:chewstickbrown","seaplants:sand_with_kelp_brown")
|
||||
minetest.register_alias("seaplants:leavysnackgreen","seaplants:seagrass_green")
|
||||
minetest.register_alias("seaplants:leavysnackblue","seaplants:seagrass_red")
|
||||
minetest.register_alias("seaplants:seasalad","seaplants:seasaladmix")
|
||||
|
||||
minetest.log("action", "[sea - seaplants] loaded.")
|
||||
|
Reference in New Issue
Block a user