Module:BuildingData

--- -- This module primarily supplies data and lookup functions for other modules -- that support templates like. -- 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

-- -- 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. 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:,  ,  . Can use: . 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:,  ,  . Can use: . 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 upgraded to locate archaeological discoveries or improve exploration capabilities. Can be moved for: 5 . 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

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

-- Return this class when required into another module. return BuildingData