13 Commits

Author SHA1 Message Date
b0fd455b7e [sea-clams] Fix errors on inventory_image def 2020-07-18 20:51:01 +02:00
e1ca03e6f3 [clams] Fix crash caused by bad sounds init 2020-07-09 22:58:44 +02:00
b2fc8936bf [seaglass] Correction pour Minetest 5
- Ajoute support des "inner" et "outer" stairs
- Corrige crash quand punch node
2019-08-15 19:09:45 +02:00
5ec73557de [seaplants] Optimise pour Minetest 5 2019-04-20 20:30:53 +02:00
ef1efe65d9 Optimisation des coraux pour Minetest 5 2019-04-20 16:25:53 +02:00
d537a679a3 Correction d'alias 2019-02-03 17:57:25 +01:00
7692d12220 Correction d'alias 2019-02-03 17:51:02 +01:00
0f7a5c654d Ajout messages de chargements des mods dans le journal "action" 2019-01-19 16:09:33 +01:00
87694cb154 Modifie les groupes de génération des trésors 2019-01-19 15:57:32 +01:00
a1c2fae7bf Modifie la fréquence d'apparition des épaves
Les épaves apparaissent un peu plus rarement.
2018-12-15 20:18:42 +01:00
a5c10e3399 Ajout du support de treasurer pour les coffres des épaves 2018-12-05 21:56:40 +01:00
7c5e9bf73a Add stairsplus support from moreblocks 2018-10-13 17:58:24 +02:00
c912cf078b Fix clams item definition 2018-05-11 00:36:36 +02:00
21 changed files with 663 additions and 1943 deletions

View File

@ -1,3 +1,6 @@
local sand_sounds = minetest.registered_nodes["default:sand"].sounds
local dirt_sounds = minetest.registered_nodes["default:dirt"].sounds
-- NODES -- NODES
minetest.register_node("clams:sandalgae", { minetest.register_node("clams:sandalgae", {
@ -9,14 +12,14 @@ minetest.register_node("clams:sandalgae", {
drop = { drop = {
items = { items = {
{ {
items = {'"clams:collectedalgae" 4'}, items = {"clams:collectedalgae 4"},
}, },
{ {
items = {'clams:sandalgaeused'}, items = {'clams:sandalgaeused'},
} }
} }
}, },
sounds = default.node_sound_sand_defaults(), sounds = sand_sounds,
}) })
minetest.register_node("clams:dirtalgae", { minetest.register_node("clams:dirtalgae", {
@ -28,32 +31,32 @@ minetest.register_node("clams:dirtalgae", {
drop = { drop = {
items = { items = {
{ {
items = {'"clams:collectedalgae" 4'}, items = {"clams:collectedalgae 4"},
}, },
{ {
items = {'clams:dirtalgaeused'}, items = {'clams:dirtalgaeused'},
} }
} }
}, },
sounds = default.node_sound_dirt_defaults, sounds = dirt_sounds,
}) })
minetest.register_node("clams:sandalgaeused", { minetest.register_node("clams:sandalgaeused", {
description = "Used sandalgae", description = "Used sandalgae",
tiles = {"default_sand.png^clams_algaeused.png"}, 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, is_ground_content = true,
groups = {crumbly=3, falling_node=1, sand=1}, groups = {crumbly=3, falling_node=1, sand=1},
sounds = default.node_sound_sand_defaults(), sounds = sand_sounds,
}) })
minetest.register_node("clams:dirtalgaeused", { minetest.register_node("clams:dirtalgaeused", {
description = "Used dirtalgae", description = "Used dirtalgae",
tiles = {"default_dirt.png^clams_algaeused.png"}, 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, is_ground_content = true,
groups = {crumbly=3}, groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults(), sounds = dirt_sounds,
}) })
@ -390,3 +393,5 @@ minetest.register_alias("shells_dye:redlightglass","clams:redlightglass")
minetest.register_alias("shells_dye:bluelightglass","clams:bluelightglass") minetest.register_alias("shells_dye:bluelightglass","clams:bluelightglass")
minetest.register_alias("shells_dye:whitelightglass","clams:whitelightglass") minetest.register_alias("shells_dye:whitelightglass","clams:whitelightglass")
minetest.register_alias("shells_dye:blacklightglass","clams:blacklightglass") minetest.register_alias("shells_dye:blacklightglass","clams:blacklightglass")
minetest.log("action", "[sea - clams] loaded.")

View File

@ -228,3 +228,5 @@ local pos1 = {x=pos.x+1,y=pos.y+1,z=pos.z+1}
end end
end, end,
}) })
minetest.log("action", "[sea - noairblocks] loaded.")

View File

@ -4,3 +4,4 @@ stairs
clams clams
whiteshell? whiteshell?
colormachine? colormachine?
moreblocks?

View File

