Refactor wrench
This commit is contained in:
parent
089550cc28
commit
8d48b3f9f5
@ -53,6 +53,29 @@ function industrialtest.Tool.onPlace(self,itemstack,user,pointed)
|
|||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
function industrialtest.Tool.onUse(self,itemstack,user,pointed)
|
||||||
|
if self:hitUse(itemstack,user,pointed) then
|
||||||
|
local meta=itemstack:get_meta()
|
||||||
|
if not meta:contains("industrialtest.uses") then
|
||||||
|
self:prepare(itemstack)
|
||||||
|
end
|
||||||
|
local uses=meta:get_int("industrialtest.uses")-1
|
||||||
|
if uses==0 then
|
||||||
|
itemstack:set_count(0)
|
||||||
|
minetest.sound_play({name="default_tool_breaks"},{
|
||||||
|
gain=1,
|
||||||
|
fade=0,
|
||||||
|
pitch=1
|
||||||
|
},true)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
meta:set_int("industrialtest.uses",uses)
|
||||||
|
itemstack:set_wear(65535-uses/self.uses*65535)
|
||||||
|
return true
|
||||||
|
end
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
function industrialtest.Tool.prepare(self,itemstack)
|
function industrialtest.Tool.prepare(self,itemstack)
|
||||||
local meta=itemstack:get_meta()
|
local meta=itemstack:get_meta()
|
||||||
meta:set_int("industrialtest.uses",self.uses)
|
meta:set_int("industrialtest.uses",self.uses)
|
||||||
|
@ -16,6 +16,9 @@
|
|||||||
local S=minetest.get_translator("industrialtest")
|
local S=minetest.get_translator("industrialtest")
|
||||||
|
|
||||||
local function onWrenchUse(user,pointed)
|
local function onWrenchUse(user,pointed)
|
||||||
|
if pointed.type~="node" or not user or not user:is_player() then
|
||||||
|
return false
|
||||||
|
end
|
||||||
local node=minetest.get_node_or_nil(pointed.under)
|
local node=minetest.get_node_or_nil(pointed.under)
|
||||||
if not node then
|
if not node then
|
||||||
return false
|
return false
|
||||||
@ -37,29 +40,22 @@ local function onWrenchUse(user,pointed)
|
|||||||
return true
|
return true
|
||||||
end
|
end
|
||||||
|
|
||||||
local definition={
|
industrialtest.Wrench=table.copy(industrialtest.Tool)
|
||||||
|
industrialtest.internal.unpackTableInto(industrialtest.Wrench,{
|
||||||
|
name="industrialtest:wrench",
|
||||||
|
define={onUse=true},
|
||||||
description=S("Wrench"),
|
description=S("Wrench"),
|
||||||
inventory_image="industrialtest_wrench.png",
|
inventoryImage="industrialtest_wrench.png",
|
||||||
tool_capabilities={
|
uses=200,
|
||||||
full_punch_interval=1,
|
repairMaterial=industrialtest.elementKeys.bronzeIngot
|
||||||
uses=200
|
})
|
||||||
},
|
|
||||||
on_use=function(itemstack,user,pointed)
|
function industrialtest.Wrench.hitUse(self,itemstack,user,pointed)
|
||||||
if pointed.type=="node" and user and user:is_player() and onWrenchUse(user,pointed) then
|
return onWrenchUse(user,pointed)
|
||||||
industrialtest.api.afterToolUse(itemstack)
|
|
||||||
return itemstack
|
|
||||||
end
|
|
||||||
return nil
|
|
||||||
end,
|
|
||||||
_industrialtest_tool=true
|
|
||||||
}
|
|
||||||
if industrialtest.mclAvailable then
|
|
||||||
definition.groups={
|
|
||||||
tool=1
|
|
||||||
}
|
|
||||||
definition._mcl_toollike_wield=true
|
|
||||||
end
|
end
|
||||||
minetest.register_tool("industrialtest:wrench",definition)
|
|
||||||
|
industrialtest.Wrench:register()
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type="shaped",
|
type="shaped",
|
||||||
output="industrialtest:wrench",
|
output="industrialtest:wrench",
|
||||||
@ -70,28 +66,26 @@ minetest.register_craft({
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
definition={
|
industrialtest.ElectricWrench=table.copy(industrialtest.ElectricTool)
|
||||||
|
industrialtest.internal.unpackTableInto(industrialtest.ElectricWrench,{
|
||||||
|
name="industrialtest:electric_wrench",
|
||||||
|
define={onUse=true},
|
||||||
description=S("Electric Wrench"),
|
description=S("Electric Wrench"),
|
||||||
inventory_image="industrialtest_electric_wrench.png",
|
inventoryImage="industrialtest_electric_wrench.png",
|
||||||
on_use=function(itemstack,user,pointed)
|
capacity=10000,
|
||||||
local meta=itemstack:get_meta()
|
flow=industrialtest.api.lvPowerFlow
|
||||||
if meta:get_int("industrialtest.powerAmount")>=20 and user and user:is_player() and onWrenchUse(user,pointed) then
|
})
|
||||||
industrialtest.api.addPowerToItem(itemstack,-20)
|
|
||||||
return itemstack
|
function industrialtest.ElectricWrench.getOpPower(self,itemstack)
|
||||||
end
|
return 50
|
||||||
return nil
|
|
||||||
end,
|
|
||||||
_industrialtest_powerStorage=true,
|
|
||||||
_industrialtest_powerCapacity=10000,
|
|
||||||
_industrialtest_powerFlow=industrialtest.api.lvPowerFlow
|
|
||||||
}
|
|
||||||
if industrialtest.mclAvailable then
|
|
||||||
definition.groups={
|
|
||||||
tool=1
|
|
||||||
}
|
|
||||||
definition._mcl_toollike_wield=true
|
|
||||||
end
|
end
|
||||||
minetest.register_tool("industrialtest:electric_wrench",definition)
|
|
||||||
|
function industrialtest.ElectricWrench.hitUse(self,itemstack,user,pointed)
|
||||||
|
return onWrenchUse(user,pointed)
|
||||||
|
end
|
||||||
|
|
||||||
|
industrialtest.ElectricWrench:register()
|
||||||
|
|
||||||
minetest.register_craft({
|
minetest.register_craft({
|
||||||
type="shapeless",
|
type="shapeless",
|
||||||
output="industrialtest:electric_wrench",
|
output="industrialtest:electric_wrench",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user