32 Commits

Author SHA1 Message Date
0219e61908 Release IndustrialTest 2.1.0 (stable, release) 2025-12-17 23:32:14 +01:00
0329750877 Add some missing recipes with UU-Matter 2025-12-17 23:29:53 +01:00
27479f302c Update README.md 2025-12-17 23:29:39 +01:00
909f20992e Add Polish (pl_PL) locale 2025-12-16 15:06:23 +01:00
c041f609ee Add missing strings from guide to locale template 2025-12-16 15:05:57 +01:00
52c78915c0 Some final fixes in guide text 2025-12-16 15:01:46 +01:00
1603bdef90 Add missing Pipeworks compatibility for recent machines 2025-12-13 14:51:10 +01:00
ca95a94a95 Add missing short strings to locale template 2025-12-11 23:30:53 +01:00
a0abab4e1c Add translation gettext template
Note: This template doesn't yet include strings from guide
2025-12-10 23:05:06 +01:00
c192789b63 Describe Wrench in guide 2025-12-10 22:54:49 +01:00
eb5b2ba127 Describe Treetap in guide 2025-12-10 22:47:26 +01:00
2a6d038e5a Describe Static Boots in guide 2025-12-09 19:53:47 +01:00
bf193e98cd Describe Solar Helmet in guide 2025-12-09 19:47:53 +01:00
699db0f557 Add missing picture for last entry in guide 2025-12-08 19:50:45 +01:00
387a77c54b Describe scanners in guide 2025-12-08 15:12:54 +01:00
a2567cae54 Describe Quantum Suit in guide 2025-12-08 14:53:00 +01:00
29b5a6c996 Use mcl_formspec.get_itemslot_bg_v4 instead of mcl_formspec.get_itemslot_bg 2025-12-07 18:19:19 +01:00
42378a4331 Describe item power storage in guide 2025-12-07 11:03:27 +01:00
bd2e7f56f4 Describe Nano Suit in guide 2025-12-07 10:54:42 +01:00
c7ff88087e Fix contents scrollbar in guide 2025-12-06 23:15:42 +01:00
cd585391ec Describe Mining Laser in guide 2025-12-06 15:13:12 +01:00
d50908dedb Describe jetpacks in guide 2025-12-06 14:51:45 +01:00
ae26f0fe58 Describe electric toolset in guide 2025-12-05 09:46:40 +01:00
a210cc78e0 Describe BatPacks in guide 2025-12-05 09:32:25 +01:00
f480f16340 Fix oversight in LapPack definition 2025-12-05 09:32:06 +01:00
6a37a84114 Describe machine upgrades in guide 2025-12-04 22:50:55 +01:00
eb546fd07b Replace variable parsing in guide with pattern matching 2025-12-04 22:45:23 +01:00
6c93528d13 Describe Wind Mill in guide 2025-12-04 21:32:01 +01:00
520f3717d6 Fix Wind Mill when used in MCL 2025-12-04 21:26:49 +01:00
75894128f0 Don't use mcl_fences.register_fence_def if not present 2025-12-03 23:51:19 +01:00
7efdf28b37 Describe chargepads in guide 2025-12-03 23:11:01 +01:00
8125d280da Fix fluid generator formspec not updating after putting fluid 2025-12-02 21:45:55 +01:00
31 changed files with 3947 additions and 104 deletions

View File