@ -60,56 +60,74 @@ minetest.register_node("seacobble:seacobble_redviolet", {
-- STAIRS -- STAIRS
local colors = {"", "cyan", "magenta", "lime", "aqua", "skyblue", "redviolet"}
stairs.register_stair_and_slab("seacobble", "seacobble:seacobble", if minetest.get_modpath("moreblocks") then
for i, color in ipairs(colors) do
local c = "_"..color
if i == 1 then c = "" end
local nodename = "seacobble:seacobble"..c
local ndef = table.copy(minetest.registered_nodes[nodename])
ndef.sunlight_propagates = true
ndef.place_param2 = nil
stairsplus:register_all(
"seacobble",
"seacobble"..c,
nodename,
ndef
)
end
else
stairs.register_stair_and_slab("seacobble", "seacobble:seacobble",
{cracky=3, stone=2}, {cracky=3, stone=2},
{"seacobble_seacobble.png"}, {"seacobble_seacobble.png"},
"Seacobble stair", "Seacobble stair",
"Seacobble slab", "Seacobble slab",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seacobble_cyan", "seacobble:seacobble_cyan", stairs.register_stair_and_slab("seacobble_cyan", "seacobble:seacobble_cyan",
{cracky=3, stone=2}, {cracky=3, stone=2},
{"seacobble_seacobble_cyan.png"}, {"seacobble_seacobble_cyan.png"},
"Seacobble stair cyan", "Seacobble stair cyan",
"Seacobble slab cyan", "Seacobble slab cyan",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seacobble_magenta", "seacobble:seacobble_magenta", stairs.register_stair_and_slab("seacobble_magenta", "seacobble:seacobble_magenta",
{cracky=3, stone=2}, {cracky=3, stone=2},
{"seacobble_seacobble_magenta.png"}, {"seacobble_seacobble_magenta.png"},
"Seacobble stair magenta", "Seacobble stair magenta",
"Seacobble slab magenta", "Seacobble slab magenta",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seacobble_lime", "seacobble:seacobble_lime", stairs.register_stair_and_slab("seacobble_lime", "seacobble:seacobble_lime",
{cracky=3, stone=2}, {cracky=3, stone=2},
{"seacobble_seacobble_lime.png"}, {"seacobble_seacobble_lime.png"},
"Seacobble stair lime", "Seacobble stair lime",
"Seacobble slab lime", "Seacobble slab lime",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seacobble_aqua", "seacobble:seacobble_aqua", stairs.register_stair_and_slab("seacobble_aqua", "seacobble:seacobble_aqua",
{cracky=3, stone=2}, {cracky=3, stone=2},
{"seacobble_seacobble_aqua.png"}, {"seacobble_seacobble_aqua.png"},
"Seacobble stair aqua", "Seacobble stair aqua",
"Seacobble slab aqua", "Seacobble slab aqua",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seacobble_skyblue", "seacobble:seacobble_skyblue", stairs.register_stair_and_slab("seacobble_skyblue", "seacobble:seacobble_skyblue",
{cracky=3, stone=2}, {cracky=3, stone=2},
{"seacobble_seacobble_skyblue.png"}, {"seacobble_seacobble_skyblue.png"},
"Seacobble stair skyblue ", "Seacobble stair skyblue ",
"Seacobble slab skyblue", "Seacobble slab skyblue",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seacobble_redviolet", "seacobble:seacobble_redviolet", stairs.register_stair_and_slab("seacobble_redviolet", "seacobble:seacobble_redviolet",
{cracky=3, stone=2}, {cracky=3, stone=2},
{"seacobble_seacobble_redviolet.png"}, {"seacobble_seacobble_redviolet.png"},
"Seacobble stair redviolet", "Seacobble stair redviolet",
"Seacobble slab redviolet", "Seacobble slab redviolet",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
end
-- CRAFTING -- CRAFTING
@ -137,3 +155,5 @@ register_seacobble_craft("seacobble:seacobble_lime", {'clams:crushedwhite', 'def
register_seacobble_craft("seacobble:seacobble_aqua", {'clams:crushedwhite', 'default:cobble','dye:aqua'}) register_seacobble_craft("seacobble:seacobble_aqua", {'clams:crushedwhite', 'default:cobble','dye:aqua'})
register_seacobble_craft("seacobble:seacobble_skyblue", {'clams:crushedwhite', 'default:cobble','dye:skyblue'}) register_seacobble_craft("seacobble:seacobble_skyblue", {'clams:crushedwhite', 'default:cobble','dye:skyblue'})
register_seacobble_craft("seacobble:seacobble_redviolet", {'clams:crushedwhite', 'default:cobble','dye:redviolet'}) register_seacobble_craft("seacobble:seacobble_redviolet", {'clams:crushedwhite', 'default:cobble','dye:redviolet'})
minetest.log("action", "[sea - seacobble] loaded.")

View File

@ -1,4 +1,4 @@
default default
noairblocks nalc_lib
unifieddyes unifieddyes
colormachine? colormachine?

View File

@ -1,617 +1,152 @@
-- NODES -- NODES
-- Add magenta, aqua, skyblue seacorals
minetest.register_node("seacoral:coralcyan", { for color, cname in pairs({magenta = "Magenta", aqua = "Aqua", skyblue = "Skyblue"}) do
description = "Cyan Coral", minetest.register_node(
drawtype = "plantlike", "seacoral:coral_"..color, {
tiles = {"seacoral_coralcyan.png"}, description = cname.." Coral",
inventory_image = "seacoral_coralcyan.png", drawtype = "plantlike_rooted",
wield_image = "seacoral_coralcyan.png", waving = 1,
paramtype = "light", paramtype = "light",
walkable = false, tiles = {"default_coral_skeleton.png"},
climbable = true, special_tiles = {{name = "seacoral_coral"..color..".png", tileable_vertical = true}},
drowning = 1, inventory_image = "seacoral_coral"..color..".png",
is_ground_content = true, groups = {snappy = 3, seacoral = 1},
selection_box = { selection_box = {
type = "fixed", type = "fixed",
fixed = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3} 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},
}, },
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(),
})
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}, node_dig_prediction = "default:coral_skeleton",
groups = {snappy=3, seacoral=1, sea=1,basecolor_magenta=1}, node_placement_prediction = "",
sounds = default.node_sound_dirt_defaults(), sounds = default.node_sound_stone_defaults(
{
dig = {name = "default_dig_snappy", gain = 0.2},
dug = {name = "default_grass_footstep", gain = 0.25},
}),
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:coralaqua", { -- Replace Old seacorals with new defined ones
description = "Aqua Coral", minetest.register_alias("seacoral:coral"..color, "default:water_source")
drawtype = "plantlike", minetest.register_alias("seacoral:seacoralsand"..color, "seacoral:coral_"..color)
tiles = {"seacoral_coralaqua.png"}, minetest.register_alias("seacoral:seacoraldirt"..color, "seacoral:coral_"..color)
inventory_image = "seacoral_coralaqua.png", end
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(),
})
minetest.register_node("seacoral:corallime", { -- Replace cyan, redviolet, lime seacorals with default Minetest's ones
description = "Lime Coral", minetest.register_alias("seacoral:coralcyan", "default:water_source")
drawtype = "plantlike", minetest.register_alias("seacoral:seacoralsandcyan", "default:coral_cyan")
tiles = {"seacoral_corallime.png"}, minetest.register_alias("seacoral:seacoraldirtcyan", "default:coral_cyan")
inventory_image = "seacoral_corallime.png", nalc.add_group("default:coral_cyan", "seacoral", 1)
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", { minetest.register_alias("seacoral:coralredviolet", "default:water_source")
description = "Skyblue Coral", minetest.register_alias("seacoral:seacoralsandredviolet", "default:coral_pink")
drawtype = "plantlike", minetest.register_alias("seacoral:seacoraldirtredviolet", "default:coral_pink")
tiles = {"seacoral_coralskyblue.png"}, nalc.add_group("default:coral_pink", "seacoral", 1)
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: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 -- CRAFTING
if( minetest.get_modpath( "colormachine") == nil ) then if( minetest.get_modpath( "colormachine") == nil ) then
register_seacoral_craft = function(output,recipe) register_seacoral_craft = function(output,recipe)
minetest.register_craft({ minetest.register_craft(
{
type = 'shapeless', type = 'shapeless',
output = output, output = output,
recipe = recipe, recipe = recipe,
}) })
end end
register_seacoral_craft('dye:cyan 4', {'seacoral:coralcyan'}) register_seacoral_craft('dye:cyan 4', {'default:coral_cyan'})
register_seacoral_craft('dye:magenta 4', {'seacoral:coralmagenta'}) register_seacoral_craft('dye:magenta 4', {'seacoral:coral_magenta'})
register_seacoral_craft('dye:lime 4', {'seacoral:corallime'}) register_seacoral_craft('dye:lime 4', {'default:coral_green'})
register_seacoral_craft('dye:aqua 4', {'seacoral:coralaqua'}) register_seacoral_craft('dye:spring 4', {'seacoral:coral_aqua'})
register_seacoral_craft('dye:skyblue 4', {'seacoral:coralskyblue'}) register_seacoral_craft('dye:azure 4', {'seacoral:coral_skyblue'})
register_seacoral_craft('dye:redviolet 4', {'seacoral:coralredviolet'}) register_seacoral_craft('dye:pink 4', {'default:coral_pink'})
end end
-- SEACORAL SAND AND DIRT GENERATION -- SEACORAL SAND AND DIRT GENERATION
-- Coral reef
minetest.register_ore({ minetest.register_decoration(
ore_type = "scatter", {
ore = "seacoral:seacoralsandcyan", name = "seacoral:corals",
wherein = "default:sand", deco_type = "simple",
clust_scarcity = 10*10*10, place_on = {"default:sand"},
clust_num_ores = 24, place_offset_y = -1,
clust_size = 4, sidelen = 4,
y_max = -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, y_min = -8,
}) flags = "force_placement",
decoration = {
minetest.register_ore({ "seacoral:coral_magenta", "default:coral_orange",
ore_type = "scatter", "seacoral:coral_aqua", "default:coral_brown",
ore = "seacoral:seacoraldirtcyan", "seacoral:coral_skyblue", "default:coral_skeleton",
wherein = "default:dirt", "default:coral_green", "default:coral_pink",
clust_scarcity = 10*10*10, "default:coral_cyan"
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
-- ABM'S -- ABM'S
minetest.register_abm(
minetest.register_abm({ {
nodenames = {"seacoral:seacoraldirtcyan"}, nodenames = {"group:seacoral"},
interval = 12, interval = 3,
chance = 12, chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider) 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 yp = {x = pos.x, y = pos.y + 1, z = pos.z}
local yyp = {x = pos.x, y = pos.y + 2, 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 if ((minetest.get_node(yp).name == "default:water_source" or
@ -625,15 +160,15 @@ action = function(pos, node, active_object_count, active_object_count_wider)
else else
return return
end end
end end
}) })
-- OPTIONAL DEPENDENCY -- OPTIONAL DEPENDENCY
if( minetest.get_modpath( "colormachine") ~= nil ) then 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 else
return return
end end
@ -645,6 +180,8 @@ end
minetest.register_alias("seadye:cyan","dye:cyan") minetest.register_alias("seadye:cyan","dye:cyan")
minetest.register_alias("seadye:magenta","dye:magenta") minetest.register_alias("seadye:magenta","dye:magenta")
minetest.register_alias("seadye:lime","dye:lime") minetest.register_alias("seadye:lime","dye:lime")
minetest.register_alias("seadye:aqua","dye:aqua") minetest.register_alias("seadye:aqua","dye:spring")
minetest.register_alias("seadye:skyblue","dye:skyblue") minetest.register_alias("seadye:skyblue","dye:azure")
minetest.register_alias("seadye:redviolet","dye:redviolet") minetest.register_alias("seadye:redviolet","dye:pink")
minetest.log("action", "[sea - seacoral] loaded.")

View File

@ -4,3 +4,4 @@ stairs
clams clams
stairsshine stairsshine
colormachine? colormachine?
moreblocks?

View File

@ -1,249 +1,107 @@
-- NODES -- NODES
local repl = {
["off"] = "",
["on"] = "off",
}
minetest.register_node("seaglass:seaglass", { local colors = {"yellow", "red", "blue", "white", "black"}
description = "Standard seaglass on",
local function register_glass(suffix, color, cgroups)
-- suffix : bool (false:off | true:on)
local desc = "Seaglass "
local col, c = "", ""
if color and color ~= "" then
col,c = color, "_"..color
desc = desc..color.." "
end
local l, light, ls = "", "on", 7
if not suffix then
l,light = "off","off"
ls = 0
end
desc = desc..light
minetest.register_node(
"seaglass:seaglass"..l..c,
{
description = desc,
drawtype = "glasslike", drawtype = "glasslike",
tiles = {"seaglass_seaglass.png"}, tiles = {"seaglass_seaglass"..c..".png"},
inventory_image = minetest.inventorycube("seaglass_seaglass.png"), inventory_image = minetest.inventorycube("seaglass_seaglass"..c..".png"),
paramtype = "light", paramtype = "light",
sunlight_propagates = true, sunlight_propagates = true,
light_source = 14, light_source = ls,
is_ground_content = true, is_ground_content = true,
drop = 'seaglass:seaglassoff', drop = "seaglass:seaglassoff"..c,
groups = {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, shine=1, not_in_creative_inventory=1}, 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(), 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:seaglass_yellow", { stairs.register_stair_and_slab("seaglass"..l..c, "seaglass:seaglass"..l..c,
description = "Seaglass yellow on", cgroups,
drawtype = "glasslike", {"seaglass_seaglass"..c..".png"},
tiles = {"seaglass_seaglass_yellow.png"}, "Seaglass stair "..light.." "..col,
inventory_image = minetest.inventorycube("seaglass_seaglass_yellow.png"), "Seaglass slab "..light.." "..col,
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(),
})
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(),
})
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(),
})
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(),
})
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: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(),
})
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(),
})
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(),
})
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(),
})
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(),
})
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(),
})
-- 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()) default.node_sound_glass_defaults())
stairsshine.register_stair_and_slab("seaglass_yellow", "seaglass:seaglass_yellow", for _,i in ipairs({"slab", "stair", "stair_outer", "stair_inner"}) do
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_yellow=1, shine=1, yellowshine=1, not_in_creative_inventory=1}, minetest.override_item(
{"seaglass_seaglass_yellow.png"}, "stairs:"..i.."_seaglass"..l..c,
"seaglass stair on yellow", {
"seaglass slab on yellow", light_source = ls,
default.node_sound_glass_defaults()) 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
stairsshine.register_stair_and_slab("seaglass_red", "seaglass:seaglass_red", end
{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", for _,color in ipairs(colors) do
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_blue=1, shine=1, blueshine=1, not_in_creative_inventory=1}, local groups_off = {noshine=1, snappy=2, cracky=3, oddly_breakable_by_hand=3}
{"seaglass_seaglass_blue.png"}, local groups_on = {not_in_creative_inventory=1, shine=1, snappy=2, cracky=3, oddly_breakable_by_hand=3}
"Seaglass stair on blue",
"Seaglass slab on blue",
default.node_sound_glass_defaults())
stairsshine.register_stair_and_slab("seaglass_white", "seaglass:seaglass_white", if color == "yellow" then
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_white=1, shine=1, whiteshine=1, not_in_creative_inventory=1}, groups_off.color_yellow = 1
{"seaglass_seaglass_white.png"}, groups_on.color_yellow = 1
"Seaglass stair on white", groups_on.yellowshine = 1
"Seaglass slab on white", elseif color == "red" then
default.node_sound_glass_defaults()) 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
stairsshine.register_stair_and_slab("seaglass_black", "seaglass:seaglass_black", register_glass(false, color, groups_off)
{snappy=2,cracky=3,oddly_breakable_by_hand=3, color_black=1, shine=1, blackshine=1, not_in_creative_inventory=1}, register_glass(true, color, groups_on)
{"seaglass_seaglass_black.png"}, end
"Seaglass stair on black ",
"Seaglass slab on black",
default.node_sound_glass_defaults())
stairs.register_stair_and_slab("seaglassoff", "seaglass:seaglassoff", register_glass(false, nil, {snappy=2,cracky=3,oddly_breakable_by_hand=3, nocolor=1, noshine=1})
{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})
{"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())
-- CRAFTING -- CRAFTING
@ -291,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_white", {'seaglass:seaglassoff_white'})
register_seaglass_craft("seaglass:seaglass_black", {'seaglass:seaglassoff_black'}) register_seaglass_craft("seaglass:seaglass_black", {'seaglass:seaglassoff_black'})
register_seaglass_craft("stairsshine:stair_seaglass", {'stairs:stair_seaglassoff'}) register_seaglass_craft("stairs:stair_seaglass", {'stairs:stair_seaglassoff'})
register_seaglass_craft("stairsshine:stair_seaglass_yellow", {'stairs:stair_seaglassoff_yellow'}) register_seaglass_craft("stairs:stair_seaglass_yellow", {'stairs:stair_seaglassoff_yellow'})
register_seaglass_craft("stairsshine:stair_seaglass_red", {'stairs:stair_seaglassoff_red'}) register_seaglass_craft("stairs:stair_seaglass_red", {'stairs:stair_seaglassoff_red'})
register_seaglass_craft("stairsshine:stair_seaglass_blue", {'stairs:stair_seaglassoff_blue'}) register_seaglass_craft("stairs:stair_seaglass_blue", {'stairs:stair_seaglassoff_blue'})
register_seaglass_craft("stairsshine:stair_seaglass_white", {'stairs:stair_seaglassoff_white'}) register_seaglass_craft("stairs:stair_seaglass_white", {'stairs:stair_seaglassoff_white'})
register_seaglass_craft("stairsshine:stair_seaglass_black", {'stairs:stair_seaglassoff_black'}) 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", {'stairs:stair_seaglass'})
register_seaglass_craft("stairs:stair_seaglassoff_yellow", {'stairsshine:stair_seaglass_yellow'}) register_seaglass_craft("stairs:stair_seaglassoff_yellow", {'stairs:stair_seaglass_yellow'})
register_seaglass_craft("stairs:stair_seaglassoff_red", {'stairsshine:stair_seaglass_red'}) register_seaglass_craft("stairs:stair_seaglassoff_red", {'stairs:stair_seaglass_red'})
register_seaglass_craft("stairs:stair_seaglassoff_blue", {'stairsshine:stair_seaglass_blue'}) register_seaglass_craft("stairs:stair_seaglassoff_blue", {'stairs:stair_seaglass_blue'})
register_seaglass_craft("stairs:stair_seaglassoff_white", {'stairsshine:stair_seaglass_white'}) register_seaglass_craft("stairs:stair_seaglassoff_white", {'stairs:stair_seaglass_white'})
register_seaglass_craft("stairs:stair_seaglassoff_black", {'stairsshine:stair_seaglass_black'}) register_seaglass_craft("stairs:stair_seaglassoff_black", {'stairs:stair_seaglass_black'})
register_seaglass_craft("stairsshine:slab_seaglass", {'stairs:slab_seaglassoff'}) register_seaglass_craft("stairs:stair_outer_seaglass", {'stairs:stair_outer_seaglassoff'})
register_seaglass_craft("stairsshine:slab_seaglass_yellow", {'stairs:slab_seaglassoff_yellow'}) register_seaglass_craft("stairs:stair_outer_seaglass_yellow", {'stairs:stair_outer_seaglassoff_yellow'})
register_seaglass_craft("stairsshine:slab_seaglass_red", {'stairs:slab_seaglassoff_red'}) register_seaglass_craft("stairs:stair_outer_seaglass_red", {'stairs:stair_outer_seaglassoff_red'})
register_seaglass_craft("stairsshine:slab_seaglass_blue", {'stairs:slab_seaglassoff_blue'}) register_seaglass_craft("stairs:stair_outer_seaglass_blue", {'stairs:stair_outer_seaglassoff_blue'})
register_seaglass_craft("stairsshine:slab_seaglass_white", {'stairs:slab_seaglassoff_white'}) register_seaglass_craft("stairs:stair_outer_seaglass_white", {'stairs:stair_outer_seaglassoff_white'})
register_seaglass_craft("stairsshine:slab_seaglass_black", {'stairs:slab_seaglassoff_black'}) 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:stair_outer_seaglassoff", {'stairs:stair_outer_seaglass'})
register_seaglass_craft("stairs:slab_seaglassoff_yellow", {'stairsshine:slab_seaglass_yellow'}) register_seaglass_craft("stairs:stair_outer_seaglassoff_yellow", {'stairs:stair_outer_seaglass_yellow'})
register_seaglass_craft("stairs:slab_seaglassoff_red", {'stairsshine:slab_seaglass_red'}) register_seaglass_craft("stairs:stair_outer_seaglassoff_red", {'stairs:stair_outer_seaglass_red'})
register_seaglass_craft("stairs:slab_seaglassoff_blue", {'stairsshine:slab_seaglass_blue'}) register_seaglass_craft("stairs:stair_outer_seaglassoff_blue", {'stairs:stair_outer_seaglass_blue'})
register_seaglass_craft("stairs:slab_seaglassoff_white", {'stairsshine:slab_seaglass_white'}) register_seaglass_craft("stairs:stair_outer_seaglassoff_white", {'stairs:stair_outer_seaglass_white'})
register_seaglass_craft("stairs:slab_seaglassoff_black", {'stairsshine:slab_seaglass_black'}) 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) register_seaglass_craft("stairs:slab_seaglassoff", {'stairs:slab_seaglass'})
if node.name == "seaglass:seaglass" then register_seaglass_craft("stairs:slab_seaglassoff_yellow", {'stairs:slab_seaglass_yellow'})
minetest.add_node(pos, {name="seaglass:seaglassoff"}) register_seaglass_craft("stairs:slab_seaglassoff_red", {'stairs:slab_seaglass_red'})
nodeupdate(pos) register_seaglass_craft("stairs:slab_seaglassoff_blue", {'stairs:slab_seaglass_blue'})
elseif node.name == "seaglass:seaglassoff" then register_seaglass_craft("stairs:slab_seaglassoff_white", {'stairs:slab_seaglass_white'})
minetest.add_node(pos, {name="seaglass:seaglass"}) register_seaglass_craft("stairs:slab_seaglassoff_black", {'stairs:slab_seaglass_black'})
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)
-- ALIASES -- ALIASES
@ -739,3 +214,5 @@ minetest.register_alias("clams:redlightglass","seaglass:seaglassoff_red")
minetest.register_alias("clams:bluelightglass","seaglass:seaglassoff_blue") minetest.register_alias("clams:bluelightglass","seaglass:seaglassoff_blue")
minetest.register_alias("clams:whitelightglass","seaglass:seaglassoff_white") minetest.register_alias("clams:whitelightglass","seaglass:seaglassoff_white")
minetest.register_alias("clams:blacklightglass","seaglass:seaglassoff_black") minetest.register_alias("clams:blacklightglass","seaglass:seaglassoff_black")
minetest.log("action", "[sea - seaglass] loaded.")

