forked from mrkubax10/industrialtest
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)
|
industrialtest.api.updateItemPowerText(itemstack)
|
||||||
return true
|
return true
|
||||||
end
|
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)
|
industrialtest.api.isFullyCharged=function(meta)
|
||||||
return meta:get_int("industrialtest.powerAmount")>=meta:get_int("industrialtest.powerCapacity")
|
return meta:get_int("industrialtest.powerAmount")>=meta:get_int("industrialtest.powerCapacity")
|
||||||
end
|
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
|
-- Other items
|
||||||
minetest.register_craftitem("industrialtest:electronic_circuit",{
|
minetest.register_craftitem("industrialtest:electronic_circuit",{
|
||||||
description=S("Electronic Circuit"),
|
description=S("Electronic Circuit"),
|
||||||
@ -61,11 +77,14 @@ minetest.register_craftitem("industrialtest:electronic_circuit",{
|
|||||||
-- Item callbacks
|
-- Item callbacks
|
||||||
minetest.register_on_player_inventory_action(function(player,action,inventory,info)
|
minetest.register_on_player_inventory_action(function(player,action,inventory,info)
|
||||||
if action=="put" then
|
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)
|
inventory:set_stack(info.listname,info.index,info.stack)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end)
|
end)
|
||||||
minetest.register_on_craft(function(itemstack)
|
minetest.register_on_craft(function(itemstack)
|
||||||
industrialtest.api.preparePowerStorageItem(itemstack)
|
if industrialtest.api.preparePowerStorageItem(itemstack) then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
industrialtest.api.prepareItemTool(itemstack)
|
||||||
end)
|
end)
|
||||||
|
1
init.lua
1
init.lua
@ -39,3 +39,4 @@ if industrialtest.developerMode then
|
|||||||
end
|
end
|
||||||
dofile(modpath.."/cables.lua")
|
dofile(modpath.."/cables.lua")
|
||||||
dofile(modpath.."/mapgen.lua")
|
dofile(modpath.."/mapgen.lua")
|
||||||
|
dofile(modpath.."/tools.lua")
|
||||||
|
66
tools.lua
Normal file
66
tools.lua
Normal file
@ -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
Block a user