@@ -1,25 +1,35 @@
# IndustrialTest # IndustrialTest
IndustrialTest is a mod for [Minetest](https://www.minetest.net/) that adds various tech and machinery related stuff. IndustrialTest is a mod for [Minetest](https://luanti.org) that adds various tech and machinery related stuff.
## Guide
Guide can be accessed in-game using `/industrialtest_guide` command.
## Compatibility ## Compatibility
Currently IndustrialTest supports following games: Currently IndustrialTest supports following games:
- [Minetest Game](https://content.minetest.net/packages/Minetest/minetest_game) and derivatives - [Minetest Game](https://content.luanti.org/packages/Minetest/minetest_game) and derivatives
- [MineClone2](https://content.minetest.net/packages/Wuzzy/mineclone2/) and derivatives - [VoxeLibre](https://content.luanti.org/packages/Wuzzy/mineclone2) and derivatives
## Additional dependencies ## Additional dependencies
- Minetest Game - Minetest Game
- [3D Armor](https://content.minetest.net/packages/stu/3d_armor) - [3D Armor](https://content.luanti.org/packages/stu/3d_armor)
- VoxeLibre - VoxeLibre
- none - none
## Optional dependencies ## Optional dependencies
- [Rubber Addon for MineClone](https://content.minetest.net/packages/biochemist/mcl_rubber) - [Rubber Addon for MineClone](https://content.luanti.org/packages/biochemist/mcl_rubber)
- [Pipeworks](https://content.minetest.net/packages/VanessaE/pipeworks) - [Pipeworks](https://content.luanti.org/packages/VanessaE/pipeworks)
- [Logistica](https://content.minetest.net/packages/ZenonSeth/logistica) - [Logistica](https://content.luanti.org/packages/ZenonSeth/logistica)
- [Mesecons](https://content.minetest.net/packages/Jeija/mesecons) - [Mesecons](https://content.luanti.org/packages/Jeija/mesecons)
## Locale
Mod is available in following languages:
- English / en_US (base)
- Polish / pl_PL (by mrkubax10)
New translations highly appreciated!
## Contributors ## Contributors
- mrkubax10 <mrkubax10@onet.pl or mrkubax10 at irc.libera.chat> [programming, some graphics] - mrkubax10 <mrkubax10@onet.pl or mrkubax10 at irc.libera.chat> [programming, some graphics]
- HandfulOfFrogs <<handfuloffrogs@gmail.com>> [some programming, graphics] - HandfulOfFrogs <<handfuloffrogs@gmail.com>> [some programming, graphics]
- LuanHawk <Discord: LuanHawk#8733> [lead graphics] - LuanHawk <Discord: luanhawk> [lead graphics]
- Migdyn <<temp1@cubesoftware.xyz>> [graphics] - Migdyn <<temp1@cubesoftware.xyz>> [graphics]

View File

@@ -385,6 +385,29 @@ addPipeworksCompatibility("industrialtest:induction_furnace",{
{listname="src"} {listname="src"}
},"dst") },"dst")
-- Miner
addPipeworksCompatibility("industrialtest:miner",{
{
y=1,
listname="powerStorage"
},
{listname="src"}
},"dst")
-- Pump
addPipeworksCompatibility("industrialtest:pump",{
{
y=1,
listname="powerStorage"
},
{listname="src"}
},"dst")
-- Magnetizer
addPipeworksCompatibility("industrialtest:magnetizer",{
{listname="powerStorage"}
},"powerStorage")
-- Simple electric item processors -- Simple electric item processors
for _,name in ipairs(industrialtest.api.tags.simpleElectricItemProcessor) do for _,name in ipairs(industrialtest.api.tags.simpleElectricItemProcessor) do
addPipeworksCompatibility(name,{ addPipeworksCompatibility(name,{

View File

@@ -101,7 +101,7 @@ if industrialtest.mclAvailable then
mcl_explosions.explode(pos,radius,{drop_chance=dropChance}) mcl_explosions.explode(pos,radius,{drop_chance=dropChance})
end end
industrialtest.internal.getItemSlotBg=mcl_formspec.get_itemslot_bg industrialtest.internal.getItemSlotBg=mcl_formspec.get_itemslot_bg_v4
elseif industrialtest.mtgAvailable then elseif industrialtest.mtgAvailable then
industrialtest.stackMax=99 industrialtest.stackMax=99
@@ -528,7 +528,7 @@ if industrialtest.mclAvailable then
industrialtest.elementKeys.stoneWithCopper="mcl_copper:stone_with_copper" industrialtest.elementKeys.stoneWithCopper="mcl_copper:stone_with_copper"
industrialtest.elementKeys.leadLump="industrialtest:raw_lead" industrialtest.elementKeys.leadLump="industrialtest:raw_lead"
industrialtest.elementKeys.ironPickaxe="mcl_tools:pick_iron" industrialtest.elementKeys.ironPickaxe="mcl_tools:pick_iron"
industrialtest.elementKeys.ironHelmet="mcl_tools:helmet_iron" industrialtest.elementKeys.ironHelmet="mcl_armor:helmet_iron"
industrialtest.elementKeys.ironBoots="mcl_armor:boots_iron" industrialtest.elementKeys.ironBoots="mcl_armor:boots_iron"
industrialtest.elementKeys.lavaSource="mcl_core:lava_source" industrialtest.elementKeys.lavaSource="mcl_core:lava_source"
industrialtest.elementKeys.waterSource="mcl_core:water_source" industrialtest.elementKeys.waterSource="mcl_core:water_source"

780
guide.lua
View File

@@ -66,12 +66,15 @@ local function createMachineInformationTable(fields,machineName,num)
local fieldLabels={ local fieldLabels={
inputVoltage="Input voltage level", inputVoltage="Input voltage level",
outputVoltage="Output voltage level", outputVoltage="Output voltage level",
lowVoltage="Low voltage", voltage="Voltage level",
highVoltage="High voltage", lowVoltage="Low voltage level",
highVoltage="High voltage level",
damageRed="Damage reduction",
recipe="Recipe type", recipe="Recipe type",
powerCapacity="Power capacity", powerCapacity="Power capacity",
opPower="Power per operation", opPower="Power per operation",
powerPerFuel="Power per fuel unit", powerPerFuel="Power per fuel unit",
uses="Uses",
efficiency="Default efficiency" efficiency="Default efficiency"
} }
@@ -84,7 +87,7 @@ local function createMachineInformationTable(fields,machineName,num)
}) })
end end
return createTable(rows,false,string.format("Figure %d. Machine information for %s",(num or 1),machineName)) return createTable(rows,false,S("Figure @1. Information for @2",(num or 1),machineName))
end end
local pages={ local pages={
@@ -204,7 +207,7 @@ local pages={
[[ [[
<big>||Canning Machine||</big> <big>||Canning Machine||</big>
<left> <left>
||Canning Machine is used to move certain fluid from one item to another. The common usage is to refill fuel in <item name="industrialtest:jetpack_v" height="{{ITEM_HEIGHT}}"> <b>Jetpack</b> or <item name="industrialtest:fuel_can" height="{{ITEM_HEIGHT}}"> <b>Fuel Can</b>.|| ||Canning Machine is used to move certain fluid from one item to another. The common usage is to refill fuel in <item name="industrialtest:jetpack_v" height="{{ITEM_HEIGHT}}"> <b>Jetpack</b> or <item name="industrialtest:fuel_can" height="{{ITEM_HEIGHT}}"> <b>Fuel Can</b>.||
</left> </left>
]], ]],
createMachineInformationTable({ createMachineInformationTable({
@@ -232,6 +235,25 @@ local pages={
} }
}, },
{
name="chargepads",
title=S("Chargepads"),
icon="industrialtest:batbox_chargepad",
content={
[[
<big>||Chargepads||</big>
<left>
||Chargepad is similar in functionality to regular power storage like <item name="industrialtest:batbox" height="{{ITEM_HEIGHT}}"> <b>BatBox</b>. The additional feature is that it can charge equipped electric gear and selected item in hotbar while player is standing on it. There is a chargepad corresponding to each power storage node and they have exact same information so there is no need to list that again here. While charging the top of chargepad changes color to blue.||
</left>
<mono>
----
</mono>
<img name="industrialtest_guide_chargepad.png">
<left>||Picture 1. Unused <item name="industrialtest:batbox_chargepad" height="{{ITEM_HEIGHT}}"> <b>BatBox Chargepad</b> attached to <item name="industrialtest:solar_panel" height="{{ITEM_HEIGHT}}"> <b>Solar Panel</b>.||</left>
]]
}
},
{ {
name="compressor", name="compressor",
title=S("Compressor"), title=S("Compressor"),
@@ -1137,34 +1159,767 @@ local pages={
<left>||Picture 2. Water Mill in water.||</left> <left>||Picture 2. Water Mill in water.||</left>
]] ]]
} }
},
{
name="windMill",
title=S("Wind Mill"),
icon="industrialtest:wind_mill",
content={
[[
<big>||Wind Mill||</big>
<left>
||Wind Mill can be used to produce energy from wind moving it's fan. The amount of produced power depends on height where Wind Mill is put, the higher the more power and it is indicated by icon in formspec. Wind Mill can't be put next to any node or otherwise it won't produce power.||
</left>
]],
createMachineInformationTable({
{
name="outputVoltage",
value="LV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.WindMill.capacity)
}
},S("Wind Mill")),
[[
<img name="industrialtest_guide_wind_mill.png">
<left>||Picture 1. Wind Mill producing some power.||</left>
]]
}
},
{
name="upgrades",
title=S("Machine upgrades"),
icon="industrialtest:overclocker_upgrade",
content={
[[
<big>||Machine upgrades||</big>
<left>
||Upgrades can be put into special slots in machine formspec for this purpose. They increase machine capabilities while changing other properties. Not all machines can accept upgrades, however this can be determined by presence of four slots on right of formspec where upgrades are put. The following are all machine upgrades:||
</left>
<left>
||<item name="industrialtest:overclocker_upgrade" height="{{ITEM_HEIGHT}}"> <b>Overclocker Upgrade</b> - speeds up the machine.||
||<item name="industrialtest:power_storage_upgrade" height="{{ITEM_HEIGHT}}"> <b>Power Storage Upgrade</b> - increases the amount of power that machine can store.||
||<item name="industrialtest:transformer_upgrade" height="{{ITEM_HEIGHT}}"> <b>Transformer Upgrade</b> - allows machine to be connected to higher voltage by one level.||
</left>
<mono>--</mono>
<img name="industrialtest_guide_upgrades.png">
<left>||Picture 1. <item name="industrialtest:electric_furnace" height="{{ITEM_HEIGHT}}"> <b>Electric Furnace</b> with <item name="industrialtest:overclocker_upgrade" height="{{ITEM_HEIGHT}}"> <b>Overclocker Upgrade</b>.||</left>
]]
}
},
{
name="batpacks",
title=S("BatPacks"),
icon="industrialtest:batpack_v",
content={
[[
<big>||BatPacks||</big>
<left>
||BatPack when equipped charges currently wielded electric item. There are two types of BatPacks:||
</left>
<left>
||<item name="industrialtest:batpack_v" height="{{ITEM_HEIGHT}}"> <b>BatPack</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="LV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.BatPack.capacity)
}
},S("BatPack")),
[[
<mono></mono>
<left>
||<item name="industrialtest:lappack_v" height="{{ITEM_HEIGHT}}"> <b>LapPack</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="MV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.LapPack.capacity)
}
},S("LapPack"),2)
}
},
{
name="electricToolset",
title=S("Electric toolset"),
icon="industrialtest:electric_drill",
content={
[[
<big>||Electric toolset||</big>
<left>
||Electric toolset consists of typical tools like pickaxe but powered by electricity. While used they don't wear out but instead discharge which allow them to be reused. When completely discharged it's still possible to use the tool but it will be considerably slower. Those are (regular and advanced version):||
</left>
<left>
||<item name="industrialtest:electric_chainsaw" height="{{ITEM_HEIGHT}}"> <b>Electric Chainsaw</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="LV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.ElectricChainsaw.capacity)
}
},S("Electric Chainsaw")),
[[
<mono></mono>
<left>
||<item name="industrialtest:electric_drill" height="{{ITEM_HEIGHT}}"> <b>Electric Drill</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="LV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.ElectricDrill.capacity)
}
},S("Electric Drill"),2),
[[
<mono></mono>
||<item name="industrialtest:electric_hoe" height="{{ITEM_HEIGHT}}"> <b>Electric Hoe</b>||
]],
createMachineInformationTable({
{
name="voltage",
value="LV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.ElectricHoe.capacity)
}
},S("Electric Hoe"),3),
[[
<mono></mono>
||<item name="industrialtest:electric_saber" height="{{ITEM_HEIGHT}}"> <b>Electric Saber</b>||
]],
createMachineInformationTable({
{
name="voltage",
value="LV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.ElectricSaber.capacity)
}
},S("Electric Saber"),4),
[[
<mono></mono>
||<item name="industrialtest:electric_treetap" height="{{ITEM_HEIGHT}}"> <b>Electric Treetap</b>||
]],
createMachineInformationTable({
{
name="voltage",
value="LV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.ElectricTreetap.capacity)
}
},S("Electric Treetap"),5)
}
},
{
name="itemPowerStorage",
title=S("Item power storage"),
icon="industrialtest:re_battery",
content={
[[
<big>||Item power storage||</big>
<left>
||There are items which purpose is solely to store power in them. Those are following:||
</left>
<left>
||<item name="industrialtest:re_battery" height="{{ITEM_HEIGHT}}"> <b>RE-Battery</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="LV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.REBattery.capacity)
}
},S("RE-Battery")),
[[
<mono></mono>
<left>
||<item name="industrialtest:advanced_re_battery" height="{{ITEM_HEIGHT}}"> <b>Advanced RE-Battery</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="MV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.AdvancedREBattery.capacity)
}
},S("Advanced RE-Battery"),2),
[[
<mono></mono>
<left>
||<item name="industrialtest:energy_crystal" height="{{ITEM_HEIGHT}}"> <b>Energy Crystal</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="HV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.EnergyCrystal.capacity)
}
},S("Energy Crystal"),3),
[[
<mono></mono>
<left>
||<item name="industrialtest:lapotron_crystal" height="{{ITEM_HEIGHT}}"> <b>Lapotron Crystal</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="EV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.LapotronCrystal.capacity)
}
},S("Lapotron Crystal"),4)
}
},
{
name="jetpacks",
title=S("Jetpacks"),
icon="industrialtest:jetpack_v",
content={
[[
<big>||Jetpacks||</big>
<left>
||Jetpacks allow to combat against the gravity after pressing the jump key. They are equipped as chest part of armor. There are two jetpack types:||
</left>
<left>
||<item name="industrialtest:jetpack_v" height="{{ITEM_HEIGHT}}"> <b>Jetpack</b> - regular jetpack which is powered by fuel, can be refilled in <item name="industrialtest:canning_machine" height="{{ITEM_HEIGHT}}"> <b>Canning Machine</b>.||
</left>
]],
createMachineInformationTable({
{
name="Fuel capacity",
value=string.format("%d mB",industrialtest.Jetpack.capacity)
}
},S("Jetpack")),
[[
<mono></mono>
<left>
||<item name="industrialtest:electric_jetpack" height="{{ITEM_HEIGHT}}"> <b>Electric Jetpack</b> - jetpack powered by electricity.||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="LV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.ElectricJetpack.capacity)
}
},S("Electric Jetpack"),2)
}
},
{
name="miningLaser",
title=S("Mining Laser"),
icon="industrialtest:mining_laser",
content={
[[
<big>||Mining Laser||</big>
<left>
||Mining Laser is a tool that emits beam when used. Depending on the mode beam will cause different a result:||
||Mode 1 - breaks nodes at full power, direction where player looks.||
||Mode 2 - breaks nodes at low power, direction where player looks.||
||Mode 3 - breaks nodes at full power, direction only horizontal.||
||Mode 4 - explodes after touching node, direction where player looks.||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="HV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.MiningLaser.capacity)
},
{
name="Power per operation (Mode 1)",
value="1250 EU"
},
{
name="Power per operation (Mode 2)",
value="100 EU"
},
{
name="Power per operation (Mode 3)",
value="100 EU"
},
{
name="Power per operation (Mode 4)",
value="5000 EU"
}
},S("Mining Laser"))
}
},
{
name="nanoSuit",
title=S("Nano Suit"),
icon="industrialtest:nano_bodyarmor",
content={
[[
<big>||Nano Suit||</big>
<left>
||Nano Suit is an armor which with power of electricity can reduce damage which player takes. It consists of following parts:||
</left>
<left>
||<item name="industrialtest:nano_helmet" height="{{ITEM_HEIGHT}}"> <b>Nano Helmet</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="EV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.NanoSuit.capacity)
},
{
name="opPower",
value=string.format("%d EU",industrialtest.NanoSuit:getPowerPerDamageForItem())
},
{
name="damageRed",
value="0.12"
}
},S("Nano Helmet")),
[[
<mono></mono>
<left>
||<item name="industrialtest:nano_bodyarmor" height="{{ITEM_HEIGHT}}"> <b>Nano Bodyarmor</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="EV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.NanoSuit.capacity)
},
{
name="opPower",
value=string.format("%d EU",industrialtest.NanoSuit:getPowerPerDamageForItem())
},
{
name="damageRed",
value="0.32"
}
},S("Nano Bodyarmor"),2),
[[
<mono></mono>
<left>
||<item name="industrialtest:nano_leggings" height="{{ITEM_HEIGHT}}"> <b>Nano Leggings</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="EV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.NanoSuit.capacity)
},
{
name="opPower",
value=string.format("%d EU",industrialtest.NanoSuit:getPowerPerDamageForItem())
},
{
name="damageRed",
value="0.3"
}
},S("Nano Leggings"),3),
[[
<mono></mono>
<left>
||<item name="industrialtest:nano_boots" height="{{ITEM_HEIGHT}}"> <b>Nano Boots</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="EV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.NanoSuit.capacity)
},
{
name="opPower",
value=string.format("%d EU",industrialtest.NanoSuit:getPowerPerDamageForItem())
},
{
name="damageRed",
value="0.24"
}
},S("Nano Boots"),4)
}
},
{
name="quantumSuit",
title=S("Quantum Suit"),
icon="industrialtest:quantum_bodyarmor",
content={
[[
<big>||Quantum Suit||</big>
<left>
||Quantum Suit like Nano Suit is also capable of reducing damage with usage of electricity. However unlike the later it also provides various additional effects depending on armor part.||
</left>
<left>
||<item name="industrialtest:quantum_helmet" height="{{ITEM_HEIGHT}}"> <b>Quantum Helmet</b> - when equipped refills player breath allowing for staying underwater longer.||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="IV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.QuantumHelmet.capacity)
},
{
name="Power per breath refill operation",
value=string.format("%d EU",industrialtest.QuantumHelmet._breathRefillOpPower)
},
{
name="opPower",
value=string.format("%d EU",industrialtest.QuantumHelmet:getPowerPerDamageForItem())
},
{
name="damageRed",
value=tostring(industrialtest.QuantumHelmet:getReducedDamageForItem())
}
},S("Quantum Helmet")),
[[
<mono></mono>
<left>
||<item name="industrialtest:quantum_bodyarmor" height="{{ITEM_HEIGHT}}"> <b>Quantum Bodyarmor</b> - when equipped works like jetpack.||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="IV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.QuantumBodyarmor.capacity)
},
{
name="Power per fly operation",
value=string.format("%d EU",industrialtest.ElectricJetpack._opPower)
},
{
name="opPower",
value=string.format("%d EU",industrialtest.QuantumBodyarmor:getPowerPerDamageForItem())
},
{
name="damageRed",
value=tostring(industrialtest.QuantumBodyarmor:getReducedDamageForItem())
}
},S("Quantum Bodyarmor"),2),
[[
<mono></mono>
<left>
||<item name="industrialtest:quantum_leggings" height="{{ITEM_HEIGHT}}"> <b>Quantum Leggings</b> - when equipped increases player speed.||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="IV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.QuantumLeggings.capacity)
},
{
name="Power per distance unit",
value=string.format("%d EU",industrialtest.QuantumLeggings._speedOpPower)
},
{
name="opPower",
value=string.format("%d EU",industrialtest.QuantumLeggings:getPowerPerDamageForItem())
},
{
name="damageRed",
value=tostring(industrialtest.QuantumLeggings:getReducedDamageForItem())
}
},S("Quantum Leggings"),3),
[[
<mono></mono>
<left>
||<item name="industrialtest:quantum_boots" height="{{ITEM_HEIGHT}}"> <b>Quantum Boots</b> - when equipped increases player jump height and provides fall damage reduction.||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="IV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.QuantumBoots.capacity)
},
{
name="Power per jump",
value=string.format("%d EU",industrialtest.QuantumBoots._jumpOpPower)
},
{
name="Power per fall damage unit",
value=string.format("%d EU",industrialtest.QuantumBoots._fallDamageReductionOpPower)
},
{
name="opPower",
value=string.format("%d EU",industrialtest.QuantumBoots:getPowerPerDamageForItem())
},
{
name="damageRed",
value=tostring(industrialtest.QuantumBoots:getReducedDamageForItem())
}
},S("Quantum Boots"),4)
}
},
{
name="scanners",
title=S("Scanners"),
icon="industrialtest:od_scanner",
content={
[[
<big>||Scanners||</big>
<left>
||These tools provide way of detecting nearby ores in terrain. Such tool can be put to appropriate slot in <item name="industrialtest:miner" height="{{ITEM_HEIGHT}}"> <b>Miner</b> so it mines ores detected by scanner. Furthermore it can be used by player as well. There are currently 2 ore scanners which differ in detection range:||
</left>
<left>
||<item name="industrialtest:od_scanner" height="{{ITEM_HEIGHT}}"> <b>OD Scanner</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="MV"
},
{
name="powerStorage",
value=string.format("%d EU",industrialtest.ODScanner.capacity)
},
{
name="opPower",
value=string.format("%d EU",industrialtest.ODScanner:getOpPower())
},
{
name="Distance",
value=tostring(industrialtest.ODScanner.distance)
},
{
name="Distance in Miner",
value=tostring(industrialtest.ODScanner.minerDistance)
}
},S("OD Scanner")),
[[
<mono></mono>
<left>
||<item name="industrialtest:ov_scanner" height="{{ITEM_HEIGHT}}"> <b>OV Scanner</b>||
</left>
]],
createMachineInformationTable({
{
name="voltage",
value="MV"
},
{
name="powerStorage",
value=string.format("%d EU",industrialtest.OVScanner.capacity)
},
{
name="opPower",
value=string.format("%d EU",industrialtest.OVScanner:getOpPower())
},
{
name="Distance",
value=tostring(industrialtest.OVScanner.distance)
},
{
name="Distance in Miner",
value=tostring(industrialtest.OVScanner.minerDistance)
}
},S("OV Scanner"),2),
[[
<mono></mono>
<img name="industrialtest_guide_od_scanner.png">
<left>||Picture 1. <item name="industrialtest:od_scanner" height="{{ITEM_HEIGHT}}"> <b>OD Scanner</b> detecting some ores.||</left>
]]
}
},
{
name="solarHelmet",
title=S("Solar Helmet"),
icon="industrialtest:solar_helmet",
content={
[[
<big>||Solar Helmet||</big>
<left>
||Solar Helmet consists of <item name="{{elementKeyIronHelmet}}" height="{{ITEM_HEIGHT}}"> <b>Iron Helmet</b> with <item name="industrialtest:solar_panel" height="{{ITEM_HEIGHT}}"> <b>Solar Panel</b> attached to the top of it. It is capable of charging electric gear equipped as armor while exposed to light. However it is less efficent than regular solar panels.||
</left>
]],
createMachineInformationTable({
{
name="efficiency",
value="0.5"
}
},S("Solar Panel"))
}
},
{
name="staticBoots",
title=S("Static Boots"),
icon="industrialtest:static_boots",
content={
[[
<big>||Static Boots||</big>
<left>
||Static Boots are <item name="{{elementKeyIronBoots}}" height="{{ITEM_HEIGHT}}"> <b>Iron Boots</b> with <item name="industrialtest:insulated_copper_cable" height="{{ITEM_HEIGHT}}"> <b>Insulated Copper Cable</b> attached to the bottom. They are capable of charging electric gear equipped as armor by using static electricity which is produced while player is walking.||
</left>
]],
createMachineInformationTable({
{
name="Nodes per EU",
value="5"
}
},S("Static Boots"))
}
},
{
name="treetap",
title=S("Treetap"),
icon=industrialtest.elementKeys.treetap,
content={
[[
<big>||Treetap||</big>
<left>
||Treetap is used to extract <item name="{{elementKeyStickyResin}}" height="{{ITEM_HEIGHT}}"> <b>Sticky Resin</b> from <item name="{{elementKeyRubberWood}}" height="{{ITEM_HEIGHT}}"> <b>Rubber Wood</b>.||
</left>
]],
createMachineInformationTable({
{
name="uses",
value=tostring(industrialtest.Treetap.uses)
}
},S("Treetap"))
}
},
{
name="wrench",
title=S("Wrench"),
icon="industrialtest:wrench",
content={
[[
<big>||Wrench||</big>
<left>
||Wrench is one of the most important tools in this mod. It is used to safely remove machines with no material loss. In many cases when machine is removed without Wrench it drops <item name="industrialtest:machine_block" height="{{ITEM_HEIGHT}}"> <b>Machine Block</b> instead.||
</left>
]],
createMachineInformationTable({
{
name="uses",
value=tostring(industrialtest.Wrench.uses)
}
},S("Wrench"))
}
} }
} }
local function preprocessHypertext(content,vars) local function preprocessHypertext(content,vars)
-- Find and replace strings which should be translated, this pattern matches any string that doesn't include | which is contained within || at both ends -- Find and replace strings which should be translated, this pattern matches any string that doesn't include | which is contained within || at both ends
content=string.gsub(content,"||([^|]+)||",function(sourceString) content=string.gsub(content,"||([^|]+)||",function(sourceString)
return S(sourceString) -- Replace all sequences which should be treated as variables inside translation with format string
local trFormatIndex=1
local trFormatValues={}
sourceString=string.gsub(sourceString,"{{([^{}]+)}}",function(var)
local result=string.format("@%d",trFormatIndex)
trFormatIndex=trFormatIndex+1
table.insert(trFormatValues,vars[var] or "nil")
return result
end)
return S(sourceString,unpack(trFormatValues))
end) end)
for key,value in pairs(vars) do -- Replace all sequences which should be treated as variables with values provided in vars
content=string.gsub(content,string.format("{{%s}}",key),value) content=string.gsub(content,"{{([^{}]+)}}",function(var)
end return vars[var] or "nil"
end)
return content return content
end end
local function getGuideFormspec(playerName,pageName) local function getGuideFormspec(playerName,pageName)
local PAGE_BUTTON_HEIGHT=0.7
local formspec={ local formspec={
"formspec_version[4]", "formspec_version[4]",
"size[15,10.8]", "size[15,10.8]",
"label[0.1,0.2;"..S("IndustrialTest Guide").."]", "label[0.1,0.2;"..S("IndustrialTest Guide").."]",
--"scrollbaroptions[]", string.format("scrollbaroptions[max=%f]",(#pages-10.3/PAGE_BUTTON_HEIGHT)*PAGE_BUTTON_HEIGHT*10),
"scrollbar[3.6,0.4;0.5,10.3;vertical;scrollbarList;0]", "scrollbar[3.6,0.4;0.5,10.3;vertical;scrollbarList;0]",
"scroll_container[0.1,0.4;4,10.3;scrollbarList;vertical]" "scroll_container[0.1,0.4;4,10.3;scrollbarList;vertical;0.1]"
} }
-- Contents sidebar -- Contents sidebar
local PAGE_BUTTON_HEIGHT=0.7
for i,page in ipairs(pages) do for i,page in ipairs(pages) do
table.insert(formspec,string.format("container[0,%f]",(i-1)*PAGE_BUTTON_HEIGHT)) table.insert(formspec,string.format("container[0,%f]",(i-1)*PAGE_BUTTON_HEIGHT))
table.insert(formspec,string.format("item_image[0,0;%f,%f;%s]",PAGE_BUTTON_HEIGHT,PAGE_BUTTON_HEIGHT,page.icon)) table.insert(formspec,string.format("item_image[0,0;%f,%f;%s]",PAGE_BUTTON_HEIGHT,PAGE_BUTTON_HEIGHT,page.icon))
@@ -1184,9 +1939,12 @@ local function getGuideFormspec(playerName,pageName)
elementKeyBucket=industrialtest.elementKeys.bucket, elementKeyBucket=industrialtest.elementKeys.bucket,
elementKeyCoal=industrialtest.elementKeys.coal, elementKeyCoal=industrialtest.elementKeys.coal,
elementKeyCopperIngot=industrialtest.elementKeys.copperIngot, elementKeyCopperIngot=industrialtest.elementKeys.copperIngot,
elementKeyIronBoots=industrialtest.elementKeys.ironBoots,
elementKeyIronHelmet=industrialtest.elementKeys.ironHelmet,
elementKeyIronIngot=industrialtest.elementKeys.ironIngot, elementKeyIronIngot=industrialtest.elementKeys.ironIngot,
elementKeyIronLump=industrialtest.elementKeys.ironLump, elementKeyIronLump=industrialtest.elementKeys.ironLump,
elementKeyIronPickaxe=industrialtest.elementKeys.ironPickaxe, elementKeyIronPickaxe=industrialtest.elementKeys.ironPickaxe,
elementKeyStickyResin=industrialtest.elementKeys.stickyResin,
elementKeyRubber=industrialtest.elementKeys.rubber, elementKeyRubber=industrialtest.elementKeys.rubber,
elementKeyRubberWood=industrialtest.elementKeys.rubberWood elementKeyRubberWood=industrialtest.elementKeys.rubberWood
}) })

