Add rubber tree related items
This commit is contained in:
parent
1b502bf944
commit
63bdb0e0e6
31
api.lua
31
api.lua
|
@ -49,6 +49,37 @@ industrialtest.api.preparePowerStorageItem=function(itemstack)
|
|||
industrialtest.api.updateItemPowerText(itemstack)
|
||||
return true
|
||||
end
|
||||
industrialtest.api.prepareToolItem=function(itemstack)
|
||||
local def=minetest.registered_tools[itemstack:get_name()]
|
||||
if not def or not def._industrialtest_tool or not def.tool_capabilities or not def.tool_capabilities.uses then
|
||||
return false
|
||||
end
|
||||
local meta=itemstack:get_meta()
|
||||
meta:set_int("industrialtest.uses",def.tool_capabilities.uses)
|
||||
return true
|
||||
end
|
||||
industrialtest.api.afterToolUse=function(itemstack)
|
||||
local meta=itemstack:get_meta()
|
||||
local def=minetest.registered_tools[itemstack:get_name()]
|
||||
if not def or not def._industrialtest_tool or not def.tool_capabilities or not def.tool_capabilities.uses then
|
||||
return
|
||||
end
|
||||
if not meta:contains("industrialtest.uses") then
|
||||
industrialtest.prepareToolItem(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
|
||||
end
|
||||
meta:set_int("industrialtest.uses",uses)
|
||||
itemstack:set_wear(65535-uses/def.tool_capabilities.uses*65535)
|
||||
end
|
||||
industrialtest.api.isFullyCharged=function(meta)
|
||||
return meta:get_int("industrialtest.powerAmount")>=meta:get_int("industrialtest.powerCapacity")
|
||||
end
|
||||
|
|
|
@ -52,6 +52,22 @@ minetest.register_craft({
|
|||
}
|
||||
})
|
||||
|
||||
minetest.register_craftitem("industrialtest:sticky_resin",{
|
||||
description=S("Sticky Resin"),
|
||||
inventory_image="industrialtest_sticky_resin.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("industrialtest:rubber",{
|
||||
description=S("Rubber"),
|
||||
inventory_image="industrialtest_rubber.png"
|
||||
})
|
||||
minetest.register_craft({
|
||||
type="cooking",
|
||||
output="industrialtest:rubber",
|
||||
recipe="industrialtest:sticky_resin"
|
||||
})
|
||||
-- TODO: add rubber crafts using extractor
|
||||
|
||||
-- Other items
|
||||
minetest.register_craftitem("industrialtest:electronic_circuit",{
|
||||
description=S("Electronic Circuit"),
|
||||
|
@ -61,11 +77,14 @@ minetest.register_craftitem("industrialtest:electronic_circuit",{
|
|||
-- Item callbacks
|
||||
minetest.register_on_player_inventory_action(function(player,action,inventory,info)
|
||||
if action=="put" then
|
||||
if industrialtest.api.preparePowerStorageItem(info.stack) then
|
||||
if industrialtest.api.preparePowerStorageItem(info.stack) or industrialtest.api.prepareToolItem(info.stack) then
|
||||
inventory:set_stack(info.listname,info.index,info.stack)
|
||||
end
|
||||
end
|
||||
end)
|
||||
minetest.register_on_craft(function(itemstack)
|
||||
industrialtest.api.preparePowerStorageItem(itemstack)
|
||||
if industrialtest.api.preparePowerStorageItem(itemstack) then
|
||||
return
|
||||
end
|
||||
industrialtest.api.prepareItemTool(itemstack)
|
||||
end)
|
||||
|
|
1
init.lua
1
init.lua
|
@ -39,3 +39,4 @@ if industrialtest.developerMode then
|
|||
end
|
||||
dofile(modpath.."/cables.lua")
|
||||
dofile(modpath.."/mapgen.lua")
|
||||
dofile(modpath.."/tools.lua")
|
||||
|
|
|
@ -0,0 +1,66 @@
|
|||
-- IndustrialTest
|
||||
-- Copyright (C) 2023 mrkubax10
|
||||
|
||||
-- This program is free software: you can redistribute it and/or modify
|
||||
-- it under the terms of the GNU General Public License as published by
|
||||
-- the Free Software Foundation, either version 3 of the License, or
|
||||
-- (at your option) any later version.
|
||||
|
||||
-- This program is distributed in the hope that it will be useful,
|
||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
-- GNU General Public License for more details.
|
||||
|
||||
-- You should have received a copy of the GNU General Public License
|
||||
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
local S=minetest.get_translator("industrialtest")
|
||||
|
||||
local definition={
|
||||
description=S("Treetap"),
|
||||
inventory_image="industrialtest_tree_tap.png",
|
||||
tool_capabilities={
|
||||
full_punch_interval=1,
|
||||
uses=50
|
||||
},
|
||||
on_place=function(itemstack,user,pointed)
|
||||
if pointed.type=="node" and user and user:is_player() then
|
||||
local node=minetest.get_node_or_nil(pointed.under)
|
||||
if not node then
|
||||
return nil
|
||||
end
|
||||
-- Note: if more nodes from which treetap can extract will be added then they shouldn't be added here
|
||||
-- Instead they should have additional entry in definition which will denote that treetap can be used on them
|
||||
if node.name=="industrialtest:rubber_wood_with_rubber" then
|
||||
local inv=user:get_inventory()
|
||||
inv:add_item("main",ItemStack("industrialtest:sticky_resin"))
|
||||
minetest.set_node(pointed.under,{name="industrialtest:rubber_wood"})
|
||||
industrialtest.api.afterToolUse(itemstack)
|
||||
return itemstack
|
||||
end
|
||||
end
|
||||
return nil
|
||||
end,
|
||||
_industrialtest_tool=true
|
||||
}
|
||||
if industrialtest.mtgAvailable then
|
||||
definition.groups={
|
||||
flammable=2
|
||||
}
|
||||
elseif industrialtest.mclAvailable then
|
||||
definition.groups={
|
||||
tool=1
|
||||
}
|
||||
definition._repair_material="group:wood"
|
||||
definition._mcl_toollike_wield=true
|
||||
end
|
||||
minetest.register_tool("industrialtest:treetap",definition)
|
||||
minetest.register_craft({
|
||||
type="shaped",
|
||||
output="industrialtest:treetap",
|
||||
recipe={
|
||||
{"","group:wood",""},
|
||||
{"group:wood","group:wood","group:wood"},
|
||||
{"group:wood","",""}
|
||||
}
|
||||
})
|
Loading…
Reference in New Issue