minetest.register_node("illuna:desert_gravel", { description = "Gravel", tiles = {"illuna_desertgravel.png"}, 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}, }), drop = { max_items = 1, items = { {items = {'default:flint'}, rarity = 16}, {items = {'illuna:desert_gravel'}} } } }) minetest.register_alias("illuna:desertgravel", "illuna:desert_gravel") minetest.register_node("illuna:stonebrick", { description = "Stone Brick", paramtype2 = "facedir", place_param2 = 0, tiles = {"default_stone_brick.png"}, is_ground_content = false, groups = {cracky = 2, stone = 1}, light_source = 3, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("illuna:moonbrick", { description = "Moon Brick", paramtype2 = "facedir", tiles = {"xdecor_moonbrick.png"}, groups = {cracky = 2}, light_source = 3, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("illuna:hotstone", { description = "Hot Stone", paramtype2 = "facedir", tiles = {"illuna_hotstone.png"}, groups = {choppy=2, igniter = 1}, light_source = 4, damage_per_second = 6, sounds = default.node_sound_stone_defaults(), }) function illuna.teamconstruct(pos) minetest.add_entity({x=pos.x, y=pos.y+1.35, z=pos.z}, "illuna:teamlist") local timer = minetest.get_node_timer(pos) timer:start(5.0) end function illuna.particleconstruct(pos) minetest.add_particlespawner({ amount = 2, time = 0, minpos = pos, maxpos = pos, minvel = {x = -0, y = 0, z = -0}, maxvel = {x = 1, y = 1, z = 1}, minacc = {x = -1, y = -1, z = -1}, maxacc = {x = 1, y = 1, z = 1}, minexptime = 2, maxexptime = 3, minsize = 0.2, maxsize = 1, texture = "illuna_particle.png", }) end minetest.register_entity("illuna:teamlist", { visual = "sprite", visual_size = {x=0.85, y=0.85}, collisionbox = {0}, physical = false, textures = {"moreores_tin_block.png^team_wall.png"}, on_activate = function(self) local pos = self.object:getpos() local pos_under = {x=pos.x, y=pos.y-1, z=pos.z} if minetest.get_node(pos_under).name ~= "illuna:team" then self.object:remove() end end }) minetest.register_node("illuna:team", { description = "Illuna Teamlist", tiles = {"caverealms_glow_obsidian.png"}, paramtype2 = "facedir", groups = {cracky = 3}, light_source = 20, drop = 'illuna:team', on_construct = illuna.teamconstruct, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("illuna:particlespawner", { description = "Illuna Particlespawner", tiles = {"caverealms_glow_obsidian.png"}, paramtype2 = "facedir", groups = {cracky = 3}, light_source = 20, drop = 'illuna:particlespawner', on_construct = illuna.particleconstruct, sounds = default.node_sound_stone_defaults(), }) minetest.register_node("illuna:welcome_block_1", { description = "Illuna Welcome Block 1", tiles = {"default_obsidian.png", "default_obsidian.png", "default_obsidian.png", "default_obsidian.png", "default_obsidian.png", "default_obsidian.png^welcome_block_1.png"}, paramtype2 = "facedir", groups = {cracky = 3}, on_place = minetest.rotate_node, drop = 'illuna:welcome_block_1', sounds = default.node_sound_stone_defaults(), }) minetest.register_node("illuna:welcome_block_2", { description = "Illuna Welcome Block 2", tiles = {"default_obsidian.png", "default_obsidian.png", "default_obsidian.png", "default_obsidian.png", "default_obsidian.png", "default_obsidian.png^welcome_block_2.png"}, paramtype2 = "facedir", groups = {cracky = 3}, on_place = minetest.rotate_node, drop = 'illuna:welcome_block_2', sounds = default.node_sound_stone_defaults(), }) minetest.register_node("illuna:welcome_block_3", { description = "Illuna Welcome Block 3", tiles = {"default_obsidian.png", "default_obsidian.png", "default_obsidian.png", "default_obsidian.png", "default_obsidian.png", "default_obsidian.png^welcome_block_3.png"}, paramtype2 = "facedir", groups = {cracky = 3}, on_place = minetest.rotate_node, drop = 'illuna:welcome_block_3', sounds = default.node_sound_stone_defaults(), }) minetest.register_node("illuna:instruction_block_1", { description = "Instruction Block 1", tiles = {"default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png^instruction_block_1.png"}, paramtype2 = "facedir", groups = {unbreakable = 1}, on_place = minetest.rotate_node, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_gravel_footstep", gain=0.5}, dug = {name="default_gravel_footstep", gain=1.0}, }), drop = { max_items = 1, items = { {items = {'illuna:instruction_block_1'}} } } }) minetest.register_node("illuna:instruction_block_2", { description = "Instruction Block 2", tiles = {"default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png^instruction_block_2.png"}, paramtype2 = "facedir", groups = {unbreakable = 1}, on_place = minetest.rotate_node, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_gravel_footstep", gain=0.5}, dug = {name="default_gravel_footstep", gain=1.0}, }), drop = { max_items = 1, items = { {items = {'illuna:instruction_block_2'}} } } }) minetest.register_node("illuna:instruction_block_3", { description = "Instruction Block 3", tiles = {"default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png^instruction_block_3.png"}, paramtype2 = "facedir", groups = {unbreakable = 1}, on_place = minetest.rotate_node, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_gravel_footstep", gain=0.5}, dug = {name="default_gravel_footstep", gain=1.0}, }), drop = { max_items = 1, items = { {items = {'illuna:instruction_block_3'}} } } }) minetest.register_node("illuna:instruction_block_4", { description = "Instruction Block 4", tiles = {"default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png", "default_stone_brick.png^instruction_block_4.png"}, paramtype2 = "facedir", groups = {unbreakable = 1}, on_place = minetest.rotate_node, sounds = default.node_sound_dirt_defaults({ footstep = {name="default_gravel_footstep", gain=0.5}, dug = {name="default_gravel_footstep", gain=1.0}, }), drop = { max_items = 1, items = { {items = {'illuna:instruction_block_4'}} } } }) minetest.register_node("illuna:lw_instructions", { description = "Instructions for the biopodworld", drawtype = "signlike", tiles = {"lw_instructions.png"}, visual_scale = 3.0, inventory_image = "lw_instructions.png", wield_image = "lw_instructions.png", paramtype = "light", paramtype2 = "wallmounted", light_source = 12, sunlight_propagates = true, walkable = false, selection_box = { type = "wallmounted", }, groups = { unbreakable = 1 }, }) if minetest.get_modpath("ethereal") then -- disallow placing of lava below -2 except player has the trusted_player priv minetest.override_item("default:lava_source", { after_place_node = function(pos, placer, node) if (minetest.check_player_privs(placer:get_player_name(), {trusted_player=true})) then -- node was placed - let's store some playerinformations to make the moderators work easier local meta = minetest.get_meta(pos) meta:set_string("placer", placer:get_player_name() or "") meta:set_string("infotext", "Some Lava (graceful placer: "..meta:get_string("placer") .. " - it's a trusted player.)") else -- player has not trusted_player, we will remove the node when not placed at least two nodes below sealevel if pos.y >= -2 then minetest.env:remove_node(pos) else -- node was placed - let's store some playerinformations to make the moderators work easier local meta = minetest.get_meta(pos) meta:set_string("placer", placer:get_player_name() or "") meta:set_string("infotext", "Some Lava (graceful placer: "..meta:get_string("placer") .. ")") end end end, on_construct = function(pos, player) local meta = minetest.get_meta(pos) meta:set_string("placer", "") end, pointable = true, }) -- nodeboxes by https://github.com/D00Med/LegendofMinetest minetest.override_item("default:furnace", { drawtype = "nodebox", paramtype = "light", node_box = { type = "fixed", fixed = { {-0.5, -0.5, -0.5, 0.5, -0.3125, 0.5}, -- NodeBox1 {-0.4375, 0.375, -0.5, 0.4375, 0.4375, 0.5}, -- NodeBox2 {-0.375, 0.4375, -0.5, 0.375, 0.5, 0.5}, -- NodeBox3 {-0.5, 0.3125, -0.5, 0.5, 0.375, 0.5}, -- NodeBox4 {-0.5, -0.5, -0.5, -0.3125, 0.3125, 0.5}, -- NodeBox5 {0.3125, -0.5, -0.5, 0.5, 0.375, 0.5}, -- NodeBox6 {-0.5, -0.0625, -0.5, 0.5, 0.0625, 0.5}, -- NodeBox7 {-0.5, -0.5, -0.375, 0.5, 0.3125, 0.5}, -- NodeBox8 } }, }) minetest.override_item("default:chest_locked", { paramtype = "light", drawtype = "nodebox", node_box = { type = "fixed", fixed = { {-0.5, -0.5, -0.5, 0.5, 0.25, 0.5}, -- NodeBox1 {-0.5, 0.375, -0.375, 0.5, 0.4375, 0.375}, -- NodeBox2 {-0.5, 0.25, -0.4375, 0.5, 0.375, 0.4375}, -- NodeBox3 {-0.5, 0.4375, -0.3125, 0.5, 0.5, 0.3125}, -- NodeBox4 } }, }) minetest.override_item("default:chest", { paramtype = "light", drawtype = "nodebox", node_box = { type = "fixed", fixed = { {-0.5, -0.5, -0.5, 0.5, 0.25, 0.5}, -- NodeBox1 {-0.5, 0.375, -0.375, 0.5, 0.4375, 0.375}, -- NodeBox2 {-0.5, 0.25, -0.4375, 0.5, 0.375, 0.4375}, -- NodeBox3 {-0.5, 0.4375, -0.3125, 0.5, 0.5, 0.3125}, -- NodeBox4 } }, }) end