1
0
mirror of https://github.com/sys4-fr/server-nalc.git synced 2025-06-28 06:11:47 +02:00

Clean up the "/mods" folder and new "Ice" texture

- Delete the mod « painting »
- Delete the mod « player_notes »
- Delete useless temporary files (.lua)
- Change the « ice » texture
This commit is contained in:
Ombridride
2014-11-03 22:17:10 +01:00
parent 72ad0dc7b7
commit ca2f79403c
53 changed files with 0 additions and 4522 deletions

View File

@ -1,420 +0,0 @@
-- NODES
minetest.register_node("clams:sandalgae", {
description = "Sandalgae",
tiles = {"default_sand.png^clams_algae.png"},
paramtype = "light",
is_ground_content = true,
groups = {crumbly=3, falling_node=1, sand=1},
drop = {
items = {
{
items = {'"clams:collectedalgae" 4'},
},
{
items = {'clams:sandalgaeused'},
}
}
},
sounds = default.node_sound_sand_defaults(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("clams:dirtalgae", {
description = "Dirtalgae",
tiles = {"default_dirt.png^clams_algae.png"},
paramtype = "light",
is_ground_content = true,
groups = {crumbly=3},
drop = {
items = {
{
items = {'"clams:collectedalgae" 4'},
},
{
items = {'clams:dirtalgaeused'},
}
}
},
sounds = default.node_sound_dirt_defaults,
})
minetest.register_node("clams:sandalgaeused", {
description = "Used sandalgae",
tiles = {"default_sand.png^clams_algaeused.png"},
inventory_image = {"default_sand.png^clams_algaeused.png"},
is_ground_content = true,
groups = {crumbly=3, falling_node=1, sand=1},
sounds = default.node_sound_sand_defaults(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("clams:dirtalgaeused", {
description = "Used dirtalgae",
tiles = {"default_dirt.png^clams_algaeused.png"},
inventory_image = {"default_dirt.png^clams_algaeused.png"},
is_ground_content = true,
groups = {crumbly=3},
sounds = default.node_sound_dirt_defaults(),
})
-- ENTITIES
-- The registration of the entities' code is copied from celeron55's mob (the DM's fireball)
minetest.register_entity("clams:whiteshell", {
description="White shell",
hp_max = 15,
physical = true,
collisionbox = {-0.2,-0.2,-0.2, 0.2,0.2,0.2},
visual = "sprite",
visual_size = {x=0.5, y=0.5},
textures = {"clams_whiteshell.png^[makealpha:128,128,0"},
spritediv = {x=1, y=3},
initial_sprite_basepos = {x=0, y=0},
drops = {
{name = "clams:crushedwhite", chance = 1, min = 1, max = 4},
},
phase = 0,
phasetimer = 0,
on_activate = function(self, staticdata)
minetest.log("whiteshell activated!")
end,
on_step = function(self, dtime)
self.phasetimer = self.phasetimer + dtime
if self.phasetimer > 2.0 then
self.phasetimer = self.phasetimer - 2.0
self.phase = self.phase + 1
if self.phase >= 3 then
self.phase = 0
end
self.object:setsprite({x=0, y=self.phase})
phasearmor = {
[0]={fleshy=0},
[1]={fleshy=30},
[2]={fleshy=70}
}
self.object:set_armor_groups(phasearmor[self.phase])
end
end,
on_punch = function(self, hitter)
if self.object:get_hp() <= 0 then
if hitter and hitter:is_player() and hitter:get_inventory() then
for _,drop in ipairs(self.drops) do
if math.random(1, drop.chance) == 1 then
hitter:get_inventory():add_item("main", ItemStack(drop.name.." "..math.random(drop.min, drop.max)))
end
end
else
for _,drop in ipairs(self.drops) do
if math.random(1, drop.chance) == 1 then
for i=1,math.random(drop.min, drop.max) do
local obj = minetest.add_item(self.object:getpos(), drop.name)
if obj then
obj:get_luaentity().collect = true
local x = math.random(1, 5)
if math.random(1,2) == 1 then
x = -x
end
local z = math.random(1, 5)
if math.random(1,2) == 1 then
z = -z
end
obj:setvelocity({x=1/x, y=obj:getvelocity().y, z=1/z})
end
end
end
end
end
end
end,
})
-- CRAFT ITEMS
minetest.register_craftitem("clams:collectedalgae", {
description = "Collected algae",
inventory_image = "clams_collectedalgae.png",
})
minetest.register_craftitem("clams:crushedwhite", {
description = "Crushed white shell",
inventory_image = "clams_crushedwhite.png",
})
-- ALGAE GENERATION
minetest.register_ore({
ore_type = "scatter",
ore = "clams:sandalgae",
wherein = "default:sand",
clust_scarcity = 9*9*9,
clust_num_ores = 16,
clust_size = 4,
height_max = -4,
height_min = -60,
})
minetest.register_ore({
ore_type = "scatter",
ore = "clams:dirtalgae",
wherein = "default:dirt",
clust_scarcity = 9*9*9,
clust_num_ores = 16,
clust_size = 4,
height_max = -4,
height_min = -60,
})
local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max)
if maxp.y < height_min or minp.y > height_max then
return
end
local y_min = math.max(minp.y, height_min)
local y_max = math.min(maxp.y, height_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 >= height_min and y0 <= height_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 = {"clams:sandalgaeused"},
interval = 30,
chance = 20,
action = function(pos, node, active_object_count, active_object_count_wider)
local y = {x = pos.x, y = pos.y + 1, z = pos.z }
local yy = {x = pos.x, y = pos.y + 2, z = pos.z }
if minetest.get_node(y).name == "default:water_source" or
minetest.get_node(y).name == "noairblocks:water_sourcex" then
if minetest.get_node(yy).name == "default:water_source" or
minetest.get_node(yy).name == "noairblocks:water_sourcex" then
minetest.add_node(pos, {name = "clams:sandalgae"}) else
return
end
end
end,
})
minetest.register_abm({
nodenames = {"clams:dirtalgaeused"},
interval = 30,
chance = 20,
action = function(pos, node, active_object_count, active_object_count_wider)
local y = {x = pos.x, y = pos.y + 1, z = pos.z }
local yy = {x = pos.x, y = pos.y + 2, z = pos.z }
if minetest.get_node(y).name == "default:water_source" or
minetest.get_node(y).name == "noairblocks:water_sourcex" then
if minetest.get_node(yy).name == "default:water_source" or
minetest.get_node(yy).name == "noairblocks:water_sourcex" then
minetest.add_node(pos, {name = "clams:dirtalgae"}) else
return
end
end
end,
})
minetest.register_abm({
nodenames = {"clams:sandalgae"},
interval = 40,
chance = 40,
action = function(pos, node, active_object_count, active_object_count_wider)
local y = {x = pos.x, y = pos.y + 1, z = pos.z }
local yy = {x = pos.x, y = pos.y + 2, z = pos.z }
if (active_object_count_wider + active_object_count_wider) > 40 then
return
elseif (minetest.get_node(y).name == "default:water_source" or
minetest.get_node(y).name == "noairblocks:water_sourcex") then
if (minetest.get_node(yy).name == "default:water_source" or
minetest.get_node(yy).name == "noairblocks:water_sourcex") then
pos.y=pos.y + 1
minetest.add_entity(pos, "clams:whiteshell")
end
end
end,
})
minetest.register_abm({
nodenames = {"clams:dirtalgae"},
interval = 40,
chance = 40,
action = function(pos, node, active_object_count, active_object_count_wider)
local y = {x = pos.x, y = pos.y + 1, z = pos.z }
local yy = {x = pos.x, y = pos.y + 2, z = pos.z }
if (active_object_count_wider + active_object_count_wider) > 40 then
return
elseif (minetest.get_node(y).name == "default:water_source" or
minetest.get_node(y).name == "noairblocks:water_sourcex") then
if (minetest.get_node(yy).name == "default:water_source" or
minetest.get_node(yy).name == "noairblocks:water_sourcex") then
pos.y=pos.y + 1
minetest.add_entity(pos, "clams:whiteshell")
end
end
end,
})
-- ALIASES
minetest.register_alias("clams:yellowalgae","clams:collectedalgae")
minetest.register_alias("clams:redalgae","clams:collectedalgae")
minetest.register_alias("clams:bluealgae","clams:collectedalgae")
minetest.register_alias("clams:yellowshell","clams:whiteshell")
minetest.register_alias("clams:redshell","clams:whiteshell")
minetest.register_alias("clams:blueshell","clams:whiteshell")
minetest.register_alias("clams:yellowseedsanddirt","clams:sandalgae")
minetest.register_alias("clams:redseedsanddirt","clams:dirtalgae")
minetest.register_alias("clams:blueseedsanddirt","clams:sandalgae")
minetest.register_alias("clams:yellowseed","clams:collectedalgae")
minetest.register_alias("clams:redseed","clams:collectedalgae")
minetest.register_alias("clams:blueseed","clams:collectedalgae")
minetest.register_alias("clams:sanddirt","clams:sandalgaeused")
minetest.register_alias("clams:sanddirtalgae","clams:dirtalgae")
minetest.register_alias("clams:sanddirtused","clams:dirtalgaeused")
minetest.register_alias("clams:sandbalgae","clams:sandalgae")
minetest.register_alias("clams:dirtbalgae","clams:dirtalgae")
minetest.register_alias("clams:crushedyellow","clams:crushedwhite")
minetest.register_alias("clams:crushedred","clams:crushedwhite")
minetest.register_alias("clams:crushedblue","clams:crushedwhite")
minetest.register_alias("clams:crushedblack","clams:crushedwhite")
minetest.register_alias("clams:emptybleacher","colormachine:colormachine")
minetest.register_alias("clams:filledbleacher","colormachine:colormachine")
minetest.register_alias("clams:readybleacher","colormachine:colormachine")
if( minetest.get_modpath( "colormachine") ~= nil ) then
minetest.register_alias("clams:emptybleacher","colormachine:colormachine")
minetest.register_alias("clams:filledbleacher","colormachine:colormachine")
minetest.register_alias("clams:readybleacher","colormachine:colormachine") else
minetest.register_alias("clams:emptybleacher","default:mese")
minetest.register_alias("clams:filledbleacher","default:mese")
minetest.register_alias("clams:readybleacher","default:mese")
return
end
-- ALIASES OLDEST VERSION
minetest.register_alias("algae:yellowalgae","clams:collectedalgae")
minetest.register_alias("algae:redalgae","clams:collectedalgae")
minetest.register_alias("algae:bluealgae","clams:collectedalgae")
minetest.register_alias("algae:sandalgae","clams:sandalgae")
minetest.register_alias("algae:dirtalgae","clams:dirtalgae")
minetest.register_alias("algae:sandbalgae","clams:sandalgae")
minetest.register_alias("algae:dirtbalgae","clams:dirtalgae")
minetest.register_alias("sea_cult:emptybleacher","colormachine:colormachine")
minetest.register_alias("sea_cult:filledbleacher","colormachine:colormachine")
minetest.register_alias("sea_cult:readybleacher","colormachine:colormachine")
if( minetest.get_modpath( "colormachine") ~= nil ) then
minetest.register_alias("sea_cult:emptybleacher","colormachine:colormachine")
minetest.register_alias("sea_cult:filledbleacher","colormachine:colormachine")
minetest.register_alias("sea_cult:readybleacher","colormachine:colormachine") else
minetest.register_alias("sea_cult:emptybleacher","default:mese")
minetest.register_alias("sea_cult:filledbleacher","default:mese")
minetest.register_alias("sea_cult:readybleacher","default:mese")
return
end
minetest.register_alias("sea_cult:sanddirt","clams:sandalgaeused")
minetest.register_alias("sea_cult:sanddirtalgae","clams:dirtalgae")
minetest.register_alias("sea_cult:sanddirtused","clams:dirtalgaeused")
minetest.register_alias("shells:yellowshell","clams:whiteshell")
minetest.register_alias("shells:redshell","clams:whiteshell")
minetest.register_alias("shells:blueshell","clams:whiteshell")
minetest.register_alias("shells:yellowseed","clams:collectedalgae")
minetest.register_alias("shells:redseed","clams:collectedalgae")
minetest.register_alias("shells:blueseed","clams:collectedalgae")
minetest.register_alias("shells:crushedyellow","clams:crushedwhite")
minetest.register_alias("shells:crushedred","clams:crushedwhite")
minetest.register_alias("shells:crushedblue","clams:crushedwhite")
minetest.register_alias("shells:crushedblack","clams:crushedwhite")
minetest.register_alias("shells:crushedwhite","clams:crushedwhite")
minetest.register_alias("shells_dye:yellowlightglass","clams:yellowlightglass")
minetest.register_alias("shells_dye:redlightglass","clams:redlightglass")
minetest.register_alias("shells_dye:bluelightglass","clams:bluelightglass")
minetest.register_alias("shells_dye:whitelightglass","clams:whitelightglass")
minetest.register_alias("shells_dye:blacklightglass","clams:blacklightglass")

View File

@ -1,734 +0,0 @@
-- NODES
minetest.register_node("seacoral:coralcyan", {
description = "Cyan Coral",
drawtype = "plantlike",
tiles = {"seacoral_coralcyan.png"},
inventory_image = "seacoral_coralcyan.png",
wield_image = "seacoral_coralcyan.png",
paramtype = "light",
walkable = false,
climbable = true,
drowning = 1,
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3}
},
post_effect_color = {a=64, r=100, g=100, b=200},
groups = {snappy=3, seacoral=1, sea=1,basecolor_cyan=1},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("seacoral:coralmagenta", {
description = "Magenta Coral",
drawtype = "plantlike",
tiles = {"seacoral_coralmagenta.png"},
inventory_image = "seacoral_coralmagenta.png",
wield_image = "seacoral_coralmagenta.png",
paramtype = "light",
walkable = false,
climbable = true,
drowning = 1,
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
},
post_effect_color = {a=64, r=100, g=100, b=200},
groups = {snappy=3, seacoral=1, sea=1,basecolor_magenta=1},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("seacoral:coralaqua", {
description = "Aqua Coral",
drawtype = "plantlike",
tiles = {"seacoral_coralaqua.png"},
inventory_image = "seacoral_coralaqua.png",
wield_image = "seacoral_coralaqua.png",
paramtype = "light",
walkable = false,
climbable = true,
drowning = 1,
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.3, -0.3, 0.3, 0.3, 0.3}
},
post_effect_color = {a=64, r=100, g=100, b=200},
groups = {snappy=3, seacoral=1, sea=1,excolor_aqua=1},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("seacoral:corallime", {
description = "Lime Coral",
drawtype = "plantlike",
tiles = {"seacoral_corallime.png"},
inventory_image = "seacoral_corallime.png",
wield_image = "seacoral_corallime.png",
paramtype = "light",
walkable = false,
climbable = true,
drowning = 1,
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
},
post_effect_color = {a=64, r=100, g=100, b=200},
groups = {snappy=3, seacoral=1, sea=1,excolor_lime=1},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("seacoral:coralskyblue", {
description = "Skyblue Coral",
drawtype = "plantlike",
tiles = {"seacoral_coralskyblue.png"},
inventory_image = "seacoral_coralskyblue.png",
wield_image = "seacoral_coralskyblue.png",
paramtype = "light",
walkable = false,
climbable = true,
drowning = 1,
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
},
post_effect_color = {a=64, r=100, g=100, b=200},
groups = {snappy=3, seacoral=1, sea=1,excolor_skyblue=1},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("seacoral:coralredviolet", {
description = "Redviolet Coral",
drawtype = "plantlike",
tiles = {"seacoral_coralredviolet.png"},
inventory_image = "seacoral_coralredviolet.png",
wield_image = "seacoral_coralredviolet.png",
paramtype = "light",
walkable = false,
climbable = true,
drowning = 1,
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.5, 0.3}
},
post_effect_color = {a=64, r=100, g=100, b=200},
groups = {snappy=3, seacoral=1, sea=1,excolor_redviolet=1},
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("seacoral:seacoralsandcyan", {
description = "Sea coral sand cyan",
tiles = {"default_sand.png"},
is_ground_content = true,
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
drop = 'default:sand',
sounds = default.node_sound_sand_defaults(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
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(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
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(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
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(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
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(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
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(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
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(),
})
-- CRAFTING
if( minetest.get_modpath( "colormachine") == nil ) then
register_seacoral_craft = function(output,recipe)
minetest.register_craft({
type = 'shapeless',
output = output,
recipe = recipe,
})
end
register_seacoral_craft('dye:cyan 4', {'seacoral:coralcyan'})
register_seacoral_craft('dye:magenta 4', {'seacoral:coralmagenta'})
register_seacoral_craft('dye:lime 4', {'seacoral:corallime'})
register_seacoral_craft('dye:aqua 4', {'seacoral:coralaqua'})
register_seacoral_craft('dye:skyblue 4', {'seacoral:coralskyblue'})
register_seacoral_craft('dye:redviolet 4', {'seacoral:coralredviolet'})
end
-- SEACORAL SAND AND DIRT GENERATION
minetest.register_ore({
ore_type = "scatter",
ore = "seacoral:seacoralsandcyan",
wherein = "default:sand",
clust_scarcity = 10*10*10,
clust_num_ores = 24,
clust_size = 4,
height_max = -4,
height_min = -8,
})
minetest.register_ore({
ore_type = "scatter",
ore = "seacoral:seacoraldirtcyan",
wherein = "default:dirt",
clust_scarcity = 10*10*10,
clust_num_ores = 24,
clust_size = 4,
height_max = -4,
height_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,
height_max = -4,
height_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,
height_max = -4,
height_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,
height_max = -4,
height_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,
height_max = -4,
height_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,
height_max = -4,
height_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,
height_max = -4,
height_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,
height_max = -4,
height_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,
height_max = -4,
height_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,
height_max = -4,
height_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,
height_max = -4,
height_min = -8,
})
local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max)
if maxp.y < height_min or minp.y > height_max then
return
end
local y_min = math.max(minp.y, height_min)
local y_max = math.min(maxp.y, height_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 >= height_min and y0 <= height_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 = {"seacoral:seacoraldirtcyan"},
interval = 12,
chance = 12,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
pos.y = pos.y + 1
minetest.add_node(pos, {name = "seacoral:coralcyan"}) else
return
end
end
})
minetest.register_abm({
nodenames = {"seacoral:seacoralsandcyan"},
interval = 12,
chance = 12,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
pos.y = pos.y + 1
minetest.add_node(pos, {name = "seacoral:coralcyan"}) else
return
end
end
})
minetest.register_abm({
nodenames = {"seacoral:seacoraldirtmagenta"},
interval = 12,
chance = 12,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
pos.y = pos.y + 1
minetest.add_node(pos, {name = "seacoral:coralmagenta"}) else
return
end
end
})
minetest.register_abm({
nodenames = {"seacoral:seacoralsandmagenta"},
interval = 12,
chance = 12,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
pos.y = pos.y + 1
minetest.add_node(pos, {name = "seacoral:coralmagenta"}) else
return
end
end
})
minetest.register_abm({
nodenames = {"seacoral:seacoraldirtaqua"},
interval = 12,
chance = 12,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
pos.y = pos.y + 1
minetest.add_node(pos, {name = "seacoral:coralaqua"}) else
return
end
end
})
minetest.register_abm({
nodenames = {"seacoral:seacoralsandaqua"},
interval = 12,
chance = 12,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
pos.y = pos.y + 1
minetest.add_node(pos, {name = "seacoral:coralaqua"}) else
return
end
end
})
minetest.register_abm({
nodenames = {"seacoral:seacoraldirtlime"},
interval = 12,
chance = 12,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
pos.y = pos.y + 1
minetest.add_node(pos, {name = "seacoral:corallime"}) else
return
end
end
})
minetest.register_abm({
nodenames = {"seacoral:seacoralsandlime"},
interval = 12,
chance = 12,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
pos.y = pos.y + 1
minetest.add_node(pos, {name = "seacoral:corallime"}) else
return
end
end
})
minetest.register_abm({
nodenames = {"seacoral:seacoraldirtskyblue"},
interval = 12,
chance = 12,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
pos.y = pos.y + 1
minetest.add_node(pos, {name = "seacoral:coralskyblue"}) else
return
end
end
})
minetest.register_abm({
nodenames = {"seacoral:seacoralsandskyblue"},
interval = 12,
chance = 12,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
pos.y = pos.y + 1
minetest.add_node(pos, {name = "seacoral:coralskyblue"}) else
return
end
end
})
minetest.register_abm({
nodenames = {"seacoral:seacoraldirtredviolet"},
interval = 12,
chance = 12,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
pos.y = pos.y + 1
minetest.add_node(pos, {name = "seacoral:coralredviolet"}) else
return
end
end
})
minetest.register_abm({
nodenames = {"seacoral:seacoralsandredviolet"},
interval = 12,
chance = 12,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
if (minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
pos.y = pos.y + 1
minetest.add_node(pos, {name = "seacoral:coralredviolet"}) else
return
end
end
})
minetest.register_abm({
nodenames = {"group:seacoral"},
interval = 3,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 1, z = pos.z}
local yyp = {x = pos.x, y = pos.y + 2, z = pos.z}
if ((minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") and
(minetest.get_node(yyp).name == "default:water_source" or
minetest.get_node(yyp).name == "noairblocks:water_sourcex")) then
local objs = minetest.env:get_objects_inside_radius(pos, 2)
for k, obj in pairs(objs) do
obj:set_hp(obj:get_hp()+ 1)
end
else
return
end
end
})
-- OPTIONAL DEPENDENCY
if( minetest.get_modpath( "colormachine") ~= nil ) then
colormachine.basic_dye_sources = { "flowers:rose", "flowers:tulip", "flowers:dandelion_yellow", "seacoral:corallime", "default:cactus", "seacoral:coralaqua", "seacoral:coralcyan", "seacoral:coralskyblue", "flowers:geranium", "flowers:viola", "seacoral:coralmagenta", "seacoral:coralredviolet", "default:stone", "", "", "", "default:coal_lump" };
else
return
end
-- ALIASES
minetest.register_alias("seadye:cyan","dye:cyan")
minetest.register_alias("seadye:magenta","dye:magenta")
minetest.register_alias("seadye:lime","dye:lime")
minetest.register_alias("seadye:aqua","dye:aqua")
minetest.register_alias("seadye:skyblue","dye:skyblue")
minetest.register_alias("seadye:redviolet","dye:redviolet")

View File

@ -1,377 +0,0 @@
-- NODES
minetest.register_node("seagravel:seagravel", {
description = "Sea gravel",
tiles = {"seagravel_seagravel.png"},
is_ground_content = true,
groups = {crumbly=2, falling_node=1},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
}),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("seagravel:seagravel_cyan", {
description = "Sea gravel cyan",
tiles = {"seagravel_seagravel_cyan.png"},
is_ground_content = true,
groups = {crumbly=2, falling_node=1},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
}),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("seagravel:seagravel_magenta", {
description = "Sea gravel magenta",
tiles = {"seagravel_seagravel_magenta.png"},
is_ground_content = true,
groups = {crumbly=2, falling_node=1},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
}),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("seagravel:seagravel_lime", {
description = "Sea gravel lime",
tiles = {"seagravel_seagravel_lime.png"},
is_ground_content = true,
groups = {crumbly=2, falling_node=1},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
}),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("seagravel:seagravel_aqua", {
description = "Sea gravel aqua",
tiles = {"seagravel_seagravel_aqua.png"},
is_ground_content = true,
groups = {crumbly=2, falling_node=1},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
}),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("seagravel:seagravel_skyblue", {
description = "Sea gravel skyblue",
tiles = {"seagravel_seagravel_skyblue.png"},
is_ground_content = true,
groups = {crumbly=2, falling_node=1},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
}),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("seagravel:seagravel_redviolet", {
description = "Sea gravel redviolet",
tiles = {"seagravel_seagravel_redviolet.png"},
is_ground_content = true,
groups = {crumbly=2, falling_node=1},
sounds = default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
}),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
-- STAIRS
stairs.register_stair_and_slab("seagravel", "seagravel:seagravel",
{crumbly=2, falling_node=1},
{"seagravel_seagravel.png"},
"Seagravel stair",
"Seagravel slab",
default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
}))
stairs.register_stair_and_slab("seagravel_cyan", "seagravel:seagravel_cyan",
{crumbly=2, falling_node=1},
{"seagravel_seagravel_cyan.png"},
"Seagravel stair cyan",
"Seagravel slab cyan",
default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
}))
stairs.register_stair_and_slab("seagravel_magenta", "seagravel:seagravel_magenta",
{crumbly=2, falling_node=1},
{"seagravel_seagravel_magenta.png"},
"Seagravel stair magenta",
"Seagravel slab magenta",
default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
}))
stairs.register_stair_and_slab("seagravel_lime", "seagravel:seagravel_lime",
{cracky=3, stone=2},
{"seagravel_seagravel_lime.png"},
"Seagravel stair lime",
"Seagravel slab lime",
default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
}))
stairs.register_stair_and_slab("seagravel_aqua", "seagravel:seagravel_aqua",
{crumbly=2, falling_node=1},
{"seagravel_seagravel_aqua.png"},
"Seagravel stair aqua",
"Seagravel slab aqua",
default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
}))
stairs.register_stair_and_slab("seagravel_skyblue", "seagravel:seagravel_skyblue",
{crumbly=2, falling_node=1},
{"seagravel_seagravel_skyblue.png"},
"Seagravel stair skyblue ",
"Seagravel slab skyblue",
default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
}))
stairs.register_stair_and_slab("seagravel_redviolet", "seagravel:seagravel_redviolet",
{crumbly=2, falling_node=1},
{"seagravel_seagravel_redviolet.png"},
"Seagravel stair redviolet",
"Seagravel slab redviolet",
default.node_sound_dirt_defaults({
footstep = {name="default_gravel_footstep", gain=0.5},
dug = {name="default_gravel_footstep", gain=1.0},
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
}))
-- CRAFTING
local register_seagravel_craft = function(output,recipe)
minetest.register_craft({
type = 'shapeless',
output = output,
recipe = recipe,
})
end
register_seagravel_craft("seagravel:seagravel", {'clams:crushedwhite', 'default:gravel'})
register_seagravel_craft("seagravel:seagravel_cyan", {'seagravel:seagravel', 'dye:cyan'})
register_seagravel_craft("seagravel:seagravel_magenta", {'seagravel:seagravel', 'dye:magenta'})
register_seagravel_craft("seagravel:seagravel_lime", {'seagravel:seagravel', 'dye:lime'})
register_seagravel_craft("seagravel:seagravel_aqua", {'seagravel:seagravel', 'dye:aqua'})
register_seagravel_craft("seagravel:seagravel_skyblue", {'seagravel:seagravel', 'dye:skyblue'})
register_seagravel_craft("seagravel:seagravel_redviolet", {'seagravel:seagravel', 'dye:redviolet'})
register_seagravel_craft("seagravel:seagravel_cyan", {'clams:crushedwhite', 'default:gravel','dye:cyan'})
register_seagravel_craft("seagravel:seagravel_magenta", {'clams:crushedwhite', 'default:gravel','dye:magenta'})
register_seagravel_craft("seagravel:seagravel_lime", {'clams:crushedwhite', 'default:gravel','dye:lime'})
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_redviolet", {'clams:crushedwhite', 'default:gravel','dye:redviolet'})

View File

@ -1,595 +0,0 @@
-- NODES
minetest.register_node("seaplants:kelpgreen", {
description = "Green Kelp",
drawtype = "plantlike",
tiles = {"seaplants_kelpgreen.png"},
inventory_image = "seaplants_kelpgreen.png",
wield_image = "seaplants_kelpgreen.png",
paramtype = "light",
walkable = false,
climbable = true,
drowning = 1,
is_ground_content = true,
selection_box = {
type = "fixed",
fixed = {-0.3, -0.5, -0.3, 0.3, 0.3, 0.3}
},
post_effect_color = {a=64, r=100, g=100, b=200},
groups = {snappy=3, seaplants=1, sea=1},
sounds = default.node_sound_leaves_defaults(),
on_use = minetest.item_eat(1)
})
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"},
is_ground_content = true,
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
drop = 'default:sand',
sounds = default.node_sound_sand_defaults(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("seaplants:seaplantsdirtkelpgreen", {
description = "Sea plants dirt kelp green",
tiles = {"default_dirt.png"},
is_ground_content = true,
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("seaplants:seaplantssandkelpbrown", {
description = "Sea plants sand kelp brown",
tiles = {"default_sand.png"},
is_ground_content = true,
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
drop = 'default:sand',
sounds = default.node_sound_sand_defaults(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("seaplants:seaplantsdirtkelpbrown", {
description = "Sea plants dirt kelp brown",
tiles = {"default_dirt.png"},
is_ground_content = true,
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("seaplants:seaplantssandseagrassgreen", {
description = "Sea plants sand seagrass green",
tiles = {"default_sand.png"},
is_ground_content = true,
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
drop = 'default:sand',
sounds = default.node_sound_sand_defaults(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("seaplants:seaplantsdirtseagrassgreen", {
description = "Sea plants dirt seagrass green",
tiles = {"default_dirt.png"},
is_ground_content = true,
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults(),
})
minetest.register_node("seaplants:seaplantssandseagrassred", {
description = "Sea plants sand seagrass red",
tiles = {"default_sand.png"},
is_ground_content = true,
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
drop = 'default:sand',
sounds = default.node_sound_sand_defaults(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("seaplants:seaplantsdirtseagrassred", {
description = "Sea plants dirt seagrass red",
tiles = {"default_dirt.png"},
is_ground_content = true,
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
drop = 'default:dirt',
sounds = default.node_sound_dirt_defaults(),
})
-- CRAFT ITEMS
minetest.register_craftitem("seaplants:seasaladmix", {
description = "Sea salad mix",
inventory_image = "seaplants_seasaladmix.png",
on_use = minetest.item_eat(6)
})
-- CRAFTING
minetest.register_craft({
type = "shapeless",
output = "seaplants:seasaladmix",
recipe = {"seaplants:kelpgreen", "seaplants:kelpbrown", "seaplants:seagrassgreen", "seaplants:seagrassred"}
})
-- SEAPLANTS SAND AND DIRT GENERATION
minetest.register_ore({
ore_type = "scatter",
ore = "seaplants:seaplantssandkelpgreen",
wherein = "default:sand",
clust_scarcity = 10*10*10,
clust_num_ores = 24,
clust_size = 4,
height_max = -14,
height_min = -31000,
})
minetest.register_ore({
ore_type = "scatter",
ore = "seaplants:seaplantsdirtkelpgreen",
wherein = "default:dirt",
clust_scarcity = 10*10*10,
clust_num_ores = 24,
clust_size = 4,
height_max = -14,
height_min = -31000,
})
minetest.register_ore({
ore_type = "scatter",
ore = "seaplants:seaplantssandkelpbrown",
wherein = "default:sand",
clust_scarcity = 10*10*10,
clust_num_ores = 24,
clust_size = 4,
height_max = -14,
height_min = -31000,
})
minetest.register_ore({
ore_type = "scatter",
ore = "seaplants:seaplantsdirtkelpbrown",
wherein = "default:dirt",
clust_scarcity = 10*10*10,
clust_num_ores = 24,
clust_size = 4,
height_max = -14,
height_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,
height_max = -14,
height_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,
height_max = -14,
height_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,
height_max = -14,
height_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,
height_max = -14,
height_min = -31000,
})
local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max)
if maxp.y < height_min or minp.y > height_max then
return
end
local y_min = math.max(minp.y, height_min)
local y_max = math.min(maxp.y, height_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 >= height_min and y0 <= height_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
minetest.register_alias("seaplants:stemsgreen","default:sand")
minetest.register_alias("seaplants:stemsbrown","default:dirt")
minetest.register_alias("seaplants:leafyblue","default:sand")
minetest.register_alias("seaplants:leafygreen","default:dirt")
minetest.register_alias("seaplants:chewstickgreen","seaplants:kelpgreen")
minetest.register_alias("seaplants:chewstickbrown","seaplants:kelpbrown")
minetest.register_alias("seaplants:leavysnackgreen","seaplants:seagrassgreen")
minetest.register_alias("seaplants:leavysnackblue","seaplants:seagrassred")
minetest.register_alias("seaplants:seasalad","seaplants:seasaladmix")

View File

@ -1,956 +0,0 @@
-- NODES
minetest.register_node("seawrecks:woodship", {
description = "Sand for the wooden ship",
tiles = {"default_sand.png"},
is_ground_content = true,
groups = {crumbly=3, falling_node=1, sand=1, soil=1, not_in_creative_inventory=1},
sounds = default.node_sound_sand_defaults(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
minetest.register_node("seawrecks:uboot", {
description = "Dirt for the U-boot",
tiles = {"default_dirt.png"},
is_ground_content = true,
groups = {crumbly=3,soil=1, not_in_creative_inventory=1},
sounds = default.node_sound_dirt_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;]")
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;]",
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)
local kind_of_price = math.floor(math.random()*2)
local amount_of_price = math.floor(math.random()*10)+1
local ingot_price = {"default:steel_ingot","default:copper_ingot","default:gold_ingot","moreores:tin_ingot","moreore:silver_ingot"}
local price_group = {"",""}
choosen_ingot = math.floor(math.random()*5)+1
price_group[1] = ingot_price[choosen_ingot].." "..amount_of_price
if (kind_of_price == 0) then -- Ingots AND mese
price_group[2] = "default:mese_crystal "..math.floor(math.random()*3)+1
elseif (kind_of_price == 1) then -- Ingots AND diamond
price_group[2] = "default:diamond "..math.floor(math.random()*2)+1
else
price_group[2] = ""
end
meta:set_string("formspec",
"size[8,9]"..
"list[current_name;main;0,0;8,4;]"..
"list[current_player;main;0,5;8,4;]")
meta:set_string("infotext", "U-boot chest")
local inv = meta:get_inventory()
inv:set_size("main", 8*4)
meta:from_table({
inventory = {
main = {[1] = price_group[1], [2] = price_group[2], [32] = ""}
--main = {[1] = "default:wood", [2] = "default:tree", [32] = ""}
},
fields = {
formspec = "size[8,9;]list[context;main;0,0;8,4;]list[current_player;main;0,5;8,4;]",
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
minetest.register_ore({
ore_type = "scatter",
ore = "seawrecks:woodship",
wherein = "default:sand",
clust_scarcity = 30*30*30,
clust_num_ores = 1,
clust_size = 12,
height_max = -4,
height_min = -31000,
})
minetest.register_ore({
ore_type = "scatter",
ore = "seawrecks:uboot",
wherein = "default:dirt",
clust_scarcity = 30*30*30,
clust_num_ores = 1,
clust_size = 12,
height_max = -8,
height_min = -31000,
})
local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max)
if maxp.y < height_min or minp.y > height_max then
return
end
local y_min = math.max(minp.y, height_min)
local y_max = math.min(maxp.y, height_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 >= height_min and y0 <= height_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 = {"seawrecks:woodship"},
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 3, z = pos.z}
if minetest.get_node(pos).name == "seawrecks:woodship" and
(minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
minetest.add_node(pos, {name = "default:sand"})
pos.y = pos.y + 1
pos.x = pos.x - 6
for a = 1, 11 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:tree"})
end
pos.z = pos.z + 1
pos.x = pos.x - 10
for a = 1, 9 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:tree"})
end
pos.z = pos.z - 2
pos.x = pos.x - 9
for a = 1, 9 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:tree"})
end
pos.y = pos.y + 1
pos.x = pos.x - 8
pos.z = pos.z - 1
for a = 1, 7 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:tree"})
end
pos.z = pos.z + 4
pos.x = pos.x - 7
for a = 1, 7 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:tree"})
end
pos.z = pos.z - 1
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
pos.z = pos.z - 1
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:tree"})
pos.z = pos.z - 1
pos.x = pos.x - 2
minetest.add_node(pos, {name = "default:tree"})
pos.z = pos.z + 2
pos.x = pos.x - 8
minetest.add_node(pos, {name = "default:tree"})
pos.z = pos.z - 1
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:tree"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:tree"})
pos.z = pos.z - 1
pos.x = pos.x + 2
minetest.add_node(pos, {name = "default:tree"})
pos.y = pos.y + 1
pos.z = pos.z - 1
for a = 1, 7 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.z = pos.z + 4
pos.x = pos.x - 7
for a = 1, 7 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.z = pos.z - 1
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
pos.z = pos.z - 1
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
pos.z = pos.z - 1
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
pos.z = pos.z + 2
pos.x = pos.x - 8
minetest.add_node(pos, {name = "default:wood"})
pos.z = pos.z - 1
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
for a = 1, 3 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.z = pos.z - 1
pos.x = pos.x + 4
minetest.add_node(pos, {name = "default:wood"})
pos.z = pos.z + 1
pos.x = pos.x + 3
minetest.add_node(pos, {name = "default:wood"})
pos.y = pos.y + 1
minetest.add_node(pos, {name = "default:wood"})
pos.y = pos.y - 2
minetest.add_node(pos, {name = "default:wood"})
pos.y = pos.y + 3
pos.z = pos.z - 4
for a = 1, 7 do
pos.z = pos.z + 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.z = pos.z - 3
for a = 1, 2 do
pos.y = pos.y + 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.y = pos.y + 1
pos.z = pos.z - 3
for a = 1, 5 do
pos.z = pos.z + 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.y = pos.y + 1
pos.z = pos.z - 2
minetest.add_node(pos, {name = "default:wood"})
pos.y = pos.y - 7
pos.z = pos.z + 1
pos.x = pos.x - 2
minetest.add_node(pos, {name = "seawrecks:woodshipchest"})
else
return
end
end
})
minetest.register_abm({
nodenames = {"seawrecks:uboot"},
interval = 1,
chance = 1,
action = function(pos, node, active_object_count, active_object_count_wider)
local yp = {x = pos.x, y = pos.y + 8, z = pos.z}
if minetest.get_node(pos).name == "seawrecks:uboot" and
(minetest.get_node(yp).name == "default:water_source" or
minetest.get_node(yp).name == "noairblocks:water_sourcex") then
minetest.add_node(pos, {name = "default:dirt"})
pos.y = pos.y + 1
pos.x = pos.x - 15
for a = 1, 31 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:cobble"})
end
pos.z = pos.z + 1
pos.x = pos.x + 1
for a = 1, 31 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:cobble"})
end
pos.z = pos.z + 1
pos.x = pos.x +1
for a = 1, 27 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z - 3
pos.x = pos.x + 1
for a = 1, 27 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z - 1
pos.x = pos.x + 2
for a = 1, 21 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z + 5
pos.x = pos.x + 1
for a = 1, 21 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.y = pos.y + 1
pos.z = pos.z + 1
pos.x = pos.x - 1
for a = 1, 21 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z - 7
pos.x = pos.x + 1
for a = 1, 21 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z + 1
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 24
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z + 5
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 22
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z - 1
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 29
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z - 3
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 28
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z + 1
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 32
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z + 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 32
minetest.add_node(pos, {name = "default:stone"})
pos.y = pos.y + 1
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x + 32
minetest.add_node(pos, {name = "default:wood"})
pos.z = pos.z - 1
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x - 32
minetest.add_node(pos, {name = "default:wood"})
pos.z = pos.z - 1
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x + 28
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
pos.z = pos.z + 3
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x - 28
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
pos.z = pos.z + 1
pos.x = pos.x + 2
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:obsidian_glass"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x + 22
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:obsidian_glass"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
pos.z = pos.z + 1
pos.x = pos.x - 2
for a = 1, 3 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:obsidian_glass"})
for a = 1, 3 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:obsidian_glass"})
for a = 1, 3 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:obsidian_glass"})
for a = 1, 9 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.z = pos.z - 6
pos.x = pos.x - 3
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:obsidian_glass"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x + 22
minetest.add_node(pos, {name = "default:wood"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:obsidian_glass"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
pos.z = pos.z - 1
pos.x = pos.x - 2
for a = 1, 3 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:obsidian_glass"})
for a = 1, 3 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:obsidian_glass"})
for a = 1, 3 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:obsidian_glass"})
for a = 1, 9 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.y = pos.y + 1
pos.z = pos.z + 7
pos.x = pos.x - 1
for a = 1, 21 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z - 7
pos.x = pos.x + 1
for a = 1, 21 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z + 1
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 24
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z + 5
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 22
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z - 1
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 29
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z - 3
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 28
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z + 1
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 32
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z + 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 32
minetest.add_node(pos, {name = "default:stone"})
pos.y = pos.y + 1
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 28
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 28
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z - 1
pos.x = pos.x + 2
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 22
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z + 3
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 22
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
pos.z = pos.z + 1
pos.x = pos.x + 2
for a = 1, 21 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z - 5
pos.x = pos.x + 1
for a = 1, 21 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.y = pos.y + 1
pos.z = pos.z + 2
pos.x = pos.x - 4
for a = 1, 3 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.x = pos.x + 21
for a = 1, 3 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z + 1
pos.x = pos.x + 1
for a = 1, 3 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.x = pos.x - 21
for a = 1, 3 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z + 2
pos.x = pos.x + 3
for a = 1, 4 do
pos.z = pos.z - 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z - 1
pos.x = pos.x + 1
for a = 1, 4 do
pos.z = pos.z + 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.x = pos.x + 6
for a = 1, 13 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z - 3
pos.x = pos.x + 1
for a = 1, 13 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:stone"})
end
pos.z = pos.z + 1
pos.x = pos.x - 1
for a = 1, 13 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:tree"})
end
pos.z = pos.z + 1
pos.x = pos.x + 1
for a = 1, 13 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:tree"})
end
pos.z = pos.z - 3
for a = 1, 6 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.z = pos.z + 5
pos.x = pos.x - 1
for a = 1, 6 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.y = pos.y + 1
for a = 1, 4 do
pos.z = pos.z - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.x = pos.x - 5
pos.z = pos.z - 1
for a = 1, 4 do
pos.z = pos.z + 1
minetest.add_node(pos, {name = "default:wood"})
end
for a = 1, 4 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.x = pos.x + 1
pos.z = pos.z - 3
for a = 1, 4 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.y = pos.y + 1
pos.x = pos.x - 1
pos.z = pos.z - 1
for a = 1, 4 do
pos.z = pos.z + 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.x = pos.x + 5
pos.z = pos.z + 1
for a = 1, 4 do
pos.z = pos.z - 1
minetest.add_node(pos, {name = "default:wood"})
end
for a = 1, 4 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.x = pos.x - 1
pos.z = pos.z + 3
for a = 1, 4 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.y = pos.y + 1
pos.x = pos.x - 1
pos.z = pos.z - 1
for a = 1, 2 do
pos.x = pos.x - 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.x = pos.x - 1
pos.z = pos.z - 1
for a = 1, 2 do
pos.x = pos.x + 1
minetest.add_node(pos, {name = "default:wood"})
end
pos.y = pos.y - 7
pos.x = pos.x +16
pos.z = pos.z +3
minetest.add_node(pos, {name = "seawrecks:ubootchest"})
else
return
end
end
})

View File

@ -1,96 +0,0 @@
-- NODES
minetest.register_node("whiteshell:whiteshell", {
description = "White shell",
drawtype = "normal",
-- tiles = {"default_desert_sand.png^clams_crushedwhite.png"},
tiles = {"default_desert_sand.png"},
is_ground_content = true,
groups = {sand=1, crumbly=3, falling_node=1, sand=1, not_in_creative_inventory=1},
drop = {
max_items = 2,
items = {
{
items = {'clams:crushedwhite'},
},
{
items = {'default:desert_sand'},
}
}
},
sounds = default.node_sound_sand_defaults(),
on_place = function(itemstack, placer, pointed_thing)
if not pointed_thing.type == "node" then
return itemstack
end
local pn = placer:get_player_name()
if minetest.is_protected(pointed_thing.above, pn) then
return itemstack
end
minetest.env:add_node(pointed_thing.above, {name=itemstack:get_name()})
local meta = minetest.env:get_meta(pointed_thing.above)
meta:set_string("owner", pn)
nodeupdate(pointed_thing.above)
return itemstack
end
})
-- WHITESHELL GENERATION
minetest.register_ore({
ore_type = "scatter",
ore = "whiteshell:whiteshell",
wherein = "default:desert_sand",
clust_scarcity = 10*10*10,
clust_num_ores = 18,
clust_size = 6,
height_max = 31000,
height_min = -31000,
})
local function generate_ore(name, wherein, minp, maxp, seed, chunks_per_volume, chunk_size, ore_per_chunk, height_min, height_max)
if maxp.y < height_min or minp.y > height_max then
return
end
local y_min = math.max(minp.y, height_min)
local y_max = math.min(maxp.y, height_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 >= height_min and y0 <= height_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
-- ALIASES
minetest.register_alias("clams:whiteshell","whiteshell:whiteshell")