15 Commits

14 changed files with 444 additions and 31 deletions

406
guide.lua
View File

@@ -66,6 +66,9 @@ local function createMachineInformationTable(fields,machineName,num)
local fieldLabels={
inputVoltage="Input voltage level",
outputVoltage="Output voltage level",
voltage="Voltage",
lowVoltage="Low voltage",
highVoltage="High voltage",
recipe="Recipe type",
powerCapacity="Power capacity",
opPower="Power per operation",
@@ -230,6 +233,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",
title=S("Compressor"),
@@ -995,7 +1017,7 @@ local pages={
[[
<big>||Tool Workshop||</big>
<left>
Tool Workshop can be used to repair various tools with cost of energy. The process requires quite a lot energy and is slow.
||Tool Workshop can be used to repair various tools with cost of energy. The process requires quite a lot energy and is slow.||
</left>
]],
createMachineInformationTable({
@@ -1021,6 +1043,381 @@ local pages={
<left>||Picture 1. Tool Workshop repairing <item name="{{elementKeyIronPickaxe}}" height="{{ITEM_HEIGHT}}"> <b>Iron Pickaxe</b>.||</left>
]]
}
},
{
name="transformers",
title=S("Transformers"),
icon="industrialtest:lv_transformer",
content={
[[
<big>||Transformers||</big>
<left>
||Transformer can be used to either bump up or lower the voltage between different voltage levels. Each transformer has one high voltage input/output side and five low voltage input/output sides. These are transformers in this mod:||
</left>
<mono>
</mono>
<left>
<item name="industrialtest:lv_transformer" height="{{ITEM_HEIGHT}}"> <b>||LV Transformer||</b>
</left>
]],
createMachineInformationTable({
{
name="lowVoltage",
value="LV"
},
{
name="highVoltage",
value="MV"
}
},S("LV Transformer")),
[[
<mono></mono>
<left>
<item name="industrialtest:mv_transformer" height="{{ITEM_HEIGHT}}"> <b>||MV Transformer||</b>
</left>
]],
createMachineInformationTable({
{
name="lowVoltage",
value="MV"
},
{
name="highVoltage",
value="HV"
}
},S("MV Transformer"),2),
[[
<mono></mono>
<left>
<item name="industrialtest:hv_transformer" height="{{ITEM_HEIGHT}}"> <b>||HV Transformer||</b>
</left>
]],
createMachineInformationTable({
{
name="lowVoltage",
value="HV"
},
{
name="highVoltage",
value="EV"
}
},S("HV Transformer"),3),
[[
<mono></mono>
<left>
<item name="industrialtest:ev_transformer" height="{{ITEM_HEIGHT}}"> <b>||EV Transformer||</b>
</left>
]],
createMachineInformationTable({
{
name="lowVoltage",
value="EV"
},
{
name="highVoltage",
value="IV"
}
},S("EV Transformer"),4),
[[
<mono></mono>
<img name="industrialtest_guide_transformer.png">
<left>||Picture 1. <item name="industrialtest:electric_furnace" height="{{ITEM_HEIGHT}}"> <b>Electric Furnace</b> connected to <item name="industrialtest:mv_solar_array" height="{{ITEM_HEIGHT}}"> <b>MV Solar Array</b> through <item name="industrialtest:lv_transformer" height="{{ITEM_HEIGHT}}"> <b>LV Transformer</b>.||</left>
]]
}
},
{
name="waterMill",
title=S("Water Mill"),
icon="industrialtest:water_mill",
content={
[[
<big>||Water Mill||</big>
<left>
||Water Mill is used to produce power from water kinetic force. There are two ways to supply water flow to Water Mill: putting it next to water or putting water in Water Mill for example by using <item name="industrialtest:empty_cell" height="{{ITEM_HEIGHT}}"> <b>Empty Cell</b>. The fluid level indicator in formspec shows the amount of water.||
</left>
]],
createMachineInformationTable({
{
name="outputVoltage",
value="LV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.WaterMill.capacity)
}
},S("Water Mill")),
[[
<img name="industrialtest_guide_water_mill_formspec.png" width="{{IMAGE_WIDTH}}">
<left>||Picture 1. Water Mill with some water inside.||</left>
<mono>
</mono>
<img name="industrialtest_guide_water_mill.png">
<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="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"))
}
}
}
@@ -1030,9 +1427,10 @@ local function preprocessHypertext(content,vars)
return S(sourceString)
end)
for key,value in pairs(vars) do
content=string.gsub(content,string.format("{{%s}}",key),value)
end
-- Replace all sequences which should be treated as variables with values provided in vars
content=string.gsub(content,"{{([^{}]+)}}",function(var)
return vars[var] or "nil"
end)
return content
end

View File

@@ -94,6 +94,7 @@ local function takeFuelFromItem(self,pos)
inv:set_stack("src",1,fluidSlot)
meta:set_string("fluid",fuel.name)
meta:set_float("fluidAmount",fluidAmount+1000)
self:updateFormspec(pos)
return true
end
end

View File

@@ -76,13 +76,14 @@ function industrialtest.WindMill.action(self,pos)
local dimMax=31000
local dim=mcl_worlds.pos_to_dimension(pos)
if dim=="overworld" then
dimMax=mcl_vars.mg_overworld_max
dimMax=mcl_vars.mg_overworld_max_official
elseif dim=="nether" then
dimMax=mcl_vars.mg_nether_max
elseif dim=="end" then
dimMax=mcl_vars.mg_end_max
dimMax=mcl_vars.mg_end_max_official
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
local neighbourPositions={
vector.offset(pos,-1,0,0),

View File

@@ -591,26 +591,39 @@ if industrialtest.mtgAvailable then
}
})
elseif industrialtest.mclAvailable then
mcl_fences.register_fence_def("iron_fence",{
description=S("Iron Fence"),
tiles={"default_steel_block.png"},
groups={
_industrialtest_metalFence=1
},
connects_to={
"group:fence",
"group:fence_gate",
"group:solid",
"industrialtest:magnetizer"
},
on_construct=ironFenceOnConstruct,
on_destruct=ironFenceOnDestruct,
after_destruct=function(pos,oldnode,oldmeta)
ironFenceDetach(oldmeta)
end,
_mcl_fences_baseitem="industrialtest:iron_plate",
_mcl_fences_stickreplacer="industrialtest:iron_plate"
-- Some MCL2 forks define this function so use it if available
if mcl_fences.register_fence_def then
mcl_fences.register_fence_def("iron_fence",{
description=S("Iron Fence"),
tiles={"default_steel_block.png"},
groups={
_industrialtest_metalFence=1
},
connects_to={
"group:fence",
"group:fence_gate",
"group:solid",
"industrialtest:magnetizer"
},
on_construct=ironFenceOnConstruct,
on_destruct=ironFenceOnDestruct,
after_destruct=function(pos,oldnode,oldmeta)
ironFenceDetach(oldmeta)
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

Binary file not shown.

After

Width:  |  Height:  |  Size: 226 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 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"),
inventoryImage="industrialtest_lappack_v_inv.png",
modelImage="industrialtest_lappack_v.png",
capacity=60000,
flow=industrialtest.api.lvPowerFlow
capacity=300000,
flow=industrialtest.api.mvPowerFlow
})
industrialtest.LapPack:register()
@@ -79,7 +79,7 @@ minetest.register_craft({
type="shaped",
output="industrialtest:lappack_v",
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.elementKeys.powerCarrier}
}