197 lines
5.6 KiB
Lua
197 lines
5.6 KiB
Lua
--non eatable craftitems
|
|
|
|
local function nssm_register_noneatcraftitems (name, descr)
|
|
|
|
minetest.register_craftitem(":nssm:"..name, {
|
|
description = descr,
|
|
image = name..".png",
|
|
})
|
|
|
|
end
|
|
|
|
nssm_register_noneatcraftitems ('masticone_core','Masticone Core')
|
|
nssm_register_noneatcraftitems ('berinhog_horn','Berinhog Horn')
|
|
nssm_register_noneatcraftitems ('earth_heart','Earth Heart')
|
|
|
|
|
|
minetest.register_craftitem(":nssm:cold_stars", {
|
|
description = "Cold Stars",
|
|
image = "cold_stars.png",
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
for i=1,33 do
|
|
local pos1 = minetest.get_pointed_thing_position(pointed_thing, true)
|
|
local dx = math.random(-20,20)
|
|
local dy = math.random(-3,20)
|
|
local dz = math.random(-20,20)
|
|
local pos1 = {x = pos1.x+dx, y=pos1.y+dy, z=pos1.z+dz}
|
|
if not minetest.is_protected(pos, "") or not minetest.get_item_group(minetest.get_node(pos).name, "unbreakable") == 1 then
|
|
minetest.set_node(pos1, {name="nssm:cold_star"})
|
|
minetest.get_node_timer(pos1):start(400)
|
|
end
|
|
end
|
|
if not minetest.setting_getbool("creative_mode") then
|
|
itemstack:take_item()
|
|
end
|
|
return itemstack
|
|
end
|
|
})
|
|
|
|
|
|
|
|
--nodes
|
|
|
|
minetest.register_node(":nssm:crystal_gas", {
|
|
description = "Crystal Gas",
|
|
--inventory_image = minetest.inventorycube("venomous_gas.png"),
|
|
drawtype = "airlike",
|
|
--tiles = {
|
|
--{name="venomous_gas_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=3.0}}
|
|
--},
|
|
paramtype = "light",
|
|
walkable = false,
|
|
--sunlight_propagates = true,
|
|
pointable = false,
|
|
diggable = false,
|
|
buildable_to = true,
|
|
drop = "",
|
|
drowning = 2,
|
|
post_effect_color = {a=1000, r=1000, g=1000, b=1000},
|
|
groups = {flammable = 2, not_in_creative_inventory =1},
|
|
})
|
|
|
|
minetest.register_node(":nssm:slug_crystal", {
|
|
description = "Slug Crystal",
|
|
tile_images = {"slug_crystal.png"} ,
|
|
paramtype = "light",
|
|
drawtype = "glasslike",
|
|
drowning = 10,
|
|
damage_per_second = 1,
|
|
drop = "",
|
|
post_effect_color = {a=1000, r=1000, g=1000, b=1000},
|
|
light_source = 2,
|
|
groups = {cracky=1, not_in_creative_inventory =1},
|
|
})
|
|
|
|
minetest.register_node(":nssm:coldest_ice", {
|
|
description = "Coldest Ice",
|
|
tile_images = {"coldest_ice.png"} ,
|
|
paramtype = "light",
|
|
drowning = 2,
|
|
damage_per_second = 1,
|
|
drop = "",
|
|
light_source = 3,
|
|
groups = {cracky=1, not_in_creative_inventory =1},
|
|
})
|
|
|
|
minetest.register_node(":nssm:mud", {
|
|
description = "Mud",
|
|
inventory_image = "mude.png",
|
|
tiles = {
|
|
{name="mud_animated.png", animation={type="vertical_frames", aspect_w=16, aspect_h=16, length=16.0}}
|
|
},
|
|
walkable = false,
|
|
paramtype = "light",
|
|
pointable = true,
|
|
buildable_to = false,
|
|
drop = "",
|
|
drowning = 0,
|
|
liquid_renewable = false,
|
|
liquidtype = "source",
|
|
liquid_range= 0,
|
|
liquid_alternative_flowing = "nssm:mud",
|
|
liquid_alternative_source = "nssm:mud",
|
|
liquid_viscosity = 10,
|
|
groups = {crumbly=1, liquid=1},
|
|
})
|
|
|
|
minetest.register_abm({
|
|
nodenames = {"nssm:mud"},
|
|
neighbors = {"air"},
|
|
interval = 15,
|
|
chance = 10,
|
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
|
local vec={x=1, y=1, z=1}
|
|
local poslist = minetest.find_nodes_in_area(vector.subtract(pos, vec), vector.add(pos,vec), "group:water")
|
|
if #poslist == 0 then
|
|
minetest.set_node(pos, {name="default:dirt"})
|
|
end
|
|
end
|
|
})
|
|
|
|
|
|
--abms
|
|
|
|
minetest.register_abm({
|
|
nodenames = {"nssm:crystal_gas"},
|
|
interval = 1,
|
|
chance = 4,
|
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
|
minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "nssm:slug_crystal"})
|
|
end
|
|
})
|
|
|
|
minetest.register_abm({
|
|
nodenames = {"nssm:slug_crystal"},
|
|
interval = 20,
|
|
chance = 3,
|
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
|
minetest.set_node({x = pos.x, y = pos.y, z = pos.z}, {name = "air"})
|
|
end
|
|
})
|
|
|
|
--Eggs
|
|
|
|
function nssm_register_egg (name, descr)
|
|
|
|
minetest.register_craftitem(":nssm:".. name, {
|
|
description = descr .. " Egg",
|
|
image = name.."_egg.png",
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
local pos1=minetest.get_pointed_thing_position(pointed_thing, true)
|
|
pos1.y=pos1.y+1.5
|
|
core.after(0.1, function()
|
|
minetest.add_entity(pos1, "nssm:".. name)
|
|
end)
|
|
if not minetest.setting_getbool("creative_mode") then
|
|
itemstack:take_item()
|
|
end
|
|
return itemstack
|
|
end,
|
|
})
|
|
end
|
|
|
|
function nssm_register_egg2 (name, descr) --mobs you can't catch
|
|
|
|
minetest.register_craftitem(":nssm:".. name.."_egg", {
|
|
description = descr .. " Egg",
|
|
image = name.."_egg.png",
|
|
on_place = function(itemstack, placer, pointed_thing)
|
|
local pos1=minetest.get_pointed_thing_position(pointed_thing, true)
|
|
pos1.y=pos1.y+1.5
|
|
core.after(0.1, function()
|
|
minetest.add_entity(pos1, "nssm:".. name)
|
|
end)
|
|
if not minetest.setting_getbool("creative_mode") then
|
|
itemstack:take_item()
|
|
end
|
|
return itemstack
|
|
end,
|
|
})
|
|
end
|
|
|
|
nssm_register_egg ('albino_spider', 'Albino Spider')
|
|
nssm_register_egg ('chog', 'Chog')
|
|
nssm_register_egg2 ('silversand_dragon', 'Silversand Dragon')
|
|
nssm_register_egg2 ('tartacacia', 'Tartacacia')
|
|
nssm_register_egg2 ('river_lord', 'River Lord')
|
|
nssm_register_egg ('icelizard', 'Icelizard')
|
|
nssm_register_egg ('kele', 'Kele')
|
|
nssm_register_egg ('crystal_slug', 'Crystal Slug')
|
|
nssm_register_egg ('berinhog', 'Berinhog')
|
|
nssm_register_egg ('black_scorpion', 'Black Scorpion')
|
|
nssm_register_egg ('pumpkid', 'Pumpkid')
|
|
nssm_register_egg ('salamander', 'Salamander')
|
|
nssm_register_egg ('flust', 'Flust')
|
|
nssm_register_egg ('pelagia', 'Pelagia')
|
|
|