17 Commits

14 changed files with 582 additions and 30 deletions

543
guide.lua
View File

@@ -66,6 +66,9 @@ 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",
voltage="Voltage",
lowVoltage="Low voltage",
highVoltage="High voltage",
recipe="Recipe type", recipe="Recipe type",
powerCapacity="Power capacity", powerCapacity="Power capacity",
opPower="Power per operation", 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", name="compressor",
title=S("Compressor"), title=S("Compressor"),
@@ -883,6 +905,519 @@ local pages={
<left>||Picture 1. Rotary Macerator running with altered recipe.||</left> <left>||Picture 1. Rotary Macerator running with altered recipe.||</left>
]] ]]
} }
},
{
name="solarPanels",
title=S("Solar panels"),
icon="industrialtest:solar_panel",
content={
[[
<big>||Solar panels||</big>
<left>
||Solar panels are generators which allow for producting power from sun energy. There are few of them in this mod for different voltages. Those are:||
</left>
<mono>
</mono>
<left>
<item name="industrialtest:solar_panel" height="{{ITEM_HEIGHT}}"> <b>||Solar Panel||</b>
</left>
]],
createMachineInformationTable({
{
name="outputVoltage",
value="LV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.SolarPanel.capacity)
},
{
name="Generation multiplier",
value=tostring(industrialtest.SolarPanel.multiplier)
}
},S("Solar Panel")),
[[
<mono></mono>
<left>
<item name="industrialtest:lv_solar_array" height="{{ITEM_HEIGHT}}"> <b>||LV Solar Array||</b>
</left>
]],
createMachineInformationTable({
{
name="outputVoltage",
value="LV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.LVSolarArray.capacity)
},
{
name="Generation multiplier",
value=tostring(industrialtest.LVSolarArray.multiplier)
}
},S("LV Solar Array"),2),
[[
<mono></mono>
<left>
<item name="industrialtest:mv_solar_array" height="{{ITEM_HEIGHT}}"> <b>||MV Solar Array||</b>
</left>
]],
createMachineInformationTable({
{
name="outputVoltage",
value="MV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.MVSolarArray.capacity)
},
{
name="Generation multiplier",
value=tostring(industrialtest.MVSolarArray.multiplier)
}
},S("MV Solar Array"),3),
[[
<mono></mono>
<left>
<item name="industrialtest:hv_solar_array" height="{{ITEM_HEIGHT}}"> <b>||HV Solar Array||</b>
</left>
]],
createMachineInformationTable({
{
name="outputVoltage",
value="HV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.HVSolarArray.capacity)
},
{
name="Generation multiplier",
value=tostring(industrialtest.HVSolarArray.multiplier)
}
},S("HV Solar Array"),4),
[[
<mono></mono>
<img name="industrialtest_guide_solar_panel_full.png" width="{{IMAGE_WIDTH}}">
<left>||Picture 1. Solar Panel generating in full sunlight.||</left>
<mono>
</mono>
<img name="industrialtest_guide_solar_panel_none.png" width="{{IMAGE_WIDTH}}">
<left>||Picture 2. Solar Panel not generating.||</left>
]]
}
},
{
name="toolWorkshop",
title=S("Tool Workshop"),
icon="industrialtest:tool_workshop",
content={
[[
<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.||
</left>
]],
createMachineInformationTable({
{
name="inputVoltage",
value="HV"
},
{
name="powerCapacity",
value=string.format("%d EU",industrialtest.ToolWorkshop.capacity)
},
{
name="opPower",
value=string.format("%d EU",industrialtest.ToolWorkshop._opPower)
},
{
name="efficiency",
value=tostring(industrialtest.ToolWorkshop._efficiency)
}
},S("Tool Workshop")),
[[
<img name="industrialtest_guide_tool_workshop.png" width="{{IMAGE_WIDTH}}">
<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"))
}
} }
} }
@@ -892,9 +1427,10 @@ local function preprocessHypertext(content,vars)
return S(sourceString) return S(sourceString)
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
@@ -932,6 +1468,7 @@ local function getGuideFormspec(playerName,pageName)
elementKeyCopperIngot=industrialtest.elementKeys.copperIngot, elementKeyCopperIngot=industrialtest.elementKeys.copperIngot,
elementKeyIronIngot=industrialtest.elementKeys.ironIngot, elementKeyIronIngot=industrialtest.elementKeys.ironIngot,
elementKeyIronLump=industrialtest.elementKeys.ironLump, elementKeyIronLump=industrialtest.elementKeys.ironLump,
elementKeyIronPickaxe=industrialtest.elementKeys.ironPickaxe,
elementKeyRubber=industrialtest.elementKeys.rubber, elementKeyRubber=industrialtest.elementKeys.rubber,
elementKeyRubberWood=industrialtest.elementKeys.rubberWood elementKeyRubberWood=industrialtest.elementKeys.rubberWood
}) })

View File

@@ -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

@@ -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,6 +591,8 @@ if industrialtest.mtgAvailable then
} }
}) })
elseif industrialtest.mclAvailable then elseif industrialtest.mclAvailable then
-- 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",{ mcl_fences.register_fence_def("iron_fence",{
description=S("Iron Fence"), description=S("Iron Fence"),
tiles={"default_steel_block.png"}, tiles={"default_steel_block.png"},
@@ -607,10 +609,21 @@ elseif industrialtest.mclAvailable then
on_destruct=ironFenceOnDestruct, on_destruct=ironFenceOnDestruct,
after_destruct=function(pos,oldnode,oldmeta) after_destruct=function(pos,oldnode,oldmeta)
ironFenceDetach(oldmeta) ironFenceDetach(oldmeta)
end, end
_mcl_fences_baseitem="industrialtest:iron_plate",
_mcl_fences_stickreplacer="industrialtest:iron_plate"
}) })
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 -- 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") minetest.register_alias("industrialtest:iron_fence","mcl_fences:iron_fence")
end 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"}
}
})
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"), 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}
} }