logistica-cd2025/guide/guide_content.lua
2024-03-24 16:38:52 +00:00

518 lines
17 KiB
Lua

local S = logistica.TRANSLATOR
local function L(s) return "logistica:"..s end
local GUIDE_NAME = "logistica_guide"
local PAGE_INTRO = "intro"
local PAGE_START = "start"
local PAGE_CREATE_NET = "crtnet"
local PAGE_MOVE_ITEMS = "mvitms"
local PAGE_NET_CONTROLLER = "mnetcon"
local PAGE_ACCESS_POINT = "maccpt"
local PAGE_OPTIC_CABLE = "moptcab"
local PAGE_MASS_STORAGE = "mmasstr"
local PAGE_TOOL_CHEST = "mtoolch"
local PAGE_PASSIVE_SUPPLIER = "mpasssp"
local PAGE_NETWORK_IMPORTER = "mnetimp"
local PAGE_REQUEST_INSERTER = "mreqins"
local PAGE_RESERVOIR = "mreservoir"
local PAGE_PUMP = "mpump"
local PAGE_BUCKET_EMPTIER = "mbckemp"
local PAGE_BUCKET_FILLER = "mbckfil"
local PAGE_WIRELESS_UPGRADER = "mwrlup"
local PAGE_CRAFTING_SUPPLIER = "mcrftsup"
local PAGE_AUTOCRAFTER = "mautocrf"
local PAGE_VACCUUM_CHEST = "mvacchs"
local PAGE_LAVA_FUELER = "mlvfuel"
local PAGE_COBBLE_GENERATOR = "mcobgen"
local PAGE_TRASHCAN = "mtrash"
local PAGE_MASS_STORAGE_UPGR = "msstup"
local PAGE_COBBLE_GENERATOR_UPGR = "cbgnup"
local PAGE_WIRELESS_ACCESS_PAD = "iwrlap"
local PAGE_HYPERSPANNER = "ihyper"
local PAGE_SILVERIN_CRYSTAL = "isilcry"
local PAGE_SILVERIN_SLICE = "isilsli"
local PAGE_SILVERIN_CIRCUIT = "isilcir"
local PAGE_SILVERIN_MIRRORBOX = "isilmbx"
local PAGE_SILVERIN_PLATE = "isilplt"
local PAGE_COMPRESSION_TANK = "icomptnk"
local PAGE_PHOTONIZERS = "iphtns"
local PAGE_WAVE_FUN_MAIN = "iwvfnm"
local PAGE_WIRELESS_CRYSTAL = "iwrcry"
local PAGE_SERVER_SETTINGS = "servset"
local getrec = logistica.GuideApi.convert_minetest_items_recipes_to_guide_recipes
local allLavaFurnRecipes = logistica.get_lava_furnace_internal_recipes()
local function getlavarec(itemName)
local ret = {}
for _, recipes in pairs(allLavaFurnRecipes) do
for _, recipe in pairs(recipes) do
local itemStack = ItemStack(recipe.output)
if itemStack:get_name() == itemName then
local outRec = {
output = itemName,
width = 2,
height = 1,
icon = "logistica_lava_furnace_front_off.png",
iconText = S("Lava Furnace"),
input = {{recipe.input, recipe.additive}}
}
table.insert(ret, outRec)
end
end
end
return ret
end
local RECIPE_LAVAFURN = getrec({L("lava_furnace")})
local RECIPE_NETCONTR = getrec({L("simple_controller")})
local RECIPE_ACCESSPT = getrec({L("access_point")})
local RECIPE_OPTICCBL = getrec({L("optic_cable"), L("optic_cable_toggleable_off"), L("optic_cable_block")})
local RECIPE_MASSSTOR = getrec({L("mass_storage_basic")})
local RECIPE_TOOLCHST = getrec({L("item_storage")})
local RECIPE_PASSSUPP = getrec({L("passive_supplier")})
local RECIPE_NETIMPRT = getrec({L("injector_slow"), L("injector_fast")})
local RECIPE_REQINSRT = getrec({L("requester_item"), L("requester_stack")})
local RECIPE_RESERVOR = getrec({L("reservoir_obsidian_empty"), L("reservoir_silverin_empty")})
local RECIPE_RESERPMP = getrec({L("pump")})
local RECIPE_WRLUPGRD = getrec({L("wireless_synchronizer")})
local RECIPE_CRAFTSUP = getrec({L("crafting_supplier")})
local RECIPE_AUTOCRFT = getrec({L("autocrafter")})
local RECIPE_BUCKFILL = getrec({L("bucket_filler")})
local RECIPE_BUCKEMPT = getrec({L("bucket_emptier")})
local RECIPE_VACCUUMC = getrec({L("vaccuum_chest")})
local RECIPE_LVFRFUEL = getrec({L("lava_furnace_fueler")})
local RECIPE_COBBLGEN = getrec({L("cobblegen_supplier")})
local RECIPE_TRASHCAN = getrec({L("trashcan")})
local RECIPE_MASSUPGR = getrec({L("storage_upgrade_1"), L("storage_upgrade_2")})
local RECIPE_COBGENUP = getrec({L("cobblegen_upgrade")})
local RECIPE_HYPERSPN = getrec({L("hyperspanner")})
local RECIPE_PHOTONIZ = getrec({L("photonizer"), L("photonizer_reversed")})
local RECIPE_STANDWAV = getrec({L("standing_wave_box")})
local RECIPE_WIRLSSAP = getrec({L("wireless_access_pad")})
local RECIPE_COMPTANK = getrec({L("compression_tank")})
local RECIPE_SILVSLIC = getrec({L("silverin_slice")})
local RECIPE_SILVERIN = getlavarec(L("silverin"))
local RECIPE_SILVPLAT = getlavarec(L("silverin_plate"))
local RECIPE_SILVCIRC = getlavarec(L("silverin_circuit"))
local RECIPE_SILVMIRR = getlavarec(L("silverin_mirror_box"))
local RECIPE_WRLSCRYS = getlavarec(L("wireless_crystal"))
local RECIPE_LINKS = {
-- items
[L("lava_furnace")] = PAGE_START,
[L("silverin")] = PAGE_SILVERIN_CRYSTAL,
[L("silverin_slice")] = PAGE_SILVERIN_SLICE,
[L("silverin_mirror_box")] = PAGE_SILVERIN_MIRRORBOX,
[L("silverin_plate")] = PAGE_SILVERIN_PLATE,
[L("compression_tank")] = PAGE_COMPRESSION_TANK,
[L("photonizer")] = PAGE_PHOTONIZERS,
[L("photonizer_reversed")] = PAGE_PHOTONIZERS,
[L("standing_wave_box")] = PAGE_WAVE_FUN_MAIN,
[L("wireless_crystal")] = PAGE_WIRELESS_CRYSTAL,
[L("wireless_access_pad")] = PAGE_WIRELESS_ACCESS_PAD,
[L("hyperspanner")] = PAGE_HYPERSPANNER,
[L("optic_cable")] = PAGE_OPTIC_CABLE,
[L("optic_cable_toggleable_off")] = PAGE_OPTIC_CABLE,
[L("optic_cable_block")] = PAGE_OPTIC_CABLE,
[L("storage_upgrade_1")] = PAGE_MASS_STORAGE_UPGR,
[L("storage_upgrade_2")] = PAGE_MASS_STORAGE_UPGR,
[L("cobblegen_upgrade")] = PAGE_COBBLE_GENERATOR_UPGR,
[L("silverin_circuit")] = PAGE_SILVERIN_CIRCUIT,
-- machines
[L("lava_furnace_fueler")] = PAGE_LAVA_FUELER,
[L("reservoir_silverin_empty")] = PAGE_RESERVOIR,
[L("reservoir_obsidian_empty")] = PAGE_RESERVOIR,
[L("wireless_synchronizer")] = PAGE_WIRELESS_UPGRADER,
[L("simple_controller")] = PAGE_NET_CONTROLLER,
[L("injector_slow")] = PAGE_NETWORK_IMPORTER,
[L("requester_item")] = PAGE_REQUEST_INSERTER,
[L("pump")] = PAGE_PUMP,
[L("mass_storage_basic")] = PAGE_MASS_STORAGE,
[L("cobblegen_supplier")] = PAGE_COBBLE_GENERATOR,
}
--------------------------------
-- Registration
--------------------------------
local function header(str)
return "#CCFF66"..str
end
local desc = logistica.Guide.Desc
logistica.GuideApi.register(GUIDE_NAME, {
title = S("Logistica Guide"),
formspecBackgroundStr = logistica.ui.background,
tableOfContentWidth = 4.5,
contentWidth = 15,
totalHeight = 14,
tableOfContent = {
{ name = header(S("Intro")), id = PAGE_INTRO },
{ name = header(S("How To:"))},
{ name = S(" Get Started: The Lava Furnace"), id = PAGE_START },
{ name = S(" Create a Logistic Network"), id = PAGE_CREATE_NET },
{ name = S(" Move items from/to other mods"), id = PAGE_MOVE_ITEMS },
{ name = header(S("General Machines:"))},
{ name = S(" Network Controller"), id = PAGE_NET_CONTROLLER },
{ name = S(" Access Point"), id = PAGE_ACCESS_POINT },
{ name = S(" Optic Cables"), id = PAGE_OPTIC_CABLE },
{ name = S(" Wireless Upgrader"), id = PAGE_WIRELESS_UPGRADER },
{ name = header(S("Storage:"))},
{ name = S(" Mass Storage"), id = PAGE_MASS_STORAGE },
{ name = S(" Tool Chest"), id = PAGE_TOOL_CHEST },
{ name = S(" Passive Supplier Chest"), id = PAGE_PASSIVE_SUPPLIER },
{ name = header(S("Moving Items:"))},
{ name = S(" Network Importer"), id = PAGE_NETWORK_IMPORTER },
{ name = S(" Request Inserter"), id = PAGE_REQUEST_INSERTER },
{ name = header(S("Liquid Storage:"))},
{ name = S(" Reservoirs"), id = PAGE_RESERVOIR },
{ name = S(" Reservoir Pump"), id = PAGE_PUMP },
{ name = S(" Bucket Filler"), id = PAGE_BUCKET_FILLER },
{ name = S(" Bucket Emptier"), id = PAGE_BUCKET_EMPTIER },
{ name = header(S("Autocrafting:"))},
{ name = S(" Crafting Supplier"), id = PAGE_CRAFTING_SUPPLIER },
{ name = S(" Autocrafter"), id = PAGE_AUTOCRAFTER },
{ name = header(S("Utility Machines:"))},
{ name = S(" Vaccuum Chest"), id = PAGE_VACCUUM_CHEST },
{ name = S(" Lava Furnace Fueler"), id = PAGE_LAVA_FUELER },
{ name = S(" Cobble Generator"), id = PAGE_COBBLE_GENERATOR },
{ name = S(" Trashcan"), id = PAGE_TRASHCAN },
{ name = header(S("Machine Upgrades:"))},
{ name = S(" Mass Storage Upgrades"), id = PAGE_MASS_STORAGE_UPGR },
{ name = S(" Cobble Generator Upgrades"), id = PAGE_COBBLE_GENERATOR_UPGR },
{ name = header(S("Tools:"))},
{ name = S(" Wireless Access Pad"), id = PAGE_WIRELESS_ACCESS_PAD },
{ name = S(" Hyperspanner"), id = PAGE_HYPERSPANNER },
{ name = header(S("Items:"))},
{ name = S(" Silverin Crystal"), id = PAGE_SILVERIN_CRYSTAL },
{ name = S(" Silverin Slice"), id = PAGE_SILVERIN_SLICE },
{ name = S(" Silverin Circuit"), id = PAGE_SILVERIN_CIRCUIT },
{ name = S(" Silverin Mirror Box"), id = PAGE_SILVERIN_MIRRORBOX },
{ name = S(" Silverin Plate"), id = PAGE_SILVERIN_PLATE },
{ name = S(" Compression Tank"), id = PAGE_COMPRESSION_TANK },
{ name = S(" Photonizer/Reverse Polarity"), id = PAGE_PHOTONIZERS },
{ name = S(" Wave Function Maintainer"), id = PAGE_WAVE_FUN_MAIN },
{ name = S(" Wireless Crystal"), id = PAGE_WIRELESS_CRYSTAL },
{ name = header(S("Misc:"))},
{ name = S(" Server Settings"), id = PAGE_SERVER_SETTINGS },
},
pageText = {
-- intro
[PAGE_INTRO] = {
title = S("Intro to Logistica"),
relatedItems = {L("lava_furnace")},
recipeLinks = RECIPE_LINKS,
description = desc.intro,
},
[PAGE_START] = {
title = S("Getting started with Logistica"),
relatedItems = {L("silverin"), L("lava_furnace_fueler")},
recipes = RECIPE_LAVAFURN,
recipeLinks = RECIPE_LINKS,
description = desc.get_started,
},
[PAGE_CREATE_NET] = {
title = S("Create a Logistic Network"),
relatedItems = {L("simple_controller"), L("optic_cable")},
recipeLinks = RECIPE_LINKS,
description = desc.create_network,
},
[PAGE_MOVE_ITEMS] = {
title = S("Moving items from/to other mod's machines or storage"),
relatedItems = {L("injector_slow"), L("requester_item")},
recipeLinks = RECIPE_LINKS,
description = desc.move_items,
},
-- general machines
[PAGE_NET_CONTROLLER] = {
title = S("Network Controller"),
recipes = RECIPE_NETCONTR,
recipeLinks = RECIPE_LINKS,
description = desc.network_controller,
},
[PAGE_ACCESS_POINT] = {
title = S("Access Point"),
recipes = RECIPE_ACCESSPT,
recipeLinks = RECIPE_LINKS,
description = desc.access_point,
},
[PAGE_OPTIC_CABLE] = {
title = S("Optic cables"),
relatedItems = {L("simple_controller")},
recipes = RECIPE_OPTICCBL,
recipeLinks = RECIPE_LINKS,
description = desc.optic_cable,
},
[PAGE_WIRELESS_UPGRADER] = {
title = S("Wireless Upgrader"),
relatedItems = {L("wireless_access_pad")},
recipes = RECIPE_WRLUPGRD,
recipeLinks = RECIPE_LINKS,
description = desc.wireless_upgrader,
},
-- storage
[PAGE_MASS_STORAGE] = {
title = S("Mass Storage"),
recipes = RECIPE_MASSSTOR,
relatedItems = {L("storage_upgrade_1")},
recipeLinks = RECIPE_LINKS,
description = desc.mass_storage,
},
[PAGE_TOOL_CHEST] = {
title = S("Optic cables"),
recipes = RECIPE_TOOLCHST,
recipeLinks = RECIPE_LINKS,
description = desc.tool_chest,
},
[PAGE_PASSIVE_SUPPLIER] = {
title = S("Wireless Upgrader"),
recipes = RECIPE_PASSSUPP,
recipeLinks = RECIPE_LINKS,
description = desc.passive_supplier,
},
-- moving items
[PAGE_NETWORK_IMPORTER] = {
title = S("Network Importer"),
recipes = RECIPE_NETIMPRT,
recipeLinks = RECIPE_LINKS,
description = desc.network_importer,
},
[PAGE_REQUEST_INSERTER] = {
title = S("Request Inserter"),
recipes = RECIPE_REQINSRT,
recipeLinks = RECIPE_LINKS,
description = desc.request_inserter,
},
-- liquids
[PAGE_RESERVOIR] = {
title = S("Liquid Reservoirs"),
relatedItems = {L("pump")},
recipes = RECIPE_RESERVOR,
recipeLinks = RECIPE_LINKS,
description = desc.reservoir,
},
[PAGE_PUMP] = {
title = S("Resevoir Pump"),
relatedItems = {L("reservoir_silverin_empty")},
recipes = RECIPE_RESERPMP,
recipeLinks = RECIPE_LINKS,
description = desc.reservoir_pump,
},
[PAGE_BUCKET_EMPTIER] = {
title = S("Bucket Emptier"),
relatedItems = {L("reservoir_silverin_empty")},
recipes = RECIPE_BUCKEMPT,
recipeLinks = RECIPE_LINKS,
description = desc.bucket_emptier,
},
[PAGE_BUCKET_FILLER] = {
title = S("Bucket Filler"),
relatedItems = {L("reservoir_silverin_empty")},
recipes = RECIPE_BUCKFILL,
recipeLinks = RECIPE_LINKS,
description = desc.bucket_filler,
},
-- autocrafting
[PAGE_CRAFTING_SUPPLIER] = {
title = S("Crafting Supplierr"),
recipes = RECIPE_CRAFTSUP,
recipeLinks = RECIPE_LINKS,
description = desc.crafting_supplier,
},
[PAGE_AUTOCRAFTER] = {
title = S("Autocrafter"),
recipes = RECIPE_AUTOCRFT,
recipeLinks = RECIPE_LINKS,
description = desc.autocrafter,
},
-- utiltiy nodes
[PAGE_VACCUUM_CHEST] = {
title = S("Vaccuum Chest"),
recipes = RECIPE_VACCUUMC,
recipeLinks = RECIPE_LINKS,
description = desc.vaccuum_chest,
},
[PAGE_LAVA_FUELER] = {
title = S("Lava Furnace Fueler"),
relatedItems = {L("lava_furnace")},
recipes = RECIPE_LVFRFUEL,
recipeLinks = RECIPE_LINKS,
description = desc.lava_furnace_fueler,
},
[PAGE_COBBLE_GENERATOR] = {
title = S("Cobblestone Generator"),
relatedItems = {L("cobblegen_upgrade")},
recipes = RECIPE_COBBLGEN,
recipeLinks = RECIPE_LINKS,
description = desc.cobblegen_supplier,
},
[PAGE_TRASHCAN] = {
title = S("Trashcan"),
recipes = RECIPE_TRASHCAN,
recipeLinks = RECIPE_LINKS,
description = desc.trashcan,
},
-- node upgrades
[PAGE_MASS_STORAGE_UPGR] = {
title = S("Mass Storage Upgrades"),
relatedItems = {L("mass_storage_basic")},
recipes = RECIPE_MASSUPGR,
recipeLinks = RECIPE_LINKS,
description = desc.mass_storage_upgrade,
},
[PAGE_COBBLE_GENERATOR_UPGR] = {
title = S("Cobblestone Generator Upgrades"),
relatedItems = {L("cobblegen_supplier")},
recipes = RECIPE_COBGENUP,
recipeLinks = RECIPE_LINKS,
description = desc.cobblegen_upgrade,
},
-- tools
[PAGE_WIRELESS_ACCESS_PAD] = {
title = S("The Wireless Access Pad"),
relatedItems = {L("wireless_synchronizer")},
recipes = RECIPE_WIRLSSAP,
recipeLinks = RECIPE_LINKS,
description = desc.wireless_access_pad,
},
[PAGE_HYPERSPANNER] = {
title = S("Hyperspanner"),
recipes = RECIPE_HYPERSPN,
recipeLinks = RECIPE_LINKS,
description = desc.hyperspanner,
},
-- items
[PAGE_SILVERIN_CRYSTAL] = {
title = S("Silverin Crystal"),
relatedItems = {L("lava_furnace"), L("silverin_slice")},
recipes = RECIPE_SILVERIN,
recipeLinks = RECIPE_LINKS,
description = desc.silverin_crystal,
},
[PAGE_SILVERIN_SLICE] = {
title = S("Silvrin Silce"),
relatedItems = {L("silverin")},
recipes = RECIPE_SILVSLIC,
recipeLinks = RECIPE_LINKS,
description = desc.silverin_slice,
},
[PAGE_SILVERIN_CIRCUIT] = {
title = S("Silvrin Circuit"),
relatedItems = {L("lava_furnace")},
recipes = RECIPE_SILVCIRC,
recipeLinks = RECIPE_LINKS,
description = desc.silverin_circuit,
},
[PAGE_SILVERIN_MIRRORBOX] = {
title = S("Mirror Box"),
relatedItems = {L("lava_furnace")},
recipes = RECIPE_SILVMIRR,
recipeLinks = RECIPE_LINKS,
description = desc.silverin_mirror_box,
},
[PAGE_SILVERIN_PLATE] = {
title = S("Silvrin Plate"),
relatedItems = {L("lava_furnace")},
recipes = RECIPE_SILVPLAT,
recipeLinks = RECIPE_LINKS,
description = desc.silverin_plate,
},
[PAGE_COMPRESSION_TANK] = {
title = S("Compression Tank"),
relatedItems = {L("reservoir_silverin_empty")},
recipes = RECIPE_COMPTANK,
recipeLinks = RECIPE_LINKS,
description = desc.compression_tank,
},
[PAGE_PHOTONIZERS] = {
title = S("Photonizer and Reverse Polarity Photonizer"),
recipes = RECIPE_PHOTONIZ,
recipeLinks = RECIPE_LINKS,
description = desc.photonizers,
},
[PAGE_WAVE_FUN_MAIN] = {
title = S("Wave Function Maintainer"),
recipes = RECIPE_STANDWAV,
recipeLinks = RECIPE_LINKS,
description = desc.wave_func_main,
},
[PAGE_WIRELESS_CRYSTAL] = {
title = S("Wireless Crystal"),
relatedItems = {L("wireless_access_pad"), L("wireless_synchronizer"), L("lava_furnace")},
recipes = RECIPE_WRLSCRYS,
recipeLinks = RECIPE_LINKS,
description = desc.wireless_crystal,
},
-- Settings
[PAGE_SERVER_SETTINGS] = {
title = S("Server Settings"),
description = desc.server_settings,
},
}
})