View File

@ -4,3 +4,4 @@ stairs
clams clams
whiteshell? whiteshell?
colormachine? colormachine?
moreblocks?

View File

@ -81,8 +81,26 @@ minetest.register_node("seagravel:seagravel_redviolet", {
-- STAIRS -- STAIRS
local colors = {"", "cyan", "magenta", "lime", "aqua", "skyblue", "redviolet"}
stairs.register_stair_and_slab("seagravel", "seagravel:seagravel", if minetest.get_modpath("moreblocks") then
for i, color in ipairs(colors) do
local c = "_"..color
if i == 1 then c = "" end
local nodename = "seagravel:seagravel"..c
local ndef = table.copy(minetest.registered_nodes[nodename])
ndef.sunlight_propagates = true
ndef.place_param2 = nil
stairsplus:register_all(
"seagravel",
"seagravel"..c,
nodename,
ndef
)
end
else
stairs.register_stair_and_slab("seagravel", "seagravel:seagravel",
{crumbly=2, falling_node=1}, {crumbly=2, falling_node=1},
{"seagravel_seagravel.png"}, {"seagravel_seagravel.png"},
"Seagravel stair", "Seagravel stair",
@ -92,7 +110,7 @@ stairs.register_stair_and_slab("seagravel", "seagravel:seagravel",
dug = {name="default_gravel_footstep", gain=1.0}, dug = {name="default_gravel_footstep", gain=1.0},
})) }))
stairs.register_stair_and_slab("seagravel_cyan", "seagravel:seagravel_cyan", stairs.register_stair_and_slab("seagravel_cyan", "seagravel:seagravel_cyan",
{crumbly=2, falling_node=1}, {crumbly=2, falling_node=1},
{"seagravel_seagravel_cyan.png"}, {"seagravel_seagravel_cyan.png"},
"Seagravel stair cyan", "Seagravel stair cyan",
@ -102,7 +120,7 @@ stairs.register_stair_and_slab("seagravel_cyan", "seagravel:seagravel_cyan",
dug = {name="default_gravel_footstep", gain=1.0}, dug = {name="default_gravel_footstep", gain=1.0},
})) }))
stairs.register_stair_and_slab("seagravel_magenta", "seagravel:seagravel_magenta", stairs.register_stair_and_slab("seagravel_magenta", "seagravel:seagravel_magenta",
{crumbly=2, falling_node=1}, {crumbly=2, falling_node=1},
{"seagravel_seagravel_magenta.png"}, {"seagravel_seagravel_magenta.png"},
"Seagravel stair magenta", "Seagravel stair magenta",
@ -112,7 +130,7 @@ stairs.register_stair_and_slab("seagravel_magenta", "seagravel:seagravel_magenta
dug = {name="default_gravel_footstep", gain=1.0}, dug = {name="default_gravel_footstep", gain=1.0},
})) }))
stairs.register_stair_and_slab("seagravel_lime", "seagravel:seagravel_lime", stairs.register_stair_and_slab("seagravel_lime", "seagravel:seagravel_lime",
{cracky=3, stone=2}, {cracky=3, stone=2},
{"seagravel_seagravel_lime.png"}, {"seagravel_seagravel_lime.png"},
"Seagravel stair lime", "Seagravel stair lime",
@ -122,7 +140,7 @@ stairs.register_stair_and_slab("seagravel_lime", "seagravel:seagravel_lime",
dug = {name="default_gravel_footstep", gain=1.0}, dug = {name="default_gravel_footstep", gain=1.0},
})) }))
stairs.register_stair_and_slab("seagravel_aqua", "seagravel:seagravel_aqua", stairs.register_stair_and_slab("seagravel_aqua", "seagravel:seagravel_aqua",
{crumbly=2, falling_node=1}, {crumbly=2, falling_node=1},
{"seagravel_seagravel_aqua.png"}, {"seagravel_seagravel_aqua.png"},
"Seagravel stair aqua", "Seagravel stair aqua",
@ -132,7 +150,7 @@ stairs.register_stair_and_slab("seagravel_aqua", "seagravel:seagravel_aqua",
dug = {name="default_gravel_footstep", gain=1.0}, dug = {name="default_gravel_footstep", gain=1.0},
})) }))
stairs.register_stair_and_slab("seagravel_skyblue", "seagravel:seagravel_skyblue", stairs.register_stair_and_slab("seagravel_skyblue", "seagravel:seagravel_skyblue",
{crumbly=2, falling_node=1}, {crumbly=2, falling_node=1},
{"seagravel_seagravel_skyblue.png"}, {"seagravel_seagravel_skyblue.png"},
"Seagravel stair skyblue ", "Seagravel stair skyblue ",
@ -142,7 +160,7 @@ stairs.register_stair_and_slab("seagravel_skyblue", "seagravel:seagravel_skyblue
dug = {name="default_gravel_footstep", gain=1.0}, dug = {name="default_gravel_footstep", gain=1.0},
})) }))
stairs.register_stair_and_slab("seagravel_redviolet", "seagravel:seagravel_redviolet", stairs.register_stair_and_slab("seagravel_redviolet", "seagravel:seagravel_redviolet",
{crumbly=2, falling_node=1}, {crumbly=2, falling_node=1},
{"seagravel_seagravel_redviolet.png"}, {"seagravel_seagravel_redviolet.png"},
"Seagravel stair redviolet", "Seagravel stair redviolet",
@ -151,7 +169,7 @@ stairs.register_stair_and_slab("seagravel_redviolet", "seagravel:seagravel_redvi
footstep = {name="default_gravel_footstep", gain=0.5}, footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0}, dug = {name="default_gravel_footstep", gain=1.0},
})) }))
end
-- CRAFTING -- CRAFTING
@ -179,3 +197,5 @@ register_seagravel_craft("seagravel:seagravel_lime", {'clams:crushedwhite', 'def
register_seagravel_craft("seagravel:seagravel_aqua", {'clams:crushedwhite', 'default:gravel','dye:aqua'}) register_seagravel_craft("seagravel:seagravel_aqua", {'clams:crushedwhite', 'default:gravel','dye:aqua'})
register_seagravel_craft("seagravel:seagravel_skyblue", {'clams:crushedwhite', 'default:gravel','dye:skyblue'}) register_seagravel_craft("seagravel:seagravel_skyblue", {'clams:crushedwhite', 'default:gravel','dye:skyblue'})
register_seagravel_craft("seagravel:seagravel_redviolet", {'clams:crushedwhite', 'default:gravel','dye:redviolet'}) register_seagravel_craft("seagravel:seagravel_redviolet", {'clams:crushedwhite', 'default:gravel','dye:redviolet'})
minetest.log("action", "[sea - seagravel] loaded.")

View File

@ -72,3 +72,5 @@ minetest.register_craft({
{'default:steel_ingot', 'default:bronze_ingot', 'default:glass'}, {'default:steel_ingot', 'default:bronze_ingot', 'default:glass'},
}, },
}) })
minetest.log("action", "[sea - sealamps] loaded.")

