forked from minetest-mods/technic
Added API for registering power tools
This commit is contained in:
parent
7c04fb4b75
commit
86bb776f78
89
electric.lua
89
electric.lua
|
@ -1,3 +1,18 @@
|
||||||
|
power_tools ={}
|
||||||
|
|
||||||
|
registered_power_tools_count=1
|
||||||
|
|
||||||
|
function register_power_tool (string1,max_charge)
|
||||||
|
power_tools[registered_power_tools_count]={}
|
||||||
|
power_tools[registered_power_tools_count].tool_name=string1
|
||||||
|
power_tools[registered_power_tools_count].max_charge=max_charge
|
||||||
|
registered_power_tools_count=registered_power_tools_count+1
|
||||||
|
end
|
||||||
|
|
||||||
|
register_power_tool ("technic:mining_drill",60000)
|
||||||
|
register_power_tool ("technic:laser_mk1",40000)
|
||||||
|
register_power_tool ("technic:battery",10000)
|
||||||
|
|
||||||
minetest.register_alias("battery", "technic:battery")
|
minetest.register_alias("battery", "technic:battery")
|
||||||
minetest.register_alias("battery_box", "technic:battery_box")
|
minetest.register_alias("battery_box", "technic:battery_box")
|
||||||
minetest.register_alias("electric_furnace", "technic:electric_furnace")
|
minetest.register_alias("electric_furnace", "technic:electric_furnace")
|
||||||
|
@ -31,12 +46,6 @@ minetest.register_craft({
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
--minetest.register_craftitem("technic:battery", {
|
|
||||||
-- description = "Recharcheable battery",
|
|
||||||
-- inventory_image = "technic_battery.png",
|
|
||||||
-- stack_max = 1,
|
|
||||||
--})
|
|
||||||
|
|
||||||
minetest.register_tool("technic:battery",
|
minetest.register_tool("technic:battery",
|
||||||
{description = "RE Battery",
|
{description = "RE Battery",
|
||||||
inventory_image = "technic_battery.png",
|
inventory_image = "technic_battery.png",
|
||||||
|
@ -296,70 +305,34 @@ minetest.register_abm({
|
||||||
charge= meta:get_float("battery_charge")
|
charge= meta:get_float("battery_charge")
|
||||||
max_charge= 60000
|
max_charge= 60000
|
||||||
|
|
||||||
local inv = meta:get_inventory()
|
local inv = meta:get_inventory()
|
||||||
if inv:is_empty("src")==false then
|
if inv:is_empty("src")==false then
|
||||||
srcstack = inv:get_stack("src", 1)
|
srcstack = inv:get_stack("src", 1)
|
||||||
src_item=srcstack:to_table()
|
src_item=srcstack:to_table()
|
||||||
if src_item["name"]== "technic:battery" then
|
local item_max_charge = nil
|
||||||
|
local counter=registered_power_tools_count-1
|
||||||
|
for i=1, counter,1 do
|
||||||
|
if power_tools[i].tool_name==src_item["name"] then
|
||||||
|
item_max_charge=power_tools[i].max_charge
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if item_max_charge then
|
||||||
local load1=tonumber((src_item["wear"]))
|
local load1=tonumber((src_item["wear"]))
|
||||||
load1=get_RE_item_load(load1,10000)
|
load1=get_RE_item_load(load1,item_max_charge)
|
||||||
load_step=1000
|
load_step=1000
|
||||||
if load1<10000 and charge>0 then
|
if load1<item_max_charge and charge>0 then
|
||||||
if charge-load_step<0 then load_step=charge end
|
if charge-load_step<0 then load_step=charge end
|
||||||
if load1+load_step>10000 then load_step=10000-load1 end
|
if load1+load_step>item_max_charge then load_step=item_max_charge-load1 end
|
||||||
load1=load1+load_step
|
load1=load1+load_step
|
||||||
charge=charge-load_step
|
charge=charge-load_step
|
||||||
|
|
||||||
load1=set_RE_item_load(load1,10000)
|
load1=set_RE_item_load(load1,item_max_charge)
|
||||||
src_item["wear"]=tostring(load1)
|
src_item["wear"]=tostring(load1)
|
||||||
inv:set_stack("src", 1, src_item)
|
inv:set_stack("src", 1, src_item)
|
||||||
end
|
end
|
||||||
end
|
|
||||||
end
|
|
||||||
meta:set_float("battery_charge",charge)
|
meta:set_float("battery_charge",charge)
|
||||||
|
end
|
||||||
|
end
|
||||||
if inv:is_empty("src")==false then
|
|
||||||
srcstack = inv:get_stack("src", 1)
|
|
||||||
src_item=srcstack:to_table()
|
|
||||||
if src_item["name"]== "technic:laser_mk1" then
|
|
||||||
local load1=tonumber((src_item["wear"]))
|
|
||||||
load1=get_RE_item_load(load1,40000)
|
|
||||||
load_step=1000
|
|
||||||
if load1<40000 and charge>0 then
|
|
||||||
if charge-load_step<0 then load_step=charge end
|
|
||||||
if load1+load_step>40000 then load_step=40000-load1 end
|
|
||||||
load1=load1+load_step
|
|
||||||
charge=charge-load_step
|
|
||||||
load1=set_RE_item_load(load1,40000)
|
|
||||||
src_item["wear"]=tostring(load1)
|
|
||||||
inv:set_stack("src", 1, src_item)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
meta:set_float("battery_charge",charge)
|
|
||||||
|
|
||||||
if inv:is_empty("src")==false then
|
|
||||||
srcstack = inv:get_stack("src", 1)
|
|
||||||
src_item=srcstack:to_table()
|
|
||||||
if src_item["name"]== "technic:mining_drill" then
|
|
||||||
local load1=tonumber((src_item["wear"]))
|
|
||||||
load1=get_RE_item_load(load1,60000)
|
|
||||||
load_step=1000
|
|
||||||
if load1<60000 and charge>0 then
|
|
||||||
if charge-load_step<0 then load_step=charge end
|
|
||||||
if load1+load_step>60000 then load_step=60000-load1 end
|
|
||||||
load1=load1+load_step
|
|
||||||
charge=charge-load_step
|
|
||||||
load1=set_RE_item_load(load1,60000)
|
|
||||||
src_item["wear"]=tostring(load1)
|
|
||||||
inv:set_stack("src", 1, src_item)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
end
|
|
||||||
meta:set_float("battery_charge",charge)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if inv:is_empty("dst") == false then
|
if inv:is_empty("dst") == false then
|
||||||
srcstack = inv:get_stack("dst", 1)
|
srcstack = inv:get_stack("dst", 1)
|
||||||
|
|
|
@ -10,9 +10,9 @@ minetest.register_tool("technic:mining_drill", {
|
||||||
local charge=tonumber((item["wear"]))
|
local charge=tonumber((item["wear"]))
|
||||||
if charge ==0 then charge =65535 end
|
if charge ==0 then charge =65535 end
|
||||||
charge=get_RE_item_load(charge,laser_mk1_max_charge)
|
charge=get_RE_item_load(charge,laser_mk1_max_charge)
|
||||||
if charge-400>0 then
|
if charge-200>0 then
|
||||||
drill_dig_it(minetest.get_pointed_thing_position(pointed_thing, above),user)
|
drill_dig_it(minetest.get_pointed_thing_position(pointed_thing, above),user)
|
||||||
charge =charge-400;
|
charge =charge-200;
|
||||||
charge=set_RE_item_load(charge,laser_mk1_max_charge)
|
charge=set_RE_item_load(charge,laser_mk1_max_charge)
|
||||||
item["wear"]=tostring(charge)
|
item["wear"]=tostring(charge)
|
||||||
itemstack:replace(item)
|
itemstack:replace(item)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user