Compare commits
5 Commits
e8cfe8610b
...
2a57587914
Author | SHA1 | Date |
---|---|---|
|
2a57587914 | |
|
db8b6f147c | |
|
a3a05360b2 | |
|
4976ab73c7 | |
|
c5301f5ed5 |
|
@ -15,6 +15,19 @@ minetest.register_craftitem("icetools:ice_crystal", {
|
||||||
inventory_image = "icetools_ice_crystal.png",
|
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", {
|
minetest.register_craftitem("icetools:ice_crystal_refined", {
|
||||||
description = "Refined Ice Crystal",
|
description = "Refined Ice Crystal",
|
||||||
inventory_image = "icetools_ice_crystal_refined.png",
|
inventory_image = "icetools_ice_crystal_refined.png",
|
||||||
|
@ -99,54 +112,102 @@ end
|
||||||
minetest.register_tool("icetools:sword_ice", {
|
minetest.register_tool("icetools:sword_ice", {
|
||||||
description = "Ice Sword",
|
description = "Ice Sword",
|
||||||
inventory_image = "icetools_tool_icesword.png",
|
inventory_image = "icetools_tool_icesword.png",
|
||||||
|
liquids_pointable = true,
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 0.5,
|
full_punch_interval = 0.5,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
groupcaps={
|
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},
|
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", {
|
minetest.register_tool("icetools:pick_ice", {
|
||||||
description = "Ice Pickaxe",
|
description = "Ice Pickaxe",
|
||||||
inventory_image = "icetools_tool_icepick.png",
|
inventory_image = "icetools_tool_icepick.png",
|
||||||
|
liquids_pointable = true,
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 0.5,
|
full_punch_interval = 0.5,
|
||||||
max_drop_level=3,
|
max_drop_level=3,
|
||||||
groupcaps={
|
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},
|
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", {
|
minetest.register_tool("icetools:shovel_ice", {
|
||||||
description = "Ice Shovel",
|
description = "Ice Shovel",
|
||||||
inventory_image = "icetools_tool_iceshovel.png",
|
inventory_image = "icetools_tool_iceshovel.png",
|
||||||
wield_image = "icetools_tool_iceshovel.png^[transformR90",
|
wield_image = "icetools_tool_iceshovel.png^[transformR90",
|
||||||
|
liquids_pointable = true,
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 0.5,
|
full_punch_interval = 0.5,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
groupcaps={
|
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},
|
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", {
|
minetest.register_tool("icetools:axe_ice", {
|
||||||
description = "Ice Axe",
|
description = "Ice Axe",
|
||||||
inventory_image = "icetools_tool_iceaxe.png",
|
inventory_image = "icetools_tool_iceaxe.png",
|
||||||
|
liquids_pointable = true,
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 0.5,
|
full_punch_interval = 0.5,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
groupcaps={
|
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},
|
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
|
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
|
(node.name == "default:lava_source" or node.name == "default:lava_flowing")) then
|
||||||
minetest.add_node(pointed_thing.under, {name="default:obsidian"})
|
minetest.add_node(pointed_thing.under, {name="default:obsidian"})
|
||||||
itemstack:add_wear(65535/70)
|
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -172,16 +232,47 @@ minetest.register_tool("icetools:hoe_ice", {
|
||||||
minetest.register_tool("icetools:paxel_ice", {
|
minetest.register_tool("icetools:paxel_ice", {
|
||||||
description = "Ice Paxel",
|
description = "Ice Paxel",
|
||||||
inventory_image = "icetools_tool_icepaxel.png",
|
inventory_image = "icetools_tool_icepaxel.png",
|
||||||
|
liquids_pointable = true,
|
||||||
tool_capabilities = {
|
tool_capabilities = {
|
||||||
full_punch_interval = 0.5,
|
full_punch_interval = 0.5,
|
||||||
max_drop_level=3,
|
max_drop_level=3,
|
||||||
groupcaps={
|
groupcaps={
|
||||||
choppy = {times={[1]=0.80, [2]=0.40, [3]=0.10}, uses=50, maxlevel=2},
|
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=50, maxlevel=3},
|
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=50, maxlevel=3},
|
cracky = {times={[1]=0.80, [2]=0.40, [3]=0.10}, uses=1000000000, maxlevel=3},
|
||||||
},
|
},
|
||||||
damage_groups = {fleshy=8},
|
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,
|
full_punch_interval = 0.4,
|
||||||
max_drop_level=1,
|
max_drop_level=1,
|
||||||
groupcaps={
|
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},
|
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
|
local old_handle_node_drops = minetest.handle_node_drops
|
||||||
function minetest.handle_node_drops(pos, drops, digger)
|
function minetest.handle_node_drops(pos, drops, digger)
|
||||||
local tool = digger:get_wielded_item():get_name()
|
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
|
if tool == ('magmatools:pick_magma') or (tool == 'magmatools:axe_magma') or (tool == 'magmatools:shovel_magma') or (tool == 'magmatools:paxel_magma') then
|
||||||
local newdrops = { }
|
local newdrops = { }
|
||||||
for _, drop in ipairs(drops) do
|
for _, drop in ipairs(drops) do
|
||||||
local stack = ItemStack(drop)
|
local stack = ItemStack(drop)
|
||||||
local product = minetest.get_craft_result({method = "cooking", width = 1, items = {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
|
if product and product.item and (not product.item:is_empty()) then
|
||||||
table.insert(newdrops, ItemStack({
|
table.insert(newdrops, ItemStack({
|
||||||
name = product.item:get_name(),
|
name = product.item:get_name(),
|
||||||
count = stack:get_count(),
|
count = stack:get_count(),
|
||||||
}))
|
}))
|
||||||
else
|
else
|
||||||
table.insert(newdrops, stack)
|
table.insert(newdrops, stack)
|
||||||
end
|
end
|
||||||
end
|
|
||||||
drops = newdrops
|
|
||||||
end
|
end
|
||||||
if tool == 'magmatools:shovel_magma' then
|
drops = newdrops
|
||||||
end
|
end
|
||||||
return old_handle_node_drops(pos, drops, digger)
|
return old_handle_node_drops(pos, drops, digger)
|
||||||
end
|
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', {
|
minetest.register_tool('magmatools:pick_magma', {
|
||||||
description = 'Magma Pickaxe',
|
description = 'Magma Pickaxe',
|
||||||
inventory_image = 'magmatools_tool_magmapick.png',
|
inventory_image = 'magmatools_tool_magmapick.png',
|
||||||
|
@ -185,7 +190,7 @@ minetest.register_tool('magmatools:shovel_magma', {
|
||||||
damage_groups = {fleshy=5},
|
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 puncher:get_wielded_item():get_name() == 'magmatools:shovel_magma' then
|
||||||
if node.name == "default:lava_source" then
|
if node.name == "default:lava_source" then
|
||||||
minetest.remove_node(pos)
|
minetest.remove_node(pos)
|
||||||
|
@ -212,7 +217,7 @@ minetest.register_tool('magmatools:axe_magma', {
|
||||||
},
|
},
|
||||||
damage_groups = {fleshy=7},
|
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 puncher:get_wielded_item():get_name() == 'magmatools:axe_magma' then
|
||||||
if node.name == "default:lava_source" then
|
if node.name == "default:lava_source" then
|
||||||
minetest.add_node(pos, { name="default:lava_flowing"})
|
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
|
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
|
(node.name == 'default:water_source' or node.name == 'default:water_flowing')) then
|
||||||
minetest.add_node(pointed_thing.under, {name='default:obsidian'})
|
minetest.add_node(pointed_thing.under, {name='default:obsidian'})
|
||||||
itemstack:add_wear(65535/70)
|
|
||||||
return itemstack
|
return itemstack
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -282,4 +286,4 @@ minetest.register_ore({
|
||||||
height_min = -31000,
|
height_min = -31000,
|
||||||
height_max = -128,
|
height_max = -128,
|
||||||
flags = 'absheight',
|
flags = 'absheight',
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue