-- 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(pos1, "") or not minetest.get_item_group( minetest.get_node(pos1).name, "unbreakable") == 1 then minetest.set_node(pos1, {name="nssm:cold_star"}) end end if not minetest.settings:get_bool("creative_mode") then itemstack:take_item() end return itemstack end }) -- nodes minetest.register_node(":nssm:cold_star", { drawtype = "plantlike", tiles = {"cold_star.png"}, light_source = 13, walkable = false, paramtype = "light", pointable = false, buildable_to = true, sunlight_propagates = true, groups = {not_in_creative_inventory = 1}, drop = {}, on_construct = function(pos) minetest.get_node_timer(pos):start(400) end, on_timer = function(pos) minetest.remove_node(pos) end, on_blast = function() end, }) minetest.register_node(":nssm:crystal_gas", { description = "Crystal Gas", drawtype = "airlike", paramtype = "light", walkable = false, 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", tiles = {"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", tiles = {"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}, }) -- Abms 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 }) 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(pos, {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(pos, {name = "air"}) end }) -- Eggs local 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 mobs.is_creative(placer:get_player_name()) 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 mobs.is_creative(placer:get_player_name()) 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")