1462
locale/industrialtest.pl.po Normal file

File diff suppressed because it is too large Load Diff

1462
locale/industrialtest.pot Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -79,20 +79,20 @@ function industrialtest.CanningMachine.getFormspec(self,pos)
local powerPercent=meta:get_int("industrialtest.powerAmount")/meta:get_int("industrialtest.powerCapacity")*100 local powerPercent=meta:get_int("industrialtest.powerAmount")/meta:get_int("industrialtest.powerCapacity")*100
local srcPercent=meta:get_float("srcTime")/self._canningTime*100 local srcPercent=meta:get_float("srcTime")/self._canningTime*100
local formspec={ local formspec={
"list[context;src;3.4,1.8;1,1]",
industrialtest.internal.getItemSlotBg(3.4,1.8,1,1), industrialtest.internal.getItemSlotBg(3.4,1.8,1,1),
"list[context;src;3.4,1.8;1,1]",
(powerPercent>0 and "image[3.4,2.8;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]" (powerPercent>0 and "image[3.4,2.8;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]"
or "image[3.4,2.8;1,1;industrialtest_gui_electricity_bg.png]"), or "image[3.4,2.8;1,1;industrialtest_gui_electricity_bg.png]"),
"list[context;powerStorage;3.4,3.9;1,1]",
industrialtest.internal.getItemSlotBg(3.4,3.9,1,1), industrialtest.internal.getItemSlotBg(3.4,3.9,1,1),
"list[context;powerStorage;3.4,3.9;1,1]",
(srcPercent>0 and "image[4.9,1.8;1,1;gui_furnace_arrow_bg.png^[lowpart:"..srcPercent..":gui_furnace_arrow_fg.png^[transformR270]" (srcPercent>0 and "image[4.9,1.8;1,1;gui_furnace_arrow_bg.png^[lowpart:"..srcPercent..":gui_furnace_arrow_fg.png^[transformR270]"
or "image[4.9,1.8;1,1;gui_furnace_arrow_bg.png^[transformR270]"), or "image[4.9,1.8;1,1;gui_furnace_arrow_bg.png^[transformR270]"),
"list[context;dst;6.4,1.8;1,1]",
industrialtest.internal.getItemSlotBg(6.4,1.8,1,1), industrialtest.internal.getItemSlotBg(6.4,1.8,1,1),
"list[context;leftover;6.4,2.8;1,1]", "list[context;dst;6.4,1.8;1,1]",
industrialtest.internal.getItemSlotBg(6.4,2.8,1,1), industrialtest.internal.getItemSlotBg(6.4,2.8,1,1),
"list[context;upgrades;9,0.9;1,4]", "list[context;leftover;6.4,2.8;1,1]",
industrialtest.internal.getItemSlotBg(9,0.9,1,4), industrialtest.internal.getItemSlotBg(9,0.9,1,4),
"list[context;upgrades;9,0.9;1,4]",
"listring[context;src]", "listring[context;src]",
"listring[context;dst]" "listring[context;dst]"
} }

