diff --git a/api/common.lua b/api/common.lua
index 8342e39..1ae7982 100644
--- a/api/common.lua
+++ b/api/common.lua
@@ -56,6 +56,16 @@ function industrialtest.internal.unpackTableInto(first,second)
end
end
+-- \brief Copies table passed in super while overriding fields with those from override and returns result
+-- \param super table
+-- \param override table
+-- \returns table
+function industrialtest.internal.derive(super,override)
+ local result=table.copy(super)
+ industrialtest.internal.unpackTableInto(result,override)
+ return result
+end
+
-- \brief Returns machine speed in items per operation
-- \param meta MetaDataRef
-- \returns number
diff --git a/machines/activated_electric_machine.lua b/machines/activated_electric_machine.lua
index cdb00b3..e6de915 100644
--- a/machines/activated_electric_machine.lua
+++ b/machines/activated_electric_machine.lua
@@ -14,10 +14,8 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see .
-industrialtest.ActivatedElectricMachine=table.copy(industrialtest.ElectricMachine)
-
--- Forward methods from ActivatedMachine
-industrialtest.internal.unpackTableInto(industrialtest.ActivatedElectricMachine,{
+industrialtest.ActivatedElectricMachine=industrialtest.internal.derive(industrialtest.ElectricMachine,{
+ -- Forward methods from ActivatedMachine
canUpdate=industrialtest.ActivatedMachine.canUpdate,
register=industrialtest.ActivatedMachine.register,
createDefinitionTable=industrialtest.ActivatedMachine.createDefinitionTable,
diff --git a/machines/cable_former.lua b/machines/cable_former.lua
index 4674e4f..b7a1571 100644
--- a/machines/cable_former.lua
+++ b/machines/cable_former.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.CableFormer=table.copy(industrialtest.SimpleElectricItemProcessor)
-industrialtest.internal.unpackTableInto(industrialtest.CableFormer,{
+industrialtest.CableFormer=industrialtest.internal.derive(industrialtest.SimpleElectricItemProcessor,{
name="industrialtest:cable_former",
description=S("Cable Former"),
tiles={
diff --git a/machines/canning_machine.lua b/machines/canning_machine.lua
index 48141b1..60324c2 100644
--- a/machines/canning_machine.lua
+++ b/machines/canning_machine.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.CanningMachine=table.copy(industrialtest.ActivatedElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.CanningMachine,{
+industrialtest.CanningMachine=industrialtest.internal.derive(industrialtest.ActivatedElectricMachine,{
name="industrialtest:canning_machine",
description=S("Canning Machine"),
tiles={
diff --git a/machines/chargepad.lua b/machines/chargepad.lua
index 6611c54..a8392ba 100644
--- a/machines/chargepad.lua
+++ b/machines/chargepad.lua
@@ -16,8 +16,7 @@
local S=minetest.get_translator("industrialtest")
industrialtest.internal.chargepads={}
-industrialtest.Chargepad=table.copy(industrialtest.ActivatedElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.Chargepad,{
+industrialtest.Chargepad=industrialtest.internal.derive(industrialtest.ActivatedElectricMachine,{
storageLists={
"charged",
"discharged"
@@ -170,8 +169,7 @@ function industrialtest.Chargepad.action(self,pos,node)
end
end
-industrialtest.BatboxChargepad=table.copy(industrialtest.Chargepad)
-industrialtest.internal.unpackTableInto(industrialtest.BatboxChargepad,{
+industrialtest.BatboxChargepad=industrialtest.internal.derive(industrialtest.Chargepad,{
name="industrialtest:batbox_chargepad",
description=S("BatBox Chargepad"),
tiles={
@@ -199,8 +197,7 @@ industrialtest.internal.unpackTableInto(industrialtest.BatboxChargepad,{
})
industrialtest.BatboxChargepad:register()
-industrialtest.CESUChargepad=table.copy(industrialtest.Chargepad)
-industrialtest.internal.unpackTableInto(industrialtest.CESUChargepad,{
+industrialtest.CESUChargepad=industrialtest.internal.derive(industrialtest.Chargepad,{
name="industrialtest:cesu_chargepad",
description=S("CESU Chargepad"),
tiles={
@@ -228,8 +225,7 @@ industrialtest.internal.unpackTableInto(industrialtest.CESUChargepad,{
})
industrialtest.CESUChargepad:register()
-industrialtest.MFEChargepad=table.copy(industrialtest.Chargepad)
-industrialtest.internal.unpackTableInto(industrialtest.MFEChargepad,{
+industrialtest.MFEChargepad=industrialtest.internal.derive(industrialtest.Chargepad,{
name="industrialtest:mfe_chargepad",
description=S("MFE Chargepad"),
tiles={
@@ -258,8 +254,7 @@ industrialtest.internal.unpackTableInto(industrialtest.MFEChargepad,{
})
industrialtest.MFEChargepad:register()
-industrialtest.MFSUChargepad=table.copy(industrialtest.Chargepad)
-industrialtest.internal.unpackTableInto(industrialtest.MFSUChargepad,{
+industrialtest.MFSUChargepad=industrialtest.internal.derive(industrialtest.Chargepad,{
name="industrialtest:mfsu_chargepad",
description=S("MFSU Chargepad"),
tiles={
diff --git a/machines/compressor.lua b/machines/compressor.lua
index 6282ec9..307ce77 100644
--- a/machines/compressor.lua
+++ b/machines/compressor.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.Compressor=table.copy(industrialtest.SimpleElectricItemProcessor)
-industrialtest.internal.unpackTableInto(industrialtest.Compressor,{
+industrialtest.Compressor=industrialtest.internal.derive(industrialtest.SimpleElectricItemProcessor,{
name="industrialtest:compressor",
description=S("Compressor"),
tiles={
diff --git a/machines/electric_furnace.lua b/machines/electric_furnace.lua
index 51de5a9..021baa8 100644
--- a/machines/electric_furnace.lua
+++ b/machines/electric_furnace.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.ElectricFurnace=table.copy(industrialtest.SimpleElectricItemProcessor)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricFurnace,{
+industrialtest.ElectricFurnace=industrialtest.internal.derive(industrialtest.SimpleElectricItemProcessor,{
name="industrialtest:electric_furnace",
description=S("Electric Furnace"),
tiles={
diff --git a/machines/extractor.lua b/machines/extractor.lua
index 6fdee30..5a23e38 100644
--- a/machines/extractor.lua
+++ b/machines/extractor.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.Extractor=table.copy(industrialtest.SimpleElectricItemProcessor)
-industrialtest.internal.unpackTableInto(industrialtest.Extractor,{
+industrialtest.Extractor=industrialtest.internal.derive(industrialtest.SimpleElectricItemProcessor,{
name="industrialtest:extractor",
description=S("Extractor"),
tiles={
diff --git a/machines/fluid_generator.lua b/machines/fluid_generator.lua
index 3b7b462..e28b1e8 100644
--- a/machines/fluid_generator.lua
+++ b/machines/fluid_generator.lua
@@ -117,8 +117,7 @@ local function generate(self,pos,elapsed)
return false
end
-industrialtest.GeothermalGenerator=table.copy(industrialtest.ActivatedElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.GeothermalGenerator,{
+industrialtest.GeothermalGenerator=industrialtest.internal.derive(industrialtest.ActivatedElectricMachine,{
name="industrialtest:geothermal_generator",
description=S("Geothermal Generator"),
tiles={
@@ -243,8 +242,7 @@ minetest.register_craft({
}
})
-industrialtest.WaterMill=table.copy(industrialtest.ElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.WaterMill,{
+industrialtest.WaterMill=industrialtest.internal.derive(industrialtest.ElectricMachine,{
name="industrialtest:water_mill",
description=S("Water Mill"),
tiles={
diff --git a/machines/generator.lua b/machines/generator.lua
index 16a69ea..13419bf 100644
--- a/machines/generator.lua
+++ b/machines/generator.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.Generator=table.copy(industrialtest.ActivatedElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.Generator,{
+industrialtest.Generator=industrialtest.internal.derive(industrialtest.ActivatedElectricMachine,{
name="industrialtest:generator",
description=S("Generator"),
tiles={
diff --git a/machines/induction_furnace.lua b/machines/induction_furnace.lua
index c5b613a..4130626 100644
--- a/machines/induction_furnace.lua
+++ b/machines/induction_furnace.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.InductionFurnace=table.copy(industrialtest.ActivatedElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.InductionFurnace,{
+industrialtest.InductionFurnace=industrialtest.internal.derive(industrialtest.ActivatedElectricMachine,{
name="industrialtest:induction_furnace",
description=S("Induction Furnace"),
tiles={
diff --git a/machines/iron_furnace.lua b/machines/iron_furnace.lua
index 8f6907a..204159a 100644
--- a/machines/iron_furnace.lua
+++ b/machines/iron_furnace.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.IronFurnace=table.copy(industrialtest.ActivatedMachine)
-industrialtest.internal.unpackTableInto(industrialtest.IronFurnace,{
+industrialtest.IronFurnace=industrialtest.internal.derive(industrialtest.ActivatedMachine,{
name="industrialtest:iron_furnace",
description=S("Iron Furnace"),
tiles={
diff --git a/machines/macerator.lua b/machines/macerator.lua
index 76124ef..7160ca7 100644
--- a/machines/macerator.lua
+++ b/machines/macerator.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.Macerator=table.copy(industrialtest.SimpleElectricItemProcessor)
-industrialtest.internal.unpackTableInto(industrialtest.Macerator,{
+industrialtest.Macerator=industrialtest.internal.derive(industrialtest.SimpleElectricItemProcessor,{
name="industrialtest:macerator",
description=S("Macerator"),
tiles={
diff --git a/machines/magnetizer.lua b/machines/magnetizer.lua
index e8bfee6..ce3ef93 100644
--- a/machines/magnetizer.lua
+++ b/machines/magnetizer.lua
@@ -72,8 +72,7 @@ local function hasMetalBoots(player)
return false
end
-industrialtest.Magnetizer=table.copy(industrialtest.ElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.Magnetizer,{
+industrialtest.Magnetizer=industrialtest.internal.derive(industrialtest.ElectricMachine,{
name="industrialtest:magnetizer",
description=S("Magnetizer"),
tiles={
diff --git a/machines/mass_fabricator.lua b/machines/mass_fabricator.lua
index 6da6c84..fb46af4 100644
--- a/machines/mass_fabricator.lua
+++ b/machines/mass_fabricator.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.MassFabricator=table.copy(industrialtest.SimpleElectricItemProcessor)
-industrialtest.internal.unpackTableInto(industrialtest.MassFabricator,{
+industrialtest.MassFabricator=industrialtest.internal.derive(industrialtest.SimpleElectricItemProcessor,{
name="industrialtest:mass_fabricator",
description=S("Mass Fabricator"),
tiles={
diff --git a/machines/miner.lua b/machines/miner.lua
index bd1bfa7..2a4f759 100644
--- a/machines/miner.lua
+++ b/machines/miner.lua
@@ -119,8 +119,7 @@ minetest.register_craft({
}
})
-industrialtest.Miner=table.copy(industrialtest.ElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.Miner,{
+industrialtest.Miner=industrialtest.internal.derive(industrialtest.ElectricMachine,{
name="industrialtest:miner",
description=S("Miner"),
tiles={
diff --git a/machines/nuclear_reactor.lua b/machines/nuclear_reactor.lua
index 8a55e30..adcbd67 100644
--- a/machines/nuclear_reactor.lua
+++ b/machines/nuclear_reactor.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.Reactor=table.copy(industrialtest.ActivatedElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.Reactor,{
+industrialtest.Reactor=industrialtest.internal.derive(industrialtest.ActivatedElectricMachine,{
name="industrialtest:nuclear_reactor",
description=S("Nuclear Reactor"),
tiles={
@@ -366,8 +365,7 @@ minetest.register_craft({
}
})
-industrialtest.ReactorChamber=table.copy(industrialtest.Machine)
-industrialtest.internal.unpackTableInto(industrialtest.ReactorChamber,{
+industrialtest.ReactorChamber=industrialtest.internal.derive(industrialtest.Machine,{
name="industrialtest:nuclear_reactor_chamber",
description=S("Nuclear Reactor Chamber"),
tiles={"industrialtest_machine_block.png^industrialtest_nuclear_reactor_top.png"},
diff --git a/machines/power_storage.lua b/machines/power_storage.lua
index bf48265..11e30af 100644
--- a/machines/power_storage.lua
+++ b/machines/power_storage.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.PowerStorage=table.copy(industrialtest.ElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.PowerStorage,{
+industrialtest.PowerStorage=industrialtest.internal.derive(industrialtest.ElectricMachine,{
facedir=true,
storageLists={
"charged",
@@ -63,8 +62,7 @@ function industrialtest.PowerStorage.getFormspec(self,pos)
return parentFormspec..table.concat(formspec,"")
end
-industrialtest.BatBox=table.copy(industrialtest.PowerStorage)
-industrialtest.internal.unpackTableInto(industrialtest.BatBox,{
+industrialtest.BatBox=industrialtest.internal.derive(industrialtest.PowerStorage,{
name="industrialtest:batbox",
description=S("BatBox"),
tiles={
@@ -92,8 +90,7 @@ minetest.register_craft({
}
})
-industrialtest.CESU=table.copy(industrialtest.PowerStorage)
-industrialtest.internal.unpackTableInto(industrialtest.CESU,{
+industrialtest.CESU=industrialtest.internal.derive(industrialtest.PowerStorage,{
name="industrialtest:cesu",
description=S("CESU"),
tiles={
@@ -121,8 +118,7 @@ minetest.register_craft({
}
})
-industrialtest.MFE=table.copy(industrialtest.PowerStorage)
-industrialtest.internal.unpackTableInto(industrialtest.MFE,{
+industrialtest.MFE=industrialtest.internal.derive(industrialtest.PowerStorage,{
name="industrialtest:mfe",
description=S("MFE"),
tiles={
@@ -152,8 +148,7 @@ minetest.register_craft({
})
-industrialtest.MFSU=table.copy(industrialtest.PowerStorage)
-industrialtest.internal.unpackTableInto(industrialtest.MFSU,{
+industrialtest.MFSU=industrialtest.internal.derive(industrialtest.PowerStorage,{
name="industrialtest:mfsu",
description=S("MFSU"),
tiles={
diff --git a/machines/pump.lua b/machines/pump.lua
index 1e35020..8e06477 100644
--- a/machines/pump.lua
+++ b/machines/pump.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.Pump=table.copy(industrialtest.ActivatedElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.Pump,{
+industrialtest.Pump=industrialtest.internal.derive(industrialtest.ActivatedElectricMachine,{
name="industrialtest:pump",
description=S("Pump"),
tiles={
diff --git a/machines/recycler.lua b/machines/recycler.lua
index 6c9999e..c79bbdb 100644
--- a/machines/recycler.lua
+++ b/machines/recycler.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.Recycler=table.copy(industrialtest.SimpleElectricItemProcessor)
-industrialtest.internal.unpackTableInto(industrialtest.Recycler,{
+industrialtest.Recycler=industrialtest.internal.derive(industrialtest.SimpleElectricItemProcessor,{
name="industrialtest:recycler",
description=S("Recycler"),
tiles={
diff --git a/machines/rotary_macerator.lua b/machines/rotary_macerator.lua
index ff0ed64..ccd94a3 100644
--- a/machines/rotary_macerator.lua
+++ b/machines/rotary_macerator.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.RotaryMacerator=table.copy(industrialtest.ActivatedElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.RotaryMacerator,{
+industrialtest.RotaryMacerator=industrialtest.internal.derive(industrialtest.ActivatedElectricMachine,{
name="industrialtest:rotary_macerator",
description=S("Rotary Macerator"),
tiles={
diff --git a/machines/simple_electric_item_processor.lua b/machines/simple_electric_item_processor.lua
index 79e6918..5983b15 100644
--- a/machines/simple_electric_item_processor.lua
+++ b/machines/simple_electric_item_processor.lua
@@ -16,8 +16,7 @@
local S=minetest.get_translator("industrialtest")
-industrialtest.SimpleElectricItemProcessor=table.copy(industrialtest.ActivatedElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.SimpleElectricItemProcessor,{
+industrialtest.SimpleElectricItemProcessor=industrialtest.internal.derive(industrialtest.ActivatedElectricMachine,{
facedir=true,
sounds="metal",
storageLists={
diff --git a/machines/solar_panel_generator.lua b/machines/solar_panel_generator.lua
index 3f03302..da713c0 100644
--- a/machines/solar_panel_generator.lua
+++ b/machines/solar_panel_generator.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.SolarPanelBase=table.copy(industrialtest.ElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.SolarPanelBase,{
+industrialtest.SolarPanelBase=industrialtest.internal.derive(industrialtest.ElectricMachine,{
sounds="metal",
requiresWrench=true,
storageLists={
@@ -78,8 +77,7 @@ function industrialtest.SolarPanelBase.action(self,pos)
end
end
-industrialtest.SolarPanel=table.copy(industrialtest.SolarPanelBase)
-industrialtest.internal.unpackTableInto(industrialtest.SolarPanel,{
+industrialtest.SolarPanel=industrialtest.internal.derive(industrialtest.SolarPanelBase,{
name="industrialtest:solar_panel",
description=S("Solar Panel"),
tiles={
@@ -106,8 +104,7 @@ minetest.register_craft({
}
})
-industrialtest.LVSolarArray=table.copy(industrialtest.SolarPanelBase)
-industrialtest.internal.unpackTableInto(industrialtest.LVSolarArray,{
+industrialtest.LVSolarArray=industrialtest.internal.derive(industrialtest.SolarPanelBase,{
name="industrialtest:lv_solar_array",
description=S("LV Solar Array"),
tiles={
@@ -135,8 +132,7 @@ minetest.register_craft({
}
})
-industrialtest.MVSolarArray=table.copy(industrialtest.SolarPanelBase)
-industrialtest.internal.unpackTableInto(industrialtest.MVSolarArray,{
+industrialtest.MVSolarArray=industrialtest.internal.derive(industrialtest.SolarPanelBase,{
name="industrialtest:mv_solar_array",
description=S("MV Solar Array"),
tiles={
@@ -164,8 +160,7 @@ minetest.register_craft({
})
-industrialtest.HVSolarArray=table.copy(industrialtest.SolarPanelBase)
-industrialtest.internal.unpackTableInto(industrialtest.HVSolarArray,{
+industrialtest.HVSolarArray=industrialtest.internal.derive(industrialtest.SolarPanelBase,{
name="industrialtest:hv_solar_array",
description=S("HV Solar Array"),
tiles={
diff --git a/machines/tool_workshop.lua b/machines/tool_workshop.lua
index 482b58f..a4338f8 100644
--- a/machines/tool_workshop.lua
+++ b/machines/tool_workshop.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.ToolWorkshop=table.copy(industrialtest.ActivatedElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.ToolWorkshop,{
+industrialtest.ToolWorkshop=industrialtest.internal.derive(industrialtest.ActivatedElectricMachine,{
name="industrialtest:tool_workshop",
description=S("Tool Workshop"),
tiles={
diff --git a/machines/transformer.lua b/machines/transformer.lua
index ddd205e..10e228e 100644
--- a/machines/transformer.lua
+++ b/machines/transformer.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.Transformer=table.copy(industrialtest.ElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.Transformer,{
+industrialtest.Transformer=industrialtest.internal.derive(industrialtest.ElectricMachine,{
withoutFormspec=true,
facedir=true,
storageLists={},
@@ -59,8 +58,7 @@ function industrialtest.Transformer.onPowerFlow(self,pos)
self:trigger(pos)
end
-industrialtest.LVTransformer=table.copy(industrialtest.Transformer)
-industrialtest.internal.unpackTableInto(industrialtest.LVTransformer,{
+industrialtest.LVTransformer=industrialtest.internal.derive(industrialtest.Transformer,{
name="industrialtest:lv_transformer",
description=S("LV Transformer"),
sounds="wood",
@@ -89,8 +87,7 @@ minetest.register_craft({
}
})
-industrialtest.MVTransformer=table.copy(industrialtest.Transformer)
-industrialtest.internal.unpackTableInto(industrialtest.MVTransformer,{
+industrialtest.MVTransformer=industrialtest.internal.derive(industrialtest.Transformer,{
name="industrialtest:mv_transformer",
description=S("MV Transformer"),
sounds="metal",
@@ -120,8 +117,7 @@ minetest.register_craft({
}
})
-industrialtest.HVTransformer=table.copy(industrialtest.Transformer)
-industrialtest.internal.unpackTableInto(industrialtest.HVTransformer,{
+industrialtest.HVTransformer=industrialtest.internal.derive(industrialtest.Transformer,{
name="industrialtest:hv_transformer",
description=S("HV Transformer"),
sounds="metal",
@@ -151,8 +147,7 @@ minetest.register_craft({
}
})
-industrialtest.EVTransformer=table.copy(industrialtest.Transformer)
-industrialtest.internal.unpackTableInto(industrialtest.EVTransformer,{
+industrialtest.EVTransformer=industrialtest.internal.derive(industrialtest.Transformer,{
name="industrialtest:ev_transformer",
description=S("EV Transformer"),
sounds="metal",
diff --git a/machines/wind_mill.lua b/machines/wind_mill.lua
index 0be873a..e18f650 100644
--- a/machines/wind_mill.lua
+++ b/machines/wind_mill.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.WindMill=table.copy(industrialtest.ElectricMachine)
-industrialtest.internal.unpackTableInto(industrialtest.WindMill,{
+industrialtest.WindMill=industrialtest.internal.derive(industrialtest.ElectricMachine,{
name="industrialtest:wind_mill",
description=S("Wind Mill"),
tiles={
diff --git a/tools/batpack.lua b/tools/batpack.lua
index 988fae1..16e7416 100644
--- a/tools/batpack.lua
+++ b/tools/batpack.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.BatPackBase=table.copy(industrialtest.ElectricGearTool)
-industrialtest.internal.unpackTableInto(industrialtest.BatPackBase,{
+industrialtest.BatPackBase=industrialtest.internal.derive(industrialtest.ElectricGearTool,{
part="torso"
})
@@ -41,8 +40,7 @@ function industrialtest.BatPackBase.update(self,player,inv,itemstack,dtime)
return false
end
-industrialtest.BatPack=table.copy(industrialtest.BatPackBase)
-industrialtest.internal.unpackTableInto(industrialtest.BatPack,{
+industrialtest.BatPack=industrialtest.internal.derive(industrialtest.BatPackBase,{
name="industrialtest:batpack_v",
description=S("BatPack"),
inventoryImage="industrialtest_batpack_v_inv.png",
@@ -63,8 +61,7 @@ minetest.register_craft({
}
})
-industrialtest.LapPack=table.copy(industrialtest.BatPackBase)
-industrialtest.internal.unpackTableInto(industrialtest.LapPack,{
+industrialtest.LapPack=industrialtest.internal.derive(industrialtest.BatPackBase,{
name="industrialtest:lappack_v",
description=S("LapPack"),
inventoryImage="industrialtest_lappack_v_inv.png",
diff --git a/tools/electric_chainsaw.lua b/tools/electric_chainsaw.lua
index 3e63dea..6332fdb 100644
--- a/tools/electric_chainsaw.lua
+++ b/tools/electric_chainsaw.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.ElectricChainsawBase=table.copy(industrialtest.ActivatedElectricTool)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricChainsawBase,{
+industrialtest.ElectricChainsawBase=industrialtest.internal.derive(industrialtest.ActivatedElectricTool,{
digs={"choppy"}
})
@@ -33,8 +32,7 @@ function industrialtest.ElectricChainsawBase.getOpPower(self,itemstack)
return 50
end
-industrialtest.ElectricChainsaw=table.copy(industrialtest.ElectricChainsawBase)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricChainsaw,{
+industrialtest.ElectricChainsaw=industrialtest.internal.derive(industrialtest.ElectricChainsawBase,{
name="industrialtest:electric_chainsaw",
description=S("Electric Chainsaw"),
inventoryImage="industrialtest_electric_chainsaw.png",
@@ -61,8 +59,7 @@ minetest.register_craft({
}
})
-industrialtest.AdvancedElectricChainsaw=table.copy(industrialtest.ElectricChainsawBase)
-industrialtest.internal.unpackTableInto(industrialtest.AdvancedElectricChainsaw,{
+industrialtest.AdvancedElectricChainsaw=industrialtest.internal.derive(industrialtest.ElectricChainsawBase,{
name="industrialtest:advanced_electric_chainsaw",
description=S("Advanced Electric Chainsaw"),
inventoryImage="industrialtest_advanced_electric_chainsaw.png",
diff --git a/tools/electric_drill.lua b/tools/electric_drill.lua
index 0b3d566..2ff5e89 100644
--- a/tools/electric_drill.lua
+++ b/tools/electric_drill.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.ElectricDrillBase=table.copy(industrialtest.ActivatedElectricTool)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricDrillBase,{
+industrialtest.ElectricDrillBase=industrialtest.internal.derive(industrialtest.ActivatedElectricTool,{
digs={
"cracky",
"crumbly"
@@ -33,8 +32,7 @@ function industrialtest.ElectricDrillBase.getOpPower(self,itemstack)
return 50
end
-industrialtest.ElectricDrill=table.copy(industrialtest.ElectricDrillBase)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricDrill,{
+industrialtest.ElectricDrill=industrialtest.internal.derive(industrialtest.ElectricDrillBase,{
name="industrialtest:electric_drill",
description=S("Electric Drill"),
inventoryImage="industrialtest_electric_drill.png",
@@ -60,8 +58,7 @@ minetest.register_craft({
}
})
-industrialtest.AdvancedElectricDrill=table.copy(industrialtest.ElectricDrillBase)
-industrialtest.internal.unpackTableInto(industrialtest.AdvancedElectricDrill,{
+industrialtest.AdvancedElectricDrill=industrialtest.internal.derive(industrialtest.ElectricDrillBase,{
name="industrialtest:advanced_electric_drill",
description=S("Advanced Electric Drill"),
inventoryImage="industrialtest_advanced_electric_drill.png",
diff --git a/tools/electric_gear_tool.lua b/tools/electric_gear_tool.lua
index 008ff91..1798014 100644
--- a/tools/electric_gear_tool.lua
+++ b/tools/electric_gear_tool.lua
@@ -14,7 +14,6 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see .
-industrialtest.ElectricGearTool=table.copy(industrialtest.GearTool)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricGearTool,{
+industrialtest.ElectricGearTool=industrialtest.internal.derive(industrialtest.GearTool,{
prepare=industrialtest.ElectricItem.prepare
})
diff --git a/tools/electric_hoe.lua b/tools/electric_hoe.lua
index 4b3b116..283af79 100644
--- a/tools/electric_hoe.lua
+++ b/tools/electric_hoe.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.ElectricHoeBase=table.copy(industrialtest.ActivatedElectricTool)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricHoeBase,{
+industrialtest.ElectricHoeBase=industrialtest.internal.derive(industrialtest.ActivatedElectricTool,{
digs={"hoey"},
capacity=10000,
flow=industrialtest.api.lvPowerFlow
@@ -130,8 +129,7 @@ function industrialtest.ElectricHoeBase.getOpPower(self,itemstack)
return 50
end
-industrialtest.ElectricHoe=table.copy(industrialtest.ElectricHoeBase)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricHoe,{
+industrialtest.ElectricHoe=industrialtest.internal.derive(industrialtest.ElectricHoeBase,{
name="industrialtest:electric_hoe",
description=S("Electric Hoe"),
inventoryImage="industrialtest_electric_hoe.png",
@@ -164,8 +162,7 @@ minetest.register_craft({
})
if industrialtest.mclAvailable then
- industrialtest.AdvancedElectricHoe=table.copy(industrialtest.ElectricHoeBase)
- industrialtest.internal.unpackTableInto(industrialtest.AdvancedElectricHoe,{
+ industrialtest.AdvancedElectricHoe=industrialtest.internal.derive(industrialtest.ElectricHoeBase,{
name="industrialtest:advanced_electric_hoe",
description=S("Advanced Electric Hoe"),
inventoryImage="industrialtest_advanced_electric_hoe.png",
diff --git a/tools/electric_saber.lua b/tools/electric_saber.lua
index d149812..2ded8a6 100644
--- a/tools/electric_saber.lua
+++ b/tools/electric_saber.lua
@@ -17,8 +17,7 @@
-- This entire code is super hacky, I'm aware.
local S=minetest.get_translator("industrialtest")
-industrialtest.ElectricSaberBase=table.copy(industrialtest.ActivatedElectricTool)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricSaberBase,{
+industrialtest.ElectricSaberBase=industrialtest.internal.derive(industrialtest.ActivatedElectricTool,{
fullPunchInterval=0.5,
digs={"snappy"},
hits={"fleshy"},
@@ -55,8 +54,7 @@ function industrialtest.ElectricSaberBase.getOpPower(self,itemstack)
return 500
end
-industrialtest.ElectricSaber=table.copy(industrialtest.ElectricSaberBase)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricSaber,{
+industrialtest.ElectricSaber=industrialtest.internal.derive(industrialtest.ElectricSaberBase,{
name="industrialtest:electric_saber",
description=S("Electric Saber"),
inventoryImage="industrialtest_electric_saber.png",
@@ -81,8 +79,7 @@ minetest.register_craft({
}
})
-industrialtest.AdvancedElectricSaber=table.copy(industrialtest.ElectricSaberBase)
-industrialtest.internal.unpackTableInto(industrialtest.AdvancedElectricSaber,{
+industrialtest.AdvancedElectricSaber=industrialtest.internal.derive(industrialtest.ElectricSaberBase,{
name="industrialtest:advanced_electric_saber",
description=S("Advanced Electric Saber"),
inventoryImage="industrialtest_advanced_electric_saber.png",
diff --git a/tools/electric_tool.lua b/tools/electric_tool.lua
index 80ad47b..6184d20 100644
--- a/tools/electric_tool.lua
+++ b/tools/electric_tool.lua
@@ -14,8 +14,7 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see .
-industrialtest.ElectricTool=table.copy(industrialtest.Tool)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricTool,{
+industrialtest.ElectricTool=industrialtest.internal.derive(industrialtest.Tool,{
prepare=industrialtest.ElectricItem.prepare
})
diff --git a/tools/fluid_storage.lua b/tools/fluid_storage.lua
index e52bfb1..decbb9c 100644
--- a/tools/fluid_storage.lua
+++ b/tools/fluid_storage.lua
@@ -16,8 +16,7 @@
local S=minetest.get_translator("industrialtest")
-industrialtest.FuelCan=table.copy(industrialtest.FluidContainerItem)
-industrialtest.internal.unpackTableInto(industrialtest.FuelCan,{
+industrialtest.FuelCan=industrialtest.internal.derive(industrialtest.FluidContainerItem,{
name="industrialtest:fuel_can",
description=S("Fuel Can"),
inventoryImage="industrialtest_fuel_can.png",
diff --git a/tools/jetpack.lua b/tools/jetpack.lua
index d025eba..f10cd03 100644
--- a/tools/jetpack.lua
+++ b/tools/jetpack.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.JetpackBase=table.copy(industrialtest.GearTool)
-industrialtest.internal.unpackTableInto(industrialtest.JetpackBase,{
+industrialtest.JetpackBase=industrialtest.internal.derive(industrialtest.GearTool,{
part="torso"
})
local soundHandles = {}
@@ -47,8 +46,7 @@ function industrialtest.JetpackBase.update(self, player, inv, itemstack, dtime)
return false
end
-industrialtest.Jetpack=table.copy(industrialtest.JetpackBase)
-industrialtest.internal.unpackTableInto(industrialtest.Jetpack,{
+industrialtest.Jetpack=industrialtest.internal.derive(industrialtest.JetpackBase,{
-- _v is hack to suppress "Registered armor doesn't have material at the end of registration name" warning from 3D Armor.
name="industrialtest:jetpack_v",
description=S("Jetpack"),
@@ -84,8 +82,7 @@ minetest.register_craft({
}
})
-industrialtest.ElectricJetpack=table.copy(industrialtest.JetpackBase)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricJetpack,{
+industrialtest.ElectricJetpack=industrialtest.internal.derive(industrialtest.JetpackBase,{
name="industrialtest:electric_jetpack",
description=S("Electric Jetpack"),
inventoryImage="industrialtest_electric_jetpack_inv.png",
diff --git a/tools/mining_laser.lua b/tools/mining_laser.lua
index 573f62e..3f49904 100644
--- a/tools/mining_laser.lua
+++ b/tools/mining_laser.lua
@@ -108,8 +108,7 @@ minetest.register_entity("industrialtest:mining_laser_beam",{
on_step=industrialtest.MiningLaserBeam.onStep
})
-industrialtest.MiningLaser=table.copy(industrialtest.ElectricTool)
-industrialtest.internal.unpackTableInto(industrialtest.MiningLaser,{
+industrialtest.MiningLaser=industrialtest.internal.derive(industrialtest.ElectricTool,{
name="industrialtest:mining_laser",
description=S("Mining Laser (Mode 1)"),
inventoryImage="industrialtest_mining_laser.png",
diff --git a/tools/nano_suit.lua b/tools/nano_suit.lua
index 44b2d3c..2c2b2da 100644
--- a/tools/nano_suit.lua
+++ b/tools/nano_suit.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.NanoSuit=table.copy(industrialtest.ElectricArmor)
-industrialtest.internal.unpackTableInto(industrialtest.NanoSuit,{
+industrialtest.NanoSuit=industrialtest.internal.derive(industrialtest.ElectricArmor,{
name="industrialtest:nano",
elements={
{
diff --git a/tools/power_storage.lua b/tools/power_storage.lua
index b14bfb8..a365d87 100644
--- a/tools/power_storage.lua
+++ b/tools/power_storage.lua
@@ -16,8 +16,7 @@
local S=minetest.get_translator("industrialtest")
-industrialtest.REBattery=table.copy(industrialtest.ElectricItem)
-industrialtest.internal.unpackTableInto(industrialtest.REBattery,{
+industrialtest.REBattery=industrialtest.internal.derive(industrialtest.ElectricItem,{
name="industrialtest:re_battery",
description=S("RE-Battery"),
inventoryImage="industrialtest_re_battery.png",
@@ -37,8 +36,7 @@ minetest.register_craft({
}
})
-industrialtest.AdvancedREBattery=table.copy(industrialtest.ElectricItem)
-industrialtest.internal.unpackTableInto(industrialtest.AdvancedREBattery,{
+industrialtest.AdvancedREBattery=industrialtest.internal.derive(industrialtest.ElectricItem,{
name="industrialtest:advanced_re_battery",
description=S("Advanced RE-Battery"),
inventoryImage="industrialtest_advanced_re_battery.png",
@@ -58,8 +56,7 @@ minetest.register_craft({
}
})
-industrialtest.EnergyCrystal=table.copy(industrialtest.ElectricItem)
-industrialtest.internal.unpackTableInto(industrialtest.EnergyCrystal,{
+industrialtest.EnergyCrystal=industrialtest.internal.derive(industrialtest.ElectricItem,{
name="industrialtest:energy_crystal",
description=S("Energy Crystal"),
inventoryImage="industrialtest_energy_crystal.png",
@@ -79,8 +76,7 @@ minetest.register_craft({
}
})
-industrialtest.LapotronCrystal=table.copy(industrialtest.ElectricItem)
-industrialtest.internal.unpackTableInto(industrialtest.LapotronCrystal,{
+industrialtest.LapotronCrystal=industrialtest.internal.derive(industrialtest.ElectricItem,{
name="industrialtest:lapotron_crystal",
description=S("Lapotron Crystal"),
inventoryImage="industrialtest_lapotron_crystal.png",
diff --git a/tools/quantum_suit.lua b/tools/quantum_suit.lua
index 0ca5e56..267e357 100644
--- a/tools/quantum_suit.lua
+++ b/tools/quantum_suit.lua
@@ -16,8 +16,7 @@
local S=minetest.get_translator("industrialtest")
-industrialtest.QuantumArmorBase=table.copy(industrialtest.ElectricGearTool)
-industrialtest.internal.unpackTableInto(industrialtest.QuantumArmorBase,{
+industrialtest.QuantumArmorBase=industrialtest.internal.derive(industrialtest.ElectricGearTool,{
flow=industrialtest.api.ivPowerFlow,
capacity=10000000
})
@@ -32,8 +31,7 @@ function industrialtest.QuantumArmorBase.getPowerPerDamageForItem(self,itemstack
return 30
end
-industrialtest.QuantumHelmet=table.copy(industrialtest.QuantumArmorBase)
-industrialtest.internal.unpackTableInto(industrialtest.QuantumHelmet,{
+industrialtest.QuantumHelmet=industrialtest.internal.derive(industrialtest.QuantumArmorBase,{
name="industrialtest:quantum_helmet",
description=S("Quantum Helmet"),
inventoryImage="industrialtest_quantum_helmet_inv.png",
@@ -79,8 +77,7 @@ minetest.register_craft({
}
})
-industrialtest.QuantumBodyarmor=table.copy(industrialtest.QuantumArmorBase)
-industrialtest.internal.unpackTableInto(industrialtest.QuantumBodyarmor,{
+industrialtest.QuantumBodyarmor=industrialtest.internal.derive(industrialtest.QuantumArmorBase,{
name="industrialtest:quantum_bodyarmor",
description=S("Quantum Bodyarmor"),
inventoryImage="industrialtest_quantum_bodyarmor_inv.png",
@@ -107,8 +104,7 @@ minetest.register_craft({
}
})
-industrialtest.QuantumLeggings=table.copy(industrialtest.QuantumArmorBase)
-industrialtest.internal.unpackTableInto(industrialtest.QuantumLeggings,{
+industrialtest.QuantumLeggings=industrialtest.internal.derive(industrialtest.QuantumArmorBase,{
name="industrialtest:quantum_leggings",
description=S("Quantum Leggings"),
inventoryImage="industrialtest_quantum_leggings_inv.png",
@@ -167,8 +163,7 @@ minetest.register_craft({
}
})
-industrialtest.QuantumBoots=table.copy(industrialtest.QuantumArmorBase)
-industrialtest.internal.unpackTableInto(industrialtest.QuantumBoots,{
+industrialtest.QuantumBoots=industrialtest.internal.derive(industrialtest.QuantumArmorBase,{
name="industrialtest:quantum_boots",
description=S("Quantum Boots"),
inventoryImage="industrialtest_quantum_boots_inv.png",
diff --git a/tools/scanner.lua b/tools/scanner.lua
index ee84b5b..31f325d 100644
--- a/tools/scanner.lua
+++ b/tools/scanner.lua
@@ -16,8 +16,7 @@
local S=minetest.get_translator("industrialtest")
-industrialtest.Scanner=table.copy(industrialtest.ElectricTool)
-industrialtest.internal.unpackTableInto(industrialtest.Scanner,{
+industrialtest.Scanner=industrialtest.internal.derive(industrialtest.ElectricTool,{
define={onUse=true}
})
@@ -87,8 +86,7 @@ function industrialtest.OreScanner.isOre(node)
return string.find(node.name,":stone_with_")
end
-industrialtest.ODScanner=table.copy(industrialtest.OreScanner)
-industrialtest.internal.unpackTableInto(industrialtest.ODScanner,{
+industrialtest.ODScanner=industrialtest.internal.derive(industrialtest.OreScanner,{
name="industrialtest:od_scanner",
description=S("OD Scanner"),
inventoryImage="industrialtest_od_scanner.png",
@@ -114,8 +112,7 @@ minetest.register_craft({
}
})
-industrialtest.OVScanner=table.copy(industrialtest.OreScanner)
-industrialtest.internal.unpackTableInto(industrialtest.OVScanner,{
+industrialtest.OVScanner=industrialtest.internal.derive(industrialtest.OreScanner,{
name="industrialtest:ov_scanner",
description=S("OV Scanner"),
inventoryImage="industrialtest_ov_scanner.png",
diff --git a/tools/solar_helmet.lua b/tools/solar_helmet.lua
index 7bebf6e..232a3e9 100644
--- a/tools/solar_helmet.lua
+++ b/tools/solar_helmet.lua
@@ -15,8 +15,7 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.SolarHelmet=table.copy(industrialtest.GearTool)
-industrialtest.internal.unpackTableInto(industrialtest.SolarHelmet,{
+industrialtest.SolarHelmet=industrialtest.internal.derive(industrialtest.GearTool,{
name="industrialtest:solar_helmet",
description=S("Solar Helmet"),
inventoryImage="industrialtest_solar_helmet_inv.png",
diff --git a/tools/static_boots.lua b/tools/static_boots.lua
index a553339..cc36a12 100644
--- a/tools/static_boots.lua
+++ b/tools/static_boots.lua
@@ -15,11 +15,9 @@
-- along with this program. If not, see .
local S=minetest.get_translator("industrialtest")
-industrialtest.StaticBoots=table.copy(industrialtest.GearTool)
local image=(industrialtest.mtgAvailable and "industrialtest_static_boots.png" or "industrialtest_mcl_static_boots.png")
-
-industrialtest.internal.unpackTableInto(industrialtest.StaticBoots,{
+industrialtest.StaticBoots=industrialtest.internal.derive(industrialtest.GearTool,{
name="industrialtest:static_boots",
description=S("Static Boots"),
inventoryImage="industrialtest_static_boots_inv.png",
diff --git a/tools/tool.lua b/tools/tool.lua
index b6ef92f..f70e6a5 100644
--- a/tools/tool.lua
+++ b/tools/tool.lua
@@ -14,8 +14,7 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see .
-industrialtest.Tool=table.copy(industrialtest.Item)
-industrialtest.internal.unpackTableInto(industrialtest.Tool,{
+industrialtest.Tool=industrialtest.internal.derive(industrialtest.Item,{
define={}
})
diff --git a/tools/treetap.lua b/tools/treetap.lua
index fac154d..e6a2e7b 100644
--- a/tools/treetap.lua
+++ b/tools/treetap.lua
@@ -38,8 +38,7 @@ local function onTreetapUse(user,pointed)
end
local S=minetest.get_translator("industrialtest")
-industrialtest.Treetap=table.copy(industrialtest.Tool)
-industrialtest.internal.unpackTableInto(industrialtest.Treetap,{
+industrialtest.Treetap=industrialtest.internal.derive(industrialtest.Tool,{
name="industrialtest:treetap",
define={onPlace=true},
description=S("Treetap"),
@@ -65,8 +64,7 @@ minetest.register_craft({
}
})
-industrialtest.ElectricTreetap=table.copy(industrialtest.ElectricTool)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricTreetap,{
+industrialtest.ElectricTreetap=industrialtest.internal.derive(industrialtest.ElectricTool,{
name="industrialtest:electric_treetap",
define={onPlace=true},
description=S("Electric Treetap"),
diff --git a/tools/wrench.lua b/tools/wrench.lua
index 162dbfb..56efd35 100644
--- a/tools/wrench.lua
+++ b/tools/wrench.lua
@@ -40,8 +40,7 @@ local function onWrenchUse(user,pointed)
return true
end
-industrialtest.Wrench=table.copy(industrialtest.Tool)
-industrialtest.internal.unpackTableInto(industrialtest.Wrench,{
+industrialtest.Wrench=industrialtest.internal.derive(industrialtest.Tool,{
name="industrialtest:wrench",
define={onUse=true},
description=S("Wrench"),
@@ -66,8 +65,7 @@ minetest.register_craft({
}
})
-industrialtest.ElectricWrench=table.copy(industrialtest.ElectricTool)
-industrialtest.internal.unpackTableInto(industrialtest.ElectricWrench,{
+industrialtest.ElectricWrench=industrialtest.internal.derive(industrialtest.ElectricTool,{
name="industrialtest:electric_wrench",
define={onUse=true},
description=S("Electric Wrench"),