Compare commits

...

5 Commits

Author SHA1 Message Date
Ginger88895 2a57587914 Fixed durability 2014-05-15 13:00:18 +00:00
Ginger88895 db8b6f147c Greatly increased durability 2014-05-15 08:40:59 +00:00
asgasg a3a05360b2 Made sword abilty drain duribity.
Need to experiment with the other tools
2014-02-07 22:43:46 +00:00
qwrwed 4976ab73c7 Magma sword now sets fire 2014-01-26 22:32:08 +00:00
asgasg c5301f5ed5 Need to sync 2014-01-26 22:19:03 +00:00
2 changed files with 131 additions and 36 deletions

View File

@ -15,6 +15,19 @@ minetest.register_craftitem("icetools:ice_crystal", {
inventory_image = "icetools_ice_crystal.png",
})
minetest.register_craftitem('icetools:water_source', {
description = 'Water',
inventory_image = minetest.inventorycube("default_water.png"),
})
minetest.register_craft({
output = 'bucket:bucket_water',
recipe = {
{'icetools:water_source'},
{'bucket:bucket_empty'},
}
})
minetest.register_craftitem("icetools:ice_crystal_refined", {
description = "Refined Ice Crystal",
inventory_image = "icetools_ice_crystal_refined.png",
@ -99,54 +112,102 @@ end
minetest.register_tool("icetools:sword_ice", {
description = "Ice Sword",
inventory_image = "icetools_tool_icesword.png",
liquids_pointable = true,
tool_capabilities = {
full_punch_interval = 0.5,
max_drop_level=1,
groupcaps={
snappy={times={[1]=1.50, [2]=0.60, [3]=0.20}, uses=50, maxlevel=3},
snappy={times={[1]=1.50, [2]=0.60, [3]=0.20}, uses=1000000000, maxlevel=3},
},
damage_groups = {fleshy=9},
}
},
minetest.register_on_punchnode(function(pos, node, puncher)
tool = puncher:get_wielded_item()
if tool:get_name() == "icetools:sword_ice" then
if node.name == "default:water_source" then
minetest.add_node(pos, { name="default:ice"})
puncher:set_wielded_item(tool)
end
end
end)
})
minetest.register_tool("icetools:pick_ice", {
description = "Ice Pickaxe",
inventory_image = "icetools_tool_icepick.png",
liquids_pointable = true,
tool_capabilities = {
full_punch_interval = 0.5,
max_drop_level=3,
groupcaps={
cracky = {times={[1]=0.90, [2]=0.40, [3]=0.10}, uses=50, maxlevel=3},
cracky = {times={[1]=0.90, [2]=0.40, [3]=0.10}, uses=1000000000, maxlevel=3},
},
damage_groups = {fleshy=5},
},
minetest.register_on_punchnode(function(pos, node, puncher)
if puncher:get_wielded_item():get_name() == 'icetools:pick_ice' then
if node.name == "default:lava_source" then
minetest.remove_node(pos)
local inv = puncher:get_inventory()
if inv then
inv:add_item("main", "default:stone")
end
end
end
end)
})
minetest.register_tool("icetools:shovel_ice", {
description = "Ice Shovel",
inventory_image = "icetools_tool_iceshovel.png",
wield_image = "icetools_tool_iceshovel.png^[transformR90",
liquids_pointable = true,
tool_capabilities = {
full_punch_interval = 0.5,
max_drop_level=1,
groupcaps={
crumbly = {times={[1]=0.90, [2]=0.40, [3]=0.10}, uses=50, maxlevel=3},
crumbly = {times={[1]=0.90, [2]=0.40, [3]=0.10}, uses=1000000000, maxlevel=3},
},
damage_groups = {fleshy=4},
},
minetest.register_on_punchnode(function(pos, node, puncher)
if puncher:get_wielded_item():get_name() == 'icetools:shovel_ice' then
if node.name == "default:water_source" then
minetest.remove_node(pos)
local inv = puncher:get_inventory()
if inv then
inv:add_item("main", "icetools:water_source")
end
elseif node.name == "default:water_flowing" then
minetest.remove_node(pos)
end
end
end)
})
minetest.register_tool("icetools:axe_ice", {
description = "Ice Axe",
inventory_image = "icetools_tool_iceaxe.png",
liquids_pointable = true,
tool_capabilities = {
full_punch_interval = 0.5,
max_drop_level=1,
groupcaps={
choppy={times={[1]=0.90, [2]=0.40, [3]=0.10}, uses=50, maxlevel=2},
choppy={times={[1]=0.90, [2]=0.40, [3]=0.10}, uses=1000000000, maxlevel=2},
},
damage_groups = {fleshy=7},
},
minetest.register_on_punchnode(function(pos, node, puncher)
if puncher:get_wielded_item():get_name() == 'icetools:axe_ice' then
if node.name == "default:water_source" then
minetest.remove_node(pos)
local inv = puncher:get_inventory()
if inv then
inv:add_item("main", "default:ice")
end
end
end
end)
})
@ -163,7 +224,6 @@ minetest.register_tool("icetools:hoe_ice", {
if liquiddef ~= nil and liquiddef.itemname ~= nil and (node.name == liquiddef.source or
(node.name == "default:lava_source" or node.name == "default:lava_flowing")) then
minetest.add_node(pointed_thing.under, {name="default:obsidian"})
itemstack:add_wear(65535/70)
return itemstack
end
end
@ -172,16 +232,47 @@ minetest.register_tool("icetools:hoe_ice", {
minetest.register_tool("icetools:paxel_ice", {
description = "Ice Paxel",
inventory_image = "icetools_tool_icepaxel.png",
liquids_pointable = true,
tool_capabilities = {
full_punch_interval = 0.5,
max_drop_level=3,
groupcaps={
choppy = {times={[1]=0.80, [2]=0.40, [3]=0.10}, uses=50, maxlevel=2},
crumbly = {times={[1]=0.80, [2]=0.40, [3]=0.10}, uses=50, maxlevel=3},
cracky = {times={[1]=0.80, [2]=0.40, [3]=0.10}, uses=50, maxlevel=3},
choppy = {times={[1]=0.80, [2]=0.40, [3]=0.10}, uses=1000000000, maxlevel=2},
crumbly = {times={[1]=0.80, [2]=0.40, [3]=0.10}, uses=1000000000, maxlevel=3},
cracky = {times={[1]=0.80, [2]=0.40, [3]=0.10}, uses=1000000000, maxlevel=3},
},
damage_groups = {fleshy=8},
},
minetest.register_on_punchnode(function(pos, node, puncher)
if puncher:get_wielded_item():get_name() == 'icetools:paxel_ice' then
if node.name == "default:lava_source" then
minetest.remove_node(pos)
local inv = puncher:get_inventory()
if inv then
inv:add_item("main", "default:stone")
end
elseif node.name == "default:water_source" then
minetest.remove_node(pos)
local inv = puncher:get_inventory()
if inv then
inv:add_item("main", "default:ice")
end
end
end
end),
minetest.register_on_punchnode(function(pos, node, puncher)
if puncher:get_wielded_item():get_name() == 'icetools:paxel_ice' then
if node.name == "default:water_source" then
minetest.remove_node(pos)
local inv = puncher:get_inventory()
if inv then
inv:add_item("main", "icetools:water_source")
end
elseif node.name == "default:water_flowing" then
minetest.remove_node(pos)
end
end
end)
})

View File

@ -125,39 +125,44 @@ minetest.register_tool('magmatools:sword_magma', {
full_punch_interval = 0.4,
max_drop_level=1,
groupcaps={
snappy={times={[1]=1.50, [2]=0.60, [3]=0.20}, uses=50, maxlevel=3},
snappy={times={[1]=1.50, [2]=0.60, [3]=0.20}, uses=1000000000, maxlevel=3},
},
damage_groups = {fleshy=10},
}
},
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
if puncher:get_wielded_item():get_name() == 'magmatools:sword_magma' then
if node.name ~= "air" then
minetest.add_node(pointed_thing.above, {name = "fire:basic_flame"})
end
end
end)
})
local old_handle_node_drops = minetest.handle_node_drops
function minetest.handle_node_drops(pos, drops, digger)
local tool = digger:get_wielded_item():get_name()
if tool == ('magmatools:pick_magma') or (tool == 'magmatools:axe_magma') or (tool == 'magmatools:shovel_magma') or (tool == 'magmatools:paxel_magma') then
local newdrops = { }
for _, drop in ipairs(drops) do
local stack = ItemStack(drop)
local product = minetest.get_craft_result({method = "cooking", width = 1, items = {drop}})
if product and product.item and (not product.item:is_empty()) then
table.insert(newdrops, ItemStack({
name = product.item:get_name(),
count = stack:get_count(),
}))
else
table.insert(newdrops, stack)
end
end
drops = newdrops
local tool = digger:get_wielded_item():get_name()
if tool == ('magmatools:pick_magma') or (tool == 'magmatools:axe_magma') or (tool == 'magmatools:shovel_magma') or (tool == 'magmatools:paxel_magma') then
local newdrops = { }
for _, drop in ipairs(drops) do
local stack = ItemStack(drop)
local product = minetest.get_craft_result({method = "cooking", width = 1, items = {drop}})
if product and product.item and (not product.item:is_empty()) then
table.insert(newdrops, ItemStack({
name = product.item:get_name(),
count = stack:get_count(),
}))
else
table.insert(newdrops, stack)
end
end
if tool == 'magmatools:shovel_magma' then
end
return old_handle_node_drops(pos, drops, digger)
drops = newdrops
end
return old_handle_node_drops(pos, drops, digger)
end
local old_register_on_dignode = minetest.register_on_dignode
local groupcaps ={times={[1]=1.20, [2]=0.60, [3]=0.30}, uses=40, maxlevel=3}
local groupcaps ={times={[1]=1.20, [2]=0.60, [3]=0.30}, uses=1000000000, maxlevel=3}
minetest.register_tool('magmatools:pick_magma', {
description = 'Magma Pickaxe',
inventory_image = 'magmatools_tool_magmapick.png',
@ -185,7 +190,7 @@ minetest.register_tool('magmatools:shovel_magma', {
damage_groups = {fleshy=5},
},
minetest.register_on_punchnode(function(pos, node, puncher)
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
if puncher:get_wielded_item():get_name() == 'magmatools:shovel_magma' then
if node.name == "default:lava_source" then
minetest.remove_node(pos)
@ -212,7 +217,7 @@ minetest.register_tool('magmatools:axe_magma', {
},
damage_groups = {fleshy=7},
},
minetest.register_on_punchnode(function(pos, node, puncher)
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
if puncher:get_wielded_item():get_name() == 'magmatools:axe_magma' then
if node.name == "default:lava_source" then
minetest.add_node(pos, { name="default:lava_flowing"})
@ -237,7 +242,6 @@ minetest.register_tool('magmatools:hoe_magma', {
if liquiddef ~= nil and liquiddef.itemname ~= nil and (node.name == liquiddef.source or
(node.name == 'default:water_source' or node.name == 'default:water_flowing')) then
minetest.add_node(pointed_thing.under, {name='default:obsidian'})
itemstack:add_wear(65535/70)
return itemstack
end
end
@ -282,4 +286,4 @@ minetest.register_ore({
height_min = -31000,
height_max = -128,
flags = 'absheight',
})
})