diff --git a/minetest.conf b/minetest.conf index bae03f3..58a85d7 100644 --- a/minetest.conf +++ b/minetest.conf @@ -18,4 +18,5 @@ weather_allow_abm = true enable_moreplants = true twilight = false 3d_leaves = false -mob_show_health = false \ No newline at end of file +mob_show_health = false +lom_devmode = false \ No newline at end of file diff --git a/mods/default/textures/default_bookshelf.png b/mods/default/textures/default_bookshelf.png index 5296e09..7bffc62 100644 Binary files a/mods/default/textures/default_bookshelf.png and b/mods/default/textures/default_bookshelf.png differ diff --git a/mods/default/textures/default_steel_block.png b/mods/default/textures/default_steel_block.png index ffe86e3..3be5425 100644 Binary files a/mods/default/textures/default_steel_block.png and b/mods/default/textures/default_steel_block.png differ diff --git a/mods/doors/init.lua b/mods/doors/init.lua index 7b4da23..0afc6ea 100644 --- a/mods/doors/init.lua +++ b/mods/doors/init.lua @@ -540,10 +540,9 @@ doors.register("door_ice", { tiles = {{name = "doors_door_ice.png", backface_culling = true}}, description = "Ice Door", inventory_image = "doors_item_ice.png", - protected = true, use_texture_alpha = true, groups = {cracky = 1, level = 2}, - sounds = default.node_sound_metal_defaults(), + sounds = default.node_sound_glass_defaults(), sound_open = "doors_door_open", sound_close = "doors_door_close", recipe = { @@ -553,6 +552,22 @@ doors.register("door_ice", { } }) +doors.register("door_quartz", { + tiles = {{name = "doors_door_quartz.png", backface_culling = true}}, + description = "Quartz Door", + inventory_image = "doors_item_quartz.png", + use_texture_alpha = true, + groups = {cracky = 1, level = 2}, + sounds = default.node_sound_stone_defaults(), + sound_open = "doors_door_open", + sound_close = "doors_door_close", + recipe = { + {"quartz:quartz_crystal", "quartz:quartz_crystal"}, + {"quartz:quartz_crystal", "quartz:quartz_crystal"}, + {"quartz:quartz_crystal", "quartz:quartz_crystal"}, + } +}) + doors.register("door_steel", { tiles = {{name = "doors_door_steel.png", backface_culling = true}}, description = "Steel Door", diff --git a/mods/doors/textures/doors_door_quartz.png b/mods/doors/textures/doors_door_quartz.png new file mode 100644 index 0000000..75bc69e Binary files /dev/null and b/mods/doors/textures/doors_door_quartz.png differ diff --git a/mods/doors/textures/doors_door_wood.png b/mods/doors/textures/doors_door_wood.png index 0df7603..1a5b62d 100644 Binary files a/mods/doors/textures/doors_door_wood.png and b/mods/doors/textures/doors_door_wood.png differ diff --git a/mods/doors/textures/doors_item_quartz.png b/mods/doors/textures/doors_item_quartz.png new file mode 100644 index 0000000..94b3078 Binary files /dev/null and b/mods/doors/textures/doors_item_quartz.png differ diff --git a/mods/experience/init.lua b/mods/experience/init.lua index dbc77e2..5026336 100644 --- a/mods/experience/init.lua +++ b/mods/experience/init.lua @@ -216,6 +216,7 @@ minetest.register_entity("experience:orb", { physical = true, timer = 0, textures = {"orb.png"}, + glow = 12, visual_size = {x=0.3, y=0.3}, collisionbox = {-0.17,-0.17,-0.17,0.17,0.17,0.17}, on_activate = function(self, staticdata) diff --git a/mods/fire/init.lua b/mods/fire/init.lua index 0dbd7c3..5e254b7 100644 --- a/mods/fire/init.lua +++ b/mods/fire/init.lua @@ -80,6 +80,34 @@ minetest.register_node("fire:permanent_flame", { end, }) +minetest.register_node("fire:fake_flame", { + description = "Fake Flame", + drawtype = "firelike", + tiles = { + { + name = "fire_basic_flame_animated.png", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1 + }, + }, + }, + inventory_image = "fire_basic_flame.png", + paramtype = "light", + light_source = 11, + walkable = false, + buildable_to = true, + sunlight_propagates = true, + damage_per_second = 4, + groups = {dig_immediate = 3}, + drop = "", + + on_blast = function() + end, +}) + -- Flint and steel diff --git a/mods/hyrule_mapgen/crafts.lua b/mods/hyrule_mapgen/crafts.lua new file mode 100644 index 0000000..b5410e9 --- /dev/null +++ b/mods/hyrule_mapgen/crafts.lua @@ -0,0 +1,139 @@ + +minetest.register_craft( { + output = "hyrule_mapgen:logpile 1", + recipe = { + { "", "default:tree", "" }, + { "default:tree", "", "default:tree" } + } +}) + +minetest.register_craft( { + output = "hyrule_mapgen:big_table 1", + recipe = { + { "default:wood", "default:wood", "default:wood" }, + { "default:wood", "", "" }, + { "default:wood", "", "" } + } +}) + +minetest.register_craft( { + output = "hyrule_mapgen:wood_fence 6", + recipe = { + {"default:stick", "default:stick", "default:stick"}, + {"default:stick", "default:stick", "default:stick"} + } +}) + +minetest.register_craft({ + output = 'hyrule_mapgen:ice_brick', + recipe = { + {'default:ice', 'default:ice', ''}, + {'default:ice', '', ''}, + {'default:ice', '', ''}, + } +}) + +minetest.register_craft({ + output = 'hyrule_mapgen:bridge', + recipe = { + {'', 'group:wood', ''}, + {'group:wood', 'group:wood', 'group:wood'}, + } +}) + +minetest.register_craft({ + output = 'hyrule_mapgen:grupee', + recipe = { + {'hyruletools:green_rupee', 'hyruletools:green_rupee', 'hyruletools:green_rupee'}, + {'hyruletools:green_rupee', 'hyruletools:green_rupee', 'hyruletools:green_rupee'}, + {'hyruletools:green_rupee', 'hyruletools:green_rupee', 'hyruletools:green_rupee'}, + } +}) + +minetest.register_craft({ + output = 'hyrule_mapgen:rrupee', + recipe = { + {'hyruletools:red_rupee', 'hyruletools:red_rupee', 'hyruletools:red_rupee'}, + {'hyruletools:red_rupee', 'hyruletools:red_rupee', 'hyruletools:red_rupee'}, + {'hyruletools:red_rupee', 'hyruletools:red_rupee', 'hyruletools:red_rupee'}, + } +}) + +minetest.register_craft({ + output = 'hyrule_mapgen:brupee', + recipe = { + {'hyruletools:blue_rupee', 'hyruletools:blue_rupee', 'hyruletools:blue_rupee'}, + {'hyruletools:blue_rupee', 'hyruletools:blue_rupee', 'hyruletools:blue_rupee'}, + {'hyruletools:blue_rupee', 'hyruletools:blue_rupee', 'hyruletools:blue_rupee'}, + } +}) + +minetest.register_craft({ + output = 'hyrule_mapgen:nrupee', + recipe = { + {'hyruletools:nyan_rupee', 'hyruletools:nyan_rupee', 'hyruletools:nyan_rupee'}, + {'hyruletools:nyan_rupee', 'hyruletools:nyan_rupee', 'hyruletools:nyan_rupee'}, + {'hyruletools:nyan_rupee', 'hyruletools:nyan_rupee', 'hyruletools:nyan_rupee'}, + } +}) + +minetest.register_craft({ + output = 'hyrule_mapgen:railblock', + recipe = { + {'', 'default:steel_ingot', ''}, + {'default:steel_ingot', 'default:steel_ingot', ''}, + {'', 'default:steel_ingot', ''}, + } +}) + +minetest.register_craft({ + output = 'hyrule_mapgen:wallring', + recipe = { + {'hyrule_mapgen:railblock', 'default:steel_ingot'}, + } +}) + +minetest.register_craft({ + output = 'hyrule_mapgen:volvagia_spawn', + recipe = { + {'', 'default:stone', ''}, + {'bucket:bucket_lava', 'hyruletools:pendant3', 'bucket:bucket_lava'}, + {'', 'default:stone', ''}, + } +}) + +minetest.register_craft({ + output = 'hyrule_mapgen:bongo_spawn', + recipe = { + {'', 'default:stone', ''}, + {'bucket:bucket_lava', 'hyruletools:pendant1', 'bucket:bucket_lava'}, + {'', 'default:stone', ''}, + } +}) + +minetest.register_craft({ + output = 'hyrule_mapgen:dodongo_spawn', + recipe = { + {'', 'default:tree', ''}, + {'moreplants:eye', 'hyruletools:pendant2', 'moreplants:eye'}, + {'', 'default:tree', ''}, + } +}) + +minetest.register_craft({ + output = "default:wood 4", + type = "shapeless", + recipe = {"hyrule_mapgen:palm_tree"} +}) + +minetest.register_craft({ + output = "default:junglewood 4", + type = "shapeless", + recipe = {"hyrule_mapgen:wild_tree"} +}) + +minetest.register_craft({ + output = "default:acacia_wood 4", + type = "shapeless", + recipe = {"hyrule_mapgen:magic_tree"} +}) diff --git a/mods/hyrule_mapgen/init.lua b/mods/hyrule_mapgen/init.lua index 5839046..19f21d6 100644 --- a/mods/hyrule_mapgen/init.lua +++ b/mods/hyrule_mapgen/init.lua @@ -5,8 +5,29 @@ if mg_name ~= "v6" then dofile(minetest.get_modpath("hyrule_mapgen").."/mapgen.lua") end +dofile(minetest.get_modpath("hyrule_mapgen").."/nodes.lua") +dofile(minetest.get_modpath("hyrule_mapgen").."/crafts.lua") + + --village spawner +if minetest.setting_getbool("lom_devmode") then +minetest.register_craftitem("hyrule_mapgen:tower_spawner", { + description = "Tower Floor Template Spawner", + inventory_image = "hyrule_mapgen_spawner.png", + on_place = function(itemstack, placer, pointed_thing) + if not minetest.setting_getbool("lom_devmode") then + minetest.chat_send_player(placer:get_player_name(), "Requires 'lom_devmode' to be 'true'") + return + end + local pos = pointed_thing.above + minetest.place_schematic({x=pos.x, y=pos.y, z=pos.z}, minetest.get_modpath("hyrule_mapgen").."/schematics/tower_template.mts", 0, {}, true) + itemstack:take_item() + return itemstack + end, +}) +end + minetest.register_craftitem("hyrule_mapgen:village_spawner", { description = "Village Spawner", inventory_image = "hyrule_mapgen_spawner.png", @@ -170,6 +191,79 @@ minetest.register_abm({ end }) +local function find_mob(pos, radius, mob_name) + local objs = minetest.get_objects_inside_radius(pos, radius) + for _, obj in ipairs(objs) do + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name == mob_name then + return true + end + end + end +end + +local function check_for_player(pos) + local objs = minetest.get_objects_inside_radius(pos, 10) + for _, obj in ipairs(objs) do + if obj:is_player() then + return true + end + end +end + +local monster_list = {"mobs_loz:stalchild", "mobs_loz:keese", "mobs_loz:darknut", "mobs_loz:wolfos", "mobs_loz:deku_baba", "mobs_loz:armos", "mobs_loz:redead", "mobs_loz:skulltula"} +local monster_list2 = {"mobs_loz:dark_stalchild", "mobs_loz:ice_volvagia", "mobs_loz:keese_fire", "mobs_loz:keese_ice", "mobs_loz:darkernut", "mobs_loz:wolfos_tower", "mobs_loz:deku_baba_dry", "mobs_loz:gibido"} + +minetest.register_lbm({ + name = "hyrule_mapgen:tower_spawns", + nodenames = {"hyrule_mapgen:tower_spawner",}, + run_at_every_load = true, + action = function(pos, node, active_object_count, active_object_count_wider) + if not check_for_player(pos) then return end + + if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "quartz:chiseled_immortal" then + minetest.env:add_entity(pos, "mobs_loz:blade_x") + return + elseif minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "quartz:pillar_immortal" then + minetest.env:add_entity(pos, "mobs_loz:blade_z") + return + elseif minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name == "quartz:wall_immortal" then + minetest.env:add_entity(pos, "mobs_loz:armos") + else + local mob_number = math.random(1,8) + local mob = "" + if pos.y <= 800 then + mob = monster_list[mob_number] + else + mob = monster_list2[mob_number] + end + if not find_mob(pos, 5, mob) then + local obj = minetest.env:add_entity({x=pos.x+math.random(-4,4), y=pos.y+0.5, z=pos.z+math.random(-4,4)}, mob) + local monster = obj:get_luaentity() + local hp = monster.object:get_hp() + monster.object:set_hp(hp+pos.y*0.2) + monster.damage = monster.damage+pos.y*0.01 + end + end + end +}) + +minetest.register_lbm({ + name = "hyrule_mapgen:generate_tower", + nodenames = {"hyrule_mapgen:tower_generator",}, + run_at_every_load = true, + action = function(pos, node, active_object_count, active_object_count_wider) + if minetest.setting_getbool("lom_devmode") then + return + end + local num = math.random(1,8) + minetest.place_schematic({x=pos.x-15, y=pos.y+1,z=pos.z-15}, minetest.get_modpath("hyrule_mapgen").."/schematics/tower_"..num..".mts", 0, {["hyrule_mapgen:tower_dev"] = "hyrule_mapgen:tower_spawner",}, true) + if pos ~= nil and minetest.get_node(pos).name == "hyrule_mapgen:tower_generator" then + minetest.remove_node(pos) + end + end +}) + minetest.register_abm({ nodenames = {"hyrule_mapgen:crystal_2"}, interval = 5, @@ -478,6 +572,100 @@ minetest.register_abm({ end }) +minetest.register_abm({ + nodenames = {"hyrule_mapgen:beamos"}, + interval = 0.8, + chance = 1, + action = function(pos, node) + local x = 0 + local z = 0 + if node.param2 == 0 then + z = -1 + elseif node.param2 == 2 then + z = 1 + elseif node.param2 == 1 then + x = -1 + elseif node.param2 == 3 then + x = 1 + end + --minetest.chat_send_all(node.param2) + for num=1,5 do + local objs = minetest.get_objects_inside_radius({x=pos.x+x*num, y=pos.y-0.5, z=pos.z+z*num}, 1) + for _, obj in ipairs(objs) do + if obj:is_player() then + local name = obj:get_player_name() + minetest.sound_play("Laser", {pos=pos, max_hear_distance=10, gain=0.5}) + local ent = minetest.env:add_entity(pos, "hyrule_mapgen:laser") + ent:setvelocity({x=12*x, y=0, z=12*z}) + for i=1,5 do + minetest.after(i/10, function() + local ent = minetest.env:add_entity(pos, "hyrule_mapgen:laser") + ent:setvelocity({x=12*x, y=0, z=12*z}) + end) + end + end + end + end + end +}) + +minetest.register_abm({ + nodenames = {"hyrule_mapgen:geyser"}, + interval = 1, + chance = 2, + action = function(pos, node) + for i=1,30 do + minetest.after(i*0.13, function() + minetest.add_particle({ + pos = {x=pos.x, y=pos.y+math.random(0,3)/10, z=pos.z}, + velocity = {x=math.random(-1,1)/10, y=math.random(1,2), z=math.random(-1,1)/10}, + acceleration = {x=math.random(-1,1)/10, y=math.random(-5,-10)/10, z=math.random(-1,1)/10}, + expirationtime = math.random(5,10)/10, + size = math.random(3,5), + collisiondetection = false, + collisionremoval = false, + vertical = false, + texture = "hyrule_mapgen_fire.png", + glow = 9 + }) + end) + end + end +}) + +minetest.register_abm({ + nodenames = {"hyrule_mapgen:lamp_lit"}, + interval = 1, + chance = 1, + action = function(pos, node) + for i=1,5 do + minetest.after(i*0.2, function() + minetest.add_particle({ + pos = {x=pos.x+math.random(-2,2)/10, y=pos.y, z=pos.z+math.random(-2,2)/10}, + velocity = {x=0, y=math.random(5,10)/10, z=0}, + acceleration = {x=math.random(0,5)/10, y=0.5, z=math.random(0,5)/10}, + expirationtime = math.random(2,5)/10, + size = math.random(4,8), + collisiondetection = false, + collisionremoval = false, + vertical = false, + texture = "hyruletools_flame.png", + glow = 9 + }) + end) + end + end +}) + +minetest.register_abm({ + nodenames = {"hyrule_mapgen:lamp_lit"}, + interval = 30, + chance = 1, + action = function(pos, node) + minetest.set_node(pos, {name="hyrule_mapgen:lamp"}) + end +}) + --entities minetest.register_entity("hyrule_mapgen:windmill", { @@ -941,6 +1129,7 @@ minetest.override_item("default:cactus", { tiles = {"cactus.png"}, paramtype = "light", visual_scale = 0.5, + damage_per_second = 1, selection_box = { type = "fixed", fixed = {-0.4, -0.5, -0.4, 0.4, 0.5, 0.4}, @@ -1181,2894 +1370,6 @@ minetest.override_item("default:stone_with_gold", { groups = {cracky = 2, xp = 1}, }) ---new nodes - -local dye_colours = { - {"red"}, - {"blue"}, - {"orange"}, - {"green"}, - {"dark_green"}, - {"dark_grey"}, - {"black"}, - {"grey"}, - {"white"}, - {"yellow"}, - {"brown"}, - {"cyan"}, - {"magenta"}, - {"violet"}, - {"pink"}, -} - -for _, dye in ipairs(dye_colours) do -local colour = dye[1] - minetest.register_node(":dye:"..colour.."_node", { - tiles = { - "dye_"..colour.."_model.png", - }, - drawtype = "mesh", - mesh = "dye.obj", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = { - {-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.1875}, -- NodeBox1 - {-0.25, -0.4375, -0.25, 0.25, -0.1875, 0.25}, -- NodeBox2 - {-0.1875, -0.1875, -0.1875, 0.1875, -0.125, 0.1875}, -- NodeBox3 - {-0.125, -0.125, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox4 - {-0.1875, -0.0625, -0.125, 0.1875, 0, 0.125}, -- NodeBox5 - {-0.125, 0, -0.125, 0.125, 0.0625, 0.125}, -- NodeBox6 - {-0.125, -0.0625, -0.1875, 0.125, 0, 0.1875}, -- NodeBox8 - } - }, - collision_box = { - type = "fixed", - fixed = { - {-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.1875}, -- NodeBox1 - {-0.25, -0.4375, -0.25, 0.25, -0.1875, 0.25}, -- NodeBox2 - {-0.1875, -0.1875, -0.1875, 0.1875, -0.125, 0.1875}, -- NodeBox3 - {-0.125, -0.125, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox4 - {-0.1875, -0.0625, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox5 - {-0.125, 0, -0.125, 0.125, 0.0625, 0.125}, -- NodeBox6 - } - }, - groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1, dig_immediate=3}, - sounds = default.node_sound_glass_defaults(), - drop = "dye:"..colour, - }) - minetest.override_item("dye:"..colour, { - on_place = function(itemstack, placer, pointed_thing) - local pos = pointed_thing.above - minetest.set_node(pos, {name="dye:"..colour.."_node"}) - itemstack:take_item() - return itemstack - end, - }) -end - -minetest.register_node(":farming:bread_node", { - tiles = { - "farming_bread_top.png", - "farming_bread_top.png", - "farming_bread_side.png", - "farming_bread_side.png", - "farming_bread_front.png^[transformFX", - "farming_bread_front.png" - }, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - node_box = { - type = "fixed", - fixed = { - {-0.1875, -0.5, -0.25, 0.125, -0.3125, 0.25}, -- NodeBox1 - {-0.25, -0.3125, -0.25, 0.1875, -0.1875, 0.25}, -- NodeBox2 - {-0.1875, -0.1875, -0.25, 0.125, -0.125, 0.25}, -- NodeBox3 - } - }, - groups = {crumbly=1, not_in_creative_inventory=1}, - sounds = default.node_sound_dirt_defaults(), - drop = "farming:bread" -}) - -minetest.register_node("hyrule_mapgen:chillshroom", { - description = "Chillshroom", - tiles = {"hyrule_mapgen_chillshroom.png"}, - drawtype = "plantlike", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = { - {-0.1, -0.5, -0.1, 0.1, -0.1, 0.1} - } - }, - groups = {fleshy=1, oddly_breakable_by_hand=1, dig_immediate=3}, - sounds = default.node_sound_leaves_defaults(), - drop = "hyrule_mapgen:chillshroom 3", - walkable = false, - on_use = minetest.item_eat(1) -}) - -minetest.register_node("hyrule_mapgen:chillshroom_2", { - description = "Chillshroom (ceiling)", - tiles = {"hyrule_mapgen_chillshroom.png^[transformFY"}, - drawtype = "plantlike", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = { - {-0.1, 0.1, -0.1, 0.1, 0.5, 0.1} - } - }, - groups = {fleshy=1, oddly_breakable_by_hand=1, dig_immediate=3}, - sounds = default.node_sound_leaves_defaults(), - drop = "hyrule_mapgen:chillshroom 3", - walkable = false, - on_use = minetest.item_eat(1) -}) - -minetest.register_node("hyrule_mapgen:sunshroom", { - description = "Sunshroom", - tiles = {"hyrule_mapgen_sunshroom.png"}, - drawtype = "plantlike", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = { - {-0.1, -0.5, -0.1, 0.1, -0.1, 0.1} - } - }, - groups = {fleshy=1, oddly_breakable_by_hand=1, dig_immediate=3, flammable=1}, - sounds = default.node_sound_leaves_defaults(), - drop = "hyrule_mapgen:sunshroom 3", - walkable = false, - on_use = minetest.item_eat(1) -}) - -minetest.register_node("hyrule_mapgen:zapshroom", { - description = "Zapshroom", - tiles = {"hyrule_mapgen_zapshroom.png"}, - drawtype = "plantlike", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = { - {-0.1, -0.5, -0.1, 0.1, -0.1, 0.1} - } - }, - groups = {fleshy=1, oddly_breakable_by_hand=1, dig_immediate=3}, - sounds = default.node_sound_leaves_defaults(), - drop = "hyrule_mapgen:zapshroom 3", - walkable = false, - on_use = minetest.item_eat(1) -}) - -minetest.register_node("hyrule_mapgen:rushroom", { - description = "Rushroom", - tiles = {"hyrule_mapgen_rushroom.png"}, - drawtype = "plantlike", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = { - {-0.1, -0.5, -0.1, 0.1, -0.1, 0.1} - } - }, - groups = {fleshy=1, oddly_breakable_by_hand=1, dig_immediate=3}, - sounds = default.node_sound_leaves_defaults(), - drop = "hyrule_mapgen:rushroom 3", - walkable = false, - on_use = minetest.item_eat(1) -}) - -minetest.register_node("hyrule_mapgen:berry_bush", { - description = "Wildberry Bush", - tiles = {"hyrule_mapgen_wildberry_bush.png"}, - drawtype = "plantlike", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = { - {-0.1, -0.5, -0.1, 0.1, 0, 0.1} - } - }, - groups = {snappy=1, oddly_breakable_by_hand=1, dig_immediate=3}, - sounds = default.node_sound_leaves_defaults(), - walkable = false, - on_rightclick = function(pos, node) - minetest.add_item(pos, "hyrule_mapgen:wildberry") - minetest.add_item(pos, "hyrule_mapgen:wildberry") - minetest.add_item(pos, "hyrule_mapgen:wildberry") - minetest.remove_node(pos) - end, -}) - -minetest.register_craftitem("hyrule_mapgen:wildberry", { - description = "Wild Berry", - inventory_image = "hyrule_mapgen_wildberry.png", - on_use = minetest.item_eat(1) -}) - -minetest.register_node("hyrule_mapgen:logpile", { - description = "Log Pile", - tiles = { - "default_tree.png^[transformR90", - "default_tree.png^[transformR90", - "default_tree.png^[transformR90", - "default_tree.png^[transformR90", - "default_tree_top.png", - "default_tree_top.png" - }, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.4375, -0.5, -0.0625, -0.125, 0.5}, -- NodeBox1 - {0.0625, -0.4375, -0.5, 0.5, -0.125, 0.5}, -- NodeBox2 - {0.125, -0.5, -0.5, 0.4375, -0.0625, 0.5}, -- NodeBox3 - {-0.4375, -0.5, -0.5, -0.125, -0.0625, 0.5}, -- NodeBox4 - {-0.125, -0.0625, -0.5, 0.1875, 0.375, 0.5}, -- NodeBox5 - {-0.1875, 0, -0.5, 0.25, 0.3125, 0.5}, -- NodeBox6 - } - }, - groups = {choppy=3, oddly_breakable_by_hand=1, flammable=1, falling_node=1}, - drop = "default:tree 3", -}) - -minetest.register_craft( { - output = "hyrule_mapgen:logpile 1", - recipe = { - { "", "default:tree", "" }, - { "default:tree", "", "default:tree" } - } -}) - -minetest.register_node(":default:book_placed", { - tiles = { - "default_book_top.png", - "default_book_top.png^[transformFY", - "default_book_right.png", - "default_book_left.png", - "default_book_top.png^[transformFX", - "default_book_top.png" - }, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - node_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.375, 0.25, -0.4375, 0.3125}, -- NodeBox1 - {-0.25, -0.375, -0.375, 0.25, -0.3125, 0.3125}, -- NodeBox2 - {-0.25, -0.4375, -0.375, -0.1875, -0.375, 0.3125}, -- NodeBox3 - {-0.25, -0.4375, -0.375, 0.1875, -0.375, 0.25}, -- NodeBox4 - } - }, - groups = {choppy=1, dig_immediate=3, not_in_creative_inventory=1}, - sounds = default.node_sound_leaves_defaults(), - drop = "default:book" -}) - -minetest.register_node("hyrule_mapgen:bigmush", { - description = "Big Mushroom", - drawtype = "plantlike", - tiles = { - "hyrule_mapgen_bigmush.png" - }, - wield_image = "hyrule_mapgen_bigmush.png", - inventory_image = "hyrule_mapgen_bigmush.png", - groups = {snappy=1, flammable=1, oddly_breakable_by_hand = 1,}, - paramtype = "light", - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.2, 0.3} - }, - on_use = minetest.item_eat(-2) -}) - -minetest.register_node("hyrule_mapgen:big_table", { - description = "Big Table", - tiles = { - "hyrule_mapgen_bigtable_top.png", - "hyrule_mapgen_bigtable.png", - "hyrule_mapgen_bigtable.png", - "hyrule_mapgen_bigtable.png", - "hyrule_mapgen_bigtable.png", - "hyrule_mapgen_bigtable.png" - }, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - node_box = { - type = "fixed", - fixed = { - {-0.5, 0.375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox1 - {-0.5, -0.5, 0.1875, -0.1875, 0.375, 0.5}, -- NodeBox2 - } - }, - groups = {choppy=1, oddly_breakable_by_hand=1} -}) - -minetest.register_craft( { - output = "hyrule_mapgen:big_table 1", - recipe = { - { "default:wood", "default:wood", "default:wood" }, - { "default:wood", "", "" }, - { "default:wood", "", "" } - } -}) - -minetest.register_node("hyrule_mapgen:crystal_1", { - description = "Cave Crystal (Blue)", - tiles = { - "hyrule_mapgen_crystal1.png", - }, - groups = {cracky=1}, - drawtype = "nodebox", - use_texture_alpha = true, - paramtype = "light", - paramtype2 = "facedir", - light_source = 6, - node_box = { - type = "fixed", - fixed = { - {-0.125, -0.5, -0.0625, 0.1875, 0.4375, 0.25}, -- NodeBox6 - {0, -0.5, -0.3125, 0.1875, 0.1875, -0.125}, -- NodeBox7 - {-0.3125, -0.5, -0.1875, -0.0625, -0.0625, 0.0625}, -- NodeBox8 - {0.1875, -0.5, 0.0625, 0.3125, 0, 0.1875}, -- NodeBox9 - {-0.25, -0.5, 0.125, 0, 0.0625, 0.375}, -- NodeBox10 - } - }, - sounds = default.node_sound_glass_defaults() -}) - -minetest.register_node("hyrule_mapgen:crystal_3", { - description = "Cave Crystal (Green)", - tiles = { - "hyrule_mapgen_crystal3.png", - }, - groups = {cracky=1}, - use_texture_alpha = true, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - light_source = 6, - node_box = { - type = "fixed", - fixed = { - {-0.1875, -0.5, -0.25, 0, 0.1875, -0.0625}, -- NodeBox16 - {0, -0.5, 0.0625, 0.25, 0.5, 0.3125}, -- NodeBox19 - {-0.375, -0.5, 0.0625, -0.1875, -0.0625, 0.25}, -- NodeBox20 - } - }, - sounds = default.node_sound_glass_defaults() -}) - -minetest.register_node("hyrule_mapgen:crystal_2", { - description = "Cave Crystal (Purple)", - tiles = { - "hyrule_mapgen_crystal2.png", - }, - groups = {cracky=1}, - use_texture_alpha = true, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - light_source = 6, - node_box = { - type = "fixed", - fixed = { - {-0.125, -0.5, -0.1875, 0.125, 0.4375, 0.125}, -- NodeBox11 - {0.0625, -0.5, 0.1875, 0.25, 0.1875, 0.375}, -- NodeBox12 - {-0.375, -0.5, -0.25, -0.1875, -0.0625, -0.0625}, -- NodeBox13 - {-0.3125, -0.5, 0.0625, -0.0625, 0.125, 0.3125}, -- NodeBox14 - {0.0625, -0.5, -0.3125, 0.25, 0.25, -0.125}, -- NodeBox15 - } - }, - sounds = default.node_sound_glass_defaults() -}) - -minetest.register_node("hyrule_mapgen:bush_leaves", { - description = "Shrub Leaves", - tiles = {"hyrule_mapgen_bushleaves.png"}, - drawtype = "allfaces", - paramtype = "light", - walkable = false, - groups = {snappy=1, oddly_breakable_by_hand=1, leaves=1}, - sounds = default.node_sound_leaves_defaults(), -}) - -minetest.register_node("hyrule_mapgen:windmill_node", { - description = "Windmill", - drawtype = "airlike", - tiles = {"hyrule_mapgen_trans.png"}, - wield_image = "hyrule_mapgen_windmill_inv.png", - inventory_image = "hyrule_mapgen_windmill_inv.png", - groups = {choppy = 1, oddly_breakable_by_hand=1}, - sounds = default.node_sound_wood_defaults(), - on_construct = function(pos, node) - minetest.env:add_entity({x=pos.x, y=pos.y+1, z=pos.z}, "hyrule_mapgen:windmill") - end, -}) - -minetest.register_node("hyrule_mapgen:dungeon_seed", { - description = "Dungeon Seed", - tiles = {"default_stone.png"}, - groups = {cracky = 3, not_in_creative_inventory=1}, - sounds = default.node_sound_stone_defaults(), - drop = "default:stone" -}) - -minetest.register_node("hyrule_mapgen:moldorm_stone", { - description = "Moldorm Stone", - tiles = {"hyrule_mapgen_moldorm_stone.png"}, - groups = {}, - sounds = default.node_sound_stone_defaults(), - on_rightclick = function(pos, node, clicker, itemstack) - minetest.env:add_entity({x=pos.x, y=pos.y+1, z=pos.z}, "mobs_loz:great_moldorm") - minetest.remove_node(pos) - end, -}) - -minetest.register_node("hyrule_mapgen:octorock_stone", { - description = "Octorock Stone", - tiles = {"hyrule_mapgen_octorock_stone.png"}, - groups = {}, - sounds = default.node_sound_stone_defaults(), - on_rightclick = function(pos, node, clicker, itemstack) - minetest.env:add_entity({x=pos.x, y=pos.y+1, z=pos.z}, "mobs_loz:octorock_boss") - minetest.remove_node(pos) - end, -}) - -minetest.register_node("hyrule_mapgen:ice_brick", { - description = "Ice Brick", - tiles = {"hyrule_mapgen_ice_brick.png"}, - groups = {cracky = 3, cools_lava = 1}, - sounds = default.node_sound_glass_defaults(), -}) - -minetest.register_node("hyrule_mapgen:ice_waterfall", { - description = "Frozen Waterfall", - drawtype = "glasslike", - use_texture_alpha = true, - tiles = {"hyrule_mapgen_ice_waterfall.png"}, - inventory_image = "[inventorycube{hyrule_mapgen_ice_waterfall_inv.png{hyrule_mapgen_ice_waterfall_inv.png{hyrule_mapgen_ice_waterfall_inv.png", - groups = {cracky = 3, cools_lava = 1}, - sounds = default.node_sound_glass_defaults(), -}) - -minetest.register_craft({ - output = 'hyrule_mapgen:ice_brick', - recipe = { - {'default:ice', 'default:ice', ''}, - {'default:ice', '', ''}, - {'default:ice', '', ''}, - } -}) - -stairs.register_stair_and_slab( - "ice_brick", - "hyrule_mapgen:ice_brick", - {cracky = 3, cools_lava = 1}, - {"hyrule_mapgen_ice_brick.png"}, - "Ice brick Stair", - "Ice brick Slab", - default.node_sound_glass_defaults() -) - -minetest.register_node("hyrule_mapgen:icicle", { - description = "Icicle", - tiles = { - "default_ice.png", - }, - use_texture_alpha = true, - drawtype = "nodebox", - paramtype = "light", - node_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, 0.5, 0.25}, -- NodeBox1 - {-0.1875, 0.4375, -0.1875, 0.1875, 1.1875, 0.1875}, -- NodeBox2 - {-0.125, 1.1875, -0.125, 0.125, 1.6875, 0.125}, -- NodeBox3 - {-0.0625, 1.6875, -0.0625, 0.0625, 2.0625, 0.0625}, -- NodeBox4 - } - }, - groups = {cracky=3, oddly_breakable_by_hand=1, dig_immediate=3}, - sounds = default.node_sound_glass_defaults(), - drop = "", - on_destruct = function(pos) - minetest.env:add_item({x=pos.x-0.3, y=pos.y+0.5, z=pos.z-0.3}, "hyruletools:ice_fragment") - minetest.env:add_item({x=pos.x-0.3, y=pos.y+0.5, z=pos.z+0.3}, "hyruletools:ice_fragment") - minetest.env:add_item({x=pos.x+0.3, y=pos.y+0.5, z=pos.z-0.3}, "hyruletools:ice_fragment") - minetest.env:add_item({x=pos.x+0.3, y=pos.y+0.5, z=pos.z+0.3}, "hyruletools:ice_fragment") - end, -}) - -minetest.register_node("hyrule_mapgen:obsidian_spike", { - description = "Obsidian spike", - tiles = { - "default_obsidian.png", - }, - use_texture_alpha = true, - drawtype = "nodebox", - paramtype = "light", - node_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, 0.5, 0.25}, -- NodeBox1 - {-0.1875, 0.4375, -0.1875, 0.1875, 1.1875, 0.1875}, -- NodeBox2 - {-0.125, 1.1875, -0.125, 0.125, 1.6875, 0.125}, -- NodeBox3 - {-0.0625, 1.6875, -0.0625, 0.0625, 2.0625, 0.0625}, -- NodeBox4 - } - }, - groups = {cracky=1,}, - sounds = default.node_sound_stone_defaults(), - drop = "default:obsidian", -}) - -minetest.register_entity("hyrule_mapgen:laser", { - visual = "cube", - textures = { - "hyrule_mapgen_laser.png", - "hyrule_mapgen_laser.png", - "hyrule_mapgen_laser.png", - "hyrule_mapgen_laser.png", - "hyrule_mapgen_laser.png", - "hyrule_mapgen_laser.png", - }, - visual_size={x=0.1,y=0.1}, - collisionbox = {0, 0, 0, 0, 0, 0}, - physical = false, - automatic_rotate = true, - automatic_face_movement_dir = 0, - on_activate = function(self) - minetest.after(3, function() - self.object:remove() - end) - end, - on_step = function(self, dtime) - local pos = self.object:getpos() - local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y-0.5,z=pos.z}, 0.5) - for k, obj in pairs(objs) do - if obj:is_player() then - obj:punch(self.object, 1.0, { - full_punch_interval=1.0, - damage_groups={fleshy=1}, - }, nil) - self.object:remove() - end - if obj:get_luaentity() ~= nil then - if obj:get_luaentity().name ~= "hyrule_mapgen:laser" and obj:get_luaentity().name ~= "__builtin:item" then - obj:punch(self.object, 1.0, { - full_punch_interval=1.0, - damage_groups={fleshy=1}, - }, nil) - self.object:remove() - end - end - end - end -}) - -minetest.register_node("hyrule_mapgen:beamos", { - description = "Beamos", - tiles = { - "hyrule_mapgen_beamos_top.png", - "hyrule_mapgen_beamos_bottom.png", - "hyrule_mapgen_beamos_sides.png", - "hyrule_mapgen_beamos_sides.png", - "hyrule_mapgen_beamos_sides.png", - "hyrule_mapgen_beamos_front.png", - }, - groups = {cracky = 3,}, - paramtype2 = "facedir", -}) - - -minetest.register_abm({ - nodenames = {"hyrule_mapgen:beamos"}, - interval = 0.8, - chance = 1, - action = function(pos, node) - local x = 0 - local z = 0 - if node.param2 == 0 then - z = -1 - elseif node.param2 == 2 then - z = 1 - elseif node.param2 == 1 then - x = -1 - elseif node.param2 == 3 then - x = 1 - end - --minetest.chat_send_all(node.param2) - for num=1,5 do - local objs = minetest.get_objects_inside_radius({x=pos.x+x*num, y=pos.y-0.5, z=pos.z+z*num}, 1) - for _, obj in ipairs(objs) do - if obj:is_player() then - local name = obj:get_player_name() - minetest.sound_play("Laser", {pos=pos, max_hear_distance=10, gain=0.5}) - local ent = minetest.env:add_entity(pos, "hyrule_mapgen:laser") - ent:setvelocity({x=12*x, y=0, z=12*z}) - for i=1,5 do - minetest.after(i/10, function() - local ent = minetest.env:add_entity(pos, "hyrule_mapgen:laser") - ent:setvelocity({x=12*x, y=0, z=12*z}) - end) - end - end - end - end - end -}) - -minetest.register_node("hyrule_mapgen:spikes", { - description = "Spikes", - drawtype = "firelike", - tiles = { - "hyrule_mapgen_spikes.png" - }, - wield_image = "hyrule_mapgen_spikes.png", - inventory_image = "hyrule_mapgen_spikes.png", - groups = {cracky=3}, - paramtype = "light", - walkable = false, - damage_per_second = 3, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.3, 0.5} - }, - collision_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.2, 0.5} - } -}) - -minetest.register_node("hyrule_mapgen:sinkingsand", { - description = "Sinkin Sand", - drawtype = "liquid", - tiles = {{ - name = "hyrule_mapgen_sinkingsand.png", - animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 1.00}, - }}, - inventory_image = "hyrule_mapgen_sinkingsand_inv.png", - groups = {liquid=1, water=1}, - pointable = false, - buildable_to = true, - liquid_viscosity = 8, - liquid_range = 0, - liquidtype = "source", - liquid_alternative_flowing = "hyrule_mapgen:sinkingsand", - liquid_alternative_source = "hyrule_mapgen:sinkingsand", - damage_per_second = 3, - walkable = false -}) - - -local chest_items = { - {"clawshot:clawshot", 5}, - {"hyruletools:eye", 5}, - {"hyruletools:boomerang", 5}, - {"hyruletools:flame_rod", 10}, - {"hyruletools:wand", 10}, - {"hyruletools:medallion", 10}, - {"hyruletools:medallion2", 10}, - {"hyruletools:medallion3", 10}, - {"hyruletools:ice_rod 1", 5}, - {"hyruletools:blue_rupee 20", 5}, - {"hyruletools:red_rupee 10", 5}, - {"hyruletools:nyan_rupee", 5}, -} - -minetest.register_node("hyrule_mapgen:chest", { - description = "Dungeon Chest", - tiles = {"hyrule_mapgen_chest_top.png", "hyrule_mapgen_chest_top.png", "hyrule_mapgen_chest_side.png", - "hyrule_mapgen_chest_side.png", "hyrule_mapgen_chest_side.png", "hyrule_mapgen_chest.png"}, - paramtype2 = "facedir", - 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 - } - }, - groups = {cracky = 2, oddly_breakable_by_hand = 1}, - is_ground_content = false, - on_construct = function(pos) - local meta = minetest.get_meta(pos) - local inv = meta:get_inventory() - for _, row in ipairs(chest_items) do - local item = row[1] - local rarity = row[2] - if math.random(1,rarity) == 1 then - meta:set_string("item", item) - return - else - meta:set_string("item", "hyruletools:green_rupee 20") - end - end - inv:set_size("main", 1*1) - end, - can_dig = function(pos,player) - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory() - return inv:is_empty("main") - end, - on_rightclick = function(pos, node, clicker, item, _) - local name = clicker:get_player_name() - if clicker:get_wielded_item():get_name() == "hyruletools:key" then - item:take_item() - local meta = minetest.get_meta(pos) - local item = meta:get_string("item") - if item == nil then - for _, row in ipairs(chest_items) do - local item = row[1] - local rarity = row[2] - if math.random(1,rarity) == 1 then - meta:set_string("item", item) - else - meta:set_string("item", "hyruletools:green_rupee 20") - end - end - end - minetest.env:add_item(pos, item) - minetest.env:remove_node(pos) - else - minetest.chat_send_player(name, "It is locked, you need a key!") - end - end, -}) - -minetest.register_node("hyrule_mapgen:chest_key", { - description = "Dungeon Chest (key)", - tiles = {"hyrule_mapgen_chest_top.png", "hyrule_mapgen_chest_top.png", "hyrule_mapgen_chest_side.png", - "hyrule_mapgen_chest_side.png", "hyrule_mapgen_chest_side.png", "hyrule_mapgen_chest.png"}, - paramtype2 = "facedir", - 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 - } - }, - groups = {cracky = 2, oddly_breakable_by_hand = 1}, - is_ground_content = false, - on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) - if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name ~= "hyrule_mapgen:dungeon_brick" and minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name ~= "hyrule_mapgen:dungeon_tile" and minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name ~= "hyrule_mapgen:dungeon_brick2" and minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name ~= "hyrule_mapgen:dungeon_tile2" then - minetest.env:add_item(pos, "hyruletools:key") - else - minetest.env:add_item(pos, "hyruletools:retro_key") - end - minetest.env:remove_node(pos) - return itemstack - end, -}) - -minetest.register_node("hyrule_mapgen:chest_bosskey", { - description = "Dungeon Chest (Boss key)", - tiles = {"hyrule_mapgen_chest_top.png", "hyrule_mapgen_chest_top.png", "hyrule_mapgen_chest_side.png", - "hyrule_mapgen_chest_side.png", "hyrule_mapgen_chest_side.png", "hyrule_mapgen_chest_bosskey.png"}, - paramtype2 = "facedir", - 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 - } - }, - groups = {cracky = 2, oddly_breakable_by_hand = 1}, - is_ground_content = false, - can_dig = function(pos,player) - local meta = minetest.get_meta(pos); - local inv = meta:get_inventory() - return inv:is_empty("main") - end, - on_rightclick = function(pos, node, clicker, item, _) - local name = clicker:get_player_name() - if clicker:get_wielded_item():get_name() == "hyruletools:key" then - item:take_item() - minetest.env:add_item(pos, "hyruletools:key_boss") - minetest.env:remove_node(pos) - else - minetest.chat_send_player(name, "It's locked, you need a key!") - end - end, -}) - -minetest.register_node("hyrule_mapgen:bridge", { - description = "Wooden Bridge", - tiles = { - "hyrule_mapgen_bridge.png", - "hyrule_mapgen_bridge.png", - "hyrule_mapgen_bridge_side.png", - "hyrule_mapgen_bridge_side.png", - "hyrule_mapgen_bridge.png", - "hyrule_mapgen_bridge.png" - }, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.4375, 0.5, -0.125, -0.1875}, -- NodeBox1 - {-0.5, -0.5, 0.1875, 0.5, -0.125, 0.4375}, -- NodeBox2 - {-0.5, -0.5, -0.125, 0.5, -0.125, 0.125}, -- NodeBox3 - {-0.5, -0.4375, -0.5, 0.5, -0.1875, 0.5}, -- NodeBox4 - } - }, - groups = {choppy=1, oddly_breakable_by_hand=1} -}) - -minetest.register_craft({ - output = 'hyrule_mapgen:bridge', - recipe = { - {'', 'group:wood', ''}, - {'group:wood', 'group:wood', 'group:wood'}, - } -}) - -minetest.register_node("hyrule_mapgen:bridge2", { - description = "Subrosian Bridge", - tiles = { - "hyrule_mapgen_bridge2.png", - "hyrule_mapgen_bridge2.png", - "hyrule_mapgen_bridge_side2.png", - "hyrule_mapgen_bridge_side2.png", - "hyrule_mapgen_bridge2.png", - "hyrule_mapgen_bridge2.png" - }, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.4375, 0.5, -0.125, -0.1875}, -- NodeBox1 - {-0.5, -0.5, 0.1875, 0.5, -0.125, 0.4375}, -- NodeBox2 - {-0.5, -0.5, -0.125, 0.5, -0.125, 0.125}, -- NodeBox3 - {-0.5, -0.4375, -0.5, 0.5, -0.1875, 0.5}, -- NodeBox4 - } - }, - groups = {choppy=2, oddly_breakable_by_hand=1} -}) - -minetest.register_node("hyrule_mapgen:swamp_flower", { - description = "Swamp Flower", - drawtype = "mesh", - mesh = "lilypad.b3d", - tiles = {"hyrule_mapgen_swampflower.png"}, - inventory_image = "hyrule_mapgen_swampflower.png", - paramtype = "light", - sunlight_propagates = false, - walkable = false, - is_ground_content = true, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} - }, - collision_box = { - type = "fixed", - fixed = {-1, -0.5, -1, 1, -0.4, 1} - }, - groups = {cracky=3,dig_immediate=3}, -}) - -playereffects.register_effect_type("float", "", nil, {"gravity"}, - function(player) - player:set_physics_override(nil,nil,0.2) - physics_overriden = true - end, - - function(effect, player) - player:set_physics_override(nil,nil,1) - physics_overriden = false - end, - false -) - -minetest.register_node("hyrule_mapgen:fallen_leaves", { - description = "Fallen Leaves", - tiles = { - "hyrule_mapgen_leaves.png", - }, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - place_param2 = random, - groups = {snappy=2, oddly_breakable_by_hand=1, dig_immediate=3}, - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.45, 0.5}, - } - } -}) - -minetest.register_node("hyrule_mapgen:biglily", { - description = "Big Waterlily", - drawtype = "mesh", - mesh = "lilypad.b3d", - tiles = {"hyrule_mapgen_biglily.png"}, - inventory_image = "hyrule_mapgen_biglily.png", - paramtype = "light", - sunlight_propagates = false, - walkable = true, - is_ground_content = true, - liquids_pointable = true, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} - }, - collision_box = { - type = "fixed", - fixed = {-1, -0.5, -1, 1, -0.4, 1} - }, - --on_place from flowers waterlily Originally by Ironzorg (MIT) and VanessaE (MIT) - --Various Minetest developers and contributors. - on_place = function(itemstack, placer, pointed_thing) - local pos = pointed_thing.above - local node = minetest.get_node(pointed_thing.under).name - local def = minetest.registered_nodes[node] - local player_name = placer:get_player_name() - - if def and def.liquidtype == "source" and - minetest.get_item_group(node, "water") > 0 then - if not minetest.is_protected(pos, player_name) then - minetest.set_node(pos, {name = "hyrule_mapgen:biglily", - param2 = math.random(0, 3)}) - if not minetest.setting_getbool("creative_mode") then - itemstack:take_item() - end - else - minetest.chat_send_player(player_name, "Node is protected") - minetest.record_protection_violation(pos, player_name) - end - end - - return itemstack - end, - groups = {snappy=1, dig_immediate=3,}, -}) - -minetest.register_node("hyrule_mapgen:deku_flower", { - description = "Deku Flower", - drawtype = "mesh", - mesh = "flatnode.b3d", - tiles = {"hyrule_mapgen_dekuflower.png"}, - inventory_image = "hyrule_mapgen_dekuflower.png", - paramtype = "light", - sunlight_propagates = false, - walkable = false, - is_ground_content = true, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} - }, - groups = {snappy=1, dig_immediate=3,}, -}) - -minetest.register_node("hyrule_mapgen:healwater_src", { - description = "Healing Water Source", - drawtype = "liquid", - tiles = { - { - name = "default_water_source_animated.png^[colorize:pink:150", - animation = { - type = "vertical_frames", - aspect_w = 16, - aspect_h = 16, - length = 2.0, - }, - }, - }, - alpha = 160, - light_source = 14, - paramtype = "light", - walkable = false, - pointable = false, - diggable = false, - buildable_to = true, - is_ground_content = false, - drop = "", - drowning = -1, - liquidtype = "source", - liquid_alternative_flowing = "hyrule_mapgen:healwater_src", - liquid_alternative_source = "hyrule_mapgen:healwater_src", - liquid_range = 0, - liquid_viscosity = 1, - post_effect_color = {a = 103, r = 80, g = 50, b = 50}, - groups = {water = 3, liquid = 3,}, - sounds = default.node_sound_water_defaults(), -}) - --- GENERATED CODE --- Node Box Editor, version 0.8.1 - Glass --- Namespace: test - -minetest.register_node("hyrule_mapgen:geyser", { - description = "Lava Geyser", - tiles = { - "hyrule_mapgen_geyser_top.png", - "hyrule_mapgen_geyser_side.png", - "hyrule_mapgen_geyser_side.png", - "hyrule_mapgen_geyser_side.png", - "hyrule_mapgen_geyser_side.png", - "hyrule_mapgen_geyser_side.png" - }, - drawtype = "nodebox", - paramtype = "light", - groups = {crumbly=2, oddly_breakable_by_hand=1}, - damage_per_second = 1, - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.3125, 0.5}, -- NodeBox1 - {-0.4375, -0.3125, -0.4375, 0.4375, -0.125, 0.4375}, -- NodeBox2 - {-0.375, -0.125, -0.375, -0.125, 0, 0.375}, -- NodeBox3 - {0.1875, -0.125, -0.375, 0.375, 0, 0.375}, -- NodeBox4 - {-0.375, -0.125, -0.375, 0.375, 0, -0.1875}, -- NodeBox5 - {-0.3125, -0.125, 0.125, 0.3125, 0, 0.375}, -- NodeBox6 - } - } -}) - ---end of generated code - -minetest.register_abm({ - nodenames = {"hyrule_mapgen:geyser"}, - interval = 1, - chance = 2, - action = function(pos, node) - for i=1,30 do - minetest.after(i*0.13, function() - minetest.add_particle({ - pos = {x=pos.x, y=pos.y+math.random(0,3)/10, z=pos.z}, - velocity = {x=math.random(-1,1)/10, y=math.random(1,2), z=math.random(-1,1)/10}, - acceleration = {x=math.random(-1,1)/10, y=math.random(-5,-10)/10, z=math.random(-1,1)/10}, - expirationtime = math.random(5,10)/10, - size = math.random(3,5), - collisiondetection = false, - collisionremoval = false, - vertical = false, - texture = "hyrule_mapgen_fire.png", - glow = 9 - }) - end) - end - end -}) - -minetest.register_node("hyrule_mapgen:leaves_with_gale", { - description = "Leaves with Gale seed", - drawtype = "allfaces", - paramtype = "light", - tiles = { - "default_leaves.png^hyrule_mapgen_galeseed.png" - }, - drop = "default:leaves", - on_rightclick = function(pos, node, clicker, itemstack) - if clicker:get_wielded_item():get_name() == "hyruletools:seed_satchel" then - local item = clicker:get_wielded_item() - itemstack:take_item() - minetest.env:add_item(pos, "hyruletools:seed_gale") - minetest.env:set_node(pos, {name="default:leaves"}) - end - end, - walkable = false, - groups = {snappy=3, oddly_breakable_by_hand=1, dig_immediate=3} -}) - -minetest.register_node("hyrule_mapgen:leaves_with_ember", { - description = "Leaves with Ember seed", - drawtype = "allfaces", - paramtype = "light", - tiles = { - "default_pine_needles.png^hyrule_mapgen_emberseed.png" - }, - drop = "default:pine_needles", - on_rightclick = function(pos, node, clicker, itemstack) - if clicker:get_wielded_item():get_name() == "hyruletools:seed_satchel" then - local item = clicker:get_wielded_item() - itemstack:take_item() - minetest.env:add_item(pos, "hyruletools:seed_ember") - minetest.env:set_node(pos, {name="default:pine_needles"}) - end - end, - walkable = false, - groups = {snappy=3, oddly_breakable_by_hand=1, dig_immediate=3} -}) - -minetest.register_node("hyrule_mapgen:leaves_with_pegasus", { - description = "Leaves with Pegasus seed", - drawtype = "allfaces", - paramtype = "light", - tiles = { - "default_jungleleaves.png^hyrule_mapgen_pegasusseed.png" - }, - drop = "default:jungleleaves", - on_rightclick = function(pos, node, clicker, itemstack) - if clicker:get_wielded_item():get_name() == "hyruletools:seed_satchel" then - local item = clicker:get_wielded_item() - itemstack:take_item() - minetest.env:add_item(pos, "hyruletools:seed_pegasus") - minetest.env:set_node(pos, {name="default:jungleleaves"}) - end - end, - walkable = false, - groups = {snappy=3, oddly_breakable_by_hand=1, dig_immediate=3} -}) - -minetest.register_node("hyrule_mapgen:leaves_with_mystery", { - description = "Leaves with Mystery seed", - drawtype = "allfaces", - paramtype = "light", - tiles = { - "default_aspen_leaves.png^hyrule_mapgen_mysteryseed.png" - }, - drop = "default:aspen_leaves", - on_rightclick = function(pos, node, clicker, itemstack) - if clicker:get_wielded_item():get_name() == "hyruletools:seed_satchel" then - local item = clicker:get_wielded_item() - itemstack:take_item() - minetest.env:add_item(pos, "hyruletools:seed_mystery") - minetest.env:set_node(pos, {name="default:aspen_leaves"}) - end - end, - walkable = false, - groups = {snappy=3, oddly_breakable_by_hand=1, dig_immediate=3} -}) - -minetest.register_node("hyrule_mapgen:swamp_mud", { - description = "Swamp Mud", - tiles = { - "hyrule_mapgen_swampmud.png" - }, - groups = {crumbly=1, oddly_breakable_by_hand=1}, - sounds = default.node_sound_dirt_defaults() -}) - -minetest.register_node("hyrule_mapgen:swamp_grass", { - description = "Swamp Grass", - drawtype = "plantlike", - tiles = {"hyrule_mapgen_swampgrass.png"}, - inventory_image = "hyrule_mapgen_swampgrass.png", - is_ground_content = false, - sunlight_propagates = true, - walkable = false, - paramtype = "light", - selection_box = { - type = "fixed", - fixed = {{-0.3, -0.5, -0.3, 0.3, 0.4, 0.3}} - }, - groups = {snappy=1, oddly_breakable_by_hand=1, dig_immediate=3}, - sounds = default.node_sound_leaves_defaults(), - on_destruct = function(pos, oldnode) - local num = math.random(3,7) - if num == 5 then - minetest.env:add_item(pos, "hyruletools:green_rupee") - end - if num == 4 then - minetest.env:add_entity(pos, "hyruletools:heart_entity") - end - end, - drop = "", -}) - -minetest.register_node("hyrule_mapgen:grupee", { - description = "Green Rupee Block", - drawtype = "allfaces", - paramtype = "light", - tiles = { - "hyrule_mapgen_grupee.png" - }, - use_texture_alpha = true, - groups = {cracky=1, oddly_breakable_by_hand=1} -}) - -minetest.register_node("hyrule_mapgen:rrupee", { - description = "Red Rupee Block", - drawtype = "allfaces", - paramtype = "light", - tiles = { - "hyrule_mapgen_rrupee.png" - }, - use_texture_alpha = true, - groups = {cracky=1, oddly_breakable_by_hand=1} -}) - -minetest.register_node("hyrule_mapgen:brupee", { - description = "Blue Rupee Block", - drawtype = "allfaces", - paramtype = "light", - tiles = { - "hyrule_mapgen_brupee.png" - }, - use_texture_alpha = true, - groups = {cracky=1, oddly_breakable_by_hand=1} -}) - -minetest.register_node("hyrule_mapgen:nrupee", { - description = "Nyan Rupee Block", - drawtype = "allfaces", - paramtype = "light", - tiles = { - "hyrule_mapgen_nrupee.png" - }, - use_texture_alpha = true, - groups = {cracky=1, oddly_breakable_by_hand=1} -}) - - -minetest.register_craft({ - output = 'hyrule_mapgen:grupee', - recipe = { - {'hyruletools:green_rupee', 'hyruletools:green_rupee', 'hyruletools:green_rupee'}, - {'hyruletools:green_rupee', 'hyruletools:green_rupee', 'hyruletools:green_rupee'}, - {'hyruletools:green_rupee', 'hyruletools:green_rupee', 'hyruletools:green_rupee'}, - } -}) - -minetest.register_craft({ - output = 'hyrule_mapgen:rrupee', - recipe = { - {'hyruletools:red_rupee', 'hyruletools:red_rupee', 'hyruletools:red_rupee'}, - {'hyruletools:red_rupee', 'hyruletools:red_rupee', 'hyruletools:red_rupee'}, - {'hyruletools:red_rupee', 'hyruletools:red_rupee', 'hyruletools:red_rupee'}, - } -}) - -minetest.register_craft({ - output = 'hyrule_mapgen:brupee', - recipe = { - {'hyruletools:blue_rupee', 'hyruletools:blue_rupee', 'hyruletools:blue_rupee'}, - {'hyruletools:blue_rupee', 'hyruletools:blue_rupee', 'hyruletools:blue_rupee'}, - {'hyruletools:blue_rupee', 'hyruletools:blue_rupee', 'hyruletools:blue_rupee'}, - } -}) - -minetest.register_craft({ - output = 'hyrule_mapgen:nrupee', - recipe = { - {'hyruletools:nyan_rupee', 'hyruletools:nyan_rupee', 'hyruletools:nyan_rupee'}, - {'hyruletools:nyan_rupee', 'hyruletools:nyan_rupee', 'hyruletools:nyan_rupee'}, - {'hyruletools:nyan_rupee', 'hyruletools:nyan_rupee', 'hyruletools:nyan_rupee'}, - } -}) - -xpanes.register_pane("wood_fence", { - description = "Wooden Fence", - textures = {"hyrule_mapgen_woodfence.png","xpanes_pane_half.png","xpanes_pane_half.png"}, - inventory_image = "hyrule_mapgen_woodfence.png", - wield_image = "hyrule_mapgen_woodfence.png", - sounds = default.node_sound_glass_defaults(), - groups = {snappy=2, choppy=1, oddly_breakable_by_hand=3}, - recipe = { - {"default:stick", "default:stick", "default:stick"}, - {"default:stick", "default:stick", "default:stick"} - } -}) - -minetest.register_node("hyrule_mapgen:sandstone", { - description = "Dungeon Sandstone", - tiles = { - "hyrule_mapgen_sandstone.png" - }, - groups = {cracky=3,}, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:sandstone_block", { - description = "Dungeon Sandstone Block", - tiles = { - "hyrule_mapgen_sandstone.png", - "hyrule_mapgen_sandstone.png", - "hyrule_mapgen_sandstone_side.png", - }, - groups = {cracky=3,}, - sounds = default.node_sound_stone_defaults() -}) - -stairs.register_stair_and_slab( - "dsandstone", - "hyrule_mapgen:sandstone", - {cracky = 3, oddly_breakable_by_hand = 2, flammable = 2}, - {"hyrule_mapgen_sandstone.png"}, - "Dungeon Sandstone Stair", - "Dungeon Sandstne Slab", - default.node_sound_stone_defaults() -) - -minetest.register_node("hyrule_mapgen:sandstone_tile", { - description = "Dungeon Sandstone Tile", - tiles = { - "hyrule_mapgen_sandstone_tile.png" - }, - groups = {cracky=3,}, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:sandstone_decoration", { - description = "Dungeon Sandstone Decoration", - tiles = { - "hyrule_mapgen_sandstone.png", - "hyrule_mapgen_sandstone.png", - "hyrule_mapgen_sandstone_decoration.png", - "hyrule_mapgen_sandstone_decoration.png", - "hyrule_mapgen_sandstone_decoration.png", - "hyrule_mapgen_sandstone_decoration.png", - }, - groups = {cracky=3,}, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:sandstone_decoration2", { - description = "Dungeon Sandstone Decoration 2", - tiles = { - "hyrule_mapgen_sandstone.png", - "hyrule_mapgen_sandstone.png", - "hyrule_mapgen_sandstone_decoration2.png", - "hyrule_mapgen_sandstone_decoration2.png", - "hyrule_mapgen_sandstone_decoration2.png", - "hyrule_mapgen_sandstone_decoration2.png", - }, - groups = {cracky=3,}, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:pillar", { - description = "Sandstone Pillar", - tiles = { - "hyrule_mapgen_sandstone_tile.png", - "hyrule_mapgen_sandstone_tile.png", - "hyrule_mapgen_sandstone_pillar.png", - "hyrule_mapgen_sandstone_pillar.png", - "hyrule_mapgen_sandstone_pillar.png", - "hyrule_mapgen_sandstone_pillar.png" - }, - drawtype = "nodebox", - paramtype = "light", - groups = {cracky=2, falling_node=1}, - node_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, 0.5, 0.25}, -- NodeBox4 - } - }, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:pillar_base", { - description = "Sandstone Pillar (base)", - tiles = { - "hyrule_mapgen_sandstone_tile.png", - "hyrule_mapgen_sandstone_tile.png", - "hyrule_mapgen_sandstone_pillar_base.png", - "hyrule_mapgen_sandstone_pillar_base.png", - "hyrule_mapgen_sandstone_pillar_base.png", - "hyrule_mapgen_sandstone_pillar_base.png" - }, - drawtype = "nodebox", - paramtype = "light", - groups = {cracky=2, falling_node=1}, - node_box = { - type = "fixed", - fixed = { - {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, 0.4375}, -- NodeBox1 - {-0.375, -0.4375, -0.375, 0.375, -0.3125, 0.375}, -- NodeBox2 - {-0.3125, -0.3125, -0.3125, 0.3125, -0.1875, 0.3125}, -- NodeBox3 - {-0.25, -0.1875, -0.25, 0.25, 0.5, 0.25}, -- NodeBox4 - } - }, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:pillar_top", { - description = "Sandstone Pillar (top)", - tiles = { - "hyrule_mapgen_sandstone_tile.png", - "hyrule_mapgen_sandstone_tile.png", - "hyrule_mapgen_sandstone_pillar_top.png", - "hyrule_mapgen_sandstone_pillar_top.png", - "hyrule_mapgen_sandstone_pillar_top.png", - "hyrule_mapgen_sandstone_pillar_top.png" - }, - drawtype = "nodebox", - paramtype = "light", - groups = {cracky=2, falling_node=1}, - node_box = { - type = "fixed", - fixed = { - {-0.4375, 0.4375, -0.4375, 0.4375, 0.5, 0.4375}, -- NodeBox1 - {-0.375, 0.3125, -0.375, 0.375, 0.4375, 0.375}, -- NodeBox2 - {-0.3125, 0.1875, -0.3125, 0.3125, 0.3125, 0.3125}, -- NodeBox3 - {-0.25, -0.5, -0.25, 0.25, 0.1875, 0.25}, -- NodeBox4 - } - }, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:greenwall", { - description = "Green Tile", - tiles = { - "hyrule_mapgen_green_wall.png" - }, - groups = {cracky=1, magnetic=0} -}) - -minetest.register_node("hyrule_mapgen:beamoswall", { - description = "Beamos Block", - tiles = { - "hyrule_mapgen_beamos_wall.png" - }, - groups = {cracky=1, magnetic=0} -}) - -minetest.register_node("hyrule_mapgen:railblock", { - description = "Railway Block", - tiles = { - "hyrule_mapgen_railblock.png" - }, - groups = {cracky=1, magnetic=0} -}) - -minetest.register_node("hyrule_mapgen:greentile", { - description = "Green Dungeon Tile", - tiles = { - "hyrule_mapgen_greentile.png" - }, - groups = {cracky=1,}, - sounds = default.node_sound_glass_defaults() -}) - -minetest.register_node("hyrule_mapgen:stained_glass", { - description = "Stained Glass", - drawtype = "glasslike", - tiles = { - "hyrule_mapgen_stainedglass.png" - }, - use_texture_alpha = true, - paramtype = "light", - light_source = 10, - sunlight_propagates = true, - groups = {cracky=1, oddly_breakable_by_hand=1, dig_immediate = 3}, - sounds = default.node_sound_glass_defaults() -}) - -minetest.register_node("hyrule_mapgen:ganon_sphere", { - description = "Ganon Sphere", - tiles = { - "hyrule_mapgen_ganonsphere.png", - }, - drawtype = "nodebox", - paramtype = "light", - light_source = 10, - groups = {cracky=4, oddly_breakable_by_hand=1}, - walkable = false, - sounds = default.node_sound_glass_defaults(), - use_texture_alpha = true, - node_box = { - type = "fixed", - fixed = { - {-0.375, -0.1875, -0.1875, 0.375, 0.1875, 0.1875}, -- NodeBox5 - {-0.1875, -0.375, -0.1875, 0.1875, 0.375, 0.1875}, -- NodeBox6 - {-0.3125, -0.25, -0.25, 0.3125, 0.25, 0.25}, -- NodeBox7 - {-0.25, -0.25, -0.3125, 0.25, 0.25, 0.3125}, -- NodeBox8 - {-0.25, -0.3125, -0.25, 0.25, 0.3125, 0.25}, -- NodeBox9 - {-0.1875, -0.1875, -0.375, 0.1875, 0.1875, 0.375}, -- NodeBox12 - } - }, - drop = "" -}) - -minetest.register_node("hyrule_mapgen:floortile", { - description = "Floor Tile", - tiles = { - "hyrule_mapgen_floortile.png" - }, - groups = {cracky=1, magnetic=1} -}) - -minetest.register_node("hyrule_mapgen:floorbrick", { - description = "Floor Brick", - tiles = { - "hyrule_mapgen_brick.png" - }, - groups = {cracky=1} -}) - -stairs.register_stair_and_slab( - "floortile", - "hyrule_mapgen:floortile", - {cracky = 3, cools_lava = 1}, - {"hyrule_mapgen_floortile.png"}, - "Floor Tile Stair", - "Floor Tile Slab", - default.node_sound_stone_defaults() -) - -minetest.register_node("hyrule_mapgen:carpet", { - description = "Carpet Block", - tiles = { - "hyrule_mapgen_carpet.png" - }, - groups = {fleshy=1, dig_immediate=3, oddly_breakable_by_hand=1} -}) - -minetest.register_node("hyrule_mapgen:carpet_trap", { - description = "Carpet Trap", - tiles = { - "hyrule_mapgen_carpet.png" - }, - walkable = false, - damage_per_second = 3, - groups = {fleshy=1, dig_immediate=3, oddly_breakable_by_hand=1} -}) - - -minetest.register_node("hyrule_mapgen:magnblock", { - description = "Magnetic Block (almost unbreakeable)", - tiles = { - "hyrule_mapgen_magnblock.png" - }, - groups = {cracky=7, magnetic=1} -}) - -minetest.register_node("hyrule_mapgen:flameblock", { - description = "Flame Block (almost unbreakeable)", - tiles = { - "hyrule_mapgen_flameblock.png" - }, - groups = {cracky=7, flammable=1} -}) - - -minetest.register_node("hyrule_mapgen:subrosian_stone", { - description = "Subrosian Stone", - tiles = { - "hyrule_mapgen_subrosianstone.png" - }, - paramtype = "light", - light_source = 10, - groups = {cracky=2,} -}) - - -minetest.register_craft({ - output = 'hyrule_mapgen:railblock', - recipe = { - {'', 'default:steel_ingot', ''}, - {'default:steel_ingot', 'default:steel_ingot', ''}, - {'', 'default:steel_ingot', ''}, - } -}) - -local function open_door(pos, player) - if doors.get then - local minp = {x=pos.x-5, y=pos.y, z=pos.z-5} - local maxp = {x=pos.x+5, y=pos.y, z=pos.z+5} - local doorss = minetest.find_nodes_in_area(minp, maxp, "group:door") - for i = 1, #doorss do - local dpos = {x=doorss[i].x, y=doorss[i].y, z=doorss[i].z} - local door = doors.get(dpos) - door:toggle(player) - end - - end -end - -minetest.register_node("hyrule_mapgen:lamp", { - description = "Floor Lamp", - tiles = { - "hyrule_mapgen_lamptop.png", - "hyrule_mapgen_lamptop.png", - "hyrule_mapgen_lampside.png", - }, - drawtype = "nodebox", - paramtype = "light", - node_box = { - type = "fixed", - fixed = { - {0.375, -0.5, 0.375, 0.5, 0, 0.5}, -- NodeBox1 - {0.375, -0.5, -0.5, 0.5, 0, -0.375}, -- NodeBox2 - {-0.5, -0.5, -0.5, -0.375, 0, -0.375}, -- NodeBox3 - {-0.5, -0.5, 0.375, -0.375, 0, 0.5}, -- NodeBox4 - {-0.375, -0.5, -0.375, 0.375, -0.1875, 0.375}, -- NodeBox5 - {-0.375, -0.375, -0.4375, 0.375, 0.1875, -0.3125}, -- NodeBox6 - {-0.375, -0.375, 0.3125, 0.375, 0.1875, 0.4375}, -- NodeBox7 - {0.3125, -0.375, -0.375, 0.4375, 0.1875, 0.375}, -- NodeBox8 - {-0.4375, -0.375, -0.375, -0.3125, 0.1875, 0.375}, -- NodeBox9 - {-0.1875, -0.5, -0.1875, 0.1875, -0.0625, 0.1875}, -- NodeBox10 - {-0.4375, -0.5, -0.4375, 0.4375, 0.0625, 0.4375}, -- NodeBox11 - } - }, - on_rightclick = function(pos, node, clicker, itemstack) - if clicker:get_wielded_item():get_name() == "hyruletools:lantern" then - minetest.set_node(pos, {name="hyrule_mapgen:lamp_lit"}) - open_door(pos, clicker) - end - end, - groups = {cracky=1, falling_node=1}, -}) - -minetest.register_node("hyrule_mapgen:lamp_lit", { - description = "Floor Lamp", - tiles = { - "hyrule_mapgen_lamptop.png", - "hyrule_mapgen_lamptop.png", - "hyrule_mapgen_lampside.png", - }, - drawtype = "nodebox", - light_source = 10, - sunlight_propagates = false, - paramtype = "light", - drop = "hyrule_mapgen:lamp", - node_box = { - type = "fixed", - fixed = { - {0.375, -0.5, 0.375, 0.5, 0, 0.5}, -- NodeBox1 - {0.375, -0.5, -0.5, 0.5, 0, -0.375}, -- NodeBox2 - {-0.5, -0.5, -0.5, -0.375, 0, -0.375}, -- NodeBox3 - {-0.5, -0.5, 0.375, -0.375, 0, 0.5}, -- NodeBox4 - {-0.375, -0.5, -0.375, 0.375, -0.1875, 0.375}, -- NodeBox5 - {-0.375, -0.375, -0.4375, 0.375, 0.1875, -0.3125}, -- NodeBox6 - {-0.375, -0.375, 0.3125, 0.375, 0.1875, 0.4375}, -- NodeBox7 - {0.3125, -0.375, -0.375, 0.4375, 0.1875, 0.375}, -- NodeBox8 - {-0.4375, -0.375, -0.375, -0.3125, 0.1875, 0.375}, -- NodeBox9 - {-0.1875, -0.5, -0.1875, 0.1875, -0.0625, 0.1875}, -- NodeBox10 - {-0.4375, -0.5, -0.4375, 0.4375, 0.0625, 0.4375}, -- NodeBox11 - } - }, - groups = {cracky=1, falling_node=1, not_in_creative_inventory=1}, -}) - -minetest.register_abm({ - nodenames = {"hyrule_mapgen:lamp_lit"}, - interval = 1, - chance = 1, - action = function(pos, node) - for i=1,5 do - minetest.after(i*0.2, function() - minetest.add_particle({ - pos = {x=pos.x+math.random(-2,2)/10, y=pos.y, z=pos.z+math.random(-2,2)/10}, - velocity = {x=0, y=math.random(5,10)/10, z=0}, - acceleration = {x=math.random(0,5)/10, y=0.5, z=math.random(0,5)/10}, - expirationtime = math.random(2,5)/10, - size = math.random(4,8), - collisiondetection = false, - collisionremoval = false, - vertical = false, - texture = "hyruletools_flame.png", - glow = 9 - }) - end) - end - end -}) - -minetest.register_abm({ - nodenames = {"hyrule_mapgen:lamp_lit"}, - interval = 30, - chance = 1, - action = function(pos, node) - minetest.set_node(pos, {name="hyrule_mapgen:lamp"}) - end -}) - -minetest.register_node("hyrule_mapgen:rock", { - description = "Rock", - tiles = { - "hyrule_mapgen_rock.png", - "hyrule_mapgen_rock.png", - "hyrule_mapgen_rock.png", - "hyrule_mapgen_rock.png", - "hyrule_mapgen_rock.png", - "hyrule_mapgen_rock.png" - }, - drawtype = "nodebox", - paramtype = "light", - groups = {cracky=1, falling_node=1}, - on_destruct = function(pos, oldnode) - local num = math.random(3,5) - if num == 5 then - minetest.env:add_item({x=pos.x, y=pos.y+0.5, z=pos.z}, "hyruletools:green_rupee") - end - end, - node_box = { - type = "fixed", - fixed = { - {-0.375, -0.5, -0.375, 0.3125, -0.4375, 0.3125}, -- NodeBox1 - {-0.4375, -0.4375, -0.3125, 0.375, -0.125, 0.25}, -- NodeBox2 - {-0.3125, -0.125, -0.375, 0.25, -0.0625, 0.3125}, -- NodeBox3 - {-0.3125, -0.4375, -0.4375, 0.25, -0.125, 0.375}, -- NodeBox4 - {-0.375, -0.4375, -0.375, 0.3125, -0.125, 0.3125}, -- NodeBox5 - {-0.25, -0.0625, -0.3125, 0.1875, 0, 0.25}, -- NodeBox6 - {-0.375, -0.125, -0.25, 0.3125, -0.0625, 0.1875}, -- NodeBox7 - } - } -}) - -minetest.register_node("hyrule_mapgen:packed_dirt", { - description = "Packed Dirt", - tiles = { - "default_dirt.png", - }, - drawtype = "nodebox", - paramtype = "light", - groups = {crumbly=1, oddly_breakable_by_hand=1}, - drop = "default:dirt", - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 0.4, 0.5}, - } - } -}) - -minetest.register_node("hyrule_mapgen:wallring", { - description = "Wall Ring", - tiles = { - "hyrule_mapgen_railblock.png", - "hyrule_mapgen_railblock.png", - "hyrule_mapgen_wallring.png", - "hyrule_mapgen_wallring.png", - "hyrule_mapgen_wallring.png", - "hyrule_mapgen_wallring.png", - }, - groups = {cracky=1, hook=1} -}) - -minetest.register_craft({ - output = 'hyrule_mapgen:wallring', - recipe = { - {'hyrule_mapgen:railblock', 'default:steel_ingot'}, - } -}) - - -minetest.register_node("hyrule_mapgen:lavabiome_dirt", { - description = "Burnt Dirt", - tiles = { - "hyrule_mapgen_dirt.png" - }, - groups = {crumbly=1, oddly_breakable_by_hand=1} -}) - -minetest.register_node("hyrule_mapgen:stone_with_redrupee", { - description = "Buried red rupee", - tiles = {"default_stone.png^hyruletools_redrupee_ore.png"}, - groups = {cracky = 2, xp = 1}, - drop = 'hyruletools:red_rupee', - sounds = default.node_sound_stone_defaults(), -}) -minetest.register_node("hyrule_mapgen:stone_with_bluerupee", { - description = "Buried blue rupee", - tiles = {"default_stone.png^hyruletools_bluerupee_ore.png"}, - groups = {cracky = 2, xp = 1}, - drop = 'hyruletools:blue_rupee', - sounds = default.node_sound_stone_defaults(), -}) -minetest.register_node("hyrule_mapgen:stone_with_greenrupee", { - description = "Buried green rupee", - tiles = {"default_stone.png^hyruletools_greenrupee_ore.png"}, - groups = {cracky = 2, xp = 1}, - drop = 'hyruletools:green_rupee', - sounds = default.node_sound_stone_defaults(), -}) - -minetest.register_node("hyrule_mapgen:dungeon_barrier", { - description = "Retro Dungeon Barrier", - tiles = { - "hyrule_mapgen_dungeon_barrier.png", - }, - groups = {cracky=3}, -}) - -minetest.register_node("hyrule_mapgen:dungeon_tile", { - description = "Retro Dungeon Tile", - tiles = { - "hyrule_mapgen_dungeon_tile.png", - }, - groups = {cracky=3}, -}) - -minetest.register_node("hyrule_mapgen:dungeon_brick", { - description = "Retro Dungeon Brick", - tiles = { - "hyrule_mapgen_dungeon_brick.png", - }, - groups = {cracky=3}, -}) - -stairs.register_stair_and_slab( - "dungeon_brick", - "hyrule_mapgen:dungeon_brick", - {cracky = 3, cools_lava = 1}, - {"hyrule_mapgen_dungeon_brick.png"}, - "Retro Dungeon Stair", - "Retro Dungeon Slab", - default.node_sound_stone_defaults() -) - -minetest.register_node("hyrule_mapgen:dungeon_barrier2", { - description = "Retro Dungeon Barrier 2", - tiles = { - "hyrule_mapgen_dungeon_barrier2.png", - }, - groups = {cracky=3}, -}) - -minetest.register_node("hyrule_mapgen:dungeon_tile2", { - description = "Retro Dungeon Tile 2", - tiles = { - "hyrule_mapgen_dungeon_tile2.png", - }, - groups = {cracky=3}, -}) - -minetest.register_node("hyrule_mapgen:dungeon_brick2", { - description = "Retro Dungeon Brick 2", - tiles = { - "hyrule_mapgen_dungeon_brick2.png", - }, - groups = {cracky=3}, -}) - -stairs.register_stair_and_slab( - "dungeon_brick2", - "hyrule_mapgen:dungeon_brick2", - {cracky = 3, cools_lava = 1}, - {"hyrule_mapgen_dungeon_brick2.png"}, - "Retro Dungeon Stair 2", - "Retro Dungeon Slab 2", - default.node_sound_stone_defaults() -) - -minetest.register_node("hyrule_mapgen:dungeon_torch", { - description = "Dungeon Torch", - drawtype = "plantlike", - visual_scale = 2, - walkable = false, - tiles = { - {name = "hyrule_mapgen_torch.png", animation = {type = "vertical_frames", aspect_w = 32, aspect_h = 32, length = 0.5,}, - }, - }, - inventory_image = "hyrule_mapgen_torch_inv.png", - wield_image = "hyrule_mapgen_torch_inv.png", - paramtype = "light", - light_source = 14, - use_texture_alpha = true, - groups = {choppy=1}, - selection_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, -0.2, 0.5}, - } - }, -}) - -minetest.register_node("hyrule_mapgen:subrosian_tile", { - description = "Subrosian Tile", - tiles = { - "hyrule_mapgen_subrosiantile.png", - }, - paramtype = "light", - light_source = 10, - groups = {cracky=2}, -}) - -minetest.register_node("hyrule_mapgen:subrosian_sand", { - description = "Subrosian Sand", - tiles = { - "hyrule_mapgen_subrosiansand.png", - "hyrule_mapgen_subrosiansand.png^[colorize:black:50", - "hyrule_mapgen_subrosiansand.png^[colorize:black:20", - "hyrule_mapgen_subrosiansand.png^[colorize:black:20", - "hyrule_mapgen_subrosiansand.png^[colorize:black:10", - "hyrule_mapgen_subrosiansand.png^[colorize:black:60", - }, - paramtype = "light", - light_source = 10, - groups = {crumbly=1, oddly_breakable_by_hand=1}, -}) - -minetest.register_node("hyrule_mapgen:blue_ore", { - description = "Subrosian Sand", - tiles = { - "hyrule_mapgen_subrosiansand.png", - "hyrule_mapgen_subrosiansand.png^[colorize:black:50", - "hyrule_mapgen_subrosiansand.png^[colorize:black:20", - "hyrule_mapgen_subrosiansand.png^[colorize:black:20", - "hyrule_mapgen_subrosiansand.png^[colorize:black:10", - "hyrule_mapgen_subrosiansand.png^[colorize:black:60", - }, - paramtype = "light", - light_source = 10, - drop = "hyruletools:blue_ore", - groups = {crumbly=1, oddly_breakable_by_hand=1, xp=1, not_in_creative_inventory=1}, -}) - -minetest.register_node("hyrule_mapgen:red_ore", { - description = "Subrosian Sand", - tiles = { - "hyrule_mapgen_subrosiansand.png", - "hyrule_mapgen_subrosiansand.png^[colorize:black:50", - "hyrule_mapgen_subrosiansand.png^[colorize:black:20", - "hyrule_mapgen_subrosiansand.png^[colorize:black:20", - "hyrule_mapgen_subrosiansand.png^[colorize:black:10", - "hyrule_mapgen_subrosiansand.png^[colorize:black:60", - }, - paramtype = "light", - light_source = 10, - drop = "hyruletools:red_ore", - groups = {crumbly=1, oddly_breakable_by_hand=1, xp=1, not_in_creative_inventory=1}, -}) - -minetest.register_node("hyrule_mapgen:stalagtite", { - description = "Stalagtite", - drawtype = "plantlike", - tiles = {"hyrule_mapgen_stalagmite0.png"}, - inventory_image = "hyrule_mapgen_stalagmite0.png", - is_ground_content = false, - sunlight_propagates = true, - walkable = false, - paramtype = "light", - selection_box = { - type = "fixed", - fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} - }, - groups = {crumbly=1, oddly_breakable_by_hand=1}, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:stalagtite1", { - description = "Stalagtite", - drawtype = "plantlike", - tiles = {"hyrule_mapgen_stalagmite1.png"}, - inventory_image = "hyrule_mapgen_stalagmite1.png", - is_ground_content = false, - sunlight_propagates = true, - walkable = false, - paramtype = "light", - selection_box = { - type = "fixed", - fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} - }, - groups = {crumbly=1, oddly_breakable_by_hand=1}, -}) - -minetest.register_node("hyrule_mapgen:stalagtite2", { - description = "Stalagtite", - drawtype = "plantlike", - tiles = {"hyrule_mapgen_stalagmite2.png"}, - inventory_image = "hyrule_mapgen_stalagmite2.png", - is_ground_content = false, - sunlight_propagates = true, - walkable = false, - paramtype = "light", - selection_box = { - type = "fixed", - fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} - }, - groups = {crumbly=1, oddly_breakable_by_hand=1}, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:stalagtite3", { - description = "Stalagtite", - drawtype = "plantlike", - tiles = {"hyrule_mapgen_stalagmite3.png"}, - inventory_image = "hyrule_mapgen_stalagmite3.png", - is_ground_content = false, - sunlight_propagates = true, - walkable = false, - paramtype = "light", - selection_box = { - type = "fixed", - fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} - }, - groups = {crumbly=1, oddly_breakable_by_hand=1}, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:stalagmite0", { - description = "Stalagmite", - drawtype = "plantlike", - tiles = {"hyrule_mapgen_stalagmite0.png^[transformFY"}, - inventory_image = "hyrule_mapgen_stalagmite0.png^[transformFY", - is_ground_content = false, - sunlight_propagates = true, - paramtype = "light", - walkable = false, - selection_box = { - type = "fixed", - fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} - }, - groups = {crumbly=1, oddly_breakable_by_hand=1}, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:stalagmite1", { - description = "Stalagmite", - drawtype = "plantlike", - visual_scale = 1.5, - tiles = {"hyrule_mapgen_stalagmite3.png^[transformFY"}, - inventory_image = "hyrule_mapgen_stalagmite3.png^[transformFY", - is_ground_content = false, - sunlight_propagates = true, - walkable = false, - paramtype = "light", - selection_box = { - type = "fixed", - fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} - }, - groups = {crumbly=1, oddly_breakable_by_hand=1}, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:stalagmite2", { - description = "Stalagmite", - drawtype = "plantlike", - visual_scale = 1.5, - tiles = {"hyrule_mapgen_stalagmite2.png^[transformFY"}, - inventory_image = "hyrule_mapgen_stalagmite2.png^[transformFY", - is_ground_content = false, - sunlight_propagates = true, - walkable = false, - paramtype = "light", - selection_box = { - type = "fixed", - fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} - }, - groups = {crumbly=1, oddly_breakable_by_hand=1}, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:cicicle", { - description = "Ceiling Icicle", - drawtype = "plantlike", - tiles = {"hyrule_mapgen_icicle.png"}, - inventory_image = "hyrule_mapgen_icicle.png", - is_ground_content = false, - sunlight_propagates = true, - walkable = false, - use_texture_alpha = true, - paramtype = "light", - selection_box = { - type = "fixed", - fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} - }, - groups = {cracky=1, oddly_breakable_by_hand=1}, - sounds = default.node_sound_glass_defaults() -}) - -minetest.register_node("hyrule_mapgen:cicicle2", { - description = "Ceiling Icicle 2", - drawtype = "plantlike", - tiles = {"hyrule_mapgen_icicle2.png"}, - inventory_image = "hyrule_mapgen_icicle2.png", - is_ground_content = false, - sunlight_propagates = true, - walkable = false, - use_texture_alpha = true, - paramtype = "light", - selection_box = { - type = "fixed", - fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} - }, - groups = {cracky=1, oddly_breakable_by_hand=1}, - sounds = default.node_sound_glass_defaults() -}) - -minetest.register_node("hyrule_mapgen:roots", { - description = "Hanging Roots", - drawtype = "torchlike", - tiles = {"hyrule_mapgen_roots.png"}, - inventory_image = "hyrule_mapgen_roots.png", - is_ground_content = false, - sunlight_propagates = true, - paramtype = "light", - selection_box = { - type = "fixed", - fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} - }, - groups = {crumbly=1, oddly_breakable_by_hand=1}, -}) - -minetest.register_node("hyrule_mapgen:roots2", { - description = "Hanging Root", - drawtype = "torchlike", - tiles = {"hyrule_mapgen_roots2.png"}, - inventory_image = "hyrule_mapgen_roots2.png", - is_ground_content = false, - sunlight_propagates = true, - paramtype = "light", - selection_box = { - type = "fixed", - fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} - }, - groups = {crumbly=1, oddly_breakable_by_hand=1}, -}) - -tnt.register_tnt({ - name = "hyrule_mapgen:powder_keg", - description = "Powder Keg", - tiles = { - "hyrule_mapgen_keg_top.png", - "hyrule_mapgen_keg_top.png", - "hyrule_mapgen_keg_side.png", - "hyrule_mapgen_keg_side.png", - "hyrule_mapgen_keg_front.png", - "hyrule_mapgen_keg_front.png", - }, - radius = 3, -}) - -minetest.register_node("hyrule_mapgen:statue", { - description = "Gossip Stone", - tiles = { - "hyrule_mapgen_statue_side.png", - "hyrule_mapgen_statue_side.png", - "hyrule_mapgen_statue_side.png", - "hyrule_mapgen_statue_side.png", - "hyrule_mapgen_statue_side.png", - "hyrule_mapgen_statue_front.png" - }, - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - groups = {cracky=1, falling_node=1}, - node_box = { - type = "fixed", - fixed = { - {-0.4375, -0.5, -0.1875, 0.4375, 0.4375, 0.25}, -- NodeBox1 - {-0.375, 0.4375, -0.1875, 0.375, 0.5, 0.25}, -- NodeBox2 - } - }, - on_rightclick = function(pos, node, clicker, item, _) - local wield_item = clicker:get_wielded_item():get_name() - if wield_item == "hyruletools:eye" then - minetest.set_node(pos, {name="hyrule_mapgen:statue_active", param2=node.param2}) - end - end -}) - - -minetest.register_node("hyrule_mapgen:statue_active", { - tiles = { - "hyrule_mapgen_statue_side.png", - "hyrule_mapgen_statue_side.png", - "hyrule_mapgen_statue_side.png", - "hyrule_mapgen_statue_side.png", - "hyrule_mapgen_statue_side.png", - "hyrule_mapgen_statue_active.png" - }, - drop = 'hyrule_mapgen:statue', - drawtype = "nodebox", - paramtype = "light", - paramtype2 = "facedir", - groups = {cracky=1, falling_node=1}, - light_source = 5, - node_box = { - type = "fixed", - fixed = { - {-0.4375, -0.5, -0.1875, 0.4375, 0.4375, 0.25}, -- NodeBox1 - {-0.375, 0.4375, -0.1875, 0.375, 0.5, 0.25}, -- NodeBox2 - } - }, - on_rightclick = function(pos, node, clicker, item, _) - local wield_item = clicker:get_wielded_item():get_name() - if wield_item == "hyruletools:eye" then - minetest.set_node(pos, {name="hyrule_mapgen:statue", param2=node.param2}) - end - end -}) - - -minetest.register_node("hyrule_mapgen:glowstone", { - description = "glowstone", - drawtype = "allfaces", - tiles = { - "hyrulemapgen_glowstone.png" - }, - use_texture_alpha = true, - groups = {snappy=3, oddly_breakable_by_hand = 1}, - paramtype = "light", - light_source = 14, - sounds = default.node_sound_glass_defaults(), -}) - -minetest.register_node("hyrule_mapgen:volvagia_spawn", { - description = "Volvagia spawner", - tiles = { - "hyrule_mapgen_vspawn.png" - }, - groups = {snappy=3, oddly_breakable_by_hand = 1}, - paramtype = "light", - light_source = 10, - sounds = default.node_sound_glass_defaults(), - on_construct = function(pos) - minetest.after(5, function() - minetest.add_entity({x=pos.x, y=pos.y+0.5, z=pos.z}, "mobs_loz:volvagia") - minetest.sound_play("BrassFleece", {gain=0.3}) - end) - end, - on_rightclick = function(pos, node, clicker, item, _) - local wield_item = clicker:get_wielded_item():get_name() - if wield_item == "hyruletools:sword" then - minetest.set_node(pos, {name="hyrule_mapgen:ganon_spawn", param2=node.param2}) - end - end -}) - -minetest.register_node("hyrule_mapgen:ganon_spawn", { - description = "Ganon spawner", - tiles = { - "hyrule_mapgen_gspawn.png" - }, - groups = {snappy=3, oddly_breakable_by_hand = 1}, - paramtype = "light", - light_source = 10, - sounds = default.node_sound_glass_defaults(), - on_construct = function(pos) - minetest.place_schematic({x=pos.x-6, y=pos.y-1, z=pos.z-6}, minetest.get_modpath("hyrule_mapgen").."/schematics/ganon_dungeon.mts", random, {}, true) - minetest.after(5, function() - minetest.add_entity({x=pos.x+3, y=pos.y+1, z=pos.z+3}, "mobs_loz:ganon") - end) - end, -}) - -minetest.register_craft({ - output = 'hyrule_mapgen:volvagia_spawn', - recipe = { - {'', 'default:stone', ''}, - {'bucket:bucket_lava', 'hyruletools:pendant3', 'bucket:bucket_lava'}, - {'', 'default:stone', ''}, - } -}) - -minetest.register_node("hyrule_mapgen:bongo_spawn", { - description = "Bongo Bongo spawner", - tiles = { - "hyrule_mapgen_wspawn.png" - }, - groups = {snappy=3, oddly_breakable_by_hand = 1}, - paramtype = "light", - light_source = 10, - sounds = default.node_sound_glass_defaults(), - on_construct = function(pos) - minetest.after(5, function() - minetest.add_entity({x=pos.x, y=pos.y+1, z=pos.z}, "mobs_loz:bongobongo") - end) - end, - on_rightclick = function(pos, node, clicker, item, _) - local wield_item = clicker:get_wielded_item():get_name() - if wield_item == "hyruletools:sword" then - minetest.set_node(pos, {name="hyrule_mapgen:ganon_spawn", param2=node.param2}) - end - end -}) - -minetest.register_craft({ - output = 'hyrule_mapgen:bongo_spawn', - recipe = { - {'', 'default:stone', ''}, - {'bucket:bucket_lava', 'hyruletools:pendant1', 'bucket:bucket_lava'}, - {'', 'default:stone', ''}, - } -}) - -minetest.register_node("hyrule_mapgen:dodongo_spawn", { - description = "King Dodongo spawner", - tiles = { - "hyrule_mapgen_dspawn.png" - }, - groups = {snappy=3, oddly_breakable_by_hand = 1}, - paramtype = "light", - light_source = 10, - sounds = default.node_sound_glass_defaults(), - on_construct = function(pos) - minetest.after(5, function() - minetest.add_entity({x=pos.x, y=pos.y+1, z=pos.z}, "mobs_loz:dodongo_boss") - end) - end, - on_rightclick = function(pos, node, clicker, item, _) - local wield_item = clicker:get_wielded_item():get_name() - if wield_item == "hyruletools:sword" then - minetest.set_node(pos, {name="hyrule_mapgen:ganon_spawn", param2=node.param2}) - end - end -}) - -minetest.register_craft({ - output = 'hyrule_mapgen:dodongo_spawn', - recipe = { - {'', 'default:tree', ''}, - {'moreplants:eye', 'hyruletools:pendant2', 'moreplants:eye'}, - {'', 'default:tree', ''}, - } -}) - -minetest.register_node("hyrule_mapgen:boulder", { - description = "Boulder", - tiles = { - "hyrule_mapgen_boulder.png", - }, - drawtype = "nodebox", - paramtype = "light", - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 1.0625, 0.5}, -- NodeBox1 - {-0.5, -0.375, -0.625, 0.5, 0.9375, 0.625}, -- NodeBox2 - {-0.625, -0.375, -0.5, 0.625, 0.9375, 0.5}, -- NodeBox3 - {-0.5, -0.25, -0.6875, 0.5, 0.8125, 0.6875}, -- NodeBox4 - {-0.6875, -0.25, -0.5, 0.6875, 0.8125, 0.5}, -- NodeBox5 - {-0.5625, -0.25, -0.5625, 0.5625, 0.8125, 0.5625}, -- NodeBox6 - } - }, - collision_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 1.0625, 0.5}, -- NodeBox1 - {-0.5, -0.375, -0.625, 0.5, 0.9375, 0.625}, -- NodeBox2 - {-0.625, -0.375, -0.5, 0.625, 0.9375, 0.5}, -- NodeBox3 - {-0.5, -0.25, -0.6875, 0.5, 0.8125, 0.6875}, -- NodeBox4 - {-0.6875, -0.25, -0.5, 0.6875, 0.8125, 0.5}, -- NodeBox5 - {-0.5625, -0.25, -0.5625, 0.5625, 0.8125, 0.5625}, -- NodeBox6 - } - }, - groups = {explody=1}, - sounds = default.node_sound_stone_defaults() -}) - -minetest.register_node("hyrule_mapgen:snowball", { - description = "Snow Boulder", - tiles = { - "default_snow.png", - }, - drawtype = "nodebox", - paramtype = "light", - node_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 1.0625, 0.5}, -- NodeBox1 - {-0.5, -0.375, -0.625, 0.5, 0.9375, 0.625}, -- NodeBox2 - {-0.625, -0.375, -0.5, 0.625, 0.9375, 0.5}, -- NodeBox3 - {-0.5, -0.25, -0.6875, 0.5, 0.8125, 0.6875}, -- NodeBox4 - {-0.6875, -0.25, -0.5, 0.6875, 0.8125, 0.5}, -- NodeBox5 - {-0.5625, -0.25, -0.5625, 0.5625, 0.8125, 0.5625}, -- NodeBox6 - } - }, - collision_box = { - type = "fixed", - fixed = { - {-0.5, -0.5, -0.5, 0.5, 1.0625, 0.5}, -- NodeBox1 - {-0.5, -0.375, -0.625, 0.5, 0.9375, 0.625}, -- NodeBox2 - {-0.625, -0.375, -0.5, 0.625, 0.9375, 0.5}, -- NodeBox3 - {-0.5, -0.25, -0.6875, 0.5, 0.8125, 0.6875}, -- NodeBox4 - {-0.6875, -0.25, -0.5, 0.6875, 0.8125, 0.5}, -- NodeBox5 - {-0.5625, -0.25, -0.5625, 0.5625, 0.8125, 0.5625}, -- NodeBox6 - } - }, - groups = {explody=1}, - sounds = default.node_sound_dirt_defaults() -}) - -minetest.register_node("hyrule_mapgen:bucket_milk", { - tiles = { - "mobs_bucket_milk2.png", - }, - drawtype = "mesh", - mesh = "bottle.obj", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 - {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 - {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 - {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 - {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 - {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 - {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 - {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 - {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 - {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 - {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 - } - }, - collision_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 - {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 - {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 - {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 - {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 - {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 - {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 - {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 - {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 - {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 - {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 - } - }, - groups = {cracky=1, oddly_breakable_by_hand=1,}, - sounds = default.node_sound_glass_defaults(), - drop = "mobs:bucket_milk" -}) - -minetest.override_item("mobs:bucket_milk", { - on_place= function(itemstack, placer, pointed_thing) - if pointed_thing == nil then return end - local pos = pointed_thing.above - minetest.set_node(pos, {name="hyrule_mapgen:bucket_milk"}) - itemstack:take_item() - return itemstack - end -}) - -minetest.register_node("hyrule_mapgen:bucket", { - tiles = { - "bucket2.png", - }, - drawtype = "mesh", - mesh = "bottle.obj", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 - {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 - {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 - {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 - {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 - {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 - {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 - {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 - {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 - {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 - {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 - } - }, - collision_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 - {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 - {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 - {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 - {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 - {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 - {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 - {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 - {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 - {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 - {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 - } - }, - groups = {cracky=1, oddly_breakable_by_hand=1,}, - sounds = default.node_sound_glass_defaults(), - drop = "bucket:bucket_empty" -}) - -minetest.override_item("bucket:bucket_empty", { - on_place= function(itemstack, placer, pointed_thing) - if pointed_thing == nil then return end - local pos = pointed_thing.above - minetest.set_node(pos, {name="hyrule_mapgen:bucket"}) - itemstack:take_item() - return itemstack - end -}) - -minetest.register_node("hyrule_mapgen:bucket_river_water", { - tiles = { - "bucket_river_water2.png", - }, - drawtype = "mesh", - mesh = "bottle.obj", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 - {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 - {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 - {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 - {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 - {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 - {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 - {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 - {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 - {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 - {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 - } - }, - collision_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 - {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 - {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 - {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 - {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 - {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 - {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 - {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 - {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 - {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 - {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 - } - }, - groups = {cracky=1, oddly_breakable_by_hand=1,}, - sounds = default.node_sound_glass_defaults(), - drop = "bucket:bucket_river_water" -}) - -minetest.override_item("bucket:bucket_river_water", { - on_use = function(itemstack, placer, pointed_thing) - if pointed_thing == nil then return end - local pos = pointed_thing.above - minetest.set_node(pos, {name="hyrule_mapgen:bucket_river_water"}) - itemstack:take_item() - return itemstack - end -}) - - -minetest.register_node("hyrule_mapgen:bucket_lava", { - tiles = { - "bucket_lava2.png", - }, - drawtype = "mesh", - mesh = "bottle.obj", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 - {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 - {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 - {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 - {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 - {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 - {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 - {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 - {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 - {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 - {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 - } - }, - collision_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 - {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 - {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 - {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 - {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 - {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 - {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 - {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 - {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 - {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 - {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 - } - }, - groups = {cracky=1, oddly_breakable_by_hand=1,}, - sounds = default.node_sound_glass_defaults(), - drop = "bucket:bucket_lava", - light_source = 6, -}) - -minetest.override_item("bucket:bucket_lava", { - on_use = function(itemstack, placer, pointed_thing) - if pointed_thing == nil then return end - local pos = pointed_thing.above - minetest.set_node(pos, {name="hyrule_mapgen:bucket_lava"}) - itemstack:take_item() - return itemstack - end -}) - - -minetest.register_node("hyrule_mapgen:bucket_water", { - tiles = { - "bucket_water2.png", - }, - drawtype = "mesh", - mesh = "bottle.obj", - paramtype = "light", - selection_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 - {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 - {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 - {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 - {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 - {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 - {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 - {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 - {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 - {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 - {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 - } - }, - collision_box = { - type = "fixed", - fixed = { - {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 - {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 - {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 - {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 - {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 - {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 - {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 - {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 - {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 - {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 - {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 - } - }, - groups = {cracky=1, oddly_breakable_by_hand=1,}, - sounds = default.node_sound_glass_defaults(), - drop = "bucket:bucket_water" -}) - -minetest.override_item("bucket:bucket_water", { - on_use = function(itemstack, placer, pointed_thing) - if pointed_thing == nil then return end - local pos = pointed_thing.above - minetest.set_node(pos, {name="hyrule_mapgen:bucket_water"}) - itemstack:take_item() - return itemstack - end -}) - -minetest.register_node("hyrule_mapgen:magic_tree", { - description = "magic tree trunk", - tiles = { - "hyrule_mapgen_magic_tree_top.png", - "hyrule_mapgen_magic_tree_top.png", - "hyrule_mapgen_magic_tree.png", - "hyrule_mapgen_magic_tree.png", - "hyrule_mapgen_magic_tree.png", - "hyrule_mapgen_magic_tree.png" - }, - paramtype = "facedir", - groups = {tree=1, choppy=2, flammable=2, oddly_breakable_by_hand = 1,}, - on_place = minetest.rotate_node -}) - -minetest.register_node("hyrule_mapgen:magic_leaves", { - description = "magic leaves", - drawtype = "allfaces_optional", - tiles = { - "hyrule_mapgen_magic_leaves.png" - }, - groups = {snappy=3, flammable=1, leafdecay=3, oddly_breakable_by_hand = 1, leaves=1,}, - paramtype = "light", - walkable = false, -}) - -if minetest.setting_getbool("3d_leaves") then -minetest.override_item("hyrule_mapgen:magic_leaves", { - drawtype = "mesh", - mesh = "leaf.obj", - tiles = {"hyrule_mapgen_magic_leaves2.png"}, - paramtype = "light", -}) -end - -minetest.register_node("hyrule_mapgen:canopy_leaves", { - description = "canopy leaves", - drawtype = "allfaces_optional", - tiles = { - "default_leaves.png" - }, - groups = {snappy=3, flammable=1, leaves=1, oddly_breakable_by_hand = 1, not_in_creative_inventory=1}, - paramtype = "light", - walkable = false, -}) - -minetest.register_node("hyrule_mapgen:palm_tree", { - description = "palm tree trunk", - tiles = { - "hyrule_mapgen_palm_tree_top.png", - "hyrule_mapgen_palm_tree_top.png", - "hyrule_mapgen_palm_tree.png", - "hyrule_mapgen_palm_tree.png", - "hyrule_mapgen_palm_tree.png", - "hyrule_mapgen_palm_tree.png" - }, - paramtype = "facedir", - groups = {tree=1, choppy=2, flammable=2, oddly_breakable_by_hand = 1, not_in_creative_inventory=1}, - on_place = minetest.rotate_node -}) - -minetest.register_node("hyrule_mapgen:palm_leaves", { - description = "palm leaves", - drawtype = "plantlike", - tiles = { - "hyrule_mapgen_palm_leaf.png" - }, - inventory_image = "hyrule_mapgen_palm_leaf.png", - visual_scale = 6, - wield_scale = {x=0.5, y=0.5, z=0.5}, - groups = {snappy=3, flammable=1, leafdecay=3, oddly_breakable_by_hand = 1, leaves=1, not_in_creative_inventory=1}, - paramtype = "light", - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5} - }, -}) - -minetest.register_node("hyrule_mapgen:coconut", { - description = "coconut", - drawtype = "plantlike", - tiles = { - "hyrule_mapgen_coconut.png" - }, - wield_image = "hyrule_mapgen_coconut.png", - inventory_image = "hyrule_mapgen_coconut.png", - groups = {snappy=3, flammable=1, oddly_breakable_by_hand = 1, not_in_creative_inventory=1}, - paramtype = "light", - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.2, -0.3, -0.2, 0.2, 0.3, 0.2} - }, - on_use = minetest.item_eat(2) -}) - -minetest.register_node("hyrule_mapgen:wild_tree", { - description = "wild tree trunk", - tiles = { - "hyrule_mapgen_wild_tree_top.png", - "hyrule_mapgen_wild_tree_top.png", - "hyrule_mapgen_wild_tree.png", - "hyrule_mapgen_wild_tree.png", - "hyrule_mapgen_wild_tree.png", - "hyrule_mapgen_wild_tree.png" - }, - paramtype = "facedir", - groups = {tree=1, choppy=2, oddly_breakable_by_hand = 1, flammable=2,}, - on_place = minetest.rotate_node -}) - -minetest.register_node("hyrule_mapgen:wild_leaves", { - description = "wild tree leaves", - drawtype = "plantlike", - tiles = { - "hyrule_mapgen_wild_leaves.png" - }, - wield_image = "hyrule_mapgen_wild_leaves.png", - inventory_image = "hyrule_mapgen_wild_leaves.png", - groups = {snappy=3, flammable=1, oddly_breakable_by_hand = 1, leafdecay=3, leaves=1,}, - paramtype = "light", - walkable = false, -}) - -if minetest.setting_getbool("3d_leaves") then -minetest.override_item("hyrule_mapgen:wild_leaves", { - drawtype = "mesh", - mesh = "leaf.obj", - tiles = {"hyrule_mapgen_wild_leaves2.png"}, - paramtype = "light", -}) -end - -minetest.register_craft({ - output = "default:wood 4", - type = "shapeless", - recipe = {"hyrule_mapgen:palm_tree"} -}) - -minetest.register_craft({ - output = "default:junglewood 4", - type = "shapeless", - recipe = {"hyrule_mapgen:wild_tree"} -}) - -minetest.register_craft({ - output = "default:acacia_wood 4", - type = "shapeless", - recipe = {"hyrule_mapgen:magic_tree"} -}) - -minetest.register_node("hyrule_mapgen:magicsapling", { - description = "Magic Sapling", - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"hyrule_mapgen_magic_sapling.png"}, - inventory_image = "hyrule_mapgen_magic_sapling.png", - wield_image = "hyrule_mapgen_magic_sapling.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} - }, - groups = {snappy = 2, dig_immediate = 3, flammable = 2, - attached_node = 1, sapling = 1}, -}) - -minetest.register_node("hyrule_mapgen:palmsapling", { - description = "Palm Sapling", - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"hyrule_mapgen_palm_sapling.png"}, - inventory_image = "hyrule_mapgen_palm_sapling.png", - wield_image = "hyrule_mapgen_palm_sapling.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} - }, - groups = {snappy = 2, dig_immediate = 3, flammable = 2, - attached_node = 1, sapling = 1}, -}) - -minetest.register_node("hyrule_mapgen:bigsapling", { - description = "Big Sapling", - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"hyrule_mapgen_big_sapling.png"}, - inventory_image = "hyrule_mapgen_big_sapling.png", - wield_image = "hyrule_mapgen_big_sapling.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} - }, - groups = {snappy = 2, dig_immediate = 3, flammable = 2, - attached_node = 1, sapling = 1}, -}) - -minetest.register_node("hyrule_mapgen:wildsapling", { - description = "Wild Sapling", - drawtype = "plantlike", - visual_scale = 1.0, - tiles = {"hyrule_mapgen_wild_sapling.png"}, - inventory_image = "hyrule_mapgen_wild_sapling.png", - wield_image = "hyrule_mapgen_wild_sapling.png", - paramtype = "light", - sunlight_propagates = true, - walkable = false, - selection_box = { - type = "fixed", - fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} - }, - groups = {snappy = 2, dig_immediate = 3, flammable = 2, - attached_node = 1, sapling = 1}, -}) - -- 'Can grow' function local random = math.random diff --git a/mods/hyrule_mapgen/license.txt b/mods/hyrule_mapgen/license.txt index 214c06e..22768a2 100644 --- a/mods/hyrule_mapgen/license.txt +++ b/mods/hyrule_mapgen/license.txt @@ -3,7 +3,7 @@ License for Code ---------------- -Copyright (C) 2016 DOOMED +Copyright (C) 2016 D00Med This program is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by @@ -39,9 +39,9 @@ https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html License for Textures, Models and Sounds --------------------------------------- -CC-BY-SA 3.0 UNPORTED. Created by DOOMED +CC-BY-SA 3.0 UNPORTED. Created by D00Med -hyrule_mapgen_roots.png, hyrule_mapgen_roots2.png, hyrule_mapgen_statue_active.png, hyrule_mapgen_statue_front.png, hyrule_mapgen_statue_side.png, hyrule_mapgen_big_sapling.png, cactus.b3d, leaf.b3d, waterlily.b3d, default_stone.png, hyrule_mapgen_grupee.png, hyrule_mapgen_brupee.png, hyrule_mapgen_rrupee.png - CC-BY-SA 3.0 UNPORTED. Created by toby109tt(aka tobyplowy) +hyrule_mapgen_roots.png, hyrule_mapgen_roots2.png, hyrule_mapgen_statue_active.png, hyrule_mapgen_statue_front.png, hyrule_mapgen_statue_side.png, hyrule_mapgen_big_sapling.png, cactus.b3d, leaf.b3d, waterlily.b3d, default_stone.png, hyrule_mapgen_grupee.png, hyrule_mapgen_brupee.png, hyrule_mapgen_rrupee.png, goddess_statue.obj - CC-BY-SA 3.0 UNPORTED. Created by toby109tt(aka tobyplowy) For moreblocks_slope.obj: diff --git a/mods/hyrule_mapgen/mapgen.lua b/mods/hyrule_mapgen/mapgen.lua index f1c4bea..53ef692 100644 --- a/mods/hyrule_mapgen/mapgen.lua +++ b/mods/hyrule_mapgen/mapgen.lua @@ -1521,7 +1521,7 @@ minetest.register_ore({ clust_scarcity = 16 * 16 * 16, clust_size = 12, y_min = -31000, - y_max = 31000, + y_max = 10, noise_threshold = 0.0, noise_params = { offset = 0.5, @@ -1936,3 +1936,17 @@ minetest.register_on_generated(function(minp, maxp) end end end) + +minetest.register_on_generated(function(minp, maxp) + if minp.x < 50 and 50 < maxp.x and minp.y < 10 and 10 < maxp.y and minp.z < 50 and 50 < maxp.z then + minetest.place_schematic({x=0,y=10,z=0}, minetest.get_modpath("hyrule_mapgen").."/schematics/tower_ground.mts", 0, {["hyrule_mapgen:tower_dev"] = "hyrule_mapgen:tower_spawner",}, true) + end +end) + +--Tower Generation + +-- minetest.register_on_newplayer(function(player) + -- if player:get_player_name() == "singleplayer" then + -- minetest.place_schematic({x=0,y=15,z=0}, minetest.get_modpath("hyrule_mapgen").."/schematics/tower_ground.mts", 0, {["hyrule_mapgen:tower_dev"] = "hyrule_mapgen:tower_spawner",}, true) + -- end +-- end) \ No newline at end of file diff --git a/mods/hyrule_mapgen/models/candles.obj b/mods/hyrule_mapgen/models/candles.obj new file mode 100644 index 0000000..c8a8b2e --- /dev/null +++ b/mods/hyrule_mapgen/models/candles.obj @@ -0,0 +1,150 @@ +# Blender v2.72 (sub 0) OBJ File: '' +# www.blender.org +mtllib candles.mtl +o nodebox6 +v -0.062500 -0.499000 -0.312500 +v -0.062500 -0.499000 -0.250000 +v -0.062500 -0.437500 -0.250000 +v -0.062500 -0.437500 -0.312500 +v -0.125000 -0.499000 -0.312500 +v -0.125000 -0.499000 -0.250000 +v -0.125000 -0.437500 -0.250000 +v -0.125000 -0.437500 -0.312500 +v 0.187500 -0.500000 -0.062500 +v 0.187500 -0.500000 0.125000 +v 0.187500 -0.062500 0.125000 +v 0.187500 -0.062500 -0.062500 +v 0.000000 -0.500000 -0.062500 +v 0.000000 -0.500000 0.125000 +v 0.000000 -0.062500 0.125000 +v 0.000000 -0.062500 -0.062500 +v -0.187500 -0.499000 -0.187500 +v -0.187500 -0.499000 -0.062500 +v -0.187500 -0.375000 -0.062500 +v -0.187500 -0.375000 -0.187500 +v -0.250000 -0.499000 -0.187500 +v -0.250000 -0.499000 -0.062500 +v -0.250000 -0.375000 -0.062500 +v -0.250000 -0.375000 -0.187500 +v -0.062812 -0.498125 -0.187188 +v -0.062812 -0.498125 -0.125313 +v -0.062812 -0.126875 -0.125313 +v -0.062812 -0.126875 -0.187188 +v -0.124688 -0.498125 -0.187188 +v -0.124688 -0.498125 -0.125313 +v -0.124688 -0.126875 -0.125313 +v -0.124688 -0.126875 -0.187188 +v 0.185500 -0.499000 -0.125000 +v 0.185500 -0.499000 -0.000000 +v 0.185500 -0.375000 -0.000000 +v 0.185500 -0.375000 -0.125000 +v 0.062500 -0.499000 -0.125000 +v 0.062500 -0.499000 -0.000000 +v 0.062500 -0.375000 -0.000000 +v 0.062500 -0.375000 -0.125000 +v 0.124688 -0.497187 0.000312 +v 0.124688 -0.497187 0.062187 +v 0.124688 0.059687 0.062188 +v 0.124688 0.059687 0.000313 +v 0.062812 -0.497187 0.000312 +v 0.062812 -0.497187 0.062187 +v 0.062812 0.059687 0.062188 +v 0.062812 0.059687 0.000313 +v 0.062500 -0.499000 0.062500 +v 0.062500 -0.499000 0.187500 +v 0.062500 -0.437500 0.187500 +v 0.062500 -0.437500 0.062500 +v -0.062500 -0.499000 0.062500 +v -0.062500 -0.499000 0.187500 +v -0.062500 -0.437500 0.187500 +v -0.062500 -0.437500 0.062500 +v 0.000000 -0.499000 -0.250000 +v 0.000000 -0.499000 -0.062500 +v 0.000000 -0.250000 -0.062500 +v 0.000000 -0.250000 -0.250000 +v -0.187500 -0.499000 -0.250000 +v -0.187500 -0.499000 -0.062500 +v -0.187500 -0.250000 -0.062500 +v -0.187500 -0.250000 -0.250000 +vt 0.000000 0.000000 +vt 0.166667 0.000000 +vt 0.166667 0.100000 +vt 0.000000 0.100000 +vt 1.000000 0.000000 +vt 1.000000 1.000000 +vt 0.000000 1.000000 +vt 0.166667 0.200000 +vt 0.000000 0.200000 +vt 0.500000 0.000000 +vt 0.500000 0.700000 +vt 0.000000 0.700000 +vt 0.333333 0.700000 +vt 0.333333 0.900000 +vt 0.000000 0.900000 +vt 0.166667 0.300000 +vt 0.000000 0.300000 +vt 0.666667 0.500000 +vt 0.833333 0.500000 +vt 0.833333 0.700000 +vt 0.666667 0.700000 +vt 0.666667 0.800000 +vt 0.833333 0.800000 +vt 0.833333 0.900000 +vt 0.666667 0.900000 +vt 0.333333 0.000000 +vt 0.333333 0.200000 +vt 0.500000 0.400000 +vt 0.000000 0.400000 +vt 0.166667 0.400000 +vt 0.166667 0.500000 +vt 0.000000 0.500000 +usemtl none +s off +f 1/1 2/2 3/3 4/4 +f 5/1 6/2 7/3 8/4 +f 1/1 4/2 8/3 5/4 +f 2/1 3/5 7/6 6/7 +f 1/1 2/2 6/3 5/4 +f 4/4 3/3 7/8 8/9 +f 9/1 10/10 11/11 12/12 +f 13/1 14/10 15/11 16/12 +f 9/10 12/11 16/12 13/1 +f 10/10 11/11 15/12 14/1 +f 9/1 10/2 14/3 13/4 +f 12/12 11/13 15/14 16/15 +f 17/1 18/5 19/6 20/7 +f 21/1 22/2 23/8 24/9 +f 17/2 20/8 24/9 21/1 +f 18/2 19/8 23/9 22/1 +f 17/1 18/2 22/3 21/4 +f 20/9 19/8 23/16 24/17 +f 25/18 26/19 27/20 28/21 +f 29/18 30/19 31/20 32/21 +f 25/18 28/19 32/20 29/21 +f 26/18 27/19 31/20 30/21 +f 25/1 26/5 30/6 29/7 +f 28/22 27/23 31/24 32/25 +f 33/1 34/26 35/27 36/9 +f 37/1 38/26 39/27 40/9 +f 33/26 36/27 40/9 37/1 +f 34/1 35/26 39/27 38/9 +f 33/1 34/2 38/3 37/4 +f 36/9 35/8 39/16 40/17 +f 41/18 42/19 43/20 44/21 +f 45/18 46/19 47/20 48/21 +f 41/18 44/19 48/20 45/21 +f 42/18 43/19 47/20 46/21 +f 41/1 42/5 46/6 45/7 +f 44/22 43/23 47/24 48/25 +f 49/1 50/2 51/3 52/4 +f 53/1 54/2 55/3 56/4 +f 49/1 52/2 56/3 53/4 +f 50/1 51/2 55/3 54/4 +f 49/1 50/2 54/3 53/4 +f 52/4 51/3 55/8 56/9 +f 57/1 58/10 59/28 60/29 +f 61/1 62/10 63/28 64/29 +f 57/1 60/29 64/28 61/10 +f 58/1 59/29 63/28 62/10 +f 57/1 58/2 62/3 61/4 +f 60/29 59/30 63/31 64/32 diff --git a/mods/hyrule_mapgen/models/goddess_statue.obj b/mods/hyrule_mapgen/models/goddess_statue.obj new file mode 100644 index 0000000..d503e65 --- /dev/null +++ b/mods/hyrule_mapgen/models/goddess_statue.obj @@ -0,0 +1,222 @@ +# Blender v2.72 (sub 0) OBJ File: '' +# www.blender.org +mtllib goddes_statue.mtl +o Cube.001_Cube.003 +v 0.462144 1.443764 0.058216 +v 0.462144 1.511934 -0.251525 +v -0.462144 1.511934 -0.251525 +v -0.462144 1.443764 0.058216 +v 0.462144 0.008205 -0.257734 +v 0.462144 0.076375 -0.567475 +v -0.462144 0.076375 -0.567475 +v -0.462144 0.008205 -0.257734 +v 0.462144 1.493369 0.296924 +v 0.462144 1.440136 -0.025222 +v -0.462144 1.440136 -0.025222 +v -0.462144 1.493369 0.296924 +v 0.462144 0.055986 0.534447 +v 0.462144 0.002752 0.212300 +v -0.462144 0.002752 0.212300 +v -0.462144 0.055986 0.534447 +v -1.000000 -1.006371 1.000000 +v -1.000000 -1.006372 -1.000000 +v 1.000000 -1.006372 -1.000000 +v 1.000000 -1.006371 1.000000 +v -1.000000 -0.006371 1.000000 +v -1.000000 -0.006371 -1.000000 +v 1.000000 -0.006371 -1.000000 +v 1.000000 -0.006371 1.000000 +v 0.461847 3.099157 0.230925 +v -0.461847 3.099157 0.230925 +v -0.461847 1.540419 0.230925 +v 0.461847 1.540419 0.230925 +v -0.461847 3.099157 -0.230923 +v -0.461847 1.540419 -0.230924 +v 0.461847 3.099157 -0.230923 +v 0.461847 1.540419 -0.230924 +v 0.000000 1.540419 -0.230924 +v 0.000000 -0.018317 -0.230925 +v 0.000000 -0.018317 0.230924 +v 0.000000 1.540419 0.230925 +v 0.911750 3.142858 0.230925 +v 0.456918 3.062659 0.230925 +v 0.456918 3.062659 -0.230923 +v 0.911750 3.142858 -0.230923 +v 0.727590 1.527602 0.230925 +v 1.182422 1.607801 0.230925 +v 0.000000 -0.018317 -0.230925 +v 0.000000 -0.018317 0.230924 +v -0.461847 -0.018317 0.230924 +v -0.461847 -0.018317 -0.230925 +v -0.461847 1.540419 0.230925 +v -0.461847 1.540419 -0.230924 +v 0.461847 4.022851 0.461849 +v -0.461847 4.022851 0.461849 +v -0.461847 3.099156 0.461849 +v 0.461847 3.099156 0.461849 +v -0.461847 4.022851 -0.461847 +v -0.461847 3.099157 -0.461847 +v 0.461847 4.022851 -0.461847 +v 0.461847 3.099157 -0.461847 +v 0.000000 1.540419 0.230925 +v 0.461847 1.540419 -0.230924 +v 0.461847 -0.018317 -0.230925 +v 0.000000 1.540419 -0.230924 +v 0.461847 -0.018317 0.230924 +v 0.461847 1.540419 0.230925 +v 1.182422 1.607801 -0.230924 +v 0.727590 1.527602 -0.230924 +v 0.508033 4.069726 0.508034 +v -0.508033 4.069726 0.508034 +v -0.508033 3.053663 0.508034 +v 0.508033 3.053663 0.508034 +v -0.508033 4.069726 -0.508031 +v -0.508033 3.053663 -0.508032 +v 0.508033 4.069726 -0.508031 +v 0.508033 3.053663 -0.508032 +v -0.508033 1.924153 0.508034 +v 0.508033 1.924153 0.508034 +v -0.508033 3.053663 0.498034 +v 0.508033 3.053663 0.498034 +v -0.508033 1.924153 0.498034 +v 0.508033 1.924153 0.498034 +v -0.478444 3.060385 0.230925 +v -0.933276 3.140584 0.230925 +v -1.203948 1.605527 0.230925 +v -0.749116 1.525328 0.230925 +v -0.478444 3.060385 -0.230923 +v -0.749116 1.525328 -0.230924 +v -0.933276 3.140584 -0.230923 +v -1.203948 1.605527 -0.230924 +vt 0.421875 0.687500 +vt 0.562500 0.687500 +vt 0.562500 0.750000 +vt 0.421875 0.750000 +vt 0.687500 0.468750 +vt 0.812500 0.468750 +vt 0.812500 0.281250 +vt 0.687500 0.281250 +vt 0.859375 0.468750 +vt 0.796875 0.468750 +vt 0.796875 0.281250 +vt 0.859375 0.281250 +vt 0.046875 0.187500 +vt 0.296875 0.187500 +vt 0.296875 0.062500 +vt 0.046875 0.062500 +vt 0.296875 0.437500 +vt 0.046875 0.437500 +vt 0.625000 0.687500 +vt 0.500000 0.687500 +vt 0.500000 0.500000 +vt 0.625000 0.500000 +vt 0.437500 0.687500 +vt 0.437500 0.500000 +vt 0.312500 0.687500 +vt 0.312500 0.500000 +vt 0.437500 0.750000 +vt 0.312500 0.750000 +vt 0.125000 0.687500 +vt 0.125000 0.500000 +vt 0.187500 0.500000 +vt 0.187500 0.687500 +vt 0.812500 0.687500 +vt 0.812500 0.500000 +vt 0.875000 0.500000 +vt 0.875000 0.687500 +vt 0.750000 0.687500 +vt 0.750000 0.500000 +vt 0.187500 0.750000 +vt 0.125000 0.750000 +vt 0.500000 0.750000 +vt 0.375000 0.750000 +vt 0.375000 0.500000 +vt 0.250000 0.750000 +vt 0.250000 0.500000 +vt 0.375000 1.000000 +vt 0.250000 1.000000 +vt 0.125000 1.000000 +vt 0.250000 0.687500 +vt 0.062500 0.687500 +vt 0.062500 0.500000 +vt 0.000000 0.750000 +vt 0.000000 0.500000 +vt 0.062500 0.750000 +vt 0.687500 0.687500 +vt 0.687500 0.500000 +vt 0.750000 0.750000 +vt 0.687500 0.750000 +vt 0.812500 0.750000 +vt 0.500000 0.875000 +vt 0.375000 0.875000 +vt 0.250000 0.875000 +vt 0.125000 0.875000 +vt 0.000000 0.875000 +vt 0.406250 0.406250 +vt 0.406250 0.265625 +vt 0.531250 0.265625 +vt 0.531250 0.406250 +usemtl Character +s off +f 1/1 2/2 3/3 4/4 +f 8/1 7/2 6/3 5/4 +f 1/5 4/6 8/7 5/8 +f 2/9 1/10 5/11 6/12 +f 3/5 2/6 6/7 7/8 +f 4/9 3/10 7/11 8/12 +f 9/1 10/2 11/3 12/4 +f 16/1 15/2 14/3 13/4 +f 9/5 12/6 16/7 13/8 +f 10/10 9/9 13/12 14/11 +f 11/5 10/6 14/7 15/8 +f 12/10 11/9 15/12 16/11 +f 21/13 22/14 18/15 17/16 +f 22/13 23/14 19/15 18/16 +f 23/13 24/14 20/15 19/16 +f 24/13 21/14 17/15 20/16 +f 17/13 18/14 19/17 20/18 +f 24/13 23/14 22/17 21/18 +f 25/19 26/20 27/21 28/22 +f 26/20 29/23 30/24 27/21 +f 29/23 31/25 32/26 30/24 +f 32/2 28/3 27/27 30/23 +f 25/28 31/25 29/23 26/27 +f 33/29 34/30 35/31 36/32 +f 38/33 41/34 42/35 37/36 +f 39/37 64/38 41/34 38/33 +f 43/32 44/39 45/40 46/29 +f 47/6 48/9 46/12 45/7 +f 49/41 50/42 51/43 52/21 +f 50/42 53/44 54/45 51/43 +f 53/44 55/40 56/30 54/45 +f 56/42 52/46 51/47 54/44 +f 53/44 50/47 49/48 55/40 +f 57/32 47/49 45/45 44/31 +f 58/50 59/51 34/30 33/29 +f 48/50 60/29 43/30 46/51 +f 36/32 35/31 61/45 62/49 +f 60/29 57/32 44/31 43/30 +f 62/6 61/7 59/12 58/9 +f 25/49 28/45 32/26 31/25 +f 49/52 52/53 56/30 55/40 +f 48/29 47/40 57/54 60/50 +f 40/55 63/56 64/38 39/37 +f 37/19 42/22 63/56 40/55 +f 40/55 39/37 38/57 37/58 +f 34/32 59/29 61/40 35/39 +f 64/37 63/33 42/59 41/57 +f 58/29 33/50 36/54 62/40 +f 65/60 66/61 67/42 68/41 +f 66/61 69/62 70/44 67/42 +f 69/62 71/63 72/40 70/44 +f 72/61 68/46 67/47 70/62 +f 69/62 66/47 65/48 71/63 +f 65/64 68/52 72/40 71/63 +f 67/65 73/66 74/67 68/68 +f 75/68 76/65 78/66 77/67 +f 79/33 80/36 81/35 82/34 +f 83/37 79/33 82/34 84/38 +f 85/55 83/37 84/38 86/56 +f 80/19 85/55 86/56 81/22 +f 85/55 80/58 79/57 83/37 +f 84/37 82/57 81/59 86/33 diff --git a/mods/hyrule_mapgen/models/lightshaft.obj b/mods/hyrule_mapgen/models/lightshaft.obj new file mode 100644 index 0000000..2acedd6 --- /dev/null +++ b/mods/hyrule_mapgen/models/lightshaft.obj @@ -0,0 +1,28 @@ +# Blender v2.72 (sub 0) OBJ File: '' +# www.blender.org +mtllib lightshaft.mtl +o Cube +v -1.000000 -1.000000 1.000000 +v -1.500000 -4.500000 -2.000000 +v 1.500000 -4.500000 -2.000000 +v 1.000000 -1.000000 1.000000 +v -1.000000 1.000000 1.000000 +v -1.500000 -1.500000 -2.000000 +v 1.500000 -1.500000 -2.000000 +v 1.000000 1.000000 1.000000 +vt 0.900000 0.900000 +vt 0.100000 0.900000 +vt 0.100000 0.000000 +vt 0.900000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.050000 +vt 0.050000 0.050000 +vt 0.050000 0.000000 +usemtl Material +s off +f 5/1 1/2 2/3 6/4 +f 6/5 2/6 3/7 7/8 +f 7/4 3/3 4/2 8/1 +f 8/5 4/6 1/7 5/8 +f 1/2 4/1 3/4 2/3 +f 8/2 5/1 6/4 7/3 diff --git a/mods/hyrule_mapgen/models/lightshaft2.obj b/mods/hyrule_mapgen/models/lightshaft2.obj new file mode 100644 index 0000000..5c42dab --- /dev/null +++ b/mods/hyrule_mapgen/models/lightshaft2.obj @@ -0,0 +1,28 @@ +# Blender v2.72 (sub 0) OBJ File: '' +# www.blender.org +mtllib lightshaft2.mtl +o Cube +v -1.000000 1.084134 0.946470 +v -1.500000 -1.915866 1.446470 +v 1.500000 -1.915866 1.446470 +v 1.000000 1.084134 0.946470 +v -1.000000 1.084134 -1.053530 +v -1.500000 -1.915866 -1.553530 +v 1.500000 -1.915866 -1.553530 +v 1.000000 1.084134 -1.053530 +vt 0.900000 0.900000 +vt 0.100000 0.900000 +vt 0.100000 0.000000 +vt 0.900000 0.000000 +vt 0.000000 0.000000 +vt 0.000000 0.050000 +vt 0.050000 0.050000 +vt 0.050000 0.000000 +usemtl Material +s off +f 5/1 1/2 2/3 6/4 +f 6/5 2/6 3/7 7/8 +f 7/4 3/3 4/2 8/1 +f 8/5 4/6 1/7 5/8 +f 1/2 4/1 3/4 2/3 +f 8/2 5/1 6/4 7/3 diff --git a/mods/hyrule_mapgen/nodes.lua b/mods/hyrule_mapgen/nodes.lua new file mode 100644 index 0000000..af05366 --- /dev/null +++ b/mods/hyrule_mapgen/nodes.lua @@ -0,0 +1,3333 @@ + +--new nodes + +local dye_colours = { + {"red"}, + {"blue"}, + {"orange"}, + {"green"}, + {"dark_green"}, + {"dark_grey"}, + {"black"}, + {"grey"}, + {"white"}, + {"yellow"}, + {"brown"}, + {"cyan"}, + {"magenta"}, + {"violet"}, + {"pink"}, +} + +for _, dye in ipairs(dye_colours) do +local colour = dye[1] + minetest.register_node(":dye:"..colour.."_node", { + tiles = { + "dye_"..colour.."_model.png", + }, + drawtype = "mesh", + mesh = "dye.obj", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.1875}, -- NodeBox1 + {-0.25, -0.4375, -0.25, 0.25, -0.1875, 0.25}, -- NodeBox2 + {-0.1875, -0.1875, -0.1875, 0.1875, -0.125, 0.1875}, -- NodeBox3 + {-0.125, -0.125, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox4 + {-0.1875, -0.0625, -0.125, 0.1875, 0, 0.125}, -- NodeBox5 + {-0.125, 0, -0.125, 0.125, 0.0625, 0.125}, -- NodeBox6 + {-0.125, -0.0625, -0.1875, 0.125, 0, 0.1875}, -- NodeBox8 + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.1875, 0.1875, -0.4375, 0.1875}, -- NodeBox1 + {-0.25, -0.4375, -0.25, 0.25, -0.1875, 0.25}, -- NodeBox2 + {-0.1875, -0.1875, -0.1875, 0.1875, -0.125, 0.1875}, -- NodeBox3 + {-0.125, -0.125, -0.125, 0.125, -0.0625, 0.125}, -- NodeBox4 + {-0.1875, -0.0625, -0.1875, 0.1875, 0, 0.1875}, -- NodeBox5 + {-0.125, 0, -0.125, 0.125, 0.0625, 0.125}, -- NodeBox6 + } + }, + groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1, dig_immediate=3}, + sounds = default.node_sound_glass_defaults(), + drop = "dye:"..colour, + }) + minetest.override_item("dye:"..colour, { + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.above + minetest.set_node(pos, {name="dye:"..colour.."_node"}) + itemstack:take_item() + return itemstack + end, + }) +end + +minetest.register_node(":farming:bread_node", { + tiles = { + "farming_bread_top.png", + "farming_bread_top.png", + "farming_bread_side.png", + "farming_bread_side.png", + "farming_bread_front.png^[transformFX", + "farming_bread_front.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.25, 0.125, -0.3125, 0.25}, -- NodeBox1 + {-0.25, -0.3125, -0.25, 0.1875, -0.1875, 0.25}, -- NodeBox2 + {-0.1875, -0.1875, -0.25, 0.125, -0.125, 0.25}, -- NodeBox3 + } + }, + groups = {crumbly=1, not_in_creative_inventory=1}, + sounds = default.node_sound_dirt_defaults(), + drop = "farming:bread" +}) + +minetest.register_node("hyrule_mapgen:chillshroom", { + description = "Chillshroom", + tiles = {"hyrule_mapgen_chillshroom.png"}, + drawtype = "plantlike", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = { + {-0.1, -0.5, -0.1, 0.1, -0.1, 0.1} + } + }, + groups = {fleshy=1, oddly_breakable_by_hand=1, dig_immediate=3}, + sounds = default.node_sound_leaves_defaults(), + drop = "hyrule_mapgen:chillshroom 3", + walkable = false, + on_use = minetest.item_eat(1) +}) + +minetest.register_node("hyrule_mapgen:chillshroom_2", { + description = "Chillshroom (ceiling)", + tiles = {"hyrule_mapgen_chillshroom.png^[transformFY"}, + drawtype = "plantlike", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = { + {-0.1, 0.1, -0.1, 0.1, 0.5, 0.1} + } + }, + groups = {fleshy=1, oddly_breakable_by_hand=1, dig_immediate=3}, + sounds = default.node_sound_leaves_defaults(), + drop = "hyrule_mapgen:chillshroom 3", + walkable = false, + on_use = minetest.item_eat(1) +}) + +minetest.register_node("hyrule_mapgen:sunshroom", { + description = "Sunshroom", + tiles = {"hyrule_mapgen_sunshroom.png"}, + drawtype = "plantlike", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = { + {-0.1, -0.5, -0.1, 0.1, -0.1, 0.1} + } + }, + groups = {fleshy=1, oddly_breakable_by_hand=1, dig_immediate=3, flammable=1}, + sounds = default.node_sound_leaves_defaults(), + drop = "hyrule_mapgen:sunshroom 3", + walkable = false, + on_use = minetest.item_eat(1) +}) + +minetest.register_node("hyrule_mapgen:zapshroom", { + description = "Zapshroom", + tiles = {"hyrule_mapgen_zapshroom.png"}, + drawtype = "plantlike", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = { + {-0.1, -0.5, -0.1, 0.1, -0.1, 0.1} + } + }, + groups = {fleshy=1, oddly_breakable_by_hand=1, dig_immediate=3}, + sounds = default.node_sound_leaves_defaults(), + drop = "hyrule_mapgen:zapshroom 3", + walkable = false, + on_use = minetest.item_eat(1) +}) + +minetest.register_node("hyrule_mapgen:rushroom", { + description = "Rushroom", + tiles = {"hyrule_mapgen_rushroom.png"}, + drawtype = "plantlike", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = { + {-0.1, -0.5, -0.1, 0.1, -0.1, 0.1} + } + }, + groups = {fleshy=1, oddly_breakable_by_hand=1, dig_immediate=3}, + sounds = default.node_sound_leaves_defaults(), + drop = "hyrule_mapgen:rushroom 3", + walkable = false, + on_use = minetest.item_eat(1) +}) + +minetest.register_node("hyrule_mapgen:berry_bush", { + description = "Wildberry Bush", + tiles = {"hyrule_mapgen_wildberry_bush.png"}, + drawtype = "plantlike", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = { + {-0.1, -0.5, -0.1, 0.1, 0, 0.1} + } + }, + groups = {snappy=1, oddly_breakable_by_hand=1, dig_immediate=3}, + sounds = default.node_sound_leaves_defaults(), + walkable = false, + on_rightclick = function(pos, node) + minetest.add_item(pos, "hyrule_mapgen:wildberry") + minetest.add_item(pos, "hyrule_mapgen:wildberry") + minetest.add_item(pos, "hyrule_mapgen:wildberry") + minetest.remove_node(pos) + end, +}) + +minetest.register_craftitem("hyrule_mapgen:wildberry", { + description = "Wild Berry", + inventory_image = "hyrule_mapgen_wildberry.png", + on_use = minetest.item_eat(1) +}) + +minetest.register_node("hyrule_mapgen:logpile", { + description = "Log Pile", + tiles = { + "default_tree.png^[transformR90", + "default_tree.png^[transformR90", + "default_tree.png^[transformR90", + "default_tree.png^[transformR90", + "default_tree_top.png", + "default_tree_top.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.4375, -0.5, -0.0625, -0.125, 0.5}, -- NodeBox1 + {0.0625, -0.4375, -0.5, 0.5, -0.125, 0.5}, -- NodeBox2 + {0.125, -0.5, -0.5, 0.4375, -0.0625, 0.5}, -- NodeBox3 + {-0.4375, -0.5, -0.5, -0.125, -0.0625, 0.5}, -- NodeBox4 + {-0.125, -0.0625, -0.5, 0.1875, 0.375, 0.5}, -- NodeBox5 + {-0.1875, 0, -0.5, 0.25, 0.3125, 0.5}, -- NodeBox6 + } + }, + groups = {choppy=3, oddly_breakable_by_hand=1, flammable=1, falling_node=1}, + drop = "default:tree 3", +}) + +minetest.register_node(":default:book_placed", { + tiles = { + "default_book_top.png", + "default_book_top.png^[transformFY", + "default_book_right.png", + "default_book_left.png", + "default_book_top.png^[transformFX", + "default_book_top.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.375, 0.25, -0.4375, 0.3125}, -- NodeBox1 + {-0.25, -0.375, -0.375, 0.25, -0.3125, 0.3125}, -- NodeBox2 + {-0.25, -0.4375, -0.375, -0.1875, -0.375, 0.3125}, -- NodeBox3 + {-0.25, -0.4375, -0.375, 0.1875, -0.375, 0.25}, -- NodeBox4 + } + }, + groups = {choppy=1, dig_immediate=3, not_in_creative_inventory=1}, + sounds = default.node_sound_leaves_defaults(), + drop = "default:book" +}) + +minetest.register_node("hyrule_mapgen:bigmush", { + description = "Big Mushroom", + drawtype = "plantlike", + tiles = { + "hyrule_mapgen_bigmush.png" + }, + wield_image = "hyrule_mapgen_bigmush.png", + inventory_image = "hyrule_mapgen_bigmush.png", + groups = {snappy=1, flammable=1, oddly_breakable_by_hand = 1,}, + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.2, 0.3} + }, + on_use = minetest.item_eat(-2) +}) + +minetest.register_node("hyrule_mapgen:big_table", { + description = "Big Table", + tiles = { + "hyrule_mapgen_bigtable_top.png", + "hyrule_mapgen_bigtable.png", + "hyrule_mapgen_bigtable.png", + "hyrule_mapgen_bigtable.png", + "hyrule_mapgen_bigtable.png", + "hyrule_mapgen_bigtable.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, 0.375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox1 + {-0.5, -0.5, 0.1875, -0.1875, 0.375, 0.5}, -- NodeBox2 + } + }, + groups = {choppy=1, oddly_breakable_by_hand=1} +}) + +minetest.register_node("hyrule_mapgen:crystal_1", { + description = "Cave Crystal (Blue)", + tiles = { + "hyrule_mapgen_crystal1.png", + }, + groups = {cracky=1}, + drawtype = "nodebox", + use_texture_alpha = true, + paramtype = "light", + paramtype2 = "facedir", + light_source = 6, + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.0625, 0.1875, 0.4375, 0.25}, -- NodeBox6 + {0, -0.5, -0.3125, 0.1875, 0.1875, -0.125}, -- NodeBox7 + {-0.3125, -0.5, -0.1875, -0.0625, -0.0625, 0.0625}, -- NodeBox8 + {0.1875, -0.5, 0.0625, 0.3125, 0, 0.1875}, -- NodeBox9 + {-0.25, -0.5, 0.125, 0, 0.0625, 0.375}, -- NodeBox10 + } + }, + sounds = default.node_sound_glass_defaults() +}) + +minetest.register_node("hyrule_mapgen:crystal_3", { + description = "Cave Crystal (Green)", + tiles = { + "hyrule_mapgen_crystal3.png", + }, + groups = {cracky=1}, + use_texture_alpha = true, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + light_source = 6, + node_box = { + type = "fixed", + fixed = { + {-0.1875, -0.5, -0.25, 0, 0.1875, -0.0625}, -- NodeBox16 + {0, -0.5, 0.0625, 0.25, 0.5, 0.3125}, -- NodeBox19 + {-0.375, -0.5, 0.0625, -0.1875, -0.0625, 0.25}, -- NodeBox20 + } + }, + sounds = default.node_sound_glass_defaults() +}) + +minetest.register_node("hyrule_mapgen:crystal_2", { + description = "Cave Crystal (Purple)", + tiles = { + "hyrule_mapgen_crystal2.png", + }, + groups = {cracky=1}, + use_texture_alpha = true, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + light_source = 6, + node_box = { + type = "fixed", + fixed = { + {-0.125, -0.5, -0.1875, 0.125, 0.4375, 0.125}, -- NodeBox11 + {0.0625, -0.5, 0.1875, 0.25, 0.1875, 0.375}, -- NodeBox12 + {-0.375, -0.5, -0.25, -0.1875, -0.0625, -0.0625}, -- NodeBox13 + {-0.3125, -0.5, 0.0625, -0.0625, 0.125, 0.3125}, -- NodeBox14 + {0.0625, -0.5, -0.3125, 0.25, 0.25, -0.125}, -- NodeBox15 + } + }, + sounds = default.node_sound_glass_defaults() +}) + +minetest.register_node("hyrule_mapgen:bush_leaves", { + description = "Shrub Leaves", + tiles = {"hyrule_mapgen_bushleaves.png"}, + drawtype = "allfaces", + paramtype = "light", + walkable = false, + groups = {snappy=1, oddly_breakable_by_hand=1, leaves=1}, + sounds = default.node_sound_leaves_defaults(), +}) + +minetest.register_node("hyrule_mapgen:windmill_node", { + description = "Windmill", + drawtype = "airlike", + tiles = {"hyrule_mapgen_trans.png"}, + wield_image = "hyrule_mapgen_windmill_inv.png", + inventory_image = "hyrule_mapgen_windmill_inv.png", + groups = {choppy = 1, oddly_breakable_by_hand=1}, + sounds = default.node_sound_wood_defaults(), + on_construct = function(pos, node) + minetest.env:add_entity({x=pos.x, y=pos.y+1, z=pos.z}, "hyrule_mapgen:windmill") + end, +}) + +minetest.register_node("hyrule_mapgen:dungeon_seed", { + description = "Dungeon Seed", + tiles = {"default_stone.png"}, + groups = {cracky = 3, not_in_creative_inventory=1}, + sounds = default.node_sound_stone_defaults(), + drop = "default:stone" +}) + +minetest.register_node("hyrule_mapgen:moldorm_stone", { + description = "Moldorm Stone", + tiles = {"hyrule_mapgen_moldorm_stone.png"}, + groups = {}, + sounds = default.node_sound_stone_defaults(), + on_rightclick = function(pos, node, clicker, itemstack) + minetest.env:add_entity({x=pos.x, y=pos.y+1, z=pos.z}, "mobs_loz:great_moldorm") + minetest.remove_node(pos) + end, +}) + +minetest.register_node("hyrule_mapgen:octorock_stone", { + description = "Octorock Stone", + tiles = {"hyrule_mapgen_octorock_stone.png"}, + groups = {}, + sounds = default.node_sound_stone_defaults(), + on_rightclick = function(pos, node, clicker, itemstack) + minetest.env:add_entity({x=pos.x, y=pos.y+1, z=pos.z}, "mobs_loz:octorock_boss") + minetest.remove_node(pos) + end, +}) + +minetest.register_node("hyrule_mapgen:ice_brick", { + description = "Ice Brick", + tiles = {"hyrule_mapgen_ice_brick.png"}, + groups = {cracky = 3, cools_lava = 1}, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("hyrule_mapgen:ice_waterfall", { + description = "Frozen Waterfall", + drawtype = "glasslike", + use_texture_alpha = true, + tiles = {"hyrule_mapgen_ice_waterfall.png"}, + inventory_image = "[inventorycube{hyrule_mapgen_ice_waterfall_inv.png{hyrule_mapgen_ice_waterfall_inv.png{hyrule_mapgen_ice_waterfall_inv.png", + groups = {cracky = 3, cools_lava = 1}, + sounds = default.node_sound_glass_defaults(), +}) + +stairs.register_stair_and_slab( + "ice_brick", + "hyrule_mapgen:ice_brick", + {cracky = 3, cools_lava = 1}, + {"hyrule_mapgen_ice_brick.png"}, + "Ice brick Stair", + "Ice brick Slab", + default.node_sound_glass_defaults() +) + +minetest.register_node("hyrule_mapgen:icicle", { + description = "Icicle", + tiles = { + "default_ice.png", + }, + use_texture_alpha = true, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0.5, 0.25}, -- NodeBox1 + {-0.1875, 0.4375, -0.1875, 0.1875, 1.1875, 0.1875}, -- NodeBox2 + {-0.125, 1.1875, -0.125, 0.125, 1.6875, 0.125}, -- NodeBox3 + {-0.0625, 1.6875, -0.0625, 0.0625, 2.0625, 0.0625}, -- NodeBox4 + } + }, + groups = {cracky=3, oddly_breakable_by_hand=1, dig_immediate=3}, + sounds = default.node_sound_glass_defaults(), + drop = "", + on_destruct = function(pos) + minetest.env:add_item({x=pos.x-0.3, y=pos.y+0.5, z=pos.z-0.3}, "hyruletools:ice_fragment") + minetest.env:add_item({x=pos.x-0.3, y=pos.y+0.5, z=pos.z+0.3}, "hyruletools:ice_fragment") + minetest.env:add_item({x=pos.x+0.3, y=pos.y+0.5, z=pos.z-0.3}, "hyruletools:ice_fragment") + minetest.env:add_item({x=pos.x+0.3, y=pos.y+0.5, z=pos.z+0.3}, "hyruletools:ice_fragment") + end, +}) + +minetest.register_node("hyrule_mapgen:obsidian_spike", { + description = "Obsidian spike", + tiles = { + "default_obsidian.png", + }, + use_texture_alpha = true, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0.5, 0.25}, -- NodeBox1 + {-0.1875, 0.4375, -0.1875, 0.1875, 1.1875, 0.1875}, -- NodeBox2 + {-0.125, 1.1875, -0.125, 0.125, 1.6875, 0.125}, -- NodeBox3 + {-0.0625, 1.6875, -0.0625, 0.0625, 2.0625, 0.0625}, -- NodeBox4 + } + }, + groups = {cracky=1,}, + sounds = default.node_sound_stone_defaults(), + drop = "default:obsidian", +}) + +minetest.register_entity("hyrule_mapgen:laser", { + visual = "cube", + textures = { + "hyrule_mapgen_laser.png", + "hyrule_mapgen_laser.png", + "hyrule_mapgen_laser.png", + "hyrule_mapgen_laser.png", + "hyrule_mapgen_laser.png", + "hyrule_mapgen_laser.png", + }, + visual_size={x=0.1,y=0.1}, + collisionbox = {0, 0, 0, 0, 0, 0}, + physical = false, + automatic_rotate = true, + automatic_face_movement_dir = 0, + on_activate = function(self) + minetest.after(3, function() + self.object:remove() + end) + end, + on_step = function(self, dtime) + local pos = self.object:getpos() + local objs = minetest.get_objects_inside_radius({x=pos.x,y=pos.y-0.5,z=pos.z}, 0.5) + for k, obj in pairs(objs) do + if obj:is_player() then + obj:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups={fleshy=1}, + }, nil) + self.object:remove() + end + if obj:get_luaentity() ~= nil then + if obj:get_luaentity().name ~= "hyrule_mapgen:laser" and obj:get_luaentity().name ~= "__builtin:item" then + obj:punch(self.object, 1.0, { + full_punch_interval=1.0, + damage_groups={fleshy=1}, + }, nil) + self.object:remove() + end + end + end + end +}) + +minetest.register_node("hyrule_mapgen:beamos", { + description = "Beamos", + tiles = { + "hyrule_mapgen_beamos_top.png", + "hyrule_mapgen_beamos_bottom.png", + "hyrule_mapgen_beamos_sides.png", + "hyrule_mapgen_beamos_sides.png", + "hyrule_mapgen_beamos_sides.png", + "hyrule_mapgen_beamos_front.png", + }, + groups = {cracky = 3,}, + paramtype2 = "facedir", +}) + +minetest.register_node("hyrule_mapgen:spikes", { + description = "Spikes", + drawtype = "firelike", + tiles = { + "hyrule_mapgen_spikes.png" + }, + wield_image = "hyrule_mapgen_spikes.png", + inventory_image = "hyrule_mapgen_spikes.png", + groups = {cracky=3}, + paramtype = "light", + walkable = false, + damage_per_second = 3, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.3, 0.5} + }, + collision_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.2, 0.5} + } +}) + +minetest.register_node("hyrule_mapgen:sinkingsand", { + description = "Sinkin Sand", + drawtype = "liquid", + tiles = {{ + name = "hyrule_mapgen_sinkingsand.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 1.00}, + }}, + inventory_image = "[inventorycube{hyrule_mapgen_sinkingsand_inv.png{hyrule_mapgen_sinkingsand_inv.png{hyrule_mapgen_sinkingsand_inv.png", + groups = {liquid=1, water=1}, + pointable = false, + buildable_to = true, + liquid_viscosity = 8, + liquid_range = 0, + liquidtype = "source", + liquid_alternative_flowing = "hyrule_mapgen:sinkingsand", + liquid_alternative_source = "hyrule_mapgen:sinkingsand", + damage_per_second = 3, + walkable = false +}) + + +local chest_items = { + {"clawshot:clawshot", 5}, + {"hyruletools:eye", 5}, + {"hyruletools:boomerang", 5}, + {"hyruletools:flame_rod", 10}, + {"hyruletools:wand", 10}, + {"hyruletools:medallion", 10}, + {"hyruletools:medallion2", 10}, + {"hyruletools:medallion3", 10}, + {"hyruletools:ice_rod 1", 5}, + {"hyruletools:blue_rupee 20", 5}, + {"hyruletools:red_rupee 10", 5}, + {"hyruletools:nyan_rupee", 5}, +} + +minetest.register_node("hyrule_mapgen:chest", { + description = "Dungeon Chest", + tiles = {"hyrule_mapgen_chest_top.png", "hyrule_mapgen_chest_top.png", "hyrule_mapgen_chest_side.png", + "hyrule_mapgen_chest_side.png", "hyrule_mapgen_chest_side.png", "hyrule_mapgen_chest.png"}, + paramtype2 = "facedir", + 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 + } + }, + groups = {cracky = 2, oddly_breakable_by_hand = 1}, + is_ground_content = false, + on_construct = function(pos) + local meta = minetest.get_meta(pos) + local inv = meta:get_inventory() + for _, row in ipairs(chest_items) do + local item = row[1] + local rarity = row[2] + if math.random(1,rarity) == 1 then + meta:set_string("item", item) + return + else + meta:set_string("item", "hyruletools:green_rupee 20") + end + end + inv:set_size("main", 1*1) + end, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_rightclick = function(pos, node, clicker, item, _) + local name = clicker:get_player_name() + if clicker:get_wielded_item():get_name() == "hyruletools:key" then + item:take_item() + local meta = minetest.get_meta(pos) + local item = meta:get_string("item") + if item == nil then + for _, row in ipairs(chest_items) do + local item = row[1] + local rarity = row[2] + if math.random(1,rarity) == 1 then + meta:set_string("item", item) + else + meta:set_string("item", "hyruletools:green_rupee 20") + end + end + end + minetest.env:add_item(pos, item) + minetest.env:remove_node(pos) + else + minetest.chat_send_player(name, "It is locked, you need a key!") + end + end, +}) + +minetest.register_node("hyrule_mapgen:chest_key", { + description = "Dungeon Chest (key)", + tiles = {"hyrule_mapgen_chest_top.png", "hyrule_mapgen_chest_top.png", "hyrule_mapgen_chest_side.png", + "hyrule_mapgen_chest_side.png", "hyrule_mapgen_chest_side.png", "hyrule_mapgen_chest.png"}, + paramtype2 = "facedir", + 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 + } + }, + groups = {cracky = 2, oddly_breakable_by_hand = 1}, + is_ground_content = false, + on_rightclick = function(pos, node, clicker, itemstack, pointed_thing) + if minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name ~= "hyrule_mapgen:dungeon_brick" and minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name ~= "hyrule_mapgen:dungeon_tile" and minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name ~= "hyrule_mapgen:dungeon_brick2" and minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name ~= "hyrule_mapgen:dungeon_tile2" then + minetest.env:add_item(pos, "hyruletools:key") + else + minetest.env:add_item(pos, "hyruletools:retro_key") + end + minetest.env:remove_node(pos) + return itemstack + end, +}) + +minetest.register_node("hyrule_mapgen:chest_bosskey", { + description = "Dungeon Chest (Boss key)", + tiles = {"hyrule_mapgen_chest_top.png", "hyrule_mapgen_chest_top.png", "hyrule_mapgen_chest_side.png", + "hyrule_mapgen_chest_side.png", "hyrule_mapgen_chest_side.png", "hyrule_mapgen_chest_bosskey.png"}, + paramtype2 = "facedir", + 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 + } + }, + groups = {cracky = 2, oddly_breakable_by_hand = 1}, + is_ground_content = false, + can_dig = function(pos,player) + local meta = minetest.get_meta(pos); + local inv = meta:get_inventory() + return inv:is_empty("main") + end, + on_rightclick = function(pos, node, clicker, item, _) + local name = clicker:get_player_name() + if clicker:get_wielded_item():get_name() == "hyruletools:key" then + item:take_item() + minetest.env:add_item(pos, "hyruletools:key_boss") + minetest.env:remove_node(pos) + else + minetest.chat_send_player(name, "It's locked, you need a key!") + end + end, +}) + +minetest.register_node("hyrule_mapgen:bridge", { + description = "Wooden Bridge", + tiles = { + "hyrule_mapgen_bridge.png", + "hyrule_mapgen_bridge.png", + "hyrule_mapgen_bridge_side.png", + "hyrule_mapgen_bridge_side.png", + "hyrule_mapgen_bridge.png", + "hyrule_mapgen_bridge.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.4375, 0.5, -0.125, -0.1875}, -- NodeBox1 + {-0.5, -0.5, 0.1875, 0.5, -0.125, 0.4375}, -- NodeBox2 + {-0.5, -0.5, -0.125, 0.5, -0.125, 0.125}, -- NodeBox3 + {-0.5, -0.4375, -0.5, 0.5, -0.1875, 0.5}, -- NodeBox4 + } + }, + groups = {choppy=1, oddly_breakable_by_hand=1} +}) + +minetest.register_node("hyrule_mapgen:bridge2", { + description = "Subrosian Bridge", + tiles = { + "hyrule_mapgen_bridge2.png", + "hyrule_mapgen_bridge2.png", + "hyrule_mapgen_bridge_side2.png", + "hyrule_mapgen_bridge_side2.png", + "hyrule_mapgen_bridge2.png", + "hyrule_mapgen_bridge2.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.4375, 0.5, -0.125, -0.1875}, -- NodeBox1 + {-0.5, -0.5, 0.1875, 0.5, -0.125, 0.4375}, -- NodeBox2 + {-0.5, -0.5, -0.125, 0.5, -0.125, 0.125}, -- NodeBox3 + {-0.5, -0.4375, -0.5, 0.5, -0.1875, 0.5}, -- NodeBox4 + } + }, + groups = {choppy=2, oddly_breakable_by_hand=1} +}) + +minetest.register_node("hyrule_mapgen:swamp_flower", { + description = "Swamp Flower", + drawtype = "mesh", + mesh = "lilypad.b3d", + tiles = {"hyrule_mapgen_swampflower.png"}, + inventory_image = "hyrule_mapgen_swampflower.png", + paramtype = "light", + sunlight_propagates = false, + walkable = false, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, + collision_box = { + type = "fixed", + fixed = {-1, -0.5, -1, 1, -0.4, 1} + }, + groups = {cracky=3,dig_immediate=3}, +}) + +playereffects.register_effect_type("float", "", nil, {"gravity"}, + function(player) + player:set_physics_override(nil,nil,0.2) + physics_overriden = true + end, + + function(effect, player) + player:set_physics_override(nil,nil,1) + physics_overriden = false + end, + false +) + +minetest.register_node("hyrule_mapgen:fallen_leaves", { + description = "Fallen Leaves", + tiles = { + "hyrule_mapgen_leaves.png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + place_param2 = random, + groups = {snappy=2, oddly_breakable_by_hand=1, dig_immediate=3}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.45, 0.5}, + } + } +}) + +minetest.register_node("hyrule_mapgen:biglily", { + description = "Big Waterlily", + drawtype = "mesh", + mesh = "lilypad.b3d", + tiles = {"hyrule_mapgen_biglily.png"}, + inventory_image = "hyrule_mapgen_biglily.png", + paramtype = "light", + sunlight_propagates = false, + walkable = true, + is_ground_content = true, + liquids_pointable = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, + collision_box = { + type = "fixed", + fixed = {-1, -0.5, -1, 1, -0.4, 1} + }, + --on_place from flowers waterlily Originally by Ironzorg (MIT) and VanessaE (MIT) + --Various Minetest developers and contributors. + on_place = function(itemstack, placer, pointed_thing) + local pos = pointed_thing.above + local node = minetest.get_node(pointed_thing.under).name + local def = minetest.registered_nodes[node] + local player_name = placer:get_player_name() + + if def and def.liquidtype == "source" and + minetest.get_item_group(node, "water") > 0 then + if not minetest.is_protected(pos, player_name) then + minetest.set_node(pos, {name = "hyrule_mapgen:biglily", + param2 = math.random(0, 3)}) + if not minetest.setting_getbool("creative_mode") then + itemstack:take_item() + end + else + minetest.chat_send_player(player_name, "Node is protected") + minetest.record_protection_violation(pos, player_name) + end + end + + return itemstack + end, + groups = {snappy=1, dig_immediate=3,}, +}) + +minetest.register_node("hyrule_mapgen:deku_flower", { + description = "Deku Flower", + drawtype = "mesh", + mesh = "flatnode.b3d", + tiles = {"hyrule_mapgen_dekuflower.png"}, + inventory_image = "hyrule_mapgen_dekuflower.png", + paramtype = "light", + sunlight_propagates = false, + walkable = false, + is_ground_content = true, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5} + }, + groups = {snappy=1, dig_immediate=3,}, +}) + +minetest.register_node("hyrule_mapgen:healwater_src", { + description = "Healing Water Source", + drawtype = "liquid", + tiles = { + { + name = "default_water_source_animated.png^[colorize:pink:150", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 2.0, + }, + }, + }, + alpha = 160, + light_source = 14, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = true, + is_ground_content = false, + drop = "", + drowning = -1, + liquidtype = "source", + liquid_alternative_flowing = "hyrule_mapgen:healwater_src", + liquid_alternative_source = "hyrule_mapgen:healwater_src", + liquid_range = 0, + liquid_viscosity = 1, + post_effect_color = {a = 103, r = 80, g = 50, b = 50}, + groups = {water = 3, liquid = 3,}, + sounds = default.node_sound_water_defaults(), +}) + +minetest.register_node("hyrule_mapgen:fake_lava", { + description = "Fake Lava", + drawtype = "liquid", + tiles = { + { + name = "default_lava_source_animated.png^[colorize:orange:50", + animation = { + type = "vertical_frames", + aspect_w = 16, + aspect_h = 16, + length = 1.0, + }, + }, + }, + light_source = 8, + paramtype = "light", + walkable = false, + pointable = false, + diggable = false, + buildable_to = false, + is_ground_content = false, + liquid_renewable = false, + drop = "", + drowning = 1, + damage_per_second = 3, + liquidtype = "source", + liquid_alternative_flowing = "hyrule_mapgen:fake_lava", + liquid_alternative_source = "hyrule_mapgen:fake_lava", + liquid_range = 0, + liquid_viscosity = 1, + post_effect_color = {a = 103, r = 80, g = 50, b = 20}, + groups = {water = 3, liquid = 3, not_in_creative_inventory=1}, +}) + +minetest.register_node("hyrule_mapgen:geyser", { + description = "Lava Geyser", + tiles = { + "hyrule_mapgen_geyser_top.png", + "hyrule_mapgen_geyser_side.png", + "hyrule_mapgen_geyser_side.png", + "hyrule_mapgen_geyser_side.png", + "hyrule_mapgen_geyser_side.png", + "hyrule_mapgen_geyser_side.png" + }, + drawtype = "nodebox", + paramtype = "light", + groups = {crumbly=2, oddly_breakable_by_hand=1}, + damage_per_second = 1, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.3125, 0.5}, -- NodeBox1 + {-0.4375, -0.3125, -0.4375, 0.4375, -0.125, 0.4375}, -- NodeBox2 + {-0.375, -0.125, -0.375, -0.125, 0, 0.375}, -- NodeBox3 + {0.1875, -0.125, -0.375, 0.375, 0, 0.375}, -- NodeBox4 + {-0.375, -0.125, -0.375, 0.375, 0, -0.1875}, -- NodeBox5 + {-0.3125, -0.125, 0.125, 0.3125, 0, 0.375}, -- NodeBox6 + } + } +}) + +minetest.register_node("hyrule_mapgen:leaves_with_gale", { + description = "Leaves with Gale seed", + drawtype = "allfaces", + paramtype = "light", + tiles = { + "default_leaves.png^hyrule_mapgen_galeseed.png" + }, + drop = "default:leaves", + on_rightclick = function(pos, node, clicker, itemstack) + if clicker:get_wielded_item():get_name() == "hyruletools:seed_satchel" then + local item = clicker:get_wielded_item() + itemstack:take_item() + minetest.env:add_item(pos, "hyruletools:seed_gale") + minetest.env:set_node(pos, {name="default:leaves"}) + end + end, + walkable = false, + groups = {snappy=3, oddly_breakable_by_hand=1, dig_immediate=3} +}) + +minetest.register_node("hyrule_mapgen:leaves_with_ember", { + description = "Leaves with Ember seed", + drawtype = "allfaces", + paramtype = "light", + tiles = { + "default_pine_needles.png^hyrule_mapgen_emberseed.png" + }, + drop = "default:pine_needles", + on_rightclick = function(pos, node, clicker, itemstack) + if clicker:get_wielded_item():get_name() == "hyruletools:seed_satchel" then + local item = clicker:get_wielded_item() + itemstack:take_item() + minetest.env:add_item(pos, "hyruletools:seed_ember") + minetest.env:set_node(pos, {name="default:pine_needles"}) + end + end, + walkable = false, + groups = {snappy=3, oddly_breakable_by_hand=1, dig_immediate=3} +}) + +minetest.register_node("hyrule_mapgen:leaves_with_pegasus", { + description = "Leaves with Pegasus seed", + drawtype = "allfaces", + paramtype = "light", + tiles = { + "default_jungleleaves.png^hyrule_mapgen_pegasusseed.png" + }, + drop = "default:jungleleaves", + on_rightclick = function(pos, node, clicker, itemstack) + if clicker:get_wielded_item():get_name() == "hyruletools:seed_satchel" then + local item = clicker:get_wielded_item() + itemstack:take_item() + minetest.env:add_item(pos, "hyruletools:seed_pegasus") + minetest.env:set_node(pos, {name="default:jungleleaves"}) + end + end, + walkable = false, + groups = {snappy=3, oddly_breakable_by_hand=1, dig_immediate=3} +}) + +minetest.register_node("hyrule_mapgen:leaves_with_mystery", { + description = "Leaves with Mystery seed", + drawtype = "allfaces", + paramtype = "light", + tiles = { + "default_aspen_leaves.png^hyrule_mapgen_mysteryseed.png" + }, + drop = "default:aspen_leaves", + on_rightclick = function(pos, node, clicker, itemstack) + if clicker:get_wielded_item():get_name() == "hyruletools:seed_satchel" then + local item = clicker:get_wielded_item() + itemstack:take_item() + minetest.env:add_item(pos, "hyruletools:seed_mystery") + minetest.env:set_node(pos, {name="default:aspen_leaves"}) + end + end, + walkable = false, + groups = {snappy=3, oddly_breakable_by_hand=1, dig_immediate=3} +}) + +minetest.register_node("hyrule_mapgen:swamp_mud", { + description = "Swamp Mud", + tiles = { + "hyrule_mapgen_swampmud.png" + }, + groups = {crumbly=1, oddly_breakable_by_hand=1}, + sounds = default.node_sound_dirt_defaults() +}) + +minetest.register_node("hyrule_mapgen:swamp_grass", { + description = "Swamp Grass", + drawtype = "plantlike", + tiles = {"hyrule_mapgen_swampgrass.png"}, + inventory_image = "hyrule_mapgen_swampgrass.png", + is_ground_content = false, + sunlight_propagates = true, + walkable = false, + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.3, -0.5, -0.3, 0.3, 0.4, 0.3}} + }, + groups = {snappy=1, oddly_breakable_by_hand=1, dig_immediate=3}, + sounds = default.node_sound_leaves_defaults(), + on_destruct = function(pos, oldnode) + local num = math.random(3,7) + if num == 5 then + minetest.env:add_item(pos, "hyruletools:green_rupee") + end + if num == 4 then + minetest.env:add_entity(pos, "hyruletools:heart_entity") + end + end, + drop = "", +}) + +minetest.register_node("hyrule_mapgen:grupee", { + description = "Green Rupee Block", + drawtype = "allfaces", + paramtype = "light", + tiles = { + "hyrule_mapgen_grupee.png" + }, + use_texture_alpha = true, + groups = {cracky=1, oddly_breakable_by_hand=1} +}) + +minetest.register_node("hyrule_mapgen:rrupee", { + description = "Red Rupee Block", + drawtype = "allfaces", + paramtype = "light", + tiles = { + "hyrule_mapgen_rrupee.png" + }, + use_texture_alpha = true, + groups = {cracky=1, oddly_breakable_by_hand=1} +}) + +minetest.register_node("hyrule_mapgen:brupee", { + description = "Blue Rupee Block", + drawtype = "allfaces", + paramtype = "light", + tiles = { + "hyrule_mapgen_brupee.png" + }, + use_texture_alpha = true, + groups = {cracky=1, oddly_breakable_by_hand=1} +}) + +minetest.register_node("hyrule_mapgen:nrupee", { + description = "Nyan Rupee Block", + drawtype = "allfaces", + paramtype = "light", + tiles = { + "hyrule_mapgen_nrupee.png" + }, + use_texture_alpha = true, + groups = {cracky=1, oddly_breakable_by_hand=1} +}) + +minetest.register_node("hyrule_mapgen:wood_fence", { + description = "Wooden Fence", + inventory_image = "hyrule_mapgen_woodfence.png", + wield_image = "hyrule_mapgen_woodfence.png", + sounds = default.node_sound_wood_defaults(), + groups = {choppy=1,}, + tiles = { + "hyrule_mapgen_woodfence.png", + "hyrule_mapgen_woodfence.png^[transformFY", + "hyrule_mapgen_woodfence.png", + "hyrule_mapgen_woodfence.png^[transformFX", + "hyrule_mapgen_woodfence.png^[transformFX", + "hyrule_mapgen_woodfence.png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.0625, -0.5, -0.0625, 0.125, 0.5, 0.125}, -- NodeBox1 + {-0.5, 0, 0, 0.5, 0.1875, 0.0625}, -- NodeBox2 + } + }, +}) + +minetest.register_node("hyrule_mapgen:sandstone", { + description = "Dungeon Sandstone", + tiles = { + "hyrule_mapgen_sandstone.png" + }, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:sandstone_block", { + description = "Dungeon Sandstone Block", + tiles = { + "hyrule_mapgen_sandstone.png", + "hyrule_mapgen_sandstone.png", + "hyrule_mapgen_sandstone_side.png", + }, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults() +}) + +stairs.register_stair_and_slab( + "dsandstone", + "hyrule_mapgen:sandstone", + {cracky = 3, oddly_breakable_by_hand = 2, flammable = 2}, + {"hyrule_mapgen_sandstone.png"}, + "Dungeon Sandstone Stair", + "Dungeon Sandstne Slab", + default.node_sound_stone_defaults() +) + +minetest.register_node("hyrule_mapgen:sandstone_tile", { + description = "Dungeon Sandstone Tile", + tiles = { + "hyrule_mapgen_sandstone_tile.png" + }, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:sandstone_decoration", { + description = "Dungeon Sandstone Decoration", + tiles = { + "hyrule_mapgen_sandstone.png", + "hyrule_mapgen_sandstone.png", + "hyrule_mapgen_sandstone_decoration.png", + "hyrule_mapgen_sandstone_decoration.png", + "hyrule_mapgen_sandstone_decoration.png", + "hyrule_mapgen_sandstone_decoration.png", + }, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:sandstone_decoration2", { + description = "Dungeon Sandstone Decoration 2", + tiles = { + "hyrule_mapgen_sandstone.png", + "hyrule_mapgen_sandstone.png", + "hyrule_mapgen_sandstone_decoration2.png", + "hyrule_mapgen_sandstone_decoration2.png", + "hyrule_mapgen_sandstone_decoration2.png", + "hyrule_mapgen_sandstone_decoration2.png", + }, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:pillar", { + description = "Sandstone Pillar", + tiles = { + "hyrule_mapgen_sandstone_tile.png", + "hyrule_mapgen_sandstone_tile.png", + "hyrule_mapgen_sandstone_pillar.png", + "hyrule_mapgen_sandstone_pillar.png", + "hyrule_mapgen_sandstone_pillar.png", + "hyrule_mapgen_sandstone_pillar.png" + }, + drawtype = "nodebox", + paramtype = "light", + groups = {cracky=2, falling_node=1}, + node_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, 0.5, 0.25}, -- NodeBox4 + } + }, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:pillar_base", { + description = "Sandstone Pillar (base)", + tiles = { + "hyrule_mapgen_sandstone_tile.png", + "hyrule_mapgen_sandstone_tile.png", + "hyrule_mapgen_sandstone_pillar_base.png", + "hyrule_mapgen_sandstone_pillar_base.png", + "hyrule_mapgen_sandstone_pillar_base.png", + "hyrule_mapgen_sandstone_pillar_base.png" + }, + drawtype = "nodebox", + paramtype = "light", + groups = {cracky=2, falling_node=1}, + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, -0.4375, 0.4375, -0.4375, 0.4375}, -- NodeBox1 + {-0.375, -0.4375, -0.375, 0.375, -0.3125, 0.375}, -- NodeBox2 + {-0.3125, -0.3125, -0.3125, 0.3125, -0.1875, 0.3125}, -- NodeBox3 + {-0.25, -0.1875, -0.25, 0.25, 0.5, 0.25}, -- NodeBox4 + } + }, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:pillar_top", { + description = "Sandstone Pillar (top)", + tiles = { + "hyrule_mapgen_sandstone_tile.png", + "hyrule_mapgen_sandstone_tile.png", + "hyrule_mapgen_sandstone_pillar_top.png", + "hyrule_mapgen_sandstone_pillar_top.png", + "hyrule_mapgen_sandstone_pillar_top.png", + "hyrule_mapgen_sandstone_pillar_top.png" + }, + drawtype = "nodebox", + paramtype = "light", + groups = {cracky=2, falling_node=1}, + node_box = { + type = "fixed", + fixed = { + {-0.4375, 0.4375, -0.4375, 0.4375, 0.5, 0.4375}, -- NodeBox1 + {-0.375, 0.3125, -0.375, 0.375, 0.4375, 0.375}, -- NodeBox2 + {-0.3125, 0.1875, -0.3125, 0.3125, 0.3125, 0.3125}, -- NodeBox3 + {-0.25, -0.5, -0.25, 0.25, 0.1875, 0.25}, -- NodeBox4 + } + }, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:greenwall", { + description = "Green Tile", + tiles = { + "hyrule_mapgen_green_wall.png" + }, + groups = {cracky=1, magnetic=0} +}) + +minetest.register_node("hyrule_mapgen:beamoswall", { + description = "Beamos Block", + tiles = { + "hyrule_mapgen_beamos_wall.png" + }, + groups = {cracky=1, magnetic=0} +}) + +minetest.register_node("hyrule_mapgen:railblock", { + description = "Railway Block", + tiles = { + "hyrule_mapgen_railblock.png" + }, + groups = {cracky=1, magnetic=0} +}) + +minetest.register_node("hyrule_mapgen:greentile", { + description = "Green Dungeon Tile", + tiles = { + "hyrule_mapgen_greentile.png" + }, + groups = {cracky=1,}, + sounds = default.node_sound_glass_defaults() +}) + +minetest.register_node("hyrule_mapgen:stained_glass", { + description = "Stained Glass", + drawtype = "glasslike", + tiles = { + "hyrule_mapgen_stainedglass.png" + }, + use_texture_alpha = true, + paramtype = "light", + light_source = 10, + sunlight_propagates = true, + groups = {cracky=1, oddly_breakable_by_hand=1, dig_immediate = 3}, + sounds = default.node_sound_glass_defaults() +}) + +minetest.register_node("hyrule_mapgen:ganon_sphere", { + description = "Ganon Sphere", + tiles = { + "hyrule_mapgen_ganonsphere.png", + }, + drawtype = "nodebox", + paramtype = "light", + light_source = 10, + groups = {cracky=4, oddly_breakable_by_hand=1}, + walkable = false, + sounds = default.node_sound_glass_defaults(), + use_texture_alpha = true, + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.1875, -0.1875, 0.375, 0.1875, 0.1875}, -- NodeBox5 + {-0.1875, -0.375, -0.1875, 0.1875, 0.375, 0.1875}, -- NodeBox6 + {-0.3125, -0.25, -0.25, 0.3125, 0.25, 0.25}, -- NodeBox7 + {-0.25, -0.25, -0.3125, 0.25, 0.25, 0.3125}, -- NodeBox8 + {-0.25, -0.3125, -0.25, 0.25, 0.3125, 0.25}, -- NodeBox9 + {-0.1875, -0.1875, -0.375, 0.1875, 0.1875, 0.375}, -- NodeBox12 + } + }, + drop = "" +}) + +minetest.register_node("hyrule_mapgen:floortile", { + description = "Floor Tile", + tiles = { + "hyrule_mapgen_floortile.png" + }, + groups = {cracky=1, magnetic=1} +}) + +minetest.register_node("hyrule_mapgen:floorbrick", { + description = "Floor Brick", + tiles = { + "hyrule_mapgen_brick.png" + }, + groups = {cracky=1} +}) + +stairs.register_stair_and_slab( + "floortile", + "hyrule_mapgen:floortile", + {cracky = 3, cools_lava = 1}, + {"hyrule_mapgen_floortile.png"}, + "Floor Tile Stair", + "Floor Tile Slab", + default.node_sound_stone_defaults() +) + +minetest.register_node("hyrule_mapgen:carpet", { + description = "Carpet Block", + tiles = { + "hyrule_mapgen_carpet.png" + }, + groups = {fleshy=1, dig_immediate=3, oddly_breakable_by_hand=1} +}) + +minetest.register_node("hyrule_mapgen:carpet_trap", { + description = "Carpet Trap", + tiles = { + "hyrule_mapgen_carpet.png" + }, + walkable = false, + damage_per_second = 3, + groups = {fleshy=1, dig_immediate=3, oddly_breakable_by_hand=1} +}) + +minetest.register_node("hyrule_mapgen:magnblock", { + description = "Magnetic Block (almost unbreakeable)", + tiles = { + "hyrule_mapgen_magnblock.png" + }, + groups = {cracky=7, magnetic=1}, + on_blast = function(pos, intensity) + end +}) + +minetest.register_node("hyrule_mapgen:flameblock", { + description = "Flame Block (almost unbreakeable)", + tiles = { + "hyrule_mapgen_flameblock.png" + }, + groups = {cracky=7, flammable=1}, + on_blast = function(pos, intensity) + end +}) + +minetest.register_node("hyrule_mapgen:subrosian_stone", { + description = "Subrosian Stone", + tiles = { + "hyrule_mapgen_subrosianstone.png" + }, + paramtype = "light", + light_source = 10, + groups = {cracky=2,} +}) + +local function open_door(pos, player) + if doors.get then + local minp = {x=pos.x-5, y=pos.y, z=pos.z-5} + local maxp = {x=pos.x+5, y=pos.y, z=pos.z+5} + local doorss = minetest.find_nodes_in_area(minp, maxp, "group:door") + for i = 1, #doorss do + local dpos = {x=doorss[i].x, y=doorss[i].y, z=doorss[i].z} + local door = doors.get(dpos) + door:toggle(player) + end + + end +end + +minetest.register_node("hyrule_mapgen:lamp", { + description = "Floor Lamp", + tiles = { + "hyrule_mapgen_lamptop.png", + "hyrule_mapgen_lamptop.png", + "hyrule_mapgen_lampside.png", + }, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {0.375, -0.5, 0.375, 0.5, 0, 0.5}, -- NodeBox1 + {0.375, -0.5, -0.5, 0.5, 0, -0.375}, -- NodeBox2 + {-0.5, -0.5, -0.5, -0.375, 0, -0.375}, -- NodeBox3 + {-0.5, -0.5, 0.375, -0.375, 0, 0.5}, -- NodeBox4 + {-0.375, -0.5, -0.375, 0.375, -0.1875, 0.375}, -- NodeBox5 + {-0.375, -0.375, -0.4375, 0.375, 0.1875, -0.3125}, -- NodeBox6 + {-0.375, -0.375, 0.3125, 0.375, 0.1875, 0.4375}, -- NodeBox7 + {0.3125, -0.375, -0.375, 0.4375, 0.1875, 0.375}, -- NodeBox8 + {-0.4375, -0.375, -0.375, -0.3125, 0.1875, 0.375}, -- NodeBox9 + {-0.1875, -0.5, -0.1875, 0.1875, -0.0625, 0.1875}, -- NodeBox10 + {-0.4375, -0.5, -0.4375, 0.4375, 0.0625, 0.4375}, -- NodeBox11 + } + }, + on_rightclick = function(pos, node, clicker, itemstack) + if clicker:get_wielded_item():get_name() == "hyruletools:lantern" then + minetest.set_node(pos, {name="hyrule_mapgen:lamp_lit"}) + open_door(pos, clicker) + end + end, + groups = {cracky=1, falling_node=1}, +}) + +minetest.register_node("hyrule_mapgen:lamp_lit", { + description = "Floor Lamp", + tiles = { + "hyrule_mapgen_lamptop.png", + "hyrule_mapgen_lamptop.png", + "hyrule_mapgen_lampside.png", + }, + drawtype = "nodebox", + light_source = 10, + sunlight_propagates = false, + paramtype = "light", + drop = "hyrule_mapgen:lamp", + node_box = { + type = "fixed", + fixed = { + {0.375, -0.5, 0.375, 0.5, 0, 0.5}, -- NodeBox1 + {0.375, -0.5, -0.5, 0.5, 0, -0.375}, -- NodeBox2 + {-0.5, -0.5, -0.5, -0.375, 0, -0.375}, -- NodeBox3 + {-0.5, -0.5, 0.375, -0.375, 0, 0.5}, -- NodeBox4 + {-0.375, -0.5, -0.375, 0.375, -0.1875, 0.375}, -- NodeBox5 + {-0.375, -0.375, -0.4375, 0.375, 0.1875, -0.3125}, -- NodeBox6 + {-0.375, -0.375, 0.3125, 0.375, 0.1875, 0.4375}, -- NodeBox7 + {0.3125, -0.375, -0.375, 0.4375, 0.1875, 0.375}, -- NodeBox8 + {-0.4375, -0.375, -0.375, -0.3125, 0.1875, 0.375}, -- NodeBox9 + {-0.1875, -0.5, -0.1875, 0.1875, -0.0625, 0.1875}, -- NodeBox10 + {-0.4375, -0.5, -0.4375, 0.4375, 0.0625, 0.4375}, -- NodeBox11 + } + }, + groups = {cracky=1, falling_node=1, not_in_creative_inventory=1}, +}) + +minetest.register_node("hyrule_mapgen:rock", { + description = "Rock", + tiles = { + "hyrule_mapgen_rock.png", + "hyrule_mapgen_rock.png", + "hyrule_mapgen_rock.png", + "hyrule_mapgen_rock.png", + "hyrule_mapgen_rock.png", + "hyrule_mapgen_rock.png" + }, + drawtype = "nodebox", + paramtype = "light", + groups = {cracky=1, falling_node=1}, + on_destruct = function(pos, oldnode) + local num = math.random(3,5) + if num == 5 then + minetest.env:add_item({x=pos.x, y=pos.y+0.5, z=pos.z}, "hyruletools:green_rupee") + end + end, + node_box = { + type = "fixed", + fixed = { + {-0.375, -0.5, -0.375, 0.3125, -0.4375, 0.3125}, -- NodeBox1 + {-0.4375, -0.4375, -0.3125, 0.375, -0.125, 0.25}, -- NodeBox2 + {-0.3125, -0.125, -0.375, 0.25, -0.0625, 0.3125}, -- NodeBox3 + {-0.3125, -0.4375, -0.4375, 0.25, -0.125, 0.375}, -- NodeBox4 + {-0.375, -0.4375, -0.375, 0.3125, -0.125, 0.3125}, -- NodeBox5 + {-0.25, -0.0625, -0.3125, 0.1875, 0, 0.25}, -- NodeBox6 + {-0.375, -0.125, -0.25, 0.3125, -0.0625, 0.1875}, -- NodeBox7 + } + } +}) + +minetest.register_node("hyrule_mapgen:packed_dirt", { + description = "Packed Dirt", + tiles = { + "default_dirt.png", + }, + drawtype = "nodebox", + paramtype = "light", + groups = {crumbly=1, oddly_breakable_by_hand=1}, + drop = "default:dirt", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 0.4, 0.5}, + } + } +}) + +minetest.register_node("hyrule_mapgen:wallring", { + description = "Wall Ring", + tiles = { + "hyrule_mapgen_railblock.png", + "hyrule_mapgen_railblock.png", + "hyrule_mapgen_wallring.png", + "hyrule_mapgen_wallring.png", + "hyrule_mapgen_wallring.png", + "hyrule_mapgen_wallring.png", + }, + groups = {cracky=1, hook=1} +}) + + +minetest.register_node("hyrule_mapgen:lavabiome_dirt", { + description = "Burnt Dirt", + tiles = { + "hyrule_mapgen_dirt.png" + }, + groups = {crumbly=1, oddly_breakable_by_hand=1} +}) + +minetest.register_node("hyrule_mapgen:stone_with_redrupee", { + description = "Buried red rupee", + tiles = {"default_stone.png^hyruletools_redrupee_ore.png"}, + groups = {cracky = 2, xp = 1}, + drop = 'hyruletools:red_rupee', + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("hyrule_mapgen:stone_with_bluerupee", { + description = "Buried blue rupee", + tiles = {"default_stone.png^hyruletools_bluerupee_ore.png"}, + groups = {cracky = 2, xp = 1}, + drop = 'hyruletools:blue_rupee', + sounds = default.node_sound_stone_defaults(), +}) +minetest.register_node("hyrule_mapgen:stone_with_greenrupee", { + description = "Buried green rupee", + tiles = {"default_stone.png^hyruletools_greenrupee_ore.png"}, + groups = {cracky = 2, xp = 1}, + drop = 'hyruletools:green_rupee', + sounds = default.node_sound_stone_defaults(), +}) + +minetest.register_node("hyrule_mapgen:dungeon_barrier", { + description = "Retro Dungeon Barrier", + tiles = { + "hyrule_mapgen_dungeon_barrier.png", + }, + groups = {cracky=3}, +}) + +minetest.register_node("hyrule_mapgen:dungeon_tile", { + description = "Retro Dungeon Tile", + tiles = { + "hyrule_mapgen_dungeon_tile.png", + }, + groups = {cracky=3}, +}) + +minetest.register_node("hyrule_mapgen:dungeon_brick", { + description = "Retro Dungeon Brick", + tiles = { + "hyrule_mapgen_dungeon_brick.png", + }, + groups = {cracky=3}, +}) + +stairs.register_stair_and_slab( + "dungeon_brick", + "hyrule_mapgen:dungeon_brick", + {cracky = 3, cools_lava = 1}, + {"hyrule_mapgen_dungeon_brick.png"}, + "Retro Dungeon Stair", + "Retro Dungeon Slab", + default.node_sound_stone_defaults() +) + +minetest.register_node("hyrule_mapgen:dungeon_barrier2", { + description = "Retro Dungeon Barrier 2", + tiles = { + "hyrule_mapgen_dungeon_barrier2.png", + }, + groups = {cracky=3}, +}) + +minetest.register_node("hyrule_mapgen:dungeon_tile2", { + description = "Retro Dungeon Tile 2", + tiles = { + "hyrule_mapgen_dungeon_tile2.png", + }, + groups = {cracky=3}, +}) + +minetest.register_node("hyrule_mapgen:dungeon_brick2", { + description = "Retro Dungeon Brick 2", + tiles = { + "hyrule_mapgen_dungeon_brick2.png", + }, + groups = {cracky=3}, +}) + +stairs.register_stair_and_slab( + "dungeon_brick2", + "hyrule_mapgen:dungeon_brick2", + {cracky = 3, cools_lava = 1}, + {"hyrule_mapgen_dungeon_brick2.png"}, + "Retro Dungeon Stair 2", + "Retro Dungeon Slab 2", + default.node_sound_stone_defaults() +) + +minetest.register_node("hyrule_mapgen:dungeon_torch", { + description = "Dungeon Torch", + drawtype = "plantlike", + visual_scale = 2, + walkable = false, + tiles = { + {name = "hyrule_mapgen_torch.png", animation = {type = "vertical_frames", aspect_w = 32, aspect_h = 32, length = 0.5,}, + }, + }, + inventory_image = "hyrule_mapgen_torch_inv.png", + wield_image = "hyrule_mapgen_torch_inv.png", + paramtype = "light", + light_source = 14, + use_texture_alpha = true, + groups = {choppy=1}, + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.2, 0.5}, + } + }, +}) + +minetest.register_node("hyrule_mapgen:subrosian_tile", { + description = "Subrosian Tile", + tiles = { + "hyrule_mapgen_subrosiantile.png", + }, + paramtype = "light", + light_source = 10, + groups = {cracky=2}, +}) + +minetest.register_node("hyrule_mapgen:subrosian_sand", { + description = "Subrosian Sand", + tiles = { + "hyrule_mapgen_subrosiansand.png", + "hyrule_mapgen_subrosiansand.png^[colorize:black:50", + "hyrule_mapgen_subrosiansand.png^[colorize:black:20", + "hyrule_mapgen_subrosiansand.png^[colorize:black:20", + "hyrule_mapgen_subrosiansand.png^[colorize:black:10", + "hyrule_mapgen_subrosiansand.png^[colorize:black:60", + }, + paramtype = "light", + light_source = 10, + groups = {crumbly=1, oddly_breakable_by_hand=1}, +}) + +minetest.register_node("hyrule_mapgen:blue_ore", { + description = "Subrosian Sand", + tiles = { + "hyrule_mapgen_subrosiansand.png", + "hyrule_mapgen_subrosiansand.png^[colorize:black:50", + "hyrule_mapgen_subrosiansand.png^[colorize:black:20", + "hyrule_mapgen_subrosiansand.png^[colorize:black:20", + "hyrule_mapgen_subrosiansand.png^[colorize:black:10", + "hyrule_mapgen_subrosiansand.png^[colorize:black:60", + }, + paramtype = "light", + light_source = 10, + drop = "hyruletools:blue_ore", + groups = {crumbly=1, oddly_breakable_by_hand=1, xp=1, not_in_creative_inventory=1}, +}) + +minetest.register_node("hyrule_mapgen:red_ore", { + description = "Subrosian Sand", + tiles = { + "hyrule_mapgen_subrosiansand.png", + "hyrule_mapgen_subrosiansand.png^[colorize:black:50", + "hyrule_mapgen_subrosiansand.png^[colorize:black:20", + "hyrule_mapgen_subrosiansand.png^[colorize:black:20", + "hyrule_mapgen_subrosiansand.png^[colorize:black:10", + "hyrule_mapgen_subrosiansand.png^[colorize:black:60", + }, + paramtype = "light", + light_source = 10, + drop = "hyruletools:red_ore", + groups = {crumbly=1, oddly_breakable_by_hand=1, xp=1, not_in_creative_inventory=1}, +}) + +minetest.register_node("hyrule_mapgen:stalagtite", { + description = "Stalagtite", + drawtype = "plantlike", + tiles = {"hyrule_mapgen_stalagmite0.png"}, + inventory_image = "hyrule_mapgen_stalagmite0.png", + is_ground_content = false, + sunlight_propagates = true, + walkable = false, + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} + }, + groups = {crumbly=1, oddly_breakable_by_hand=1}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:stalagtite1", { + description = "Stalagtite", + drawtype = "plantlike", + tiles = {"hyrule_mapgen_stalagmite1.png"}, + inventory_image = "hyrule_mapgen_stalagmite1.png", + is_ground_content = false, + sunlight_propagates = true, + walkable = false, + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} + }, + groups = {crumbly=1, oddly_breakable_by_hand=1}, +}) + +minetest.register_node("hyrule_mapgen:stalagtite2", { + description = "Stalagtite", + drawtype = "plantlike", + tiles = {"hyrule_mapgen_stalagmite2.png"}, + inventory_image = "hyrule_mapgen_stalagmite2.png", + is_ground_content = false, + sunlight_propagates = true, + walkable = false, + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} + }, + groups = {crumbly=1, oddly_breakable_by_hand=1}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:stalagtite3", { + description = "Stalagtite", + drawtype = "plantlike", + tiles = {"hyrule_mapgen_stalagmite3.png"}, + inventory_image = "hyrule_mapgen_stalagmite3.png", + is_ground_content = false, + sunlight_propagates = true, + walkable = false, + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} + }, + groups = {crumbly=1, oddly_breakable_by_hand=1}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:stalagmite0", { + description = "Stalagmite", + drawtype = "plantlike", + tiles = {"hyrule_mapgen_stalagmite0.png^[transformFY"}, + inventory_image = "hyrule_mapgen_stalagmite0.png^[transformFY", + is_ground_content = false, + sunlight_propagates = true, + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} + }, + groups = {crumbly=1, oddly_breakable_by_hand=1}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:stalagmite1", { + description = "Stalagmite", + drawtype = "plantlike", + visual_scale = 1.5, + tiles = {"hyrule_mapgen_stalagmite3.png^[transformFY"}, + inventory_image = "hyrule_mapgen_stalagmite3.png^[transformFY", + is_ground_content = false, + sunlight_propagates = true, + walkable = false, + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} + }, + groups = {crumbly=1, oddly_breakable_by_hand=1}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:stalagmite2", { + description = "Stalagmite", + drawtype = "plantlike", + visual_scale = 1.5, + tiles = {"hyrule_mapgen_stalagmite2.png^[transformFY"}, + inventory_image = "hyrule_mapgen_stalagmite2.png^[transformFY", + is_ground_content = false, + sunlight_propagates = true, + walkable = false, + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} + }, + groups = {crumbly=1, oddly_breakable_by_hand=1}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:cicicle", { + description = "Ceiling Icicle", + drawtype = "plantlike", + tiles = {"hyrule_mapgen_icicle.png"}, + inventory_image = "hyrule_mapgen_icicle.png", + is_ground_content = false, + sunlight_propagates = true, + walkable = false, + use_texture_alpha = true, + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} + }, + groups = {cracky=1, oddly_breakable_by_hand=1}, + sounds = default.node_sound_glass_defaults() +}) + +minetest.register_node("hyrule_mapgen:cicicle2", { + description = "Ceiling Icicle 2", + drawtype = "plantlike", + tiles = {"hyrule_mapgen_icicle2.png"}, + inventory_image = "hyrule_mapgen_icicle2.png", + is_ground_content = false, + sunlight_propagates = true, + walkable = false, + use_texture_alpha = true, + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} + }, + groups = {cracky=1, oddly_breakable_by_hand=1}, + sounds = default.node_sound_glass_defaults() +}) + +minetest.register_node("hyrule_mapgen:roots", { + description = "Hanging Roots", + drawtype = "torchlike", + tiles = {"hyrule_mapgen_roots.png"}, + inventory_image = "hyrule_mapgen_roots.png", + is_ground_content = false, + sunlight_propagates = true, + walkable = false, + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} + }, + groups = {crumbly=1, oddly_breakable_by_hand=1}, +}) + +minetest.register_node("hyrule_mapgen:roots2", { + description = "Hanging Root", + drawtype = "torchlike", + tiles = {"hyrule_mapgen_roots2.png"}, + inventory_image = "hyrule_mapgen_roots2.png", + is_ground_content = false, + sunlight_propagates = true, + walkable = false, + paramtype = "light", + selection_box = { + type = "fixed", + fixed = {{-0.3, -0.2, -0.3, 0.3, 0.5, 0.3}} + }, + groups = {crumbly=1, oddly_breakable_by_hand=1}, +}) + +tnt.register_tnt({ + name = "hyrule_mapgen:powder_keg", + description = "Powder Keg", + tiles = { + "hyrule_mapgen_keg_top.png", + "hyrule_mapgen_keg_top.png", + "hyrule_mapgen_keg_side.png", + "hyrule_mapgen_keg_side.png", + "hyrule_mapgen_keg_front.png", + "hyrule_mapgen_keg_front.png", + }, + radius = 3, +}) + +minetest.register_node("hyrule_mapgen:statue", { + description = "Gossip Stone", + tiles = { + "hyrule_mapgen_statue_side.png", + "hyrule_mapgen_statue_side.png", + "hyrule_mapgen_statue_side.png", + "hyrule_mapgen_statue_side.png", + "hyrule_mapgen_statue_side.png", + "hyrule_mapgen_statue_front.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=1, falling_node=1}, + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, -0.1875, 0.4375, 0.4375, 0.25}, -- NodeBox1 + {-0.375, 0.4375, -0.1875, 0.375, 0.5, 0.25}, -- NodeBox2 + } + }, + on_rightclick = function(pos, node, clicker, item, _) + local wield_item = clicker:get_wielded_item():get_name() + if wield_item == "hyruletools:eye" then + minetest.set_node(pos, {name="hyrule_mapgen:statue_active", param2=node.param2}) + end + end +}) + + +minetest.register_node("hyrule_mapgen:statue_active", { + tiles = { + "hyrule_mapgen_statue_side.png", + "hyrule_mapgen_statue_side.png", + "hyrule_mapgen_statue_side.png", + "hyrule_mapgen_statue_side.png", + "hyrule_mapgen_statue_side.png", + "hyrule_mapgen_statue_active.png" + }, + drop = 'hyrule_mapgen:statue', + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=1, falling_node=1}, + light_source = 5, + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, -0.1875, 0.4375, 0.4375, 0.25}, -- NodeBox1 + {-0.375, 0.4375, -0.1875, 0.375, 0.5, 0.25}, -- NodeBox2 + } + }, + on_rightclick = function(pos, node, clicker, item, _) + local wield_item = clicker:get_wielded_item():get_name() + if wield_item == "hyruletools:eye" then + minetest.set_node(pos, {name="hyrule_mapgen:statue", param2=node.param2}) + end + end +}) + + +minetest.register_node("hyrule_mapgen:glowstone", { + description = "glowstone", + drawtype = "allfaces", + tiles = { + "hyrulemapgen_glowstone.png" + }, + use_texture_alpha = true, + groups = {snappy=3, oddly_breakable_by_hand = 1}, + paramtype = "light", + light_source = 14, + sounds = default.node_sound_glass_defaults(), +}) + +minetest.register_node("hyrule_mapgen:volvagia_spawn", { + description = "Volvagia spawner", + tiles = { + "hyrule_mapgen_vspawn.png" + }, + groups = {snappy=3, oddly_breakable_by_hand = 1}, + paramtype = "light", + light_source = 10, + sounds = default.node_sound_glass_defaults(), + on_construct = function(pos) + minetest.after(5, function() + minetest.add_entity({x=pos.x, y=pos.y+0.5, z=pos.z}, "mobs_loz:volvagia") + minetest.sound_play("BrassFleece", {gain=0.3}) + end) + end, + on_rightclick = function(pos, node, clicker, item, _) + local wield_item = clicker:get_wielded_item():get_name() + if wield_item == "hyruletools:sword" then + minetest.set_node(pos, {name="hyrule_mapgen:ganon_spawn", param2=node.param2}) + end + end +}) + +minetest.register_node("hyrule_mapgen:ganon_spawn", { + description = "Ganon spawner", + tiles = { + "hyrule_mapgen_gspawn.png" + }, + groups = {snappy=3, oddly_breakable_by_hand = 1}, + paramtype = "light", + light_source = 10, + sounds = default.node_sound_glass_defaults(), + on_construct = function(pos) + minetest.place_schematic({x=pos.x-6, y=pos.y-1, z=pos.z-6}, minetest.get_modpath("hyrule_mapgen").."/schematics/ganon_dungeon.mts", random, {}, true) + minetest.after(5, function() + minetest.add_entity({x=pos.x+3, y=pos.y+1, z=pos.z+3}, "mobs_loz:ganon") + end) + end, +}) + +minetest.register_node("hyrule_mapgen:bongo_spawn", { + description = "Bongo Bongo spawner", + tiles = { + "hyrule_mapgen_wspawn.png" + }, + groups = {snappy=3, oddly_breakable_by_hand = 1}, + paramtype = "light", + light_source = 10, + sounds = default.node_sound_glass_defaults(), + on_construct = function(pos) + minetest.after(5, function() + minetest.add_entity({x=pos.x, y=pos.y+1, z=pos.z}, "mobs_loz:bongobongo") + end) + end, + on_rightclick = function(pos, node, clicker, item, _) + local wield_item = clicker:get_wielded_item():get_name() + if wield_item == "hyruletools:sword" then + minetest.set_node(pos, {name="hyrule_mapgen:ganon_spawn", param2=node.param2}) + end + end +}) + +minetest.register_node("hyrule_mapgen:dodongo_spawn", { + description = "King Dodongo spawner", + tiles = { + "hyrule_mapgen_dspawn.png" + }, + groups = {snappy=3, oddly_breakable_by_hand = 1}, + paramtype = "light", + light_source = 10, + sounds = default.node_sound_glass_defaults(), + on_construct = function(pos) + minetest.after(5, function() + minetest.add_entity({x=pos.x, y=pos.y+1, z=pos.z}, "mobs_loz:dodongo_boss") + end) + end, + on_rightclick = function(pos, node, clicker, item, _) + local wield_item = clicker:get_wielded_item():get_name() + if wield_item == "hyruletools:sword" then + minetest.set_node(pos, {name="hyrule_mapgen:ganon_spawn", param2=node.param2}) + end + end +}) + +minetest.register_node("hyrule_mapgen:boulder", { + description = "Boulder", + tiles = { + "hyrule_mapgen_boulder.png", + }, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 1.0625, 0.5}, -- NodeBox1 + {-0.5, -0.375, -0.625, 0.5, 0.9375, 0.625}, -- NodeBox2 + {-0.625, -0.375, -0.5, 0.625, 0.9375, 0.5}, -- NodeBox3 + {-0.5, -0.25, -0.6875, 0.5, 0.8125, 0.6875}, -- NodeBox4 + {-0.6875, -0.25, -0.5, 0.6875, 0.8125, 0.5}, -- NodeBox5 + {-0.5625, -0.25, -0.5625, 0.5625, 0.8125, 0.5625}, -- NodeBox6 + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 1.0625, 0.5}, -- NodeBox1 + {-0.5, -0.375, -0.625, 0.5, 0.9375, 0.625}, -- NodeBox2 + {-0.625, -0.375, -0.5, 0.625, 0.9375, 0.5}, -- NodeBox3 + {-0.5, -0.25, -0.6875, 0.5, 0.8125, 0.6875}, -- NodeBox4 + {-0.6875, -0.25, -0.5, 0.6875, 0.8125, 0.5}, -- NodeBox5 + {-0.5625, -0.25, -0.5625, 0.5625, 0.8125, 0.5625}, -- NodeBox6 + } + }, + groups = {explody=1}, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:snowball", { + description = "Snow Boulder", + tiles = { + "default_snow.png", + }, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 1.0625, 0.5}, -- NodeBox1 + {-0.5, -0.375, -0.625, 0.5, 0.9375, 0.625}, -- NodeBox2 + {-0.625, -0.375, -0.5, 0.625, 0.9375, 0.5}, -- NodeBox3 + {-0.5, -0.25, -0.6875, 0.5, 0.8125, 0.6875}, -- NodeBox4 + {-0.6875, -0.25, -0.5, 0.6875, 0.8125, 0.5}, -- NodeBox5 + {-0.5625, -0.25, -0.5625, 0.5625, 0.8125, 0.5625}, -- NodeBox6 + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, 1.0625, 0.5}, -- NodeBox1 + {-0.5, -0.375, -0.625, 0.5, 0.9375, 0.625}, -- NodeBox2 + {-0.625, -0.375, -0.5, 0.625, 0.9375, 0.5}, -- NodeBox3 + {-0.5, -0.25, -0.6875, 0.5, 0.8125, 0.6875}, -- NodeBox4 + {-0.6875, -0.25, -0.5, 0.6875, 0.8125, 0.5}, -- NodeBox5 + {-0.5625, -0.25, -0.5625, 0.5625, 0.8125, 0.5625}, -- NodeBox6 + } + }, + groups = {explody=1}, + sounds = default.node_sound_dirt_defaults() +}) + +minetest.register_node("hyrule_mapgen:bucket_milk", { + tiles = { + "mobs_bucket_milk2.png", + }, + drawtype = "mesh", + mesh = "bottle.obj", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 + {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 + {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 + {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 + {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 + {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 + {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 + {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 + {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 + {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 + {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 + {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 + {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 + {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 + {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 + {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 + {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 + {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 + {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 + {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 + {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 + } + }, + groups = {cracky=1, oddly_breakable_by_hand=1,}, + sounds = default.node_sound_glass_defaults(), + drop = "mobs:bucket_milk" +}) + +minetest.override_item("mobs:bucket_milk", { + on_place= function(itemstack, placer, pointed_thing) + if pointed_thing == nil then return end + local pos = pointed_thing.above + minetest.set_node(pos, {name="hyrule_mapgen:bucket_milk"}) + itemstack:take_item() + return itemstack + end +}) + +minetest.register_node("hyrule_mapgen:bucket", { + tiles = { + "bucket2.png", + }, + drawtype = "mesh", + mesh = "bottle.obj", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 + {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 + {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 + {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 + {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 + {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 + {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 + {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 + {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 + {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 + {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 + {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 + {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 + {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 + {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 + {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 + {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 + {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 + {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 + {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 + {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 + } + }, + groups = {cracky=1, oddly_breakable_by_hand=1,}, + sounds = default.node_sound_glass_defaults(), + drop = "bucket:bucket_empty" +}) + +minetest.override_item("bucket:bucket_empty", { + on_place= function(itemstack, placer, pointed_thing) + if pointed_thing == nil then return end + local pos = pointed_thing.above + minetest.set_node(pos, {name="hyrule_mapgen:bucket"}) + itemstack:take_item() + return itemstack + end +}) + +minetest.register_node("hyrule_mapgen:bucket_river_water", { + tiles = { + "bucket_river_water2.png", + }, + drawtype = "mesh", + mesh = "bottle.obj", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 + {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 + {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 + {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 + {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 + {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 + {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 + {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 + {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 + {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 + {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 + {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 + {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 + {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 + {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 + {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 + {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 + {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 + {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 + {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 + {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 + } + }, + groups = {cracky=1, oddly_breakable_by_hand=1,}, + sounds = default.node_sound_glass_defaults(), + drop = "bucket:bucket_river_water" +}) + +minetest.override_item("bucket:bucket_river_water", { + on_use = function(itemstack, placer, pointed_thing) + if pointed_thing == nil then return end + local pos = pointed_thing.above + minetest.set_node(pos, {name="hyrule_mapgen:bucket_river_water"}) + itemstack:take_item() + return itemstack + end +}) + +minetest.register_node("hyrule_mapgen:bucket_lava", { + tiles = { + "bucket_lava2.png", + }, + drawtype = "mesh", + mesh = "bottle.obj", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 + {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 + {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 + {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 + {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 + {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 + {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 + {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 + {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 + {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 + {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 + {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 + {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 + {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 + {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 + {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 + {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 + {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 + {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 + {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 + {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 + } + }, + groups = {cracky=1, oddly_breakable_by_hand=1,}, + sounds = default.node_sound_glass_defaults(), + drop = "bucket:bucket_lava", + light_source = 6, +}) + +minetest.override_item("bucket:bucket_lava", { + on_use = function(itemstack, placer, pointed_thing) + if pointed_thing == nil then return end + local pos = pointed_thing.above + minetest.set_node(pos, {name="hyrule_mapgen:bucket_lava"}) + itemstack:take_item() + return itemstack + end +}) + +minetest.register_node("hyrule_mapgen:bucket_water", { + tiles = { + "bucket_water2.png", + }, + drawtype = "mesh", + mesh = "bottle.obj", + paramtype = "light", + selection_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 + {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 + {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 + {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 + {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 + {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 + {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 + {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 + {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 + {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 + {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.25, -0.5, -0.25, 0.25, -0.4375, 0.25}, -- NodeBox1 + {-0.3125, -0.4375, -0.25, 0.3125, 0, 0.25}, -- NodeBox2 + {-0.25, -0.4375, -0.3125, 0.25, 0, 0.3125}, -- NodeBox3 + {-0.25, 0, -0.1875, 0.25, 0.0625, 0.1875}, -- NodeBox4 + {-0.1875, 0.0625, -0.125, 0.1875, 0.125, 0.125}, -- NodeBox5 + {-0.125, 0.125, -0.125, 0.125, 0.25, 0.125}, -- NodeBox6 + {-0.125, 0.25, -0.1875, 0.125, 0.3125, 0.1875}, -- NodeBox7 + {-0.1875, 0.25, -0.125, 0.1875, 0.3125, 0.125}, -- NodeBox8 + {-0.125, 0.3125, -0.125, 0.125, 0.375, 0.125}, -- NodeBox9 + {-0.125, 0.0625, -0.1875, 0.125, 0.125, 0.1875}, -- NodeBox10 + {-0.1875, 0, -0.25, 0.1875, 0.0625, 0.25}, -- NodeBox11 + } + }, + groups = {cracky=1, oddly_breakable_by_hand=1,}, + sounds = default.node_sound_glass_defaults(), + drop = "bucket:bucket_water" +}) + +minetest.override_item("bucket:bucket_water", { + on_use = function(itemstack, placer, pointed_thing) + if pointed_thing == nil then return end + local pos = pointed_thing.above + minetest.set_node(pos, {name="hyrule_mapgen:bucket_water"}) + itemstack:take_item() + return itemstack + end +}) + +minetest.register_node("hyrule_mapgen:magic_tree", { + description = "magic tree trunk", + tiles = { + "hyrule_mapgen_magic_tree_top.png", + "hyrule_mapgen_magic_tree_top.png", + "hyrule_mapgen_magic_tree.png", + "hyrule_mapgen_magic_tree.png", + "hyrule_mapgen_magic_tree.png", + "hyrule_mapgen_magic_tree.png" + }, + paramtype = "facedir", + groups = {tree=1, choppy=2, flammable=2, oddly_breakable_by_hand = 1,}, + on_place = minetest.rotate_node +}) + +minetest.register_node("hyrule_mapgen:magic_leaves", { + description = "magic leaves", + drawtype = "allfaces_optional", + tiles = { + "hyrule_mapgen_magic_leaves.png" + }, + groups = {snappy=3, flammable=1, leafdecay=3, oddly_breakable_by_hand = 1, leaves=1,}, + paramtype = "light", + walkable = false, +}) + +if minetest.setting_getbool("3d_leaves") then +minetest.override_item("hyrule_mapgen:magic_leaves", { + drawtype = "mesh", + mesh = "leaf.obj", + tiles = {"hyrule_mapgen_magic_leaves2.png"}, + paramtype = "light", +}) +end + +minetest.register_node("hyrule_mapgen:canopy_leaves", { + description = "canopy leaves", + drawtype = "allfaces_optional", + tiles = { + "default_leaves.png" + }, + groups = {snappy=3, flammable=1, leaves=1, oddly_breakable_by_hand = 1, not_in_creative_inventory=1}, + paramtype = "light", + walkable = false, +}) + +minetest.register_node("hyrule_mapgen:palm_tree", { + description = "palm tree trunk", + tiles = { + "hyrule_mapgen_palm_tree_top.png", + "hyrule_mapgen_palm_tree_top.png", + "hyrule_mapgen_palm_tree.png", + "hyrule_mapgen_palm_tree.png", + "hyrule_mapgen_palm_tree.png", + "hyrule_mapgen_palm_tree.png" + }, + paramtype = "facedir", + groups = {tree=1, choppy=2, flammable=2, oddly_breakable_by_hand = 1, not_in_creative_inventory=1}, + on_place = minetest.rotate_node +}) + +minetest.register_node("hyrule_mapgen:palm_leaves", { + description = "palm leaves", + drawtype = "plantlike", + tiles = { + "hyrule_mapgen_palm_leaf.png" + }, + inventory_image = "hyrule_mapgen_palm_leaf.png", + visual_scale = 6, + wield_scale = {x=0.5, y=0.5, z=0.5}, + groups = {snappy=3, flammable=1, leafdecay=3, oddly_breakable_by_hand = 1, leaves=1, not_in_creative_inventory=1}, + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.5, -0.5, -0.5, 0.5, 0, 0.5} + }, +}) + +minetest.register_node("hyrule_mapgen:coconut", { + description = "coconut", + drawtype = "plantlike", + tiles = { + "hyrule_mapgen_coconut.png" + }, + wield_image = "hyrule_mapgen_coconut.png", + inventory_image = "hyrule_mapgen_coconut.png", + groups = {snappy=3, flammable=1, oddly_breakable_by_hand = 1, not_in_creative_inventory=1}, + paramtype = "light", + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.2, -0.3, -0.2, 0.2, 0.3, 0.2} + }, + on_use = minetest.item_eat(2) +}) + +minetest.register_node("hyrule_mapgen:wild_tree", { + description = "wild tree trunk", + tiles = { + "hyrule_mapgen_wild_tree_top.png", + "hyrule_mapgen_wild_tree_top.png", + "hyrule_mapgen_wild_tree.png", + "hyrule_mapgen_wild_tree.png", + "hyrule_mapgen_wild_tree.png", + "hyrule_mapgen_wild_tree.png" + }, + paramtype = "facedir", + groups = {tree=1, choppy=2, oddly_breakable_by_hand = 1, flammable=2,}, + on_place = minetest.rotate_node +}) + +minetest.register_node("hyrule_mapgen:wild_leaves", { + description = "wild tree leaves", + drawtype = "plantlike", + tiles = { + "hyrule_mapgen_wild_leaves.png" + }, + wield_image = "hyrule_mapgen_wild_leaves.png", + inventory_image = "hyrule_mapgen_wild_leaves.png", + groups = {snappy=3, flammable=1, oddly_breakable_by_hand = 1, leafdecay=3, leaves=1,}, + paramtype = "light", + walkable = false, +}) + +if minetest.setting_getbool("3d_leaves") then +minetest.override_item("hyrule_mapgen:wild_leaves", { + drawtype = "mesh", + mesh = "leaf.obj", + tiles = {"hyrule_mapgen_wild_leaves2.png"}, + paramtype = "light", +}) +end + +minetest.register_node("hyrule_mapgen:magicsapling", { + description = "Magic Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"hyrule_mapgen_magic_sapling.png"}, + inventory_image = "hyrule_mapgen_magic_sapling.png", + wield_image = "hyrule_mapgen_magic_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, +}) + +minetest.register_node("hyrule_mapgen:palmsapling", { + description = "Palm Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"hyrule_mapgen_palm_sapling.png"}, + inventory_image = "hyrule_mapgen_palm_sapling.png", + wield_image = "hyrule_mapgen_palm_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, +}) + +minetest.register_node("hyrule_mapgen:bigsapling", { + description = "Big Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"hyrule_mapgen_big_sapling.png"}, + inventory_image = "hyrule_mapgen_big_sapling.png", + wield_image = "hyrule_mapgen_big_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, +}) + +minetest.register_node("hyrule_mapgen:wildsapling", { + description = "Wild Sapling", + drawtype = "plantlike", + visual_scale = 1.0, + tiles = {"hyrule_mapgen_wild_sapling.png"}, + inventory_image = "hyrule_mapgen_wild_sapling.png", + wield_image = "hyrule_mapgen_wild_sapling.png", + paramtype = "light", + sunlight_propagates = true, + walkable = false, + selection_box = { + type = "fixed", + fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3} + }, + groups = {snappy = 2, dig_immediate = 3, flammable = 2, + attached_node = 1, sapling = 1}, +}) + +minetest.register_node("hyrule_mapgen:tower_spawner", { + description = "Tower Monster Spawner", + drawtype = "airlike", + walkable = false, + pointable = false, + groups = {not_in_creative_inventory=1}, + on_blast = function(pos, intensity) + end, + sunlight_propagates = false, + paramtype = "light", + buildable_to = true, + is_ground_content = false, +}) + +minetest.register_node("hyrule_mapgen:wall_ring", { + description = "Wall Ring", + tiles = { + "default_obsidian.png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=2}, + node_box = { + type = "fixed", + fixed = { + {-0.0625, 0.25, 0.3125, 0.125, 0.5, 0.5}, -- NodeBox1 + {0.125, 0, 0.375, 0.1875, 0.375, 0.5}, -- NodeBox2 + {-0.125, 0, 0.375, -0.0625, 0.375, 0.5}, -- NodeBox3 + {-0.125, 0, 0.375, 0.1875, 0.0625, 0.5}, -- NodeBox4 + } + }, + is_ground_content = false, + sounds = default.node_sound_metal_defaults() +}) + +minetest.register_node("hyrule_mapgen:barrel", { + description = "Barrel", + tiles = { + "hyrule_mapgen_barrel_top.png", + "hyrule_mapgen_barrel_top.png", + "hyrule_mapgen_barrel.png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.4, -0.5, 0.5, 0.5, 0.5}, -- NodeBox1 + {-0.5, -0.5, -0.5, -0.375, 0.5625, 0.5}, -- NodeBox2 + {0.375, -0.5, -0.5, 0.5, 0.5625, 0.5}, -- NodeBox3 + {-0.5, -0.5, -0.5, 0.5, 0.5625, -0.375}, -- NodeBox4 + {-0.5, -0.5, 0.375, 0.5, 0.5625, 0.5}, -- NodeBox5 + } + }, + groups = {choppy=1}, + sounds = default.node_sound_wood_defaults(), + is_ground_content = false, + on_place = minetest.rotate_node +}) + +minetest.register_node("hyrule_mapgen:bars", { + description = "Steel Bars", + tiles = { + "default_steel_block.png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=7,}, + node_box = { + type = "fixed", + fixed = { + {0.25, -0.5, -0.0625, 0.375, 0.5, 0.0625}, + {-0.375, -0.5, -0.0625, -0.25, 0.5, 0.0625}, + {-0.0625, -0.5, -0.0625, 0.0625, 0.5, 0.0625}, + } + }, + is_ground_content = false, + sounds = default.node_sound_metal_defaults() +}) + +minetest.register_node("hyrule_mapgen:drain", { + description = "Floor Drain", + tiles = { + "hyrule_mapgen_drain.png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + groups = {not_in_creative_inventory=1,}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.49, 0.5}, + } + }, + is_ground_content = false, +}) + +minetest.register_node("hyrule_mapgen:bones", { + description = "Bones", + tiles = { + "hyrule_mapgen_bones.png", + }, + inventory_image = "hyrule_mapgen_bones.png", + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + walkable = false, + groups = {not_in_creative_inventory=1,}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.49, 0.5}, + } + }, + is_ground_content = false, +}) + +minetest.register_node("hyrule_mapgen:skull", { + description = "Skull", + is_ground_content = false, + tiles = { + "hyrule_mapgen_skull_top.png", + "hyrule_mapgen_skull_top.png", + "hyrule_mapgen_skull_side.png", + "hyrule_mapgen_skull_side.png^[transformFX", + "hyrule_mapgen_skull_back.png", + "hyrule_mapgen_skull_front.png" + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + groups = {cracky=1, oddly_breakable_by_hand=1, not_in_creative_inventory=1}, + node_box = { + type = "fixed", + fixed = { + {-0.3125, -0.5, -0.3125, 0.3125, 0.125, 0.3125}, -- NodeBox1 + } + }, + sounds = default.node_sound_wood_defaults() +}) + +minetest.register_node("hyrule_mapgen:chain", { + description = "Wall Chain", + tiles = { + "hyrule_mapgen_chain1.png", + }, + inventory_image = "hyrule_mapgen_chain1.png", + drawtype = "signlike", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + groups = {cracky=3, not_in_creative_inventory=1,}, + sounds = default.node_sound_metal_defaults(), + is_ground_content = false, + selection_box = { + type = "wallmounted", + } +}) + +minetest.register_node("hyrule_mapgen:cracks", { + description = "Wall Cracks", + tiles = { + "hyrule_mapgen_cracks.png", + }, + inventory_image = "hyrule_mapgen_cracks.png", + drawtype = "signlike", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + use_texture_alpha = true, + is_ground_content = false, + groups = {cracky=1, not_in_creative_inventory=1,}, + sounds = default.node_sound_stone_defaults(), + selection_box = { + type = "wallmounted", + }, + drop = "" +}) + +minetest.register_node("hyrule_mapgen:painting", { + description = "Castle Painting", + tiles = { + "hyrule_mapgen_painting.png", + }, + inventory_image = "hyrule_mapgen_painting.png", + drawtype = "signlike", + paramtype = "light", + visual_scale = 2.5, + paramtype2 = "wallmounted", + walkable = false, + is_ground_content = false, + use_texture_alpha = true, + groups = {cracky=1, not_in_creative_inventory=1,}, + sounds = default.node_sound_wood_defaults(), + selection_box = { + type = "wallmounted", + }, +}) + +minetest.register_node("hyrule_mapgen:painting2", { + description = "Knight Painting", + tiles = { + "hyrule_mapgen_painting2.png", + }, + inventory_image = "hyrule_mapgen_painting2.png", + drawtype = "signlike", + paramtype = "light", + visual_scale = 2.5, + paramtype2 = "wallmounted", + walkable = false, + use_texture_alpha = true, + groups = {cracky=1, not_in_creative_inventory=1,}, + sounds = default.node_sound_wood_defaults(), + is_ground_content = false, + selection_box = { + type = "wallmounted", + }, +}) + +minetest.register_node("hyrule_mapgen:chain2", { + description = "Wall Chain 2", + tiles = { + "hyrule_mapgen_chain2.png", + }, + inventory_image = "hyrule_mapgen_chain2.png", + drawtype = "signlike", + paramtype = "light", + paramtype2 = "wallmounted", + walkable = false, + groups = {cracky=3, not_in_creative_inventory=1,}, + sounds = default.node_sound_metal_defaults(), + selection_box = { + type = "wallmounted", + }, + is_ground_content = false, +}) + +minetest.register_node("hyrule_mapgen:floor_light", { + description = "Floor Light", + tiles = { + "hyrule_mapgen_floorlight.png", + }, + drawtype = "nodebox", + paramtype = "light", + light_source = 5, + paramtype2 = "facedir", + walkable = false, + use_texture_alpha = true, + groups = {not_in_creative_inventory=1,}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.49, 0.5}, + } + }, + is_ground_content = false, +}) + +minetest.register_node("hyrule_mapgen:floor_light2", { + description = "Floor Light", + tiles = { + "hyrule_mapgen_floorlight2.png", + }, + drawtype = "nodebox", + paramtype = "light", + light_source = 5, + paramtype2 = "facedir", + walkable = false, + use_texture_alpha = true, + groups = {not_in_creative_inventory=1,}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.49, 0.5}, + } + }, + is_ground_content = false, +}) + +minetest.register_node("hyrule_mapgen:dungeon_carpet", { + description = "Dungeon Carpet", + tiles = { + "hyrule_mapgen_carpet.png", + }, + drawtype = "nodebox", + paramtype = "light", + walkable = false, + is_ground_content = false, + groups = {cracky=1, not_in_creative_inventory=1,}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5}, + } + }, + drop = "" +}) + +if minetest.setting_getbool("lom_devmode") then +minetest.register_node("hyrule_mapgen:tower_toolchest", { + description = "Tower Toolchest", + tiles = { + "default_chest_top.png", + "default_chest_top.png", + "default_chest_side.png", + "default_chest_side.png", + "default_chest_front.png", + "default_chest_side.png", + }, + groups = {cracky=1,}, + drop = "", + on_rightclick = function(pos, node, clicker, itemstack) + if clicker:get_player_name() ~= "singleplayer" then + minetest.chat_send_player(clicker:get_player_name(), "Toolchests only work in Singleplayer") + elseif not minetest.setting_getbool("lom_devmode") then + minetest.chat_send_player(clicker:get_player_name(), "Requires 'lom_devmode' to be 'true'") + else + minetest.remove_node(pos) + minetest.env:add_item(pos, "hyrule_mapgen:tower_dev") + minetest.env:add_item(pos, "hyrule_mapgen:lightshaft") + minetest.env:add_item(pos, "hyrule_mapgen:lightshaft2") + minetest.env:add_item(pos, "hyrule_mapgen:dungeon_carpet") + minetest.env:add_item(pos, "hyrule_mapgen:dungeon_trapdoor") + minetest.env:add_item(pos, "hyrule_mapgen:tower_generator") + minetest.env:add_item(pos, "hyrule_mapgen:cracks") + minetest.env:add_item(pos, "hyrule_mapgen:chain") + minetest.env:add_item(pos, "hyrule_mapgen:chain2") + minetest.env:add_item(pos, "hyrule_mapgen:fog") + minetest.env:add_item(pos, "hyrule_mapgen:quartz_table") + minetest.env:add_item(pos, "hyrule_mapgen:goddess_statue") + minetest.env:add_item(pos, "hyrule_mapgen:candles") + minetest.env:add_item(pos, "hyrule_mapgen:bones") + minetest.env:add_item(pos, "hyrule_mapgen:skull") + minetest.env:add_item(pos, "hyrule_mapgen:drain") + minetest.env:add_item(pos, "hyrule_mapgen:floor_light") + minetest.env:add_item(pos, "hyrule_mapgen:floor_light2") + minetest.env:add_item(pos, "hyrule_mapgen:bars") + minetest.env:add_item(pos, "hyrule_mapgen:barrel") + minetest.env:add_item(pos, "hyrule_mapgen:painting") + minetest.env:add_item(pos, "hyrule_mapgen:painting2") + minetest.env:add_item(pos, "quartz:wall_immortal") + minetest.env:add_item(pos, "quartz:block_immortal") + minetest.env:add_item(pos, "quartz:pillar_immortal") + end + end, +}) +end + +minetest.register_node("hyrule_mapgen:dungeon_trapdoor", { + description = "Dungeon Trapdoor", + tiles = { + "hyrule_mapgen_trapdoor.png", + }, + drawtype = "nodebox", + paramtype = "light", + walkable = true, + groups = {not_in_creative_inventory=1,}, + on_blast = function(radius, intensity) + end, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5}, + } + }, + drop = "", + is_ground_content = false, + on_rightclick = function(pos, node, clicker, itemstack) + if clicker:get_wielded_item():get_name() == "loot:key" then + itemstack:take_item() + minetest.remove_node(pos) + return itemstack + end + end, +}) + +minetest.register_node("hyrule_mapgen:fog", { + description = "Fog", + tiles = {{ + name = "hyrule_mapgen_fog.png", + animation = {type = "vertical_frames", aspect_w = 16, aspect_h = 16, length = 1.0}, + }, + "hyrule_mapgen_trans.png", + }, + drawtype = "nodebox", + is_ground_content = false, + paramtype = "light", + light_source = 1, + walkable = false, + pointable = false, + use_texture_alpha = true, + groups = {cracky=1, not_in_creative_inventory=1,}, + node_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0.5, 0.5, -0.4, 0.5}, + } + }, + drop = "" +}) + +minetest.register_node("hyrule_mapgen:quartz_table", { + description = "Quartz Table", + tiles = { + "quartz_wall.png", + }, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + is_ground_content = false, + groups = {cracky=4, not_in_creative_inventory=1}, + node_box = { + type = "fixed", + fixed = { + {-0.5, 0.4375, -0.5, 0.5, 0.5, 0.5}, -- NodeBox1 + {-0.4375, 0.25, -0.4375, 0.4375, 0.4375, 0.5}, -- NodeBox2 + {0.3125, -0.5, -0.5, 0.5, -0.4375, -0.3125}, -- NodeBox3 + {-0.5, -0.5, -0.5, -0.3125, -0.4375, -0.3125}, -- NodeBox4 + {-0.4375, -0.5, -0.4375, -0.3125, 0.25, -0.3125}, -- NodeBox5 + {0.3125, -0.5, -0.4375, 0.4375, 0.25, -0.3125}, -- NodeBox6 + } + }, + sounds = default.node_sound_stone_defaults() +}) + +minetest.register_node("hyrule_mapgen:candles", { + description = "Candles", + tiles = { + "hyrule_mapgen_candle.png", + }, + drawtype = "mesh", + mesh = "candles.obj", + paramtype = "light", + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { + {-0.2, -0.5, -0.2, 0.2, -0.2, 0.2}, + } + }, + groups = {choppy=1, not_in_creative_inventory=1,}, + sounds = default.node_sound_wood_defaults(), + drop = "xdecor:candle 2", + is_ground_content = false, +}) + +minetest.register_node("hyrule_mapgen:goddess_statue", { + description = "Goddess Statue", + tiles = { + "hyrule_mapgen_goddess_statue.png", + }, + drawtype = "mesh", + mesh = "goddess_statue.obj", + paramtype = "light", + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { + {-0.2, 0, -0.2, 0.2, 2, 0.2,}, + {-0.5, -0.5, -0.5, 0.5, 0, 0.5,}, + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.2, 0, -0.2, 0.2, 2, 0.2,}, + {-0.5, -0.5, -0.5, 0.5, 0, 0.5,}, + } + }, + visual_scale = 0.5, + is_ground_content = false, + groups = {cracky=1, not_in_creative_inventory=1,}, + sounds = default.node_sound_stone_defaults(), +}) + + +minetest.register_node("hyrule_mapgen:lightshaft", { + description = "lightshaft", + tiles = { + "hyrule_mapgen_lightshaft.png", + }, + drawtype = "mesh", + mesh = "lightshaft.obj", + use_texture_alpha = true, + walkable = false, + paramtype = "light", + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { + {-0.5, -0.5, -0, 0.5, 0.5,}, + } + }, + visual_scale = 0.5, + is_ground_content = false, + light_source = 5, + groups = {not_in_creative_inventory=1,}, + sounds = default.node_sound_glass_defaults(), + drop = "" +}) + +minetest.register_node("hyrule_mapgen:lightshaft2", { + description = "lightshaft", + tiles = { + "hyrule_mapgen_lightshaft.png", + }, + drawtype = "mesh", + mesh = "lightshaft2.obj", + use_texture_alpha = true, + walkable = false, + paramtype = "light", + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = { + {-0.5, 0.5, -0.5, 0.5, 0.5, 0.5}, + } + }, + visual_scale = 0.5, + light_source = 5, + groups = {not_in_creative_inventory=1,}, + climbable = true, + is_ground_content = false, + sounds = default.node_sound_glass_defaults(), + drop = "" +}) + +minetest.register_node("hyrule_mapgen:double_ladder", { + description = "Double Ladder", + tiles = { + "default_wood.png", + }, + walkable = true, + drawtype = "nodebox", + paramtype = "light", + paramtype2 = "facedir", + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, 0.4375, -0.3125, 0.5, 0.5}, -- NodeBox1 + {0.3125, -0.5, 0.4375, 0.4375, 0.5, 0.5}, -- NodeBox2 + {-0.5, 0.3125, 0.375, 0.5, 0.4375, 0.5}, -- NodeBox3 + {-0.5, 0.0625, 0.375, 0.5, 0.1875, 0.5}, -- NodeBox4 + {-0.5, -0.1875, 0.375, 0.5, -0.0625, 0.5}, -- NodeBox5 + {-0.5, -0.4375, 0.375, 0.5, -0.3125, 0.5}, -- NodeBox6 + {-0.4375, -0.5+1, 0.4375, -0.3125, 0.5+1, 0.5}, -- NodeBox1 + {0.3125, -0.5+1, 0.4375, 0.4375, 0.5+1, 0.5}, -- NodeBox2 + {-0.5, 0.3125+1, 0.375, 0.5, 0.4375+1, 0.5}, -- NodeBox3 + {-0.5, 0.0625+1, 0.375, 0.5, 0.1875+1, 0.5}, -- NodeBox4 + {-0.5, -0.1875+1, 0.375, 0.5, -0.0625+1, 0.5}, -- NodeBox5 + {-0.5, -0.4375+1, 0.375, 0.5, -0.3125+1, 0.5}, -- NodeBox6 + } + }, + collision_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, 0.4375, -0.3125, 0.5, 0.5}, -- NodeBox1 + {0.3125, -0.5, 0.4375, 0.4375, 0.5, 0.5}, -- NodeBox2 + {-0.5, 0.3125, 0.375, 0.5, 0.4375, 0.5}, -- NodeBox3 + {-0.5, 0.0625, 0.375, 0.5, 0.1875, 0.5}, -- NodeBox4 + {-0.5, -0.1875, 0.375, 0.5, -0.0625, 0.5}, -- NodeBox5 + {-0.5, -0.4375, 0.375, 0.5, -0.3125, 0.5}, -- NodeBox6 + {-0.4375, -0.5+1, 0.4375, -0.3125, 0.5+1, 0.5}, -- NodeBox1 + {0.3125, -0.5+1, 0.4375, 0.4375, 0.5+1, 0.5}, -- NodeBox2 + {-0.5, 0.3125+1, 0.375, 0.5, 0.4375+1, 0.5}, -- NodeBox3 + {-0.5, 0.0625+1, 0.375, 0.5, 0.1875+1, 0.5}, -- NodeBox4 + {-0.5, -0.1875+1, 0.375, 0.5, -0.0625+1, 0.5}, -- NodeBox5 + {-0.5, -0.4375+1, 0.375, 0.5, -0.3125+1, 0.5}, -- NodeBox6 + } + }, + selection_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, 0.4375, -0.3125, 0.5, 0.5}, -- NodeBox1 + {0.3125, -0.5, 0.4375, 0.4375, 0.5, 0.5}, -- NodeBox2 + {-0.5, 0.3125, 0.375, 0.5, 0.4375, 0.5}, -- NodeBox3 + {-0.5, 0.0625, 0.375, 0.5, 0.1875, 0.5}, -- NodeBox4 + {-0.5, -0.1875, 0.375, 0.5, -0.0625, 0.5}, -- NodeBox5 + {-0.5, -0.4375, 0.375, 0.5, -0.3125, 0.5}, -- NodeBox6 + {-0.4375, -0.5+1, 0.4375, -0.3125, 0.5+1, 0.5}, -- NodeBox1 + {0.3125, -0.5+1, 0.4375, 0.4375, 0.5+1, 0.5}, -- NodeBox2 + {-0.5, 0.3125+1, 0.375, 0.5, 0.4375+1, 0.5}, -- NodeBox3 + {-0.5, 0.0625+1, 0.375, 0.5, 0.1875+1, 0.5}, -- NodeBox4 + {-0.5, -0.1875+1, 0.375, 0.5, -0.0625+1, 0.5}, -- NodeBox5 + {-0.5, -0.4375+1, 0.375, 0.5, -0.3125+1, 0.5}, -- NodeBox6 + } + }, + sounds = default.node_sound_wood_defaults(), + climbable = true, + is_ground_content = false, + groups = {choppy=1, not_in_creative_inventory=1}, + drop = "default:ladder_wood 2" +}) + +minetest.register_node("hyrule_mapgen:tower_dev", { + description = "Tower Builder Node", + tiles = {"hyrule_mapgen_dev.png",}, + drawtype = "glasslike", + walkable = false, + groups = {cracky=1, not_in_creative_inventory=1}, + on_blast = function(pos, intensity) + end, + sunlight_propagates = false, + is_ground_content = false, + paramtype = "light", + on_rightclick = function(pos, node) + minetest.place_schematic({x=pos.x-15,y=pos.y+3,z=pos.z-15}, minetest.get_modpath("hyrule_mapgen").."/schematics/tower_ground.mts", 0, {}, true) + end, +}) + +minetest.register_node("hyrule_mapgen:tower_generator", { + description = "Tower Generator node", + tiles = {"hyrule_mapgen_dev.png^[colorize:blue:100",}, + drawtype = "glasslike", + walkable = false, + pointable = true, + groups = {not_in_creative_inventory=1}, + on_blast = function(pos, intensity) + end, + drops = "", + sunlight_propagates = false, + is_ground_content = false, + paramtype = "light", +}) diff --git a/mods/hyrule_mapgen/schematics/tower_1.mts b/mods/hyrule_mapgen/schematics/tower_1.mts new file mode 100644 index 0000000..7f2d609 Binary files /dev/null and b/mods/hyrule_mapgen/schematics/tower_1.mts differ diff --git a/mods/hyrule_mapgen/schematics/tower_2.mts b/mods/hyrule_mapgen/schematics/tower_2.mts new file mode 100644 index 0000000..55026c3 Binary files /dev/null and b/mods/hyrule_mapgen/schematics/tower_2.mts differ diff --git a/mods/hyrule_mapgen/schematics/tower_3.mts b/mods/hyrule_mapgen/schematics/tower_3.mts new file mode 100644 index 0000000..a5ce197 Binary files /dev/null and b/mods/hyrule_mapgen/schematics/tower_3.mts differ diff --git a/mods/hyrule_mapgen/schematics/tower_4.mts b/mods/hyrule_mapgen/schematics/tower_4.mts new file mode 100644 index 0000000..3e428df Binary files /dev/null and b/mods/hyrule_mapgen/schematics/tower_4.mts differ diff --git a/mods/hyrule_mapgen/schematics/tower_5.mts b/mods/hyrule_mapgen/schematics/tower_5.mts new file mode 100644 index 0000000..026e6b0 Binary files /dev/null and b/mods/hyrule_mapgen/schematics/tower_5.mts differ diff --git a/mods/hyrule_mapgen/schematics/tower_6.mts b/mods/hyrule_mapgen/schematics/tower_6.mts new file mode 100644 index 0000000..2f8e9ec Binary files /dev/null and b/mods/hyrule_mapgen/schematics/tower_6.mts differ diff --git a/mods/hyrule_mapgen/schematics/tower_7.mts b/mods/hyrule_mapgen/schematics/tower_7.mts new file mode 100644 index 0000000..3f6c74f Binary files /dev/null and b/mods/hyrule_mapgen/schematics/tower_7.mts differ diff --git a/mods/hyrule_mapgen/schematics/tower_8.mts b/mods/hyrule_mapgen/schematics/tower_8.mts new file mode 100644 index 0000000..1cf3f1c Binary files /dev/null and b/mods/hyrule_mapgen/schematics/tower_8.mts differ diff --git a/mods/hyrule_mapgen/schematics/tower_9.mts b/mods/hyrule_mapgen/schematics/tower_9.mts new file mode 100644 index 0000000..7f2e4ee Binary files /dev/null and b/mods/hyrule_mapgen/schematics/tower_9.mts differ diff --git a/mods/hyrule_mapgen/schematics/tower_ground.mts b/mods/hyrule_mapgen/schematics/tower_ground.mts new file mode 100644 index 0000000..aee6fa9 Binary files /dev/null and b/mods/hyrule_mapgen/schematics/tower_ground.mts differ diff --git a/mods/hyrule_mapgen/schematics/tower_ground_withdirt.mts b/mods/hyrule_mapgen/schematics/tower_ground_withdirt.mts new file mode 100644 index 0000000..b76013b Binary files /dev/null and b/mods/hyrule_mapgen/schematics/tower_ground_withdirt.mts differ diff --git a/mods/hyrule_mapgen/schematics/tower_template.mts b/mods/hyrule_mapgen/schematics/tower_template.mts new file mode 100644 index 0000000..00d11da Binary files /dev/null and b/mods/hyrule_mapgen/schematics/tower_template.mts differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_barrel.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_barrel.png new file mode 100644 index 0000000..5d6051d Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_barrel.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_barrel_top.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_barrel_top.png new file mode 100644 index 0000000..4f982bd Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_barrel_top.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_bones.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_bones.png new file mode 100644 index 0000000..1ce3336 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_bones.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_bridge.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_bridge.png index 1b6c866..1c4bcea 100644 Binary files a/mods/hyrule_mapgen/textures/hyrule_mapgen_bridge.png and b/mods/hyrule_mapgen/textures/hyrule_mapgen_bridge.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_bridge_side.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_bridge_side.png index 80ff01e..93bfaa5 100644 Binary files a/mods/hyrule_mapgen/textures/hyrule_mapgen_bridge_side.png and b/mods/hyrule_mapgen/textures/hyrule_mapgen_bridge_side.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_candle.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_candle.png new file mode 100644 index 0000000..f318a87 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_candle.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_chain1.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_chain1.png new file mode 100644 index 0000000..382f89c Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_chain1.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_chain2.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_chain2.png new file mode 100644 index 0000000..7ba7b19 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_chain2.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_cracks.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_cracks.png new file mode 100644 index 0000000..ff95526 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_cracks.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_dev.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_dev.png new file mode 100644 index 0000000..7740ab5 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_dev.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_drain.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_drain.png new file mode 100644 index 0000000..f71f5f1 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_drain.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_floorlight.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_floorlight.png new file mode 100644 index 0000000..24eaa85 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_floorlight.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_floorlight2.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_floorlight2.png new file mode 100644 index 0000000..adb8157 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_floorlight2.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_fog.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_fog.png new file mode 100644 index 0000000..ccf2af7 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_fog.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_goddess_statue.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_goddess_statue.png new file mode 100644 index 0000000..c0e487d Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_goddess_statue.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_lightshaft.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_lightshaft.png new file mode 100644 index 0000000..6457404 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_lightshaft.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_painting.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_painting.png new file mode 100644 index 0000000..1ea13fb Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_painting.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_painting2.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_painting2.png new file mode 100644 index 0000000..49b286f Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_painting2.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_skull_back.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_skull_back.png new file mode 100644 index 0000000..f6c3b31 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_skull_back.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_skull_front.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_skull_front.png new file mode 100644 index 0000000..4f6682e Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_skull_front.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_skull_side.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_skull_side.png new file mode 100644 index 0000000..65af474 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_skull_side.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_skull_top.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_skull_top.png new file mode 100644 index 0000000..1458ea6 Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_skull_top.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_spawner.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_spawner.png index 5a7749b..c71eea3 100644 Binary files a/mods/hyrule_mapgen/textures/hyrule_mapgen_spawner.png and b/mods/hyrule_mapgen/textures/hyrule_mapgen_spawner.png differ diff --git a/mods/hyrule_mapgen/textures/hyrule_mapgen_trapdoor.png b/mods/hyrule_mapgen/textures/hyrule_mapgen_trapdoor.png new file mode 100644 index 0000000..52b333b Binary files /dev/null and b/mods/hyrule_mapgen/textures/hyrule_mapgen_trapdoor.png differ diff --git a/mods/hyruletools/init.lua b/mods/hyruletools/init.lua index 3b054c5..5f69748 100644 --- a/mods/hyruletools/init.lua +++ b/mods/hyruletools/init.lua @@ -1663,7 +1663,7 @@ minetest.register_node("hyruletools:fire", { drawtype = "plantlike", sunlight_propagates = true, paramtype = "light", - light_source = 14, + light_source = 5, walkable = false, damage_per_second = 2, tiles = {{ diff --git a/mods/hyruletools/models/hyruletools_bomb.png b/mods/hyruletools/models/hyruletools_bomb.png index 40ee89f..7ac7c10 100644 Binary files a/mods/hyruletools/models/hyruletools_bomb.png and b/mods/hyruletools/models/hyruletools_bomb.png differ diff --git a/mods/loot/init.lua b/mods/loot/init.lua index bb0bd19..9bd18ab 100644 --- a/mods/loot/init.lua +++ b/mods/loot/init.lua @@ -36,7 +36,7 @@ minetest.register_node("loot:chest", { {-0.5, 0.4375, -0.3125, 0.5, 0.5, 0.3125}, -- NodeBox4 } }, - groups = {cracky = 2, oddly_breakable_by_hand = 1}, + groups = {cracky = 3,}, on_construct = function(pos) local meta = minetest.get_meta(pos) local inv = meta:get_inventory() @@ -57,6 +57,22 @@ minetest.register_node("loot:chest", { end, on_rightclick = function(pos, node, clicker, item, _) local name = clicker:get_player_name() + if math.random(1,50) == 6 then + for i=1,3 do + minetest.env:add_entity({x=pos.x+math.random(-10,10)*0.1, y=pos.y+0.1, z=pos.z+math.random(-10,10)*0.1}, "mobs_loz:moldorm_leech") + end + return + elseif math.random(1,50) == 6 then + for i=1,4 do + minetest.env:add_entity({x=pos.x+math.random(-10,10)*0.1, y=pos.y+0.1, z=pos.z+math.random(-10,10)*0.1}, "mobs_loz:leever_poison") + end + return + elseif math.random(1,50) == 6 then + for i=1,5 do + minetest.env:add_entity({x=pos.x+math.random(-10,10)*0.1, y=pos.y+0.1, z=pos.z+math.random(-10,10)*0.1}, "mobs_loz:zol") + end + return + end if clicker:get_wielded_item():get_name() == "loot:key" then item:take_item() local meta = minetest.get_meta(pos) @@ -221,6 +237,52 @@ minetest.register_node("loot:amethyst_cube", { sounds = default.node_sound_glass_defaults() }) +minetest.register_node("loot:vegemite", { + description = "Vegemite", + tiles = { + "loot_vegemite_top.png", + "loot_vegemite_top.png", + "loot_vegemite.png", + "loot_vegemite.png^[transformFX", + "loot_vegemite.png^[transformFX", + "loot_vegemite.png", + }, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-2/16, -0.5, -3/16, 2/16, 0, 3/16}, + {-3/16, -0.5, -2/16, 3/16, 0, 2/16}, + } + }, + groups = {cracky=1, not_in_creative_inventory=1}, + sounds = default.node_sound_glass_defaults() +}) + +minetest.register_node("loot:pc", { + description = "PC", + tiles = { + "loot_pc_top.png", + "loot_pc_top.png", + "loot_pc_side.png", + "loot_pc_side.png", + "loot_pc_front.png", + "loot_pc_top.png" + }, + drawtype = "nodebox", + paramtype = "light", + node_box = { + type = "fixed", + fixed = { + {-0.4375, -0.5, -0.4375, 0.4375, -0.25, 0.5}, -- NodeBox1 + {-0.25, -0.25, -0.25, 0.3125, -0.1875, 0.25}, -- NodeBox2 + {-0.375, -0.1875, -0.375, 0.375, 0.5, 0.4375}, -- NodeBox4 + } + }, + groups = {cracky=1, not_in_creative_inventory=1} +}) + minetest.register_node("loot:carpet", { description = "Carpet Floor", tiles = { diff --git a/mods/loot/textures/loot_pc_front.png b/mods/loot/textures/loot_pc_front.png new file mode 100644 index 0000000..4c47c64 Binary files /dev/null and b/mods/loot/textures/loot_pc_front.png differ diff --git a/mods/loot/textures/loot_pc_side.png b/mods/loot/textures/loot_pc_side.png new file mode 100644 index 0000000..464d999 Binary files /dev/null and b/mods/loot/textures/loot_pc_side.png differ diff --git a/mods/loot/textures/loot_pc_top.png b/mods/loot/textures/loot_pc_top.png new file mode 100644 index 0000000..6905469 Binary files /dev/null and b/mods/loot/textures/loot_pc_top.png differ diff --git a/mods/loot/textures/loot_vegemite_top.png b/mods/loot/textures/loot_vegemite_top.png new file mode 100644 index 0000000..b6dda39 Binary files /dev/null and b/mods/loot/textures/loot_vegemite_top.png differ diff --git a/mods/mobs_fairy/init.lua b/mods/mobs_fairy/init.lua index ee2b197..a393b61 100644 --- a/mods/mobs_fairy/init.lua +++ b/mods/mobs_fairy/init.lua @@ -12,6 +12,7 @@ if mobs.mod and mobs.mod == "redo" then armor = 130, collisionbox = {-0.1,-0.1,-0.1, 0.1,0.1,0.1}, visual = "mesh", + glow = 12, mesh = "fairy2.b3d", textures = { {"fairy.png"}, diff --git a/mods/mobs_loz/armos.lua b/mods/mobs_loz/armos.lua index c64a913..96168f6 100644 --- a/mods/mobs_loz/armos.lua +++ b/mods/mobs_loz/armos.lua @@ -1,6 +1,28 @@ +minetest.register_node("mobs_loz:armos_statue", { + description = "Armos Statue", + tiles = { + "mobs_armos_frozen.png", + }, + visual_scale = 0.5, + drawtype = "mesh", + mesh = "armos.b3d", + paramtype = "light", + paramtype2 = "facedir", + selection_box = { + type = "fixed", + fixed = {{-0.35, -0.5, -0.35, 0.35, 1.3, 0.35},} + }, + collision_box = { + type = "fixed", + fixed = {{-0.35, -0.5, -0.35, 0.35, 1.3, 0.35},} + }, + groups = {cracky=3,}, + sounds = default.node_sound_stone_defaults(), +}) + mobs:register_mob("mobs_loz:armos", { - type = "animal", + type = "monster", passive = false, attack_type = "dogfight", reach = 2, @@ -8,7 +30,7 @@ mobs:register_mob("mobs_loz:armos", { hp_min = 10, hp_max = 27, armor = 100, - collisionbox = {-0.5, 0, -0.5, 0.5, 1.5, 0.5}, + collisionbox = {-0.35, -0.5, -0.35, 0.35, 1.3, 0.35}, visual = "mesh", mesh = "armos.b3d", textures = { diff --git a/mods/mobs_loz/darknut.lua b/mods/mobs_loz/darknut.lua index 6e99c56..aa72640 100644 --- a/mods/mobs_loz/darknut.lua +++ b/mods/mobs_loz/darknut.lua @@ -52,4 +52,60 @@ mobs:register_mob("mobs_loz:darknut", { }, }) -mobs:register_egg("mobs_loz:darknut", "Darknut", "default_stone.png", 1) \ No newline at end of file +mobs:register_egg("mobs_loz:darknut", "Darknut", "default_stone.png", 1) + +mobs:register_mob("mobs_loz:darkernut", { + type = "monster", + passive = false, + attack_type = "dogfight", + reach = 2.5, + damage = 3, + hp_min = 60, + hp_max = 87, + armor = 100, + collisionbox = {-0.7, -0, -0.7, 0.7, 2, 0.7}, + visual_size = {x=1.3, y=1.3}, + visual = "mesh", + mesh = "darknut.b3d", + textures = { + {"mobs_darkernut.png"}, + }, + makes_footstep_sound = true, + view_range = 10, + walk_velocity = 1.5, + run_velocity = 2, + drops = { + {name = "loot:key", + chance = 5, min = 1, max = 1}, + {name = "default:sword_diamond", + chance = 20, min = 1, max = 1}, + }, + on_die = function(self) + local pos = self.object:getpos() + if math.random(1,7) == 2 then + minetest.env:add_entity(pos, "hyruletools:heart_entity") + minetest.env:add_entity(pos, "hyruletools:heart_entity") + end + minetest.env:add_entity(pos, "experience:orb") + minetest.env:add_entity(pos, "experience:orb") + minetest.env:add_entity(pos, "experience:orb") + end, + water_damage = 0, + lava_damage = 5, + light_damage = 0, + fear_height = 6, + animation = { + speed_normal = 12, + speed_run = 15, + stand_start = 15, + stand_end = 25, + walk_start = 30, + walk_end = 50, + run_start = 30, + run_end = 50, + punch_start = 1, + punch_end = 15, + }, +}) + +mobs:register_egg("mobs_loz:darkernut", "Darkernut", "default_obsidian.png", 1) \ No newline at end of file diff --git a/mods/mobs_loz/deku_baba.lua b/mods/mobs_loz/deku_baba.lua index 0727fcc..5fbd184 100644 --- a/mods/mobs_loz/deku_baba.lua +++ b/mods/mobs_loz/deku_baba.lua @@ -26,6 +26,61 @@ mobs:register_mob("mobs_loz:deku_baba", { walk_velocity = 0.01, run_velocity = 0.05, jump = false, + drops = { + {name = "loot:key", + chance = 1, min = 1, max = 1}, + }, + on_die = function(self) + local pos = self.object:getpos() + if math.random(1,2) == 2 then + minetest.env:add_entity(pos, "hyruletools:heart_entity") + end + minetest.env:add_entity(pos, "experience:orb") + end, + water_damage = -1, + lava_damage = 5, + light_damage = 0, + fear_height = 3, + animation = { + speed_normal = 12, + speed_run = 30, + stand_start = 1, + stand_end = 19, + walk_start = 1, + walk_end = 19, + run_start = 35, + run_end = 55, + punch_start = 20, + punch_end = 35, + }, +}) + +mobs:register_egg("mobs_loz:deku_baba", "Deku Baba", "default_dry_grass.png", 1) + +mobs:register_mob("mobs_loz:deku_baba_dry", { + type = "monster", + passive = false, + attack_type = "dogfight", + reach = 4, + damage = 4, + hp_min = 20, + hp_max = 37, + armor = 100, + collisionbox = {-0.3, 0, -0.2, 0.2, 1.2, 0.2}, + visual = "mesh", + mesh = "dekubaba.b3d", + textures = { + {"mobs_dekubaba_dry.png"}, + }, + blood_texture = "default_dry_grass.png", + makes_footstep_sound = false, + sounds = { + random = "mobs_dirtmonster", + }, + view_range = 5, + walk_velocity = 0.01, + run_velocity = 0.05, + jump = false, drops = { {name = "mobs_loz:nut", chance = 1, min = 1, max = 3}, @@ -55,4 +110,4 @@ mobs:register_mob("mobs_loz:deku_baba", { }, }) -mobs:register_egg("mobs_loz:deku_baba", "Deku_Baba", "default_dry_grass.png", 1) \ No newline at end of file +mobs:register_egg("mobs_loz:deku_baba_dry", "Dry Deku Baba", "wool_orange.png", 1) \ No newline at end of file diff --git a/mods/mobs_loz/gibido.lua b/mods/mobs_loz/gibido.lua new file mode 100644 index 0000000..92217fa --- /dev/null +++ b/mods/mobs_loz/gibido.lua @@ -0,0 +1,46 @@ + +mobs:register_mob("mobs_loz:gibido", { + type = "monster", + passive = false, + reach = 2, + damage = 3, + attack_type = "dogfight", + hp_min = 20, + hp_max = 30, + armor = 100, + collisionbox = {-0.4, -1, -0.4, 0.4, 0.7, 0.4}, + visual = "mesh", + mesh = "character.b3d", + drawtype = "front", + textures = { + {"mobs_gibido.png"}, + }, + on_die = function(self) + local pos = self.object:getpos() + if math.random(1,3) == 2 then + minetest.env:add_entity(pos, "hyruletools:heart_entity") + end + minetest.env:add_entity(pos, "experience:orb") + end, + makes_footstep_sound = true, + walk_velocity = 1, + run_velocity = 1.4, + water_damage = 1, + lava_damage = 5, + light_damage = 1, + view_range = 5, + animation = { + speed_normal = 15, + speed_run = 15, + stand_start = 0, + stand_end = 79, + walk_start = 168, + walk_end = 187, + run_start = 168, + run_end = 187, + punch_start = 200, + punch_end = 219, + }, +}) + +mobs:register_egg("mobs_loz:gibido", "Gibido", "wool_grey.png", 1) \ No newline at end of file diff --git a/mods/mobs_loz/init.lua b/mods/mobs_loz/init.lua index f99e564..3f1e8b9 100644 --- a/mods/mobs_loz/init.lua +++ b/mods/mobs_loz/init.lua @@ -30,6 +30,7 @@ dofile(path.."/armos.lua") dofile(path.."/wolfos.lua") dofile(path.."/darknut.lua") dofile(path.."/tektite.lua") +dofile(path.."/gibido.lua") dofile(path.."/biri.lua") dofile(path.."/keese.lua") dofile(path.."/skulltula.lua") diff --git a/mods/mobs_loz/leever.lua b/mods/mobs_loz/leever.lua index 7fe94b0..acbb606 100644 --- a/mods/mobs_loz/leever.lua +++ b/mods/mobs_loz/leever.lua @@ -17,8 +17,8 @@ mobs:register_mob("mobs_loz:leever", { }, makes_footstep_sound = true, view_range = 7, - walk_velocity = 1, - run_velocity = 1.5, + walk_velocity = 1.5, + run_velocity = 2.2, jump_height = 0, drops = { {name = "hyruletools:green_rupee", @@ -79,4 +79,86 @@ mobs:register_mob("mobs_loz:leever", { }, }) -mobs:register_egg("mobs_loz:leever", "Leever", "default_sand.png", 1) \ No newline at end of file +mobs:register_egg("mobs_loz:leever", "Leever", "default_sand.png", 1) + +mobs:register_mob("mobs_loz:leever_poison", { + type = "monster", + passive = false, + attack_type = "dogfight", + reach = 1.5, + damage = 3, + hp_min = 15, + hp_max = 30, + armor = 110, + collisionbox = {-0.3, -0, -0.3, 0.3, 0.4, 0.3}, + visual_size = {x=1, y=1}, + visual = "mesh", + mesh = "leever.b3d", + textures = { + {"mobs_leever_poison.png"}, + }, + makes_footstep_sound = true, + view_range = 7, + walk_velocity = 2, + run_velocity = 2.5, + jump_height = 3, + drops = { + {name = "hyruletools:green_rupee", + chance = 5, min = 1, max = 3}, + }, + do_custom = function(self) + if not self.active then + minetest.after(15, function() + if self.object ~= nil and self.object:getpos() ~= nil then + local pos = self.object:getpos() + minetest.add_particlespawner({ + amount = 10, + time = 0.5, + minpos = {x=pos.x-0.2, y=pos.y-0.3, z=pos.z-0.2}, + maxpos = {x=pos.x+0.2, y=pos.y+0.5, z=pos.z+0.2}, + minvel = {x=-0.5, y=2, z=-0.5}, + maxvel = {x=0.5, y=4, z=0.5}, + minacc = {x=0, y=-7, z=0}, + maxacc = {x=0, y=-7, z=0}, + minexptime = 2, + maxexptime = 3, + minsize = 1, + maxsize = 2, + collisiondetection = true, + texture = "quartz_wall.png" + }) + self.object:set_properties({physical = false}) + minetest.after(1, function() + self.object:remove() + end) + end + end) + self.active = true + end + end, + on_die = function(self) + local pos = self.object:getpos() + if math.random(1,10) == 2 then + minetest.env:add_entity(pos, "hyruletools:heart_entity") + end + minetest.env:add_entity(pos, "experience:orb") + end, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + fear_height = 3, + animation = { + speed_normal = 12, + speed_run = 15, + stand_start = 20, + stand_end = 40, + walk_start = 3, + walk_end = 16, + run_start = 3, + run_end = 17, + punch_start = 3, + punch_end = 16, + }, +}) + +mobs:register_egg("mobs_loz:leever_poison", "Poisonous Leever", "wool_magenta.png", 1) \ No newline at end of file diff --git a/mods/mobs_loz/models/armos.b3d b/mods/mobs_loz/models/armos.b3d index 026e3a5..d1e389c 100644 Binary files a/mods/mobs_loz/models/armos.b3d and b/mods/mobs_loz/models/armos.b3d differ diff --git a/mods/mobs_loz/moldorm.lua b/mods/mobs_loz/moldorm.lua index 689efe8..952d9b0 100644 --- a/mods/mobs_loz/moldorm.lua +++ b/mods/mobs_loz/moldorm.lua @@ -119,4 +119,58 @@ mobs:register_mob("mobs_loz:great_moldorm", { }, }) -mobs:register_egg("mobs_loz:great_moldorm", "Great Moldorm", "mobs_zol.png^[colorize:yellow:20", 1) \ No newline at end of file +mobs:register_egg("mobs_loz:great_moldorm", "Great Moldorm", "mobs_zol.png^[colorize:yellow:20", 1) + +mobs:register_mob("mobs_loz:moldorm_leech", { + type = "monster", + passive = false, + attack_type = "dogfight", + reach = 1, + damage = 1, + hp_min = 12, + hp_max = 25, + armor = 120, + collisionbox = {-0.2, -0.1, -0.2, 0.2, 0.4, 0.4}, + visual = "mesh", + mesh = "bdodongo.b3d", + textures = { + {"mobs_moldorm_leech.png"}, + }, + makes_footstep_sound = false, + sounds = { + random = "mobs_stonemonster", + }, + walk_velocity = 3, + run_velocity = 4, + jump = 1, + floats = 1, + view_range = 5, + drops = { + {name = "default:gravel", + chance = 3, min = 1, max = 2}, + }, + on_die = function(self) + local pos = self.object:getpos() + if math.random(1,4) == 2 then + minetest.env:add_entity(pos, "hyruletools:heart_entity") + end + minetest.env:add_entity(pos, "experience:orb") + end, + water_damage = 0, + lava_damage = 2, + light_damage = 1, + animation = { + speed_normal = 15, + speed_run = 20, + stand_start = 3, + stand_end = 3, + walk_start = 3, + walk_end = 21, + run_start = 3, + run_end = 21, + punch_start = 3, + punch_end = 21, + }, +}) + +mobs:register_egg("mobs_loz:moldorm_leech", "Moldorm Leech", "default_stone.png", 1) \ No newline at end of file diff --git a/mods/mobs_loz/textures/mobs_darkernut.png b/mods/mobs_loz/textures/mobs_darkernut.png new file mode 100644 index 0000000..b8aee2e Binary files /dev/null and b/mods/mobs_loz/textures/mobs_darkernut.png differ diff --git a/mods/mobs_loz/textures/mobs_dekubaba_dry.png b/mods/mobs_loz/textures/mobs_dekubaba_dry.png new file mode 100644 index 0000000..792f954 Binary files /dev/null and b/mods/mobs_loz/textures/mobs_dekubaba_dry.png differ diff --git a/mods/mobs_loz/textures/mobs_gibido.png b/mods/mobs_loz/textures/mobs_gibido.png index 6f9abaa..daccbdd 100644 Binary files a/mods/mobs_loz/textures/mobs_gibido.png and b/mods/mobs_loz/textures/mobs_gibido.png differ diff --git a/mods/mobs_loz/textures/mobs_leever_poison.png b/mods/mobs_loz/textures/mobs_leever_poison.png new file mode 100644 index 0000000..c35a871 Binary files /dev/null and b/mods/mobs_loz/textures/mobs_leever_poison.png differ diff --git a/mods/mobs_loz/textures/mobs_moldorm_leech.png b/mods/mobs_loz/textures/mobs_moldorm_leech.png new file mode 100644 index 0000000..8ad8823 Binary files /dev/null and b/mods/mobs_loz/textures/mobs_moldorm_leech.png differ diff --git a/mods/mobs_loz/textures/mobs_wolfos_tower.png b/mods/mobs_loz/textures/mobs_wolfos_tower.png new file mode 100644 index 0000000..6963e94 Binary files /dev/null and b/mods/mobs_loz/textures/mobs_wolfos_tower.png differ diff --git a/mods/mobs_loz/volvagia.lua b/mods/mobs_loz/volvagia.lua index fd8cd50..d7a7871 100644 --- a/mods/mobs_loz/volvagia.lua +++ b/mods/mobs_loz/volvagia.lua @@ -34,7 +34,7 @@ mobs:register_mob("mobs_loz:volvagia", { run_velocity = 5, jump = false, drops = { - {name = "hyruletools:firestone", chance = 1, min = 3, max = 5}, + {name = "hyruletools:firestone", chance = 1, min = 1, max = 1}, }, on_die = function(self) local pos = self.object:getpos() @@ -119,7 +119,7 @@ mobs:register_mob("mobs_loz:volvagia_ice", { run_velocity = 5, jump = false, drops = { - {name = "hyruletools:firestone", chance = 1, min = 3, max = 5}, + {name = "loot:key", chance = 1, min = 1, max = 1}, }, on_die = function(self) local pos = self.object:getpos() diff --git a/mods/mobs_loz/wolfos.lua b/mods/mobs_loz/wolfos.lua index 327019c..dfd8e27 100644 --- a/mods/mobs_loz/wolfos.lua +++ b/mods/mobs_loz/wolfos.lua @@ -158,4 +158,59 @@ mobs:register_mob("mobs_loz:wolfos2", { }, }) -mobs:register_egg("mobs_loz:wolfos2", "White Wolfos", "wool_cyan.png", 1) \ No newline at end of file +mobs:register_egg("mobs_loz:wolfos2", "White Wolfos", "wool_cyan.png", 1) + +mobs:register_mob("mobs_loz:wolfos_tower", { + type = "monster", + passive = false, + attack_type = "dogfight", + reach = 2.5, + damage = 4, + hp_min = 60, + hp_max = 87, + armor = 90, + collisionbox = {-0.5, -0, -0.5, 0.5, 1, 0.5}, + --visual_size = {x=1.5, y=1.5}, + visual = "mesh", + mesh = "wolfos.b3d", + textures = { + {"mobs_wolfos_tower.png"}, + }, + makes_footstep_sound = true, + view_range = 10, + walk_velocity = 1.6, + run_velocity = 3.2, + drops = { + {name = "loot:key", + chance = 5, min = 1, max = 1}, + }, + on_die = function(self) + local pos = self.object:getpos() + if math.random(1,5) == 2 then + minetest.env:add_entity(pos, "hyruletools:heart_entity") + minetest.env:add_entity(pos, "hyruletools:heart_entity") + end + if math.random(1,50) == 1 then + minetest.set_node(self.object:getpos(), {name="mobs_loz:wolfos_tear"}) + end + minetest.env:add_entity(pos, "experience:orb") + end, + water_damage = 1, + lava_damage = 5, + light_damage = 0, + fear_height = 6, + animation = { + speed_normal = 14, + speed_run = 18, + stand_start = 1, + stand_end = 20, + walk_start = 45, + walk_end = 65, + run_start = 45, + run_end = 65, + punch_start = 20, + punch_end = 40, + }, +}) + +mobs:register_egg("mobs_loz:wolfos_tower", "Tower Wolfos", "default_dirt.png", 1) \ No newline at end of file diff --git a/mods/quartz/init.lua b/mods/quartz/init.lua index 27b954e..0c630f2 100644 --- a/mods/quartz/init.lua +++ b/mods/quartz/init.lua @@ -77,6 +77,7 @@ minetest.register_node("quartz:wall_immortal", { description = "Unbreakeable Quartz Wall", tiles = {"quartz_wall.png",}, groups = {snappy=0,bendy=0,cracky=0, not_in_creative_inventory=1}, + is_ground_content = false, sounds = default.node_sound_stone_defaults(), on_blast = function(pos, intensity) end, @@ -88,6 +89,7 @@ minetest.register_node("quartz:block_immortal", { tiles = {"quartz_block_top.png", "quartz_block_bottom.png", "quartz_block_side.png"}, groups = {snappy=0,bendy=0,cracky=0, not_in_creative_inventory=1}, sounds = default.node_sound_stone_defaults(), + is_ground_content = false, on_blast = function(pos, intensity) end, }) @@ -98,6 +100,7 @@ minetest.register_node("quartz:chiseled_immortal", { tiles = {"quartz_chiseled_top.png", "quartz_chiseled_top.png", "quartz_chiseled_side.png"}, groups = {snappy=0,bendy=0,cracky=0, not_in_creative_inventory=1}, sounds = default.node_sound_stone_defaults(), + is_ground_content = false, on_blast = function(pos, intensity) end, }) @@ -108,6 +111,7 @@ minetest.register_node("quartz:pillar_immortal", { tiles = {"quartz_pillar_top.png", "quartz_pillar_top.png", "quartz_pillar_side.png"}, groups = {snappy=0,bendy=0,cracky=0, not_in_creative_inventory=1}, sounds = default.node_sound_stone_defaults(), + is_ground_content = false, on_blast = function(pos, intensity) end, on_place = minetest.rotate_node, diff --git a/mods/tnt/init.lua b/mods/tnt/init.lua index 5212891..b450447 100644 --- a/mods/tnt/init.lua +++ b/mods/tnt/init.lua @@ -528,8 +528,47 @@ minetest.register_entity("tnt:tnt_object", { minetest.after(3, function() if self.object ~= nil then local pos = self.object:getpos() + local node = minetest.find_node_near(pos, 1, {"default:water_source", "default:water_flowing", "default:river_water_source", "default:river_water_flowing"}) + if node and not self.waterproof then + minetest.add_particlespawner({ + amount = 5, + time = 0.2, + minpos = {x=pos.x-0.4, y=pos.y+0.1, z=pos.z-0.4}, + maxpos = {x=pos.x+0.4, y=pos.y+0.5, z=pos.z+0.4}, + minvel = {x=-0.5, y=0.5, z=0.5}, + maxvel = {x=1, y=1, z=1}, + minacc = {x=-0.2, y=1, z=-0.2}, + maxacc = {x=0.2, y=1, z=0.2}, + minexptime = 0.5, + maxexptime = 1, + minsize = 1, + maxsize = 2, + collisiondetection = false, + texture = "bubble.png" + }) + self.object:remove() + elseif not node or self.waterproof then tnt.boom(pos, {damage_radius=3, radius=3}) self.object:remove() + if self.waterproof then + minetest.add_particlespawner({ + amount = 5, + time = 0.2, + minpos = {x=pos.x-0.4, y=pos.y+0.1, z=pos.z-0.4}, + maxpos = {x=pos.x+0.4, y=pos.y+0.5, z=pos.z+0.4}, + minvel = {x=-0.5, y=0.5, z=0.5}, + maxvel = {x=1, y=1, z=1}, + minacc = {x=-0.2, y=1, z=-0.2}, + maxacc = {x=0.2, y=1, z=0.2}, + minexptime = 0.5, + maxexptime = 1, + minsize = 1, + maxsize = 2, + collisiondetection = false, + texture = "bubble.png" + }) + end + end end end) end, @@ -541,7 +580,7 @@ minetest.register_entity("tnt:tnt_object", { local pos = self.object:getpos() if pos ~= nil then minetest.add_particlespawner({ - amount = 5, + amount = 2, time = 0.2, minpos = {x=pos.x, y=pos.y+0.4, z=pos.z}, maxpos = {x=pos.x, y=pos.y+0.5, z=pos.z}, @@ -628,8 +667,30 @@ function tnt.register_tnt(def) drop = "", sounds = default.node_sound_wood_defaults(), groups = {falling_node = 1}, - on_timer = function(pos, elapsed) + on_timer = function(pos, elapsed) + local node = minetest.find_node_near(pos, 1, {"default:water_source", "default:water_flowing", "default:river_water_source", "default:river_water_flowing"}) + local name = minetest.get_node(pos).name + if node and minetest.get_item_group(name, "waterproof") < 1 then + minetest.add_particlespawner({ + amount = 5, + time = 0.2, + minpos = {x=pos.x-0.4, y=pos.y+0.1, z=pos.z-0.4}, + maxpos = {x=pos.x+0.4, y=pos.y+0.5, z=pos.z+0.4}, + minvel = {x=-0.5, y=0.5, z=0.5}, + maxvel = {x=1, y=1, z=1}, + minacc = {x=-0.2, y=1, z=-0.2}, + maxacc = {x=0.2, y=1, z=0.2}, + minexptime = 0.5, + maxexptime = 1, + minsize = 1, + maxsize = 2, + collisiondetection = false, + texture = "bubble.png" + }) + minetest.set_node(pos, {name="air"}) + elseif not node or minetest.get_item_group(name, "waterproof") > 0 then tnt.boom(pos, def) + end end, -- unaffected by explosions on_blast = function() end, @@ -647,7 +708,7 @@ minetest.register_abm({ chance = 1, action = function(pos, node) minetest.add_particlespawner({ - amount = 25, + amount = 10, time = 1, minpos = {x=pos.x, y=pos.y+0.4, z=pos.z}, maxpos = {x=pos.x, y=pos.y+0.5, z=pos.z},