View File

@@ -52,11 +52,11 @@ function industrialtest.Chargepad.getFormspec(self,pos)
local parentFormspec=industrialtest.ActivatedElectricMachine.getFormspec(self,pos) local parentFormspec=industrialtest.ActivatedElectricMachine.getFormspec(self,pos)
local charged=meta:get_int("industrialtest.powerAmount")/meta:get_int("industrialtest.powerCapacity") local charged=meta:get_int("industrialtest.powerAmount")/meta:get_int("industrialtest.powerCapacity")
local formspec={ local formspec={
"list[context;charged;1,2.5;1,1]",
industrialtest.internal.getItemSlotBg(1,2.5,1,1), industrialtest.internal.getItemSlotBg(1,2.5,1,1),
"list[context;charged;1,2.5;1,1]",
"label[0.9,3.9;"..S("Charge").."]", "label[0.9,3.9;"..S("Charge").."]",
"list[context;discharged;3,2.5;1,1]",
industrialtest.internal.getItemSlotBg(3,2.5,1,1), industrialtest.internal.getItemSlotBg(3,2.5,1,1),
"list[context;discharged;3,2.5;1,1]",
"label[2.7,3.9;"..S("Discharge").."]", "label[2.7,3.9;"..S("Discharge").."]",
self.createPowerIndicatorWidget(charged,9,1), self.createPowerIndicatorWidget(charged,9,1),
"listring[context;charged]", "listring[context;charged]",

View File

@@ -36,13 +36,13 @@ local function getFormspec(self,pos)
local fuel=self.getFuel(fluid) local fuel=self.getFuel(fluid)
local tile=(fuel and fuel.texture or "industrialtest_gui_fluid_bg.png") local tile=(fuel and fuel.texture or "industrialtest_gui_fluid_bg.png")
local formspec={ local formspec={
"list[context;src;2,1.8;1,1]",
industrialtest.internal.getItemSlotBg(2,1.8,1,1), industrialtest.internal.getItemSlotBg(2,1.8,1,1),
"list[context;src;2,1.8;1,1]",
(fluidPercent>0 and "image[2,3;1,1;industrialtest_gui_fluid_bg.png^[lowpart:"..fluidPercent..":"..tile.."]" or "image[2,3;1,1;industrialtest_gui_fluid_bg.png]"), (fluidPercent>0 and "image[2,3;1,1;industrialtest_gui_fluid_bg.png^[lowpart:"..fluidPercent..":"..tile.."]" or "image[2,3;1,1;industrialtest_gui_fluid_bg.png]"),
"list[context;dst;2,4.2;1,1]",
industrialtest.internal.getItemSlotBg(2,4.2,1,1), industrialtest.internal.getItemSlotBg(2,4.2,1,1),
"list[context;charged;6,3;1,1]", "list[context;dst;2,4.2;1,1]",
industrialtest.internal.getItemSlotBg(6,3,1,1), industrialtest.internal.getItemSlotBg(6,3,1,1),
"list[context;charged;6,3;1,1]",
self.createPowerIndicatorWidget(powerPercent,9,1), self.createPowerIndicatorWidget(powerPercent,9,1),
"listring[context;src]", "listring[context;src]",
"listring[context;dst]" "listring[context;dst]"
@@ -94,6 +94,7 @@ local function takeFuelFromItem(self,pos)
inv:set_stack("src",1,fluidSlot) inv:set_stack("src",1,fluidSlot)
meta:set_string("fluid",fuel.name) meta:set_string("fluid",fuel.name)
meta:set_float("fluidAmount",fluidAmount+1000) meta:set_float("fluidAmount",fluidAmount+1000)
self:updateFormspec(pos)
return true return true
end end
end end

View File

@@ -72,12 +72,12 @@ function industrialtest.Generator.getFormspec(self,pos)
local fuelPercent=meta:get_float("fuelTime")/meta:get_float("maxFuelTime")*100 local fuelPercent=meta:get_float("fuelTime")/meta:get_float("maxFuelTime")*100
local charged=meta:get_int("industrialtest.powerAmount")/meta:get_int("industrialtest.powerCapacity") local charged=meta:get_int("industrialtest.powerAmount")/meta:get_int("industrialtest.powerCapacity")
local formspec={ local formspec={
"list[context;charged;4.7,1.8;1,1]",
industrialtest.internal.getItemSlotBg(4.7,1.8,1,1), industrialtest.internal.getItemSlotBg(4.7,1.8,1,1),
"list[context;charged;4.7,1.8;1,1]",
(fuelPercent>0 and "image[4.7,2.8;1,1;default_furnace_fire_bg.png^[lowpart:"..fuelPercent..":default_furnace_fire_fg.png]" (fuelPercent>0 and "image[4.7,2.8;1,1;default_furnace_fire_bg.png^[lowpart:"..fuelPercent..":default_furnace_fire_fg.png]"
or "image[4.7,2.8;1,1;default_furnace_fire_bg.png]"), or "image[4.7,2.8;1,1;default_furnace_fire_bg.png]"),
"list[context;src;4.7,3.9;1,1]",
industrialtest.internal.getItemSlotBg(4.7,3.9,1,1), industrialtest.internal.getItemSlotBg(4.7,3.9,1,1),
"list[context;src;4.7,3.9;1,1]",
self.createPowerIndicatorWidget(charged,9,1), self.createPowerIndicatorWidget(charged,9,1),
"listring[context;src]" "listring[context;src]"
} }

View File

@@ -80,18 +80,18 @@ function industrialtest.InductionFurnace.getFormspec(self,pos)
local srcPercent=maxSrcTime>0 and meta:get_float("srcTime")/maxSrcTime*100 or 0 local srcPercent=maxSrcTime>0 and meta:get_float("srcTime")/maxSrcTime*100 or 0
local heat=meta:get_int("heat") local heat=meta:get_int("heat")
local formspec={ local formspec={
"list[context;src;3.7,1.8;2,1]",
industrialtest.internal.getItemSlotBg(3.7,1.8,2,1), industrialtest.internal.getItemSlotBg(3.7,1.8,2,1),
"list[context;src;3.7,1.8;2,1]",
(powerPercent>0 and "image[3.7,2.8;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]" (powerPercent>0 and "image[3.7,2.8;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]"
or "image[3.7,2.8;1,1;industrialtest_gui_electricity_bg.png]"), or "image[3.7,2.8;1,1;industrialtest_gui_electricity_bg.png]"),
"list[context;powerStorage;3.7,3.9;1,1]",
industrialtest.internal.getItemSlotBg(3.7,3.9,1,1), industrialtest.internal.getItemSlotBg(3.7,3.9,1,1),
"list[context;powerStorage;3.7,3.9;1,1]",
(srcPercent>0 and "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[lowpart:"..srcPercent..":gui_furnace_arrow_fg.png^[transformR270]" (srcPercent>0 and "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[lowpart:"..srcPercent..":gui_furnace_arrow_fg.png^[transformR270]"
or "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[transformR270]"), or "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[transformR270]"),
"list[context;dst;6,2.8;2,1;]",
industrialtest.internal.getItemSlotBg(6,2.8,2,1), industrialtest.internal.getItemSlotBg(6,2.8,2,1),
"list[context;upgrades;9,0.9;1,4]", "list[context;dst;6,2.8;2,1;]",
industrialtest.internal.getItemSlotBg(9,0.9,1,4), industrialtest.internal.getItemSlotBg(9,0.9,1,4),
"list[context;upgrades;9,0.9;1,4]",
"label[0.5,2.8;"..minetest.formspec_escape(S("Heat: @1 %",heat)).."]", "label[0.5,2.8;"..minetest.formspec_escape(S("Heat: @1 %",heat)).."]",
"listring[context;src]", "listring[context;src]",
"listring[context;dst]" "listring[context;dst]"

View File

@@ -80,16 +80,16 @@ function industrialtest.IronFurnace.getFormspec(self,pos)
} }
elseif industrialtest.mclAvailable then elseif industrialtest.mclAvailable then
formspec={ formspec={
mcl_formspec.get_itemslot_bg_v4(3.4,1.8,1,1),
"list[context;src;3.4,1.8;1,1]", "list[context;src;3.4,1.8;1,1]",
mcl_formspec.get_itemslot_bg(3.4,1.8,1,1),
(fuelPercent>0 and "image[3.4,2.8;1,1;default_furnace_fire_bg.png^[lowpart:"..fuelPercent..":default_furnace_fire_fg.png]" (fuelPercent>0 and "image[3.4,2.8;1,1;default_furnace_fire_bg.png^[lowpart:"..fuelPercent..":default_furnace_fire_fg.png]"
or "image[3.4,2.8;1,1;default_furnace_fire_bg.png]"), or "image[3.4,2.8;1,1;default_furnace_fire_bg.png]"),
mcl_formspec.get_itemslot_bg_v4(3.4,3.9,1,1),
"list[context;fuel;3.4,3.9;1,1]", "list[context;fuel;3.4,3.9;1,1]",
mcl_formspec.get_itemslot_bg(3.4,3.9,1,1),
(srcPercent>0 and "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[lowpart:"..srcPercent..":gui_furnace_arrow_fg.png^[transformR270]" (srcPercent>0 and "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[lowpart:"..srcPercent..":gui_furnace_arrow_fg.png^[transformR270]"
or "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[transformR270]"), or "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[transformR270]"),
mcl_formspec.get_itemslot_bg_v4(6.4,2.8,1,1),
"list[context;dst;6.4,2.8;1,1]", "list[context;dst;6.4,2.8;1,1]",
mcl_formspec.get_itemslot_bg(6.4,2.8,1,1),
"listring[context;src]", "listring[context;src]",
"listring[context;dst]" "listring[context;dst]"
} }

View File

@@ -54,12 +54,13 @@ function industrialtest.Machine.getFormspec(self,pos)
} }
elseif industrialtest.mclAvailable then elseif industrialtest.mclAvailable then
formspec={ formspec={
"size[10.04,12]", "formspec_version[4]",
"label[0.25,0.25;"..self.description.."]", "size[12,12.5]",
"label[0.5,0.5;"..self.description.."]",
mcl_formspec.get_itemslot_bg_v4(0.5,7,9,3),
"list[current_player;main;0.5,7;9,3;9]", "list[current_player;main;0.5,7;9,3;9]",
mcl_formspec.get_itemslot_bg(0.5,7,9,3), mcl_formspec.get_itemslot_bg_v4(0.5,11,9,1),
"list[current_player;main;0.5,10.24;9,1]", "list[current_player;main;0.5,11;9,1]",
mcl_formspec.get_itemslot_bg(0.5,10.24,9,1),
"listring[current_player;main]" "listring[current_player;main]"
} }
end end

View File

@@ -129,6 +129,7 @@ function industrialtest.Magnetizer.getFormspec(self,pos)
local formspec={ local formspec={
(powerPercent>0 and "image[4.7,2.7;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]" (powerPercent>0 and "image[4.7,2.7;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]"
or "image[4.7,2.7;1,1;industrialtest_gui_electricity_bg.png]"), or "image[4.7,2.7;1,1;industrialtest_gui_electricity_bg.png]"),
industrialtest.internal.getItemSlotBg(4.7,3.7,1,1),
"list[context;powerStorage;4.7,3.7;1,1]", "list[context;powerStorage;4.7,3.7;1,1]",
"listring[context;powerStorage]" "listring[context;powerStorage]"
} }

View File

@@ -187,22 +187,22 @@ function industrialtest.Miner.getFormspec(self,pos)
local powerPercent=meta:get_int("industrialtest.powerAmount")/meta:get_int("industrialtest.powerCapacity")*100 local powerPercent=meta:get_int("industrialtest.powerAmount")/meta:get_int("industrialtest.powerCapacity")*100
local formspec={ local formspec={
"label[0.7,1.15;"..S("Drill").."]", "label[0.7,1.15;"..S("Drill").."]",
"list[context;drill;0.7,1.5;1,1]",
industrialtest.internal.getItemSlotBg(0.7,1.5,1,1), industrialtest.internal.getItemSlotBg(0.7,1.5,1,1),
"list[context;drill;0.7,1.5;1,1]",
"label[0.7,2.75;"..S("Pipe").."]", "label[0.7,2.75;"..S("Pipe").."]",
"list[context;src;0.7,3.1;1,1]",
industrialtest.internal.getItemSlotBg(0.7,3.1,1,1), industrialtest.internal.getItemSlotBg(0.7,3.1,1,1),
"list[context;src;0.7,3.1;1,1]",
"label[0.7,4.35;"..S("Scanner").."]", "label[0.7,4.35;"..S("Scanner").."]",
"list[context;scanner;0.7,4.7;1,1]",
industrialtest.internal.getItemSlotBg(0.7,4.7,1,1), industrialtest.internal.getItemSlotBg(0.7,4.7,1,1),
"list[context;dst;2.28,1.9;5,3]", "list[context;scanner;0.7,4.7;1,1]",
industrialtest.internal.getItemSlotBg(2.28,1.9,5,3), industrialtest.internal.getItemSlotBg(2.28,1.9,5,3),
"list[context;upgrades;9.1,1.2;1,1]", "list[context;dst;2.28,1.9;5,3]",
industrialtest.internal.getItemSlotBg(9.1,1.2,1,1), industrialtest.internal.getItemSlotBg(9.1,1.2,1,1),
"list[context;upgrades;9.1,1.2;1,1]",
(powerPercent>0 and "image[9.1,2.29;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]" (powerPercent>0 and "image[9.1,2.29;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]"
or "image[9.1,2.29;1,1;industrialtest_gui_electricity_bg.png]"), or "image[9.1,2.29;1,1;industrialtest_gui_electricity_bg.png]"),
"list[context;powerStorage;9.1,3.5;1,1]",
industrialtest.internal.getItemSlotBg(9.1,3.5,1,1), industrialtest.internal.getItemSlotBg(9.1,3.5,1,1),
"list[context;powerStorage;9.1,3.5;1,1]",
"listring[context;src]", "listring[context;src]",
"listring[context;dst]" "listring[context;dst]"
} }

View File

@@ -86,10 +86,10 @@ function industrialtest.Reactor.getFormspec(self,pos)
local size=math.floor(meta:get_int("size")/3) local size=math.floor(meta:get_int("size")/3)
local switchText=(meta:get_int("enabled")==0 and S("Start") or S("Stop")) local switchText=(meta:get_int("enabled")==0 and S("Start") or S("Stop"))
local formspec={ local formspec={
"list[context;fuel;1,1;"..size..","..size.."]",
industrialtest.internal.getItemSlotBg(1,1,size,size), industrialtest.internal.getItemSlotBg(1,1,size,size),
"list[context;charged;7,2.8;1,1]", "list[context;fuel;1,1;"..size..","..size.."]",
industrialtest.internal.getItemSlotBg(7.7,2.8,1,1), industrialtest.internal.getItemSlotBg(7.7,2.8,1,1),
"list[context;charged;7,2.8;1,1]",
"button[7.7,1;1,0.8;toggle;"..minetest.formspec_escape(switchText).."]", "button[7.7,1;1,0.8;toggle;"..minetest.formspec_escape(switchText).."]",
self.createPowerIndicatorWidget(charged,9,1), self.createPowerIndicatorWidget(charged,9,1),
"listring[context;fuel]" "listring[context;fuel]"

View File

@@ -50,11 +50,11 @@ function industrialtest.PowerStorage.getFormspec(self,pos)
local meta=minetest.get_meta(pos) local meta=minetest.get_meta(pos)
local charged=meta:get_int("industrialtest.powerAmount")/meta:get_int("industrialtest.powerCapacity") local charged=meta:get_int("industrialtest.powerAmount")/meta:get_int("industrialtest.powerCapacity")
local formspec={ local formspec={
"list[context;charged;1,2.5;1,1]",
industrialtest.internal.getItemSlotBg(1,2.5,1,1), industrialtest.internal.getItemSlotBg(1,2.5,1,1),
"list[context;charged;1,2.5;1,1]",
"label[0.9,3.9;"..S("Charge").."]", "label[0.9,3.9;"..S("Charge").."]",
"list[context;discharged;3,2.5;1,1]",
industrialtest.internal.getItemSlotBg(3,2.5,1,1), industrialtest.internal.getItemSlotBg(3,2.5,1,1),
"list[context;discharged;3,2.5;1,1]",
"label[2.7,3.9;"..S("Discharge").."]", "label[2.7,3.9;"..S("Discharge").."]",
self.createPowerIndicatorWidget(charged,9,1), self.createPowerIndicatorWidget(charged,9,1),
"listring[context;charged]", "listring[context;charged]",

View File

@@ -85,12 +85,12 @@ function industrialtest.Pump.getFormspec(self,pos)
local pumpFluid=industrialtest.api.getPumpFluid(fluidType) local pumpFluid=industrialtest.api.getPumpFluid(fluidType)
local tile=(pumpFluid and pumpFluid.texture or "industrialtest_gui_fluid_bg.png") local tile=(pumpFluid and pumpFluid.texture or "industrialtest_gui_fluid_bg.png")
local formspec={ local formspec={
"list[context;src;3.2,1.7;1,1]",
industrialtest.internal.getItemSlotBg(3.2,1.7,1,1), industrialtest.internal.getItemSlotBg(3.2,1.7,1,1),
"list[context;dst;4.6,1.7;1,1]", "list[context;src;3.2,1.7;1,1]",
industrialtest.internal.getItemSlotBg(4.6,1.7,1,1), industrialtest.internal.getItemSlotBg(4.6,1.7,1,1),
"list[context;powerStorage;3.9,3.7;1,1]", "list[context;dst;4.6,1.7;1,1]",
industrialtest.internal.getItemSlotBg(3.9,3.7,1,1), industrialtest.internal.getItemSlotBg(3.9,3.7,1,1),
"list[context;powerStorage;3.9,3.7;1,1]",
(powerPercent>0 and "image[3.9,2.7;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]" (powerPercent>0 and "image[3.9,2.7;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]"
or "image[3.9,2.7;1,1;industrialtest_gui_electricity_bg.png]"), or "image[3.9,2.7;1,1;industrialtest_gui_electricity_bg.png]"),
(srcPercent>0 and "image[6.7,2.7;1,1;gui_furnace_arrow_bg.png^[lowpart:"..srcPercent..":gui_furnace_arrow_fg.png]" (srcPercent>0 and "image[6.7,2.7;1,1;gui_furnace_arrow_bg.png^[lowpart:"..srcPercent..":gui_furnace_arrow_fg.png]"

View File

@@ -84,20 +84,20 @@ function industrialtest.RotaryMacerator.getFormspec(self,pos)
local rpm=meta:get_int("rpm") local rpm=meta:get_int("rpm")
local buttonMaintainSpeedText=meta:get_int("maintainSpeed")==1 and S("Don't maintain speed") or S("Maintain speed") local buttonMaintainSpeedText=meta:get_int("maintainSpeed")==1 and S("Don't maintain speed") or S("Maintain speed")
local formspec={ local formspec={
"list[context;src;3.8,1.8;1,1]",
industrialtest.internal.getItemSlotBg(3.8,1.8,1,1), industrialtest.internal.getItemSlotBg(3.8,1.8,1,1),
"list[context;modifier;4.9,1.8;1,1]", "list[context;src;3.8,1.8;1,1]",
industrialtest.internal.getItemSlotBg(4.9,1.8,1,1), industrialtest.internal.getItemSlotBg(4.9,1.8,1,1),
"list[context;modifier;4.9,1.8;1,1]",
(powerPercent>0 and "image[3.8,2.8;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]" (powerPercent>0 and "image[3.8,2.8;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]"
or "image[3.8,2.8;1,1;industrialtest_gui_electricity_bg.png]"), or "image[3.8,2.8;1,1;industrialtest_gui_electricity_bg.png]"),
"list[context;powerStorage;3.8,3.9;1,1]",
industrialtest.internal.getItemSlotBg(3.8,3.9,1,1), industrialtest.internal.getItemSlotBg(3.8,3.9,1,1),
"list[context;powerStorage;3.8,3.9;1,1]",
(srcPercent>0 and "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[lowpart:"..srcPercent..":gui_furnace_arrow_fg.png^[transformR270]" (srcPercent>0 and "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[lowpart:"..srcPercent..":gui_furnace_arrow_fg.png^[transformR270]"
or "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[transformR270]"), or "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[transformR270]"),
"list[context;dst;6,2.8;1,1;]",
industrialtest.internal.getItemSlotBg(6,2.8,1,1), industrialtest.internal.getItemSlotBg(6,2.8,1,1),
"list[context;upgrades;9,0.9;1,4]", "list[context;dst;6,2.8;1,1;]",
industrialtest.internal.getItemSlotBg(9,0.9,1,4), industrialtest.internal.getItemSlotBg(9,0.9,1,4),
"list[context;upgrades;9,0.9;1,4]",
"label[0.5,2.8;"..minetest.formspec_escape(S("Speed: @1",rpm)).."]", "label[0.5,2.8;"..minetest.formspec_escape(S("Speed: @1",rpm)).."]",
"button[0.5,3.4;3,0.8;maintainSpeed;"..minetest.formspec_escape(buttonMaintainSpeedText).."]", "button[0.5,3.4;3,0.8;maintainSpeed;"..minetest.formspec_escape(buttonMaintainSpeedText).."]",
"listring[context;src]", "listring[context;src]",

View File

@@ -56,18 +56,18 @@ function industrialtest.SimpleElectricItemProcessor.getFormspec(self,pos)
local recipeOverride=self.isRecipeOverride(meta) local recipeOverride=self.isRecipeOverride(meta)
local formspec={ local formspec={
(recipeOverride and "label[3.4,1.5;"..S("Recipe override: @1", minetest.registered_items[recipeOverride].description).."]" or ""), (recipeOverride and "label[3.4,1.5;"..S("Recipe override: @1", minetest.registered_items[recipeOverride].description).."]" or ""),
"list[context;src;3.4,1.8;1,1]",
industrialtest.internal.getItemSlotBg(3.4,1.8,1,1), industrialtest.internal.getItemSlotBg(3.4,1.8,1,1),
"list[context;src;3.4,1.8;1,1]",
(powerPercent>0 and "image[3.4,2.8;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]" (powerPercent>0 and "image[3.4,2.8;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]"
or "image[3.4,2.8;1,1;industrialtest_gui_electricity_bg.png]"), or "image[3.4,2.8;1,1;industrialtest_gui_electricity_bg.png]"),
"list[context;powerStorage;3.4,3.9;1,1]",
industrialtest.internal.getItemSlotBg(3.4,3.9,1,1), industrialtest.internal.getItemSlotBg(3.4,3.9,1,1),
"list[context;powerStorage;3.4,3.9;1,1]",
(srcPercent>0 and "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[lowpart:"..srcPercent..":gui_furnace_arrow_fg.png^[transformR270]" (srcPercent>0 and "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[lowpart:"..srcPercent..":gui_furnace_arrow_fg.png^[transformR270]"
or "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[transformR270]"), or "image[4.9,2.8;1,1;gui_furnace_arrow_bg.png^[transformR270]"),
"list[context;dst;6.4,2.8;1,1]",
industrialtest.internal.getItemSlotBg(6.4,2.8,1,1), industrialtest.internal.getItemSlotBg(6.4,2.8,1,1),
"list[context;upgrades;9,0.9;1,4]", "list[context;dst;6.4,2.8;1,1]",
industrialtest.internal.getItemSlotBg(9,0.9,1,4), industrialtest.internal.getItemSlotBg(9,0.9,1,4),
"list[context;upgrades;9,0.9;1,4]",
"listring[context;src]", "listring[context;src]",
"listring[context;dst]" "listring[context;dst]"
} }

View File

@@ -48,8 +48,8 @@ function industrialtest.SolarPanelBase.getFormspec(self,pos)
local amount=minetest.get_natural_light(vector.offset(pos,0,1,0))/15.0 local amount=minetest.get_natural_light(vector.offset(pos,0,1,0))/15.0
local charging=amount>0.5 local charging=amount>0.5
local formspec={ local formspec={
"list[context;charged;4.7,1.8;1,1]",
industrialtest.internal.getItemSlotBg(4.7,1.8,1,1), industrialtest.internal.getItemSlotBg(4.7,1.8,1,1),
"list[context;charged;4.7,1.8;1,1]",
(charging and "image[4.7,2.8;1,1;industrialtest_gui_sun_fg.png]" (charging and "image[4.7,2.8;1,1;industrialtest_gui_sun_fg.png]"
or "image[4.7,2.8;1,1;industrialtest_gui_sun_bg.png]"), or "image[4.7,2.8;1,1;industrialtest_gui_sun_bg.png]"),
"listring[context;charged]" "listring[context;charged]"

View File

@@ -73,14 +73,14 @@ function industrialtest.ToolWorkshop.getFormspec(self,pos)
local meta=minetest.get_meta(pos) local meta=minetest.get_meta(pos)
local powerPercent=meta:get_int("industrialtest.powerAmount")/meta:get_int("industrialtest.powerCapacity")*100 local powerPercent=meta:get_int("industrialtest.powerAmount")/meta:get_int("industrialtest.powerCapacity")*100
local formspec={ local formspec={
"list[context;powerStorage;3.7,3.7;1,1;0]",
industrialtest.internal.getItemSlotBg(3.7,3.7,1,1), industrialtest.internal.getItemSlotBg(3.7,3.7,1,1),
"list[context;powerStorage;3.7,3.7;1,1;0]",
(powerPercent>0 and "image[3.7,2.5;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]" (powerPercent>0 and "image[3.7,2.5;1,1;industrialtest_gui_electricity_bg.png^[lowpart:"..powerPercent..":industrialtest_gui_electricity_fg.png]"
or "image[3.7,2.5;1,1;industrialtest_gui_electricity_bg.png]"), or "image[3.7,2.5;1,1;industrialtest_gui_electricity_bg.png]"),
"list[context;src;5.9,3.2;1,1;0]",
industrialtest.internal.getItemSlotBg(5.9,3.2,1,1), industrialtest.internal.getItemSlotBg(5.9,3.2,1,1),
"list[context;upgrades;9,0.9;1,4]", "list[context;src;5.9,3.2;1,1;0]",
industrialtest.internal.getItemSlotBg(9,0.9,1,4), industrialtest.internal.getItemSlotBg(9,0.9,1,4),
"list[context;upgrades;9,0.9;1,4]",
"listring[context;src]" "listring[context;src]"
} }
return parentFormspec..table.concat(formspec,"") return parentFormspec..table.concat(formspec,"")

View File

@@ -58,8 +58,8 @@ function industrialtest.WindMill.getFormspec(self,pos)
local meta=minetest.get_meta(pos) local meta=minetest.get_meta(pos)
local charging=meta:get_int("charging") local charging=meta:get_int("charging")
local formspec={ local formspec={
"list[context;charged;4.7,1.8;1,1]",
industrialtest.internal.getItemSlotBg(4.7,1.8,1,1), industrialtest.internal.getItemSlotBg(4.7,1.8,1,1),
"list[context;charged;4.7,1.8;1,1]",
(charging>0 and "image[4.7,3;1,1;industrialtest_gui_wind_bg.png^[lowpart:"..charging..":industrialtest_gui_wind_fg.png]" (charging>0 and "image[4.7,3;1,1;industrialtest_gui_wind_bg.png^[lowpart:"..charging..":industrialtest_gui_wind_fg.png]"
or "image[4.7,3;1,1;industrialtest_gui_wind_bg.png]"), or "image[4.7,3;1,1;industrialtest_gui_wind_bg.png]"),
"listring[context;charged]" "listring[context;charged]"
@@ -76,13 +76,14 @@ function industrialtest.WindMill.action(self,pos)
local dimMax=31000 local dimMax=31000
local dim=mcl_worlds.pos_to_dimension(pos) local dim=mcl_worlds.pos_to_dimension(pos)
if dim=="overworld" then if dim=="overworld" then
dimMax=mcl_vars.mg_overworld_max dimMax=mcl_vars.mg_overworld_max_official
elseif dim=="nether" then elseif dim=="nether" then
dimMax=mcl_vars.mg_nether_max dimMax=mcl_vars.mg_nether_max
elseif dim=="end" then elseif dim=="end" then
dimMax=mcl_vars.mg_end_max dimMax=mcl_vars.mg_end_max_official
end end
charging=math.max(mcl_worlds.layer_to_y(pos.y,dim),0)/dimMax local layer,_=mcl_worlds.y_to_layer(pos.y)
charging=math.min(math.max((layer or 0),0)/dimMax,1.0)
end end
local neighbourPositions={ local neighbourPositions={
vector.offset(pos,-1,0,0), vector.offset(pos,-1,0,0),

View File

@@ -591,26 +591,39 @@ if industrialtest.mtgAvailable then
} }
}) })
elseif industrialtest.mclAvailable then elseif industrialtest.mclAvailable then
mcl_fences.register_fence_def("iron_fence",{ -- Some MCL2 forks define this function so use it if available
description=S("Iron Fence"), if mcl_fences.register_fence_def then
tiles={"default_steel_block.png"}, mcl_fences.register_fence_def("iron_fence",{
groups={ description=S("Iron Fence"),
_industrialtest_metalFence=1 tiles={"default_steel_block.png"},
}, groups={
connects_to={ _industrialtest_metalFence=1
"group:fence", },
"group:fence_gate", connects_to={
"group:solid", "group:fence",
"industrialtest:magnetizer" "group:fence_gate",
}, "group:solid",
on_construct=ironFenceOnConstruct, "industrialtest:magnetizer"
on_destruct=ironFenceOnDestruct, },
after_destruct=function(pos,oldnode,oldmeta) on_construct=ironFenceOnConstruct,
ironFenceDetach(oldmeta) on_destruct=ironFenceOnDestruct,
end, after_destruct=function(pos,oldnode,oldmeta)
_mcl_fences_baseitem="industrialtest:iron_plate", ironFenceDetach(oldmeta)
_mcl_fences_stickreplacer="industrialtest:iron_plate" end
})
else
mcl_fences.register_fence("iron_fence",S("Iron Fence"),"default_steel_block.png",{_industrialtest_metalFence=1},4,5,{"industrialtest:magnetizer","group:fence"},mcl_sounds.node_sound_metal_defaults())
end
if minetest.registered_nodes["mcl_fences:iron_fence"] then
-- mcl_fences.register_fence_def registers fences in it's own namespace so register alias here to keep compatibility
minetest.register_alias("industrialtest:iron_fence","mcl_fences:iron_fence")
end
minetest.register_craft({
type="shaped",
output="industrialtest:iron_fence 3",
recipe={
{"industrialtest:iron_plate","industrialtest:iron_plate","industrialtest:iron_plate"},
{"industrialtest:iron_plate","industrialtest:iron_plate","industrialtest:iron_plate"}
}
}) })
-- mcl_fences.register_fence_def registers fences in it's own namespace so register alias here to keep compatibility
minetest.register_alias("industrialtest:iron_fence","mcl_fences:iron_fence")
end end

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -69,8 +69,8 @@ industrialtest.internal.unpackTableInto(industrialtest.LapPack,{
description=S("LapPack"), description=S("LapPack"),
inventoryImage="industrialtest_lappack_v_inv.png", inventoryImage="industrialtest_lappack_v_inv.png",
modelImage="industrialtest_lappack_v.png", modelImage="industrialtest_lappack_v.png",
capacity=60000, capacity=300000,
flow=industrialtest.api.lvPowerFlow flow=industrialtest.api.mvPowerFlow
}) })
industrialtest.LapPack:register() industrialtest.LapPack:register()
@@ -79,7 +79,7 @@ minetest.register_craft({
type="shaped", type="shaped",
output="industrialtest:lappack_v", output="industrialtest:lappack_v",
recipe={ recipe={
{industrialtest.elementKeys.powerCarrier,"industrialtest:electronic_circuit",industrialtest.elementKeys.powerCarrier}, {industrialtest.elementKeys.powerCarrier,"industrialtest:advanced_electronic_circuit",industrialtest.elementKeys.powerCarrier},
{industrialtest.elementKeys.powerCarrier,"industrialtest:batpack_v",industrialtest.elementKeys.powerCarrier}, {industrialtest.elementKeys.powerCarrier,"industrialtest:batpack_v",industrialtest.elementKeys.powerCarrier},
{industrialtest.elementKeys.powerCarrier,"",industrialtest.elementKeys.powerCarrier} {industrialtest.elementKeys.powerCarrier,"",industrialtest.elementKeys.powerCarrier}
} }

View File

@@ -92,15 +92,16 @@ industrialtest.internal.unpackTableInto(industrialtest.ElectricJetpack,{
modelImage="industrialtest_electric_jetpack.png", modelImage="industrialtest_electric_jetpack.png",
flow=industrialtest.api.lvPowerFlow, flow=industrialtest.api.lvPowerFlow,
capacity=30000, capacity=30000,
prepare=industrialtest.ElectricItem.prepare prepare=industrialtest.ElectricItem.prepare,
_opPower=10
}) })
function industrialtest.ElectricJetpack.tryFly(self,itemstack) function industrialtest.ElectricJetpack.tryFly(self,itemstack)
local meta=itemstack:get_meta() local meta=itemstack:get_meta()
if meta:get_int("industrialtest.powerAmount")<10 then if meta:get_int("industrialtest.powerAmount")<self._opPower then
return false return false
end end
industrialtest.api.addPowerToItem(itemstack,-10) industrialtest.api.addPowerToItem(itemstack,-self._opPower)
return true return true
end end

View File

@@ -121,7 +121,87 @@ minetest.register_craft({
} }
}) })
if industrialtest.mclAvailable then minetest.register_craft({
type="shaped",
output=industrialtest.elementKeys.coal,
recipe={
{"industrialtest:uu_matter","",""},
{"","","industrialtest:uu_matter"},
{"industrialtest:uu_matter","",""}
}
})
minetest.register_craft({
type="shaped",
output=industrialtest.elementKeys.stoneWithIron,
recipe={
{"industrialtest:uu_matter","","industrialtest:uu_matter"},
{"","industrialtest:uu_matter",""},
{"industrialtest:uu_matter","","industrialtest:uu_matter"}
}
})
minetest.register_craft({
type="shaped",
output=industrialtest.elementKeys.diamond,
recipe={
{"industrialtest:uu_matter","industrialtest:uu_matter","industrialtest:uu_matter"},
{"industrialtest:uu_matter","industrialtest:uu_matter","industrialtest:uu_matter"},
{"industrialtest:uu_matter","industrialtest:uu_matter","industrialtest:uu_matter"}
}
})
minetest.register_craft({
type="shaped",
output=industrialtest.elementKeys.stickyResin.." 32",
recipe={
{"industrialtest:uu_matter","","industrialtest:uu_matter"},
{"","",""},
{"industrialtest:uu_matter","","industrialtest:uu_matter"}
}
})
minetest.register_craft({
type="shaped",
output="industrialtest:tin_dust 4",
recipe={
{"","",""},
{"industrialtest:uu_matter","","industrialtest:uu_matter"},
{"","","industrialtest:uu_matter"}
}
})
minetest.register_craft({
type="shaped",
output="industrialtest:copper_dust 4",
recipe={
{"","","industrialtest:uu_matter"},
{"industrialtest:uu_matter","","industrialtest:uu_matter"},
{"","",""}
}
})
if industrialtest.mtgAvailable then
minetest.register_craft({
type="shaped",
output="industrialtest:iridium_lump",
recipe={
{"industrialtest:uu_matter","industrialtest:uu_matter","industrialtest:uu_matter"},
{"","industrialtest:uu_matter",""},
{"industrialtest:uu_matter","industrialtest:uu_matter","industrialtest:uu_matter"}
}
})
elseif industrialtest.mclAvailable then
minetest.register_craft({
type="shaped",
output="industrialtest:raw_iridium",
recipe={
{"industrialtest:uu_matter","industrialtest:uu_matter","industrialtest:uu_matter"},
{"","industrialtest:uu_matter",""},
{"industrialtest:uu_matter","industrialtest:uu_matter","industrialtest:uu_matter"}
}
})
minetest.register_craft({ minetest.register_craft({
type="shaped", type="shaped",
output="mcl_core:vine 24", output="mcl_core:vine 24",
@@ -141,4 +221,34 @@ if industrialtest.mclAvailable then
{"industrialtest:uu_matter",""} {"industrialtest:uu_matter",""}
} }
}) })
minetest.register_craft({
type="shaped",
output=industrialtest.elementKeys.powerCarrier.." 10",
recipe={
{"","",""},
{"","industrialtest:uu_matter",""},
{"industrialtest:uu_matter","industrialtest:uu_matter","industrialtest:uu_matter"}
}
})
minetest.register_craft({
type="shaped",
output=industrialtest.elementKeys.blueDye,
recipe={
{"","industrialtest:uu_matter",""},
{"","industrialtest:uu_matter",""},
{"","industrialtest:uu_matter","industrialtest:uu_matter"}
}
})
minetest.register_craft({
type="shaped",
output="mcl_core:emerald 8",
recipe={
{"industrialtest:uu_matter","industrialtest:uu_matter","industrialtest:uu_matter"},
{"industrialtest:uu_matter","industrialtest:uu_matter","industrialtest:uu_matter"},
{"","industrialtest:uu_matter",""}
}
})
end end