|
|
Line 21: |
Line 21: |
| -- | | -- |
| RecipeData = RecipeData or require("Module:RecipeData") -- used to get recipe data | | RecipeData = RecipeData or require("Module:RecipeData") -- used to get recipe data |
| | Utility = Utility or require("Module:Utility") -- need normalize functions |
|
| |
|
|
| |
|
Line 233: |
Line 234: |
| -- therefore, error handling will be necessary | | -- therefore, error handling will be necessary |
| return data.description or nil | | return data.description or nil |
| end
| |
|
| |
|
| |
|
| |
| -------------------------------------------------------------------------------
| |
| -- Helper functions
| |
| -------------------------------------------------------------------------------
| |
|
| |
|
| |
|
| |
| -- Normalize the argument to the standard in-game name, and the one that
| |
| -- is used as the key in the big lookup table.
| |
| --
| |
| -- This function will also make the argument lowercase to reduce the need
| |
| -- to specify more possible alternatives to normalize.
| |
| function BuildingData.normalizeName(strArg)
| |
|
| |
| strArg = string.lower(strArg)
| |
|
| |
| -- no other functions need this lookup table, so it's defined locally
| |
| -- to this function
| |
| local tableStrStrAlternatives = {
| |
|
| |
| ---------------------------------------
| |
| -- Buildings
| |
| ---------------------------------------
| |
| -- Starting Buildings
| |
| ["ancienthearth"] = "ancient hearth",
| |
| ["ancienthearths"] = "ancient hearth",
| |
| ["ancient hearths"] = "ancient hearth",
| |
| ["mainwarehouse"] = "main warehouse",
| |
| ["mainwarehouses"] = "main warehouse",
| |
| ["main warehouses"] = "main warehouse",
| |
| -- Camps
| |
| ["forager"] = "foragers' camp",
| |
| ["foragerscamp"] = "foragers' camp",
| |
| ["forager'scamp"] = "foragers' camp",
| |
| ["foragers'camp"] = "foragers' camp",
| |
| ["forager camp"] = "foragers' camp",
| |
| ["forager's camp"] = "foragers' camp",
| |
| ["foragers"] = "foragers' camp",
| |
| ["foragerscamps"] = "foragers' camp",
| |
| ["forager'scamps"] = "foragers' camp",
| |
| ["foragers'camps"] = "foragers' camp",
| |
| ["forager camps"] = "foragers' camp",
| |
| ["forager's camps"] = "foragers' camp",
| |
| ["harvester"] = "harvesters' camp",
| |
| ["harvesterscamp"] = "harvesters' camp",
| |
| ["harvester'scamp"] = "harvesters' camp",
| |
| ["harvesters'camp"] = "harvesters' camp",
| |
| ["harvester camp"] = "harvesters' camp",
| |
| ["harvester's camp"] = "harvesters' camp",
| |
| ["harvesters"] = "harvesters' camp",
| |
| ["harvesterscamps"] = "harvesters' camp",
| |
| ["harvester'scamps"] = "harvesters' camp",
| |
| ["harvesters'camps"] = "harvesters' camp",
| |
| ["harvester camps"] = "harvesters' camp",
| |
| ["harvester's camps"] = "harvesters' camp",
| |
| ["herbalist"] = "herbalists' camp",
| |
| ["herbalistscamp"] = "herbalists' camp",
| |
| ["herbalist'scamp"] = "herbalists' camp",
| |
| ["herbalists'camp"] = "herbalists' camp",
| |
| ["herbalist camp"] = "herbalists' camp",
| |
| ["herbalist's camp"] = "herbalists' camp",
| |
| ["herbalists"] = "herbalists' camp",
| |
| ["herbalistscamps"] = "herbalists' camp",
| |
| ["herbalist'scamps"] = "herbalists' camp",
| |
| ["herbalists'camps"] = "herbalists' camp",
| |
| ["herbalist camps"] = "herbalists' camp",
| |
| ["herbalist's camps"] = "herbalists' camp",
| |
| ["stonecutter"] = "stonecutters' camp",
| |
| ["stonecutterscamp"] = "stonecutters' camp",
| |
| ["stonecutter'scamp"] = "stonecutters' camp",
| |
| ["stonecutters'camp"] = "stonecutters' camp",
| |
| ["stonecutter camp"] = "stonecutters' camp",
| |
| ["stonecutter's camp"] = "stonecutters' camp",
| |
| ["stonecutters"] = "stonecutters' camp",
| |
| ["stonecutterscamps"] = "stonecutters' camp",
| |
| ["stonecutter'scamps"] = "stonecutters' camp",
| |
| ["stonecutters'camps"] = "stonecutters' camp",
| |
| ["stonecutter camps"] = "stonecutters' camp",
| |
| ["stonecutter's camps"] = "stonecutters' camp",
| |
| ["trapper"] = "trappers' camp",
| |
| ["trapperscamp"] = "trappers' camp",
| |
| ["trapper'scamp"] = "trappers' camp",
| |
| ["trappers'camp"] = "trappers' camp",
| |
| ["trapper camp"] = "trappers' camp",
| |
| ["trapper's camp"] = "trappers' camp",
| |
| ["trappers"] = "trappers' camp",
| |
| ["trapperscamps"] = "trappers' camp",
| |
| ["trapper'scamps"] = "trappers' camp",
| |
| ["trappers'camps"] = "trappers' camp",
| |
| ["trapper camps"] = "trappers' camp",
| |
| ["trapper's camps"] = "trappers' camp",
| |
| ["woodcutter"] = "woodcutters' camp",
| |
| ["woodcutterscamp"] = "woodcutters' camp",
| |
| ["woodcutter'scamp"] = "woodcutters' camp",
| |
| ["woodcutters'camp"] = "woodcutters' camp",
| |
| ["woodcutter camp"] = "woodcutters' camp",
| |
| ["woodcutter's camp"] = "woodcutters' camp",
| |
| ["woodcutters"] = "woodcutters' camp",
| |
| ["woodcutterscamps"] = "woodcutters' camp",
| |
| ["woodcutter'scamps"] = "woodcutters' camp",
| |
| ["woodcutters'camps"] = "woodcutters' camp",
| |
| ["woodcutter camps"] = "woodcutters' camp",
| |
| ["woodcutter's camps"] = "woodcutters' camp",
| |
| -- Farms
| |
| ["field"] = "farm field",
| |
| ["fields"] = "farm field",
| |
| ["farmfield"] = "farm field",
| |
| ["farmfields"] = "farm field",
| |
| ["farm fields"] = "farm field",
| |
| ["greenhouses"] = "greenhouse",
| |
| ["green house"] = "greenhouse",
| |
| ["green houses"] = "greenhouse",
| |
| ["herbgarden"] = "herb garden",
| |
| ["herbgardens"] = "herb garden",
| |
| ["herb gardens"] = "herb garden",
| |
| ["plantations"] = "plantation",
| |
| ["farm"] = "small farm",
| |
| ["farms"] = "small farm",
| |
| ["smallfarm"] = "small farm",
| |
| ["smallfarms"] = "small farm",
| |
| ["small farms"] = "small farm",
| |
| -- Food Production
| |
| ["baker"] = "bakery",
| |
| ["bakers"] = "bakery",
| |
| ["bakeries"] = "bakery",
| |
| ["butchers"] = "butcher",
| |
| ["celler"] = "cellar",
| |
| ["cellers"] = "cellar",
| |
| ["cellars"] = "cellar",
| |
| ["cookhouses"] = "cookhouse",
| |
| ["cook house"] = "cookhouse",
| |
| ["cook houses"] = "cookhouse",
| |
| ["fieldkitchen"] = "field kitchen",
| |
| ["fieldkitchens"] = "field kitchen",
| |
| ["field kitchens"] = "field kitchen",
| |
| ["granaries"] = "granary",
| |
| ["grills"] = "grill",
| |
| ["ranches"] = "ranch",
| |
| ["smokehouses"] = "smokehouse",
| |
| ["smoke house"] = "smokehouse",
| |
| ["smoke housea"] = "smokehouse",
| |
| -- Housing
| |
| ["house"] = "shelter",
| |
| ["houses"] = "shelter",
| |
| ["bighouse"] = "big shelter",
| |
| ["bighouses"] = "big shelter",
| |
| ["bigshelter"] = "big shelter",
| |
| ["bigshelters"] = "big shelter",
| |
| ["humanhouse"] = "human house",
| |
| ["humanhouses"] = "human house",
| |
| ["human'shouse"] = "human house",
| |
| ["humans'house"] = "human house",
| |
| ["human houses"] = "human house",
| |
| ["human's house"] = "human house",
| |
| ["humans' house"] = "human house",
| |
| ["human's houses"] = "human house",
| |
| ["humans' houses"] = "human house",
| |
| ["beaverhouse"] = "beaver house",
| |
| ["beaverhouses"] = "beaver house",
| |
| ["beaver'shouse"] = "beaver house",
| |
| ["beavers'house"] = "beaver house",
| |
| ["beaver'shouses"] = "beaver house",
| |
| ["beavers'houses"] = "beaver house",
| |
| ["beaver houses"] = "beaver house",
| |
| ["beaver's houses"] = "beaver house",
| |
| ["beavers' houses"] = "beaver house",
| |
| ["lizardhouse"] = "lizard house",
| |
| ["lizardhouses"] = "lizard house",
| |
| ["lizard'shouse"] = "lizard house",
| |
| ["lizards'house"] = "lizard house",
| |
| ["lizard'shouses"] = "lizard house",
| |
| ["lizards'houses"] = "lizard house",
| |
| ["lizard houses"] = "lizard house",
| |
| ["lizard's houses"] = "lizard house",
| |
| ["lizards' houses"] = "lizard house",
| |
| ["harpyhouse"] = "harpy house",
| |
| ["harpyhouses"] = "harpy house",
| |
| ["harpy'shouse"] = "harpy house",
| |
| ["harpys'house"] = "harpy house",
| |
| ["harpy'shouses"] = "harpy house",
| |
| ["harpys'houses"] = "harpy house",
| |
| ["harpy houses"] = "harpy house",
| |
| ["harpy's houses"] = "harpy house",
| |
| ["harpys' houses"] = "harpy house",
| |
| ["harpieshouse"] = "harpy house",
| |
| ["harpieshouses"] = "harpy house",
| |
| ["harpies'house"] = "harpy house",
| |
| ["harpies houses"] = "harpy house",
| |
| ["harpies' houses"] = "harpy house",
| |
| -- Industry
| |
| ["crudeworkstation"] = "crude workstation",
| |
| ["crudeworkstations"] = "crude workstation",
| |
| ["crude workstations"] = "crude workstation",
| |
| ["makeshiftpost"] = "makeshift post",
| |
| ["makeshiftposts"] = "makeshift post",
| |
| ["makeshift posts"] = "makeshift post",
| |
| ["advancedraincollector"] = "advanced rain collector",
| |
| ["advancedraincollectors"] = "advanced rain collector",
| |
| ["advanced rain collectors"] = "advanced rain collector",
| |
| ["alchemist"] = "alchemist's hut",
| |
| ["alchemists"] = "alchemist's hut",
| |
| ["alchemisthut"] = "alchemist's hut",
| |
| ["alchemisthuts"] = "alchemist's hut",
| |
| ["alchemistshut"] = "alchemist's hut",
| |
| ["alchemistshuts"] = "alchemist's hut",
| |
| ["alchemist'shut"] = "alchemist's hut",
| |
| ["alchemist'shuts"] = "alchemist's hut",
| |
| ["alchemists'hut"] = "alchemist's hut",
| |
| ["alchemists'huts"] = "alchemist's hut",
| |
| ["alchemist hut"] = "alchemist's hut",
| |
| ["alchemist huts"] = "alchemist's hut",
| |
| ["alchemists hut"] = "alchemist's hut",
| |
| ["alchemists huts"] = "alchemist's hut",
| |
| ["alchemists' hut"] = "alchemist's hut",
| |
| ["alchemists' huts"] = "alchemist's hut",
| |
| ["apothacary"] = "apothecary",
| |
| ["apothecaries"] = "apothecary",
| |
| ["artisans"] = "artisan",
| |
| ["brewer"] = "brewery",
| |
| ["brewers"] = "brewery",
| |
| ["breweries"] = "brewery",
| |
| ["brickoven"] = "brick oven",
| |
| ["brickovens"] = "brick oven",
| |
| ["brick ovens"] = "brick oven",
| |
| ["brickyards"] = "brickyard",
| |
| ["brick yard"] = "brickyard",
| |
| ["brick yards"] = "brickyard",
| |
| ["carpenters"] = "carpenter",
| |
| ["clothiers"] = "clothier",
| |
| ["cooper"] = "cooperage",
| |
| ["coopers"] = "cooperage",
| |
| ["cooperages"] = "cooperage",
| |
| ["druid"] = "druid's hut",
| |
| ["druids"] = "druid's hut",
| |
| ["druidhut"] = "druid's hut",
| |
| ["druidhuts"] = "druid's hut",
| |
| ["druid'shut"] = "druid's hut",
| |
| ["druid'shuts"] = "druid's hut",
| |
| ["druids'hut"] = "druid's hut",
| |
| ["druids'huts"] = "druid's hut",
| |
| ["druid hut"] = "druid's hut",
| |
| ["druid huts"] = "druid's hut",
| |
| ["druids' hut"] = "druid's hut",
| |
| ["druids' huts"] = "druid's hut",
| |
| ["druid's huts"] = "druid's hut",
| |
| ["flawlessbrewery"] = "flawless brewery",
| |
| ["flawlessbreweries"] = "flawless brewery",
| |
| ["flawless breweries"] = "flawless brewery",
| |
| ["flawlessrainmill"] = "flawless rain mill",
| |
| ["flawlessrainmills"] = "flawless rain mill",
| |
| ["flawless rainmill"] = "flawless rain mill",
| |
| ["flawless rainmills"] = "flawless rain mill",
| |
| ["flawless rain mills"] = "flawless rain mill",
| |
| ["furnaces"] = "furnace",
| |
| ["kilns"] = "kiln",
| |
| ["leatherworkers"] = "leatherworker",
| |
| ["leather worker"] = "leatherworker",
| |
| ["leather workers"] = "leatherworker",
| |
| ["lumbermill"] = "lumber mill",
| |
| ["lumbermills"] = "lumber mill",
| |
| ["lumber mills"] = "lumber mill",
| |
| ["mines"] = "mine",
| |
| ["presses"] = "press",
| |
| ["provisioners"] = "provisioner",
| |
| ["raincollector"] = "rain collector",
| |
| ["raincollectors"] = "rain collector",
| |
| ["rain collectors"] = "rain collector",
| |
| ["rainmill"] = "rain mill",
| |
| ["rainmills"] = "rain mill",
| |
| ["rain mills"] = "rain mill",
| |
| ["scribes"] = "scribe",
| |
| ["smelters"] = "smelter",
| |
| ["smeltery"] = "smelter",
| |
| ["smelteries"] = "smelter",
| |
| ["tool shop"] = "toolshop",
| |
| ["weavers"] = "weaver",
| |
| -- City buildings
| |
| ["archaeologyoffice"] = "archaeologist's office",
| |
| ["archeologyoffice"] = "archaeologist's office",
| |
| ["archaeologistoffice"] = "archaeologist's office",
| |
| ["archeologistoffice"] = "archaeologist's office",
| |
| ["archaeologistsoffice"] = "archaeologist's office",
| |
| ["archeologistsoffice"] = "archaeologist's office",
| |
| ["archaeologist'soffice"] = "archaeologist's office",
| |
| ["archeologist'soffice"] = "archaeologist's office",
| |
| ["archeologists'office"] = "archaeologist's office",
| |
| ["archaeology office"] = "archaeologist's office",
| |
| ["archeology office"] = "archaeologist's office",
| |
| ["archaeologist office"] = "archaeologist's office",
| |
| ["archeologist office"] = "archaeologist's office",
| |
| ["archaeologists office"] = "archaeologist's office",
| |
| ["archeologists office"] = "archaeologist's office",
| |
| ["archeologist's office"] = "archaeologist's office",
| |
| ["archaeologists' office"] = "archaeologist's office",
| |
| ["archeologists' office"] = "archaeologist's office",
| |
| ["smallhearth"] = "small hearth",
| |
| ["smallhearths"] = "small hearth",
| |
| ["small hearths"] = "small hearth",
| |
| ["warehouses"] = "warehouse",
| |
| ["ware house"] = "warehouse",
| |
| ["ware houses"] = "warehouse",
| |
| ["traderpost"] = "trading post",
| |
| ["traderposts"] = "trading post",
| |
| ["trader posts"] = "trading post",
| |
| ["tradingpost"] = "trading post",
| |
| ["tradingposts"] = "trading post",
| |
| ["trading posts"] = "trading post",
| |
| ["blightpost"] = "blight post",
| |
| ["blightposts"] = "blight post",
| |
| ["blight posts"] = "blight post",
| |
| ["hydrants"] = "hydrant",
| |
| ["forsakenaltar"] = "forsaken altar",
| |
| ["forsakenalter"] = "forsaken altar",
| |
| ["foresakenaltar"] = "forsaken altar",
| |
| ["foresakenalter"] = "forsaken altar",
| |
| ["forsakenaltars"] = "forsaken altar",
| |
| ["forsakenalters"] = "forsaken altar",
| |
| ["foresakenaltars"] = "forsaken altar",
| |
| ["foresakenalters"] = "forsaken altar",
| |
| ["forsaken altars"] = "forsaken altar",
| |
| ["forsaken alters"] = "forsaken altar",
| |
| ["foresaken altars"] = "forsaken altar",
| |
| ["foresaken alters"] = "forsaken altar",
| |
| -- Service Buildings
| |
| ["bath"] = "bath house",
| |
| ["baths"] = "bath house",
| |
| ["bathhouse"] = "bath house",
| |
| ["bathhouses"] = "bath house",
| |
| ["bath houses"] = "bath house",
| |
| ["clan"] = "clan hall",
| |
| ["clans"] = "clan hall",
| |
| ["clanhall"] = "clan hall",
| |
| ["clanhalls"] = "clan hall",
| |
| ["clan halls"] = "clan hall",
| |
| ["explorer"] = "explorers' lodge",
| |
| ["explorers"] = "explorers' lodge",
| |
| ["explorerlodge"] = "explorers' lodge",
| |
| ["explorerslodge"] = "explorers' lodge",
| |
| ["explorerlodges"] = "explorers' lodge",
| |
| ["explorerslodges"] = "explorers' lodge",
| |
| ["explorers'lodges"] = "explorers' lodge",
| |
| ["explorer'slodges"] = "explorers' lodge",
| |
| ["explorer lodge"] = "explorers' lodge",
| |
| ["explorers lodge"] = "explorers' lodge",
| |
| ["explorer lodges"] = "explorers' lodge",
| |
| ["explorers lodges"] = "explorers' lodge",
| |
| ["explorer's lodges"] = "explorers' lodge",
| |
| ["guild"] = "guild house",
| |
| ["guilds"] = "guild house",
| |
| ["guildhouse"] = "guild house",
| |
| ["guildhouses"] = "guild house",
| |
| ["guild houses"] = "guild house",
| |
| ["monestary"] = "monastery",
| |
| ["monastary"] = "monastery",
| |
| ["monestery"] = "monastery",
| |
| ["monestaries"] = "monastery",
| |
| ["monastaries"] = "monastery",
| |
| ["monesteries"] = "monastery",
| |
| ["taverns"] = "tavern",
| |
| ["temples"] = "temple"
| |
|
| |
| } -- the end of the huge tableStrStrAlternatives
| |
|
| |
| -- if nothing is found, the result of the lookup will be nil, so
| |
| -- just return whatever was passed in as the argument (lowercase)
| |
| -- we can assume that the input argument is fine or does not exist
| |
| return tableStrStrAlternatives[strArg] or strArg
| |
| end | | end |
|
| |
|
Documentation for this module may be created at Module:BuildingData/doc
-------------------------------------------------------------------------------
-- This module primarily supplies data and lookup functions for other modules
-- that support templates like {{Building_link}}.
-- https://hoodedhorse.com/wiki/Against_the_Storm/Template:Building_link
--
-- The main data table stores all available data about buildings themselves
-- and relies on other modules to store relationships between buildings and
-- products, services, etc.
--
-- The helper functions include getters (to keep the data hidden) and a large
-- deconfliction method to provide some robustness when using the template
-- and from other Lua modules. Looking up a building requires using in-game
-- names, but forgives small differences in spacing, apostrophes, and plurals.
-- Please help keep this table updated as the game is updated.
-- @module BuildingData
local BuildingData = {}
--
-- Dependencies
--
RecipeData = RecipeData or require("Module:RecipeData") -- used to get recipe data
Utility = Utility or require("Module:Utility") -- need normalize functions
--
-- Constants
--
-- Specializations
local S_ALCH = "Alchemy"
local S_BREW = "Brewing"
local S_CLOT = "Cloth"
local S_ENGI = "Engineering"
local S_MEAT = "Meat production"
local S_WARM = "Warmth"
local S_WOOD = "Wood"
-- Resource names of building costs
local C_BRICK = "Bricks"
local C_FABRI = "Fabric"
local C_PARTS = "Parts"
local C_PIPES = "Pipes"
local C_PLANK = "Planks"
-- Rain types for rain engines
local R_DRIZZ = "Drizzle Water"
local R_CLEAR = "Clearance Water"
local R_STORM = "Storm Water"
--
-- Class Variables
--
-------------------------------------------------------------------------------
-- Primary data table for this module.
--
-- This table stores the details of buildings according to in-game information.
-- A design decision of this table is to make the key the same as the page
-- name, so that whenever .page is referenced, it can be used again to retrieve
-- the rest of the data. (The lookup method will handle converting it to
-- lowercase.)
-- Structure:
-- @key a lowercase version of the building name, with the same spaces,
-- apostrophes, singular, and spelling
-- @field iconfile a string of the filename.png of the icon used in the
-- game, case-sensitive and must include extension, but without the "File:"
-- @field page the name of the wiki page, case-sensitive, but otherwise
-- must be the same as the key
-- @field spec1[opt] the first specialization listed in the in-game
-- encyclopedia (use the constants, above), if any
-- @field spec2[opt] the second specialization listed in the in-game
-- encyclopedia (use the constants, above), if any
-- @field cost1 the first listed resource cost in the in-game encyclopedia
-- (use constants, above)
-- @field cost2 the second listed resource cost in the in-game encyclopedia
-- (use constants, above), if any
-- @field cost3 the third listed resource cost in the in-game encyclopedia
-- (use constants, above), if any
-- @field workers the number of worker slots
-- @field raintype the color of rain used in the Rain Engine of this building
-- (use constants, above), if any
-- @field description the in-game description text, in plain text
-- @table tBuildingData the primary data table for buildings
local tBuildingData = {
-- Starting Buildings
["ancient hearth"] = {iconfile="Small Hearth icon.png", page="Ancient Hearth", spec1=S_WARM, workers=1, description="The heart of the colony is protected by the Holy Flame. {{Villagers}} gather here to rest, eat, and receive clothing. If the fire goes out, people will lose hope. Can't be moved. Size: 4x4."},
["main warehouse"] = {iconfile="Main_Storage_icon.png", page="Main Warehouse"},
-- Camps
["foragers' camp"] = {iconfile="Forager's Camp icon", page="Foragers' Camp"},
["harvesters' camp"] = {iconfile="Harvester Camp icon.png", page="Harvesters' Camp"},
["herbalists' camp"] = {iconfile="Herbalist's_Camp_icon.png", page="Herbalists' Camp"},
["stonecutters' camp"] = {iconfile="Stonecutter's Camp icon.png", page="Stonecutters' Camp"},
["trappers' camp"] = {iconfile="Trapper's Camp icon.png", page="Trappers' Camp"},
["woodcutters' camp"] = {iconfile="Woodcutters Camp icon", page="Woodcutters' Camp"},
-- Farms
["farm field"] = {iconfile="Farmfield_icon.png", page="Farm Field"},
["greenhouse"] = {iconfile="Greenhouse_icon.png", page="Greenhouse"},
["herb garden"] = {iconfile="HerbGarden_icon.png", page="Herb Garden"},
["plantation"] = {iconfile="Plantation_icon.png", page="Plantation"},
["small farm"] = {iconfile="SmallFarm_icon.png", page="Small Farm"},
-- Food production
["bakery"] = {iconfile="Bakery_icon.png", page="Bakery"},
["butcher"] = {iconfile="Butcher_icon.png", page="Butcher"},
["cellar"] = {iconfile="Cellar_icon.png", page="Cellar"},
["cookhouse"] = {iconfile="Cookhouse_icon.png", page="Cookhouse"},
["field kitchen"] = {iconfile="Field_Kitchen_icon.png", page="Field Kitchen"},
["granary"] = {iconfile="Granary_icon.png", page="Granary"},
["grill"] = {iconfile="Grill_icon.png", page="Grill"},
["ranch"] = {iconfile="Ranch_icon.png", page="Ranch"},
["smokehouse"] = {iconfile="Smokehouse_icon.png", page="Smokehouse"},
-- Housing
["shelter"] = {iconfile="Shelter icon.png", page="Shelter"},
["big shelter"] = {iconfile="Big Shelter icon.png", page="Big Shelter"},
["human house"] = {iconfile="Human House icon.png", page="Human House"},
["beaver house"] = {iconfile="Beaver House icon.png", page="Beaver House"},
["lizard house"] = {iconfile="Lizard House icon.png", page="Lizard House"},
["harpy house"] = {iconfile="Harpy House icon.png", page="Harpy House"},
-- Industry
["crude workstation"] = {iconfile="Crude_Workstation_icon.png", page="Crude Workstation"},
["makeshift post"] = {iconfile="Makeshift_Post_icon.png", page="Makeshift Post"},
["advanced rain collector"] = {iconfile="Advanced_Rain_Collector_icon.png", page="Advanced Rain Collector", spec1=S_ENGI, spec2=S_ALCH, cost1=C_PIPES, cost2=C_PARTS, cost3=C_PLANK, description="Can collect [[infused rainwater]] used for crafting and powering [[Rain Engines]] in production buildings. The type of collected rainwater depends on the [[season]]. Can't be moved. Size: 3x2."},
["alchemist's hut"] = {iconfile="Alchemist_Hut_icon.png", page="Alchemist's Hut", spec1=S_ALCH, spec2=S_BREW, cost1=C_PLANK, cost2=C_BRICK, workers=2, recipe1="Crystalized Dew", grade1=2, recipe2="Cosmetics", grade2=2, recipe3="Wine", grade3=2, description="Can produce: {{rl|Crystalized Dew}} {{P2Star}}, {{rl|Cosmetics}} {{P2star}}, {{rl|Wine}} {{P2Star}}. Can use: {{rl|Clearance Water}}. Can't be moved. Size: 3x2."},
["apothecary"] = {iconfile="Apothecary_icon.png", page="Apothecary", spec1=S_ALCH, cost1=C_PLANK, cost2=C_BRICK, workers=2, recipe1="Cosmetics", grade1=2, recipe2="Incense", grade2=2, recipe3="Biscuits", grade3=2, description="Can produce: {{rl|Cosmetics}} {{P2Star}}, {{rl|Incense}} {{P2Star}}, {{rl|Biscuits}} {{P2Star}}. Can use: {{rl|Clearance Water}}. Can't be moved. Size: 3x3."},
["artisan"] = {iconfile="Artisan_icon.png", page="Artisan"},
["brewery"] = {iconfile="Brewery_icon.png", page="Brewery"},
["brick oven"] = {iconfile="Brick_Oven_icon.png", page="Brick Oven"},
["brickyard"] = {iconfile="Brickyard_icon.png", page="Brickyard"},
["carpenter"] = {iconfile="Carpenter_icon.png", page="Carpenter"},
["clothier"] = {iconfile="Clothier_icon.png", page="Clothier"},
["cooperage"] = {iconfile="Cooperage_icon.png", page="Cooperage"},
["druid's hut"] = {iconfile="Druid_icon.png", page="Druid's Hut"},
["flawless brewery"] = {iconfile="Brewery_icon.png", page="Flawless Brewery"},
["flawless rain mill"] = {iconfile="Rain_Mill_icon.png", page="Flawless Rain Mill"},
["furnace"] = {iconfile="Furnace_icon.png", page="Furnace"},
["kiln"] = {iconfile="Kiln_icon.png", page="Kiln"},
["leatherworker"] = {iconfile="Leatherworks_icon.png", page="Leatherworker"},
["lumber mill"] = {iconfile="Lumbermill_icon.png", page="Lumber Mill"},
["mine"] = {iconfile="Mine_icon.png", page="Mine"},
["press"] = {iconfile="Press_icon.png", page="Press"},
["provisioner"] = {iconfile="Provisioner_icon.png", page="Provisioner"},
["rain collector"] = {iconfile="Rain_Collector_icon.png", page="Rain Collector"},
["rain mill"] = {iconfile="Rain_Mill_icon.png", page="Rain Mill"},
["scribe"] = {iconfile="Scribe_icon.png", page="Scribe"},
["smelter"] = {iconfile="Smelter_icon.png", page="Smelter"},
["toolshop"] = {iconfile="Toolshop_icon.png", page="Toolshop"},
["weaver"] = {iconfile="Weaver_icon.png", page="Weaver"},
-- City Buildings
["archaeologist's office"] = {iconfile="Archeologist_office_icon.png", page="Archaeologist's Office", cost1=C_PLANK, cost2=C_BRICK, cost3=C_FABRI, description="A building designed to help you study the past. Can be [[upgrade]]d to locate [[archaeological discoveries]] or improve [[exploration]] capabilities. Can be moved for: 5 {{rl|Wood}}. Size: 3x3."},
["small hearth"] = {iconfile="Temporary_Hearth_icon.png", page="Small Hearth"},
["warehouse"] = {iconfile="Storage_icon.png", page="Warehouse"},
["trading post"] = {iconfile="Trading_Post_icon.png", page="Trading Post"},
["blight post"] = {iconfile="Blight_Post_icon.png", page="Blight Post"},
["hydrant"] = {iconfile="Hydrant_icon.png", page="Hydrant"},
["forsaken altar"] = {iconfile="Altar_icon.png", page="Forsaken Altar"},
-- Service Buildings
["bath house"] = {iconfile="Bath_House_icon.png", page="Bath House"},
["clan hall"] = {iconfile="Clan_Hall_icon.png", page="Clan Hall"},
["explorers' lodge"] = {iconfile="Explorers_Lodge_icon.png", page="Explorers' Lodge"},
["guild house"] = {iconfile="Guild_House_icon.png", page="Guild House"},
["monastery"] = {iconfile="Monastery_icon.png", page="Monastery"},
["tavern"] = {iconfile="Tavern_icon.png", page="Tavern"},
["temple"] = {iconfile="Temple_icon.png", page="Temple"},
}
-------------------------------------------------------------------------------
-- Main lookup function
-- Accepts the in-game name and returns the name of the page on the wiki
-- associated with that in-game item, resource, building, etc.
-------------------------------------------------------------------------------
-- returns the whole data table for the specified key
-- need to run normalize function first
function BuildingData.getData(strArg)
-- normalize input
local strArg = BuildingData.normalizeName(strArg)
-- Get it from the big table below and return it.
return tBuildingData[strArg]
end
-- simpler version if all that's needed is the iconfile.
-- error handling by the calling module is required.
function BuildingData.getIconFilename(strArg)
local data = getData(strArg)
-- if this particular data block doesn't have a iconfile, this will return nil
-- therefore, error handling will be necessary
return data.iconfile or nil
end
-- simpler version if all that's needed is the page name.
-- error handling by the calling module is required.
function BuildingData.getPagename(strArg)
local data = getData(strArg)
-- if this particular data block doesn't have a page name, this will return nil
-- therefore, error handling will be necessary
return data.page or nil
end
-- simpler version if all that's needed is the description.
-- error handling by the calling module is required.
function BuildingData.getDescription(strArg)
local data = getData(strArg)
-- if this particular data block doesn't have a description, this will return nil
-- therefore, error handling will be necessary
return data.description or nil
end
-- Return this class when required into another module.
return BuildingData