123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144 |
- --Code written by foot_on_teh_hill, with some slight changes.
- --https://github.com/foot-on-teh-hill/cavetools/blob/master/rope.lua
- local creative = minetest.setting_getbool("creative_mode")
- local function place_rope(pos, itemstack)
- if itemstack == nil and itemstack:get_count() <= 1 then
- return
- else
- local max_nodes = itemstack:get_count()
- if creative then
- max_nodes = 200
- end
- local set_nodes = 0
- for i = 2, max_nodes do
- pos.y = pos.y - 1
- local node_below = minetest.get_node(pos)
- if node_below ~= nil then
- if node_below.name == "air" then
- minetest.set_node(pos, {name = "lottblocks:elven_rope"})
- set_nodes = set_nodes + 1
- else
- break
- end
- end
- end
- if not creative then
- itemstack:set_count(max_nodes - set_nodes)
- end
- end
- end
- local function dig_rope(pos, digger)
- if digger == nil and not digger:is_player() then
- return
- end
- local dug_nodes = 0
- local max_nodes = 200
- local y = pos.y
- for i = 1, max_nodes do
- pos.y = y + i
- local node = minetest.get_node(pos)
- if node ~= nil then
- if node.name == "lottblocks:elven_rope" then
- if not minetest.is_protected(pos, digger:get_player_name()) then
- minetest.remove_node(pos)
- dug_nodes = dug_nodes + 1
- else
- break
- end
- else
- break
- end
- end
- end
- for i = -1, -max_nodes, -1 do
- pos.y = y + i
- local node = minetest.get_node(pos)
- if node ~= nil then
- if node.name == "lottblocks:elven_rope" then
- if not minetest.is_protected(pos, digger:get_player_name()) then
- minetest.remove_node(pos)
- dug_nodes = dug_nodes + 1
- else
- break
- end
- else
- break
- end
- end
- end
- local inventory = digger:get_inventory()
- if inventory == nil then
- return
- end
- if not creative then
- inventory:add_item("main", "lottblocks:elven_rope " .. dug_nodes)
- end
- end
- minetest.register_node("lottblocks:elven_rope", {
- tiles = {"lottblocks_elven_rope.png"}, --Made by foot_on_teh_hill
- --https://github.com/foot-on-teh-hill/cavetools/blob/master/textures/cavetools_rope.png
- inventory_image = "lottblocks_elven_rope.png",
- wield_image = "lottblocks_elven_rope.png",
- description = "Elven Rope",
- drawtype = "plantlike",
- paramtype = "light",
- light_source = 1,
- climbable = true,
- walkable = false,
- stack_max = 200,
- after_place_node = function(pos, placer, itemstack, pointed_thing)
- place_rope(pos, itemstack)
- return false
- end,
- after_dig_node = function(pos, oldnode, oldmetadata, digger)
- dig_rope(pos, digger)
- end,
- groups = {oddly_breakable_by_hand = 3}
- })
- minetest.register_craft({
- output = "lottblocks:elven_rope 8",
- recipe = {
- {"group:wool"},
- {"lottplants:mallornwood"},
- {"group:wool"}
- }
- })
- minetest.register_node("lottblocks:thrundir", {
- description = "Thrundir",
- tiles = {"lottblocks_thrundir.png"},
- is_ground_content = false,
- sounds = default.node_sound_stone_defaults(),
- groups = {cracky=1,level=2, no_darkball=1, puts_out_fire=1},
- })
- doors:register_door("lottblocks:thrundir_door", {
- description = "Thrundir Door",
- inventory_image = "lottblocks_thrundir_door.png",
- groups = {snappy=1,bendy=2,cracky=1,level=2,door=1,no_darkball=1,puts_out_fire=1},
- tiles_bottom = {"lottblocks_thrundir_door_b.png", "lottblocks_door_black.png"},
- tiles_top = {"lottblocks_thrundir_door_a.png", "lottblocks_door_black.png"},
- only_placer_can_open = true,
- races = {GAMEdwarf = true}
- })
- minetest.register_craft({
- type = "shapeless",
- output = "lottblocks:thrundir",
- recipe = {"default:steel_ingot", "lottother:dwarf_ring", "default:stone"},
- replacements = {{ "lottother:dwarf_ring", "lottother:dwarf_ring"}},
- })
- minetest.register_craft({
- output = "lottblocks:thrundir_door",
- recipe = {
- {"lottblocks:thrundir", "lottblocks:thrundir"},
- {"lottblocks:thrundir", "lottblocks:thrundir"},
- {"lottblocks:thrundir", "lottblocks:thrundir"},
- }
- })
|