Introduce utility function for deriving table fields

This commit is contained in:
2026-05-28 21:15:00 +02:00
parent d47c4ad2ae
commit ff76d6f012
45 changed files with 96 additions and 173 deletions
+3 -6
View File
@@ -15,8 +15,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
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",
+3 -6
View File
@@ -15,8 +15,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
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",
+3 -6
View File
@@ -15,8 +15,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
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",
+1 -2
View File
@@ -14,7 +14,6 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
industrialtest.ElectricGearTool=table.copy(industrialtest.GearTool)
industrialtest.internal.unpackTableInto(industrialtest.ElectricGearTool,{
industrialtest.ElectricGearTool=industrialtest.internal.derive(industrialtest.GearTool,{
prepare=industrialtest.ElectricItem.prepare
})
+3 -6
View File
@@ -15,8 +15,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
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",
+3 -6
View File
@@ -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",
+1 -2
View File
@@ -14,8 +14,7 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
industrialtest.ElectricTool=table.copy(industrialtest.Tool)
industrialtest.internal.unpackTableInto(industrialtest.ElectricTool,{
industrialtest.ElectricTool=industrialtest.internal.derive(industrialtest.Tool,{
prepare=industrialtest.ElectricItem.prepare
})
+1 -2
View File
@@ -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",
+3 -6
View File
@@ -15,8 +15,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
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",
+1 -2
View File
@@ -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",
+1 -2
View File
@@ -15,8 +15,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
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={
{
+4 -8
View File
@@ -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",
+5 -10
View File
@@ -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",
+3 -6
View File
@@ -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",
+1 -2
View File
@@ -15,8 +15,7 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
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",
+1 -3
View File
@@ -15,11 +15,9 @@
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
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",
+1 -2
View File
@@ -14,8 +14,7 @@
-- You should have received a copy of the GNU General Public License
-- along with this program. If not, see <http://www.gnu.org/licenses/>.
industrialtest.Tool=table.copy(industrialtest.Item)
industrialtest.internal.unpackTableInto(industrialtest.Tool,{
industrialtest.Tool=industrialtest.internal.derive(industrialtest.Item,{
define={}
})
+2 -4
View File
@@ -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"),
+2 -4
View File
@@ -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"),