View File

@ -1,2 +1 @@
default default
noairblocks

View File

@ -1,202 +1,155 @@
-- NODES -- NODES
minetest.register_node("seaplants:kelpgreen", { for color, cname in pairs({green = "Green", brown = "Brown"}) do
description = "Green Kelp", minetest.register_node(
drawtype = "plantlike", "seaplants:sand_with_kelp_"..color, {
tiles = {"seaplants_kelpgreen.png"}, description = cname.." Kelp",
inventory_image = "seaplants_kelpgreen.png", drawtype = "plantlike_rooted",
wield_image = "seaplants_kelpgreen.png", waving = 1,
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)
})
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(),
})
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)
})
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(),
})
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)
})
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)
})
minetest.register_node("seaplants:seaplantssandkelpgreen", {
description = "Sea plants sand kelp green",
tiles = {"default_sand.png"}, tiles = {"default_sand.png"},
is_ground_content = true, special_tiles = {{name = "seaplants_kelp"..color.."middle.png", tileable_vertical = true}},
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, inventory_image = "seaplants_kelp"..color..".png",
drop = 'default:sand', paramtype = "light",
sounds = default.node_sound_sand_defaults(), 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:seaplantsdirtkelpgreen", { on_use = minetest.item_eat(1),
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(),
})
minetest.register_node("seaplants:seaplantssandkelpbrown", { on_place = function(itemstack, placer, pointed_thing)
description = "Sea plants sand kelp brown", -- 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
local pos = pointed_thing.under
if minetest.get_node(pos).name ~= "default:sand" then
return itemstack
end
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()
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
return itemstack
end,
after_destruct = function(pos, oldnode)
minetest.set_node(pos, {name = "default:sand"})
end
})
-- 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
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"}, tiles = {"default_sand.png"},
is_ground_content = true, special_tiles = {{name = "seaplants_seagrass"..color..".png", tileable_vertical = true}},
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1}, inventory_image = "seaplants_seagrass"..color..".png",
drop = 'default:sand', groups = {snappy = 3},
sounds = default.node_sound_sand_defaults(), 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:seaplantsdirtkelpbrown", { on_use = minetest.item_eat(1),
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(),
})
minetest.register_node("seaplants:seaplantssandseagrassgreen", { on_place = function(itemstack, placer, pointed_thing)
description = "Sea plants sand seagrass green", if pointed_thing.type ~= "node" or not placer then
tiles = {"default_sand.png"}, return itemstack
is_ground_content = true, end
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("seaplants:seaplantsdirtseagrassgreen", { local player_name = placer:get_player_name()
description = "Sea plants dirt seagrass green", local pos_under = pointed_thing.under
tiles = {"default_dirt.png"}, local pos_above = pointed_thing.above
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("seaplants:seaplantssandseagrassred", { if minetest.get_node(pos_under).name ~= "default:sand" or
description = "Sea plants sand seagrass red", minetest.get_node(pos_above).name ~= "default:water_source" then
tiles = {"default_sand.png"}, return itemstack
is_ground_content = true, end
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("seaplants:seaplantsdirtseagrassred", { if minetest.is_protected(pos_under, player_name) or
description = "Sea plants dirt seagrass red", minetest.is_protected(pos_above, player_name) then
tiles = {"default_dirt.png"}, minetest.chat_send_player(player_name, "Node is protected")
is_ground_content = true, minetest.record_protection_violation(pos_under, player_name)
groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, return itemstack
drop = 'default:dirt', end
sounds = default.node_sound_dirt_defaults(),
}) 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 -- CRAFT ITEMS
@ -214,326 +167,61 @@ minetest.register_craftitem("seaplants:seasaladmix", {
minetest.register_craft({ minetest.register_craft({
type = "shapeless", type = "shapeless",
output = "seaplants:seasaladmix", 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({ minetest.register_decoration(
ore_type = "scatter", {
ore = "seaplants:seaplantssandkelpgreen", name = "seaplants:seaplants",
wherein = "default:sand", deco_type = "simple",
clust_scarcity = 10*10*10, place_on = {"default:sand"},
clust_num_ores = 24, place_offset_y = -1,
clust_size = 4, sidelen = 16,
y_max = -14, noise_params = {
y_min = -31000, offset = -0.04,
}) scale = 0.1,
spread = {x = 200, y = 200, z = 200},
minetest.register_ore({ seed = 87113,
ore_type = "scatter", octaves = 3,
ore = "seaplants:seaplantsdirtkelpgreen", persist = 0.7
wherein = "default:dirt", },
clust_scarcity = 10*10*10, biomes = {
clust_num_ores = 24, "taiga_ocean",
clust_size = 4, "snowy_grassland_ocean",
y_max = -14, "grassland_ocean",
y_min = -31000, "coniferous_forest_ocean",
}) "deciduous_forest_ocean",
"sandstone_desert_ocean",
minetest.register_ore({ "cold_desert_ocean"},
ore_type = "scatter", y_max = -5,
ore = "seaplants:seaplantssandkelpbrown", y_min = -10,
wherein = "default:sand", flags = "force_placement",
clust_scarcity = 10*10*10, decoration = {
clust_num_ores = 24, "default:sand_with_kelp", "seaplants:sand_with_kelp_green",
clust_size = 4, "seaplants:sand_with_kelp_brown", "seaplants:seagrass_green",
y_max = -14, "seaplants:seagrass_red"
y_min = -31000, },
}) param2 = 48,
param2_max = 96,
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
})
-- ALIASES -- ALIASES
minetest.register_alias("seaplants:stemsgreen","default:sand") minetest.register_alias("seaplants:stemsgreen","default:sand")
minetest.register_alias("seaplants:stemsbrown","default:dirt") minetest.register_alias("seaplants:stemsbrown","default:dirt")
minetest.register_alias("seaplants:leafyblue","default:sand") minetest.register_alias("seaplants:leafyblue","default:sand")
minetest.register_alias("seaplants:leafygreen","default:dirt") minetest.register_alias("seaplants:leafygreen","default:dirt")
minetest.register_alias("seaplants:chewstickgreen","seaplants:kelpgreen") minetest.register_alias("seaplants:chewstickgreen","seaplants:sand_with_kelp_green")
minetest.register_alias("seaplants:chewstickbrown","seaplants:kelpbrown") minetest.register_alias("seaplants:chewstickbrown","seaplants:sand_with_kelp_brown")
minetest.register_alias("seaplants:leavysnackgreen","seaplants:seagrassgreen") minetest.register_alias("seaplants:leavysnackgreen","seaplants:seagrass_green")
minetest.register_alias("seaplants:leavysnackblue","seaplants:seagrassred") minetest.register_alias("seaplants:leavysnackblue","seaplants:seagrass_red")
minetest.register_alias("seaplants:seasalad","seaplants:seasaladmix") minetest.register_alias("seaplants:seasalad","seaplants:seasaladmix")
minetest.log("action", "[sea - seaplants] loaded.")

View File

@ -4,3 +4,4 @@ stairs
clams clams
whiteshell? whiteshell?
colormachine? colormachine?
moreblocks?

View File

@ -67,56 +67,74 @@ minetest.register_node("seastone:seastone_redviolet", {
-- STAIRS -- STAIRS
local colors = {"", "cyan", "magenta", "lime", "aqua", "skyblue", "redviolet"}
stairs.register_stair_and_slab("seastone", "seastone:seastone", if minetest.get_modpath("moreblocks") then
for i, color in ipairs(colors) do
local c = "_"..color
if i == 1 then c = "" end
local nodename = "seastone:seastone"..c
local ndef = table.copy(minetest.registered_nodes[nodename])
ndef.sunlight_propagates = true
ndef.place_param2 = nil
stairsplus:register_all(
"seastone",
"seastone"..c,
nodename,
ndef
)
end
else
stairs.register_stair_and_slab("seastone", "seastone:seastone",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastone_seastone.png"}, {"seastone_seastone.png"},
"Seastone stair", "Seastone stair",
"Seastone slab", "Seastone slab",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seastone_cyan", "seastone:seastone_cyan", stairs.register_stair_and_slab("seastone_cyan", "seastone:seastone_cyan",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastone_seastone_cyan.png"}, {"seastone_seastone_cyan.png"},
"Seastone stair cyan", "Seastone stair cyan",
"Seastone slab cyan", "Seastone slab cyan",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seastone_magenta", "seastone:seastone_magenta", stairs.register_stair_and_slab("seastone_magenta", "seastone:seastone_magenta",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastone_seastone_magenta.png"}, {"seastone_seastone_magenta.png"},
"Seastone stair magenta", "Seastone stair magenta",
"Seastone slab magenta", "Seastone slab magenta",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seastone_lime", "seastone:seastone_lime", stairs.register_stair_and_slab("seastone_lime", "seastone:seastone_lime",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastone_seastone_lime.png"}, {"seastone_seastone_lime.png"},
"Seastone stair lime", "Seastone stair lime",
"Seastone slab lime", "Seastone slab lime",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seastone_aqua", "seastone:seastone_aqua", stairs.register_stair_and_slab("seastone_aqua", "seastone:seastone_aqua",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastone_seastone_aqua.png"}, {"seastone_seastone_aqua.png"},
"Seastone stair aqua", "Seastone stair aqua",
"Seastone slab aqua", "Seastone slab aqua",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seastone_skyblue", "seastone:seastone_skyblue", stairs.register_stair_and_slab("seastone_skyblue", "seastone:seastone_skyblue",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastone_seastone_skyblue.png"}, {"seastone_seastone_skyblue.png"},
"Seastone stair skyblue ", "Seastone stair skyblue ",
"Seastone slab skyblue", "Seastone slab skyblue",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seastone_redviolet", "seastone:seastone_redviolet", stairs.register_stair_and_slab("seastone_redviolet", "seastone:seastone_redviolet",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastone_seastone_redviolet.png"}, {"seastone_seastone_redviolet.png"},
"Seastone stair redviolet", "Seastone stair redviolet",
"Seastone slab redviolet", "Seastone slab redviolet",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
end
-- CRAFTING -- CRAFTING
@ -163,3 +181,5 @@ register_smoothblock_cooking("seastone:seastone_lime", "seacobble:seacobble_lime
register_smoothblock_cooking("seastone:seastone_aqua", "seacobble:seacobble_aqua") register_smoothblock_cooking("seastone:seastone_aqua", "seacobble:seacobble_aqua")
register_smoothblock_cooking("seastone:seastone_skyblue", "seacobble:seacobble_skyblue") register_smoothblock_cooking("seastone:seastone_skyblue", "seacobble:seacobble_skyblue")
register_smoothblock_cooking("seastone:seastone_redviolet", "seacobble:seacobble_redviolet") register_smoothblock_cooking("seastone:seastone_redviolet", "seacobble:seacobble_redviolet")
minetest.log("action", "[sea - seastone] loaded.")

View File

@ -2,3 +2,4 @@ default
stairs stairs
seastone seastone
colormachine? colormachine?
moreblocks?

View File

@ -61,56 +61,74 @@ minetest.register_node("seastonebrick:seastonebrick_redviolet", {
-- STAIRS -- STAIRS
local colors = {"", "cyan", "magenta", "lime", "aqua", "skyblue", "redviolet"}
stairs.register_stair_and_slab("seastonebrick", "seastonebrick:seastonebrick", if minetest.get_modpath("moreblocks") then
for i, color in ipairs(colors) do
local c = "_"..color
if i == 1 then c = "" end
local nodename = "seastonebrick:seastonebrick"..c
local ndef = table.copy(minetest.registered_nodes[nodename])
ndef.sunlight_propagates = true
ndef.place_param2 = nil
stairsplus:register_all(
"seastonebrick",
"seastonebrick"..c,
nodename,
ndef
)
end
else
stairs.register_stair_and_slab("seastonebrick", "seastonebrick:seastonebrick",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastonebrick_seastonebrick.png"}, {"seastonebrick_seastonebrick.png"},
"Seastonebrick stair", "Seastonebrick stair",
"Seastonebrick slab", "Seastonebrick slab",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seastonebrick_cyan", "seastonebrick:seastonebrick_cyan", stairs.register_stair_and_slab("seastonebrick_cyan", "seastonebrick:seastonebrick_cyan",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastonebrick_seastonebrick_cyan.png"}, {"seastonebrick_seastonebrick_cyan.png"},
"Seastonebrick stair cyan", "Seastonebrick stair cyan",
"Seastonebrick slab cyan", "Seastonebrick slab cyan",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seastonebrick_magenta", "seastonebrick:seastonebrick_magenta", stairs.register_stair_and_slab("seastonebrick_magenta", "seastonebrick:seastonebrick_magenta",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastonebrick_seastonebrick_magenta.png"}, {"seastonebrick_seastonebrick_magenta.png"},
"Seastonebrick stair magenta", "Seastonebrick stair magenta",
"Seastonebrick slab magenta", "Seastonebrick slab magenta",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seastonebrick_lime", "seastonebrick:seastonebrick_lime", stairs.register_stair_and_slab("seastonebrick_lime", "seastonebrick:seastonebrick_lime",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastonebrick_seastonebrick_lime.png"}, {"seastonebrick_seastonebrick_lime.png"},
"Seastonebrick stair lime", "Seastonebrick stair lime",
"Seastonebrick slab lime", "Seastonebrick slab lime",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seastonebrick_aqua", "seastonebrick:seastonebrick_aqua", stairs.register_stair_and_slab("seastonebrick_aqua", "seastonebrick:seastonebrick_aqua",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastonebrick_seastonebrick_aqua.png"}, {"seastonebrick_seastonebrick_aqua.png"},
"Seastonebrick stair aqua", "Seastonebrick stair aqua",
"Seastonebrick slab aqua", "Seastonebrick slab aqua",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seastonebrick_skyblue", "seastonebrick:seastonebrick_skyblue", stairs.register_stair_and_slab("seastonebrick_skyblue", "seastonebrick:seastonebrick_skyblue",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastonebrick_seastonebrick_skyblue.png"}, {"seastonebrick_seastonebrick_skyblue.png"},
"Seastonebrick stair skyblue ", "Seastonebrick stair skyblue ",
"Seastonebrick slab skyblue", "Seastonebrick slab skyblue",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
stairs.register_stair_and_slab("seastonebrick_redviolet", "seastonebrick:seastonebrick_redviolet", stairs.register_stair_and_slab("seastonebrick_redviolet", "seastonebrick:seastonebrick_redviolet",
{cracky=3, stone=1}, {cracky=3, stone=1},
{"seastonebrick_seastonebrick_redviolet.png"}, {"seastonebrick_seastonebrick_redviolet.png"},
"Seastonebrick stair redviolet", "Seastonebrick stair redviolet",
"Seastonebrick slab redviolet", "Seastonebrick slab redviolet",
default.node_sound_stone_defaults()) default.node_sound_stone_defaults())
end
-- CRAFTING -- CRAFTING
@ -129,3 +147,5 @@ register_blockbrick_craft("seastonebrick:seastonebrick_lime", {{'seastone:seasto
register_blockbrick_craft("seastonebrick:seastonebrick_aqua", {{'seastone:seastone_aqua', 'seastone:seastone_aqua'}, {'seastone:seastone_aqua', 'seastone:seastone_aqua'}}) register_blockbrick_craft("seastonebrick:seastonebrick_aqua", {{'seastone:seastone_aqua', 'seastone:seastone_aqua'}, {'seastone:seastone_aqua', 'seastone:seastone_aqua'}})
register_blockbrick_craft("seastonebrick:seastonebrick_skyblue", {{'seastone:seastone_skyblue', 'seastone:seastone_skyblue'}, {'seastone:seastone_skyblue', 'seastone:seastone_skyblue'}}) register_blockbrick_craft("seastonebrick:seastonebrick_skyblue", {{'seastone:seastone_skyblue', 'seastone:seastone_skyblue'}, {'seastone:seastone_skyblue', 'seastone:seastone_skyblue'}})
register_blockbrick_craft("seastonebrick:seastonebrick_redviolet", {{'seastone:seastone_redviolet', 'seastone:seastone_redviolet'}, {'seastone:seastone_redviolet', 'seastone:seastone_redviolet'}}) register_blockbrick_craft("seastonebrick:seastonebrick_redviolet", {{'seastone:seastone_redviolet', 'seastone:seastone_redviolet'}, {'seastone:seastone_redviolet', 'seastone:seastone_redviolet'}})
minetest.log("action", "[sea - seastonebrick] loaded.")

View File

@ -1 +1,2 @@
default default
treasurer?

View File

@ -1,5 +1,25 @@
-- NODES -- Fill chests function
local random = math.random
local function fill_chest(pos, min_pre, max_pre)
local n = minetest.get_node(pos)
if n and n.name and n.name == "default:chest" then
local meta = minetest.get_meta(pos)
local inv = meta:get_inventory()
inv:set_size("main", 32)
local stacks = {}
if minetest.get_modpath("treasurer") ~= nil then
stacks = treasurer.select_random_treasures(8, min_pre, max_pre, {"armes", "armures", "outils", "bonus", "carburant", "precieux"})
end -- TODO else if no treasurer
for s=1,#stacks do
if not inv:contains_item("main", stacks[s]) then
inv:set_stack("main", random(1,32), stacks[s])
end
end
end
end
-- NODES
minetest.register_node("seawrecks:woodship", { minetest.register_node("seawrecks:woodship", {
description = "Sand for the wooden ship", description = "Sand for the wooden ship",
@ -13,123 +33,17 @@ minetest.register_node("seawrecks:uboot", {
description = "Dirt for the U-boot", description = "Dirt for the U-boot",
tiles = {"default_dirt.png"}, tiles = {"default_dirt.png"},
is_ground_content = true, is_ground_content = true,
groups = {crumbly=3,soil=1, not_in_creative_inventory=1}, groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
sounds = default.node_sound_dirt_defaults(), sounds = default.node_sound_sand_defaults(),
}) })
minetest.register_node("seawrecks:woodshipchest", {
description = "Wooden ship chest",
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side.png", "default_chest_front.png"},
paramtype2 = "facedir",
groups = {choppy=2,oddly_breakable_by_hand=2, not_in_creative_inventory=1},
drop = 'default:chest',
legacy_facedir_simple = true,
is_ground_content = false,
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec",
"size[8,9]"..
"list[current_name;main;0,0;8,4;]"..
"list[current_player;main;0,5;8,4;]" ..
"listring[current_name;main]" ..
"listring[current_player;main]")
meta:set_string("infotext", "Woodship chest")
local inv = meta:get_inventory()
inv:set_size("main", 8*4)
meta:from_table({
inventory = {
main = {[1] = "default:tree 99", [2] = "default:jungletree 99", [3] = "default:wood 99", [4] = "default:junglewood 99", [5] = "default:sapling 99", [6] = "default:junglesapling 99", [7] = "default:grass_1 99", [8] = "default:junglegrass 99", [32] = ""}
},
fields = {
formspec = "size[8,9;]list[context;main;0,0;8,4;]list[current_player;main;0,5;8,4;]" ..
"listring[context;main]" ..
"listring[current_player;main]",
infotext = "Normal chest"
}
})
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main")
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name()..
" moves stuff in chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" moves stuff to chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos))
end,
})
minetest.register_node("seawrecks:ubootchest", {
description = "U-boot chest",
tiles = {"default_chest_top.png", "default_chest_top.png", "default_chest_side.png",
"default_chest_side.png", "default_chest_side.png", "default_chest_front.png"},
paramtype2 = "facedir",
groups = {choppy=2,oddly_breakable_by_hand=2, not_in_creative_inventory=1},
drop = 'default:chest',
legacy_facedir_simple = true,
is_ground_content = false,
sounds = default.node_sound_wood_defaults(),
on_construct = function(pos)
local meta = minetest.get_meta(pos)
meta:set_string("formspec",
"size[8,9]"..
"list[current_name;main;0,0;8,4;]"..
"list[current_player;main;0,5;8,4;]" ..
"listring[current_name;main]" ..
"listring[current_player;main]")
meta:set_string("infotext", "U-boot chest")
local inv = meta:get_inventory()
inv:set_size("main", 8*4)
meta:from_table({
inventory = {
main = {[1] = "default:gold_ingot 99", [2] = "default:mese_crystal 99", [3] = "default:diamond 99", [32] = ""}
},
fields = {
formspec = "size[8,9;]list[context;main;0,0;8,4;]list[current_player;main;0,5;8,4;]" ..
"listring[context;main]" ..
"listring[current_player;main]",
infotext = "Normal chest"
}
})
end,
can_dig = function(pos,player)
local meta = minetest.get_meta(pos);
local inv = meta:get_inventory()
return inv:is_empty("main")
end,
on_metadata_inventory_move = function(pos, from_list, from_index, to_list, to_index, count, player)
minetest.log("action", player:get_player_name()..
" moves stuff in chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_put = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" moves stuff to chest at "..minetest.pos_to_string(pos))
end,
on_metadata_inventory_take = function(pos, listname, index, stack, player)
minetest.log("action", player:get_player_name()..
" takes stuff from chest at "..minetest.pos_to_string(pos))
end,
})
-- WRECK GENERATION -- WRECK GENERATION
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "seawrecks:woodship", ore = "seawrecks:woodship",
wherein = "default:sand", wherein = "default:sand",
clust_scarcity = 30*30*30, clust_scarcity = 40*40*40,
clust_num_ores = 1, clust_num_ores = 1,
clust_size = 12, clust_size = 12,
y_max = -4, y_max = -4,
@ -139,11 +53,11 @@ minetest.register_ore({
minetest.register_ore({ minetest.register_ore({
ore_type = "scatter", ore_type = "scatter",
ore = "seawrecks:uboot", ore = "seawrecks:uboot",
wherein = "default:dirt", wherein = "default:sand",
clust_scarcity = 30*30*30, clust_scarcity = 50*50*50,
clust_num_ores = 1, clust_num_ores = 1,
clust_size = 12, clust_size = 12,
y_max = -8, y_max = -10,
y_min = -31000, y_min = -31000,
}) })
@ -358,7 +272,9 @@ local yp = {x = pos.x, y = pos.y + 3, z = pos.z}
pos.y = pos.y - 7 pos.y = pos.y - 7
pos.z = pos.z + 1 pos.z = pos.z + 1
pos.x = pos.x - 2 pos.x = pos.x - 2
minetest.add_node(pos, {name = "seawrecks:woodshipchest"})
minetest.add_node(pos, {name = "default:chest"})
fill_chest(pos, 1, 4)
else else
return return
@ -375,7 +291,7 @@ local yp = {x = pos.x, y = pos.y + 8, z = pos.z}
if minetest.get_node(pos).name == "seawrecks:uboot" and if minetest.get_node(pos).name == "seawrecks:uboot" and
(minetest.get_node(yp).name == "default:water_source" or (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then minetest.get_node(yp).name == "noairblocks:water_sourcex") then
minetest.add_node(pos, {name = "default:dirt"}) minetest.add_node(pos, {name = "default:sand"})
pos.y = pos.y + 1 pos.y = pos.y + 1
pos.x = pos.x - 15 pos.x = pos.x - 15
@ -925,10 +841,16 @@ local yp = {x = pos.x, y = pos.y + 8, z = pos.z}
pos.y = pos.y - 7 pos.y = pos.y - 7
pos.x = pos.x +16 pos.x = pos.x +16
pos.z = pos.z +3 pos.z = pos.z +3
minetest.add_node(pos, {name = "seawrecks:ubootchest"})
minetest.add_node(pos, {name = "default:chest"})
fill_chest(pos, 1, 10)
else else
return return
end end
end end
}) })
minetest.register_alias("seawrecks:woodshipchest", "default:chest")
minetest.log("action", "[sea - seawrecks] loaded.")

View File

@ -217,3 +217,5 @@ function stairsshine.register_stair_and_slab(subname, recipeitem, groups, images
stairsshine.register_stair(subname, recipeitem, groups, images, desc_stair, sounds) stairsshine.register_stair(subname, recipeitem, groups, images, desc_stair, sounds)
stairsshine.register_slab(subname, recipeitem, groups, images, desc_slab, sounds) stairsshine.register_slab(subname, recipeitem, groups, images, desc_slab, sounds)
end end
minetest.log("action", "[sea - stairsshine] loaded.")

View File

@ -81,4 +81,4 @@ end
minetest.register_alias("clams:whiteshell","whiteshell:whiteshell") minetest.register_alias("clams:whiteshell","whiteshell:whiteshell")
print("[Mod] Sea Loaded.") minetest.log("action", "[sea - whiteshell] loaded.")