nssm_extra-cd2025/nssm_materials.lua
2024-07-15 16:59:03 +01:00

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')