farlands/mods/tools/init.lua

209 lines
6.3 KiB
Lua

minetest.register_globalstep(function()
for _, player in ipairs(minetest.get_connected_players()) do
if player:get_player_name() ~= "singleplayer" then return end
local item = player:get_wielded_item():get_name()
if item == "default:torch" or item == "decoblocks:lantern" then
local pos = player:getpos()
pos.y = pos.y+1.2
if minetest.get_node(pos).name == "air" then
minetest.set_node(pos, {name="tools:light"})
end
for i=1,2 do
local remove_node = minetest.find_node_near(pos, 1, {"tools:light"}, false)
if remove_node then
minetest.remove_node(remove_node)
end
end
end
end
end)
minetest.register_node("tools:light", {
drawtype = "airlike",
groups = {not_in_creative_inventory=1},
walkable = false,
pointable = false,
light_source = 10,
})
minetest.register_abm({
nodenames = {"tools:light"},
interval = 1,
chance = 1,
action = function(pos, node)
minetest.remove_node(pos)
end,
})
minetest.register_craftitem("tools:watering_can", {
description = "Watering Can",
inventory_image = "tools_watering_can.png",
liquids_pointable = true,
range = 4,
on_use = function(item, placer, pointed_thing)
if pointed_thing.under == nil then return end
local dir = placer:get_look_dir()
local pos1 = placer:getpos()
local pos = pointed_thing.under
for i=1,10 do
minetest.add_particle({
pos = {x=pos1.x+math.random(-5,5)/10, y=pos1.y+0.5, z=pos1.z+math.random(-5,5)/10},
velocity = {x=pos.x-pos1.x, y=1, z=pos.z-pos1.z},
acceleration = {x=0, y=-4, z=0},
expirationtime = 1,
size = 8,
collisiondetection = false,
collisionremoval = true,
vertical = true,
texture = "tools_water_spray.png",
})
end
local node = minetest.get_node(pos)
if node.name == "mapgen:dry_dirt" then
minetest.set_node(pos, {name="default:dirt"})
end
pos.y = pos.y+1
local mg_name = minetest.get_mapgen_setting("mg_name")
local node = minetest.get_node(pos)
if node.name == "default:sapling" then
minetest.log("action", "A sapling grows into a tree at "..
minetest.pos_to_string(pos))
if mg_name == "v6" then
default.grow_tree(pos, random(1, 4) == 1)
else
default.grow_new_apple_tree(pos)
end
elseif node.name == "default:junglesapling" then
minetest.log("action", "A jungle sapling grows into a tree at "..
minetest.pos_to_string(pos))
if mg_name == "v6" then
default.grow_jungle_tree(pos)
else
default.grow_new_jungle_tree(pos)
end
elseif node.name == "default:pine_sapling" then
minetest.log("action", "A pine sapling grows into a tree at "..
minetest.pos_to_string(pos))
local snow = minetest.find_node_near(pos, 1, {"group:snowy"})
if mg_name == "v6" then
default.grow_pine_tree(pos, snow)
elseif snow then
default.grow_new_snowy_pine_tree(pos)
else
default.grow_new_pine_tree(pos)
end
elseif node.name == "default:acacia_sapling" then
minetest.log("action", "An acacia sapling grows into a tree at "..
minetest.pos_to_string(pos))
default.grow_new_acacia_tree(pos)
elseif node.name == "default:aspen_sapling" then
minetest.log("action", "An aspen sapling grows into a tree at "..
minetest.pos_to_string(pos))
default.grow_new_aspen_tree(pos)
elseif node.name == "default:bush_sapling" then
minetest.log("action", "A bush sapling grows into a bush at "..
minetest.pos_to_string(pos))
default.grow_bush(pos)
elseif node.name == "default:acacia_bush_sapling" then
minetest.log("action", "An acacia bush sapling grows into a bush at "..
minetest.pos_to_string(pos))
default.grow_acacia_bush(pos)
elseif node.name == "default:palmtree_sapling" then
minetest.log("action", "A palm tree sapling grows into a tree at "..
minetest.pos_to_string(pos))
default.grow_new_palm_tree(pos)
elseif node.name == "default:baobab_sapling" then
minetest.log("action", "A baobab tree sapling grows into a tree at "..
minetest.pos_to_string(pos))
default.grow_new_baobab_tree(pos)
elseif node.name == "default:ipe_sapling" then
minetest.log("action", "A yellow ipe tree sapling grows into a tree at "..
minetest.pos_to_string(pos))
default.grow_new_ipe_tree(pos)
elseif node.name == "default:big_pine_sapling" then
minetest.log("action", "A big pine tree sapling grows into a tree at "..
minetest.pos_to_string(pos))
default.grow_new_big_pine_tree(pos)
elseif node.name == "default:willow_sapling" then
minetest.log("action", "A willow tree sapling grows into a tree at "..
minetest.pos_to_string(pos))
default.grow_new_willow_tree(pos)
elseif node.name == "default:bamboo_sapling" then
minetest.log("action", "A bamboo sapling grows into a tree at "..
minetest.pos_to_string(pos))
default.grow_new_bamboo_tree(pos)
end
end,
})
minetest.register_craftitem("tools:superpick", {
description = "Super Pickaxe",
inventory_image = "default_tool_diamondpick.png^[colorize:red:100",
liquids_pointable = true,
on_use = function(item, placer, pointed_thing)
if pointed_thing.under == nil then
return end
if minetest.get_node(pointed_thing.under) ~= nil then
minetest.remove_node(pointed_thing.under)
end
end,
})
minetest.register_tool("tools:bigstone_sword", {
description = "Big Stone Sword",
inventory_image = "tools_bigstone_sword.png",
wield_scale = {x=2, y=2, z=2},
tool_capabilities = {
full_punch_interval = 1.2,
max_drop_level=0,
groupcaps={
snappy={times={[2]=1.4, [3]=0.40}, uses=25, maxlevel=1},
},
damage_groups = {fleshy=5, choppy=4},
},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_tool("tools:big_iron_battleaxe", {
description = "Big Iron Battleaxe",
inventory_image = "tools_big_iron_battleaxe.png",
wield_scale = {x=2, y=2, z=2},
tool_capabilities = {
full_punch_interval = 1.2,
max_drop_level=0,
groupcaps={
snappy={times={[2]=1.4, [3]=0.40}, uses=25, maxlevel=1},
},
damage_groups = {fleshy=5, choppy=4},
},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_tool("tools:sword_crystal", {
description = "Crystal Sword",
inventory_image = "tools_sword_crystal.png",
wield_scale = {x=2, y=2, z=2},
tool_capabilities = {
full_punch_interval = 1.2,
max_drop_level=0,
groupcaps={
snappy={times={[2]=1.4, [3]=0.40}, uses=25, maxlevel=1},
},
damage_groups = {fleshy=5, choppy=4},
},
sound = {breaks = "default_tool_breaks"},
})
minetest.register_craftitem("tools:gameboy", {
description = "GameBoy",
inventory_image = "tools_gameboy.png",
})