Compare commits
5 Commits
e8cfe8610b
...
2a57587914
Author | SHA1 | Date |
---|---|---|
Ginger88895 | 2a57587914 | |
Ginger88895 | db8b6f147c | |
asgasg | a3a05360b2 | |
qwrwed | 4976ab73c7 | |
asgasg | c5301f5ed5 |
|
@ -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)
|
||||
})
|
||||
|
||||
|
||||
|
|
|
@ -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',
|
||||
})
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue