Module:Utility

From Against the Storm Official Wiki
Revision as of 03:12, 14 February 2023 by Aeredor (talk | contribs) (finished improving the commenting)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Documentation for this module may be created at Module:Utility/doc

-------------------------------------------------------------------------------
-- This module provides utility functions for several other modules, so that
-- there are not require/dependency loops.
-- 
-- The template requires at least one of its two arguments. The first is called
-- "product". and the second is called "building". Both are passed to the
-- RecipeData module, which returns one or more recipes.
--
-- Using the recipe data returned, this module creates an HTML table that 
-- displays the recipes, which replaces the template, whereever it is written
-- in the wiki markup. The table will have exactly one row if both the product 
-- and building are specified. If either is missing, then expect a table with
-- multiple rows.
-- @module Utility
local Utility = {}



-------------------------------------------------------------------------------
-- Normalizes a building name for use as the key in other lookup tables.
--
-- This function at least makes the argument lowercase, since keys are 
-- lowercase to reduce the number of similarities to normalize.
-- @param buildingName the in-game name
-- @return a normalized name for use as a key
function Utility.normalizeBuildingName(buildingName)
	
	-- no matter what, we want to return the lowercase version
	buildingName = string.lower(buildingName)
	
	-- No other functions should have this lookup table, so it's defined 
	-- locally to this function. The keys are the possible ways the name could
	-- be written. The values are the normalized string that are used as keys.
	local tBuildingSimilarities = {
		
		-- 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 tBuildingSimilarities
	
	-- If nothing is found, the result of the lookup will be nil, so just
	-- return whatever was passed in as the argument (now lowercase). we can
	-- assume that the input argument is fine and another function will worry
	-- about whether it's valid.
	return tBuildingSimilarities[buildingName] or buildingName
end



-------------------------------------------------------------------------------
-- Normalizes a resource name for use as the key in other lookup tables.
--
-- This function at least makes the argument lowercase, since keys are 
-- lowercase to reduce the number of similarities to normalize.
-- @param resourceName the in-game name
-- @return a normalized name for use as a key
function Utility.normalizeResourceName(resourceName)
	
	-- no matter what, we want to return the lowercase version
	resourceName = string.lower(resourceName)
	
	-- No other functions should have this lookup table, so it's defined 
	-- locally to this function. The keys are the possible ways the name could
	-- be written. The values are the normalized string that are used as keys.
	local tResourceSimilarities = {
		
		-- Raw Food
		["berry"] = "berries",
		["egg"] = "eggs",
		["insect"] = "insects",
		["meats"] = "meat",
		["mushroom"] = "mushrooms",
		["root"] = "roots",
		["vegetable"] = "vegetables",
		--Complex Food
		["biscuit"] = "biscuits",
		["pickledgoods"] = "pickled goods",
		["pickledgood"] =  "pickled goods",
		["pickled good"] = "pickled goods",
		["pies"] = "pie",
		["skewer"] = "skewers",
		-- Building Materials
		["brick"] = "bricks",
		["fabrics"] = "fabric",
		["pipe"] = "pipes",
		["plank"] = "planks",
		["part"] = "parts",
		["wildfireessence"] =    "wildfire essence",
		["wild fire essence"] =  "wildfire essence",
		["wildfireessences"] =   "wildfire essence",
		["wild fire essences"] = "wildfire essence",
		-- Consumable items
		["coat"] = "coats",
		["ales"] = "ale",
		["cosmetic"] = "cosmetics",
		["incenses"] = "incense",
		["insense"] = "incense",
		["scroll"] = "scrolls",
		["traininggear"] =   "training gear",
		["traininggears"] =  "training gear",
		["training gears"] = "training gear",
		["wines"] = "wine",
		-- Crafting materials
		["clays"] = "clay",
		["copperore"] =   "copper ore",
		["copperores"] =  "copper ore",
		["copper ores"] = "copper ore",
		["crystalizeddew"] =    "crystalized dew",
		["crystalizeddews"] =   "crystalized dew",
		["crystallizeddew"] =   "crystalized dew",
		["crystallizeddews"] =  "crystalized dew",
		["crystalized dews"] =  "crystalized dew",
		["crystallized dew"] =  "crystalized dew",
		["crystallized dews"] = "crystalized dew",
		["grains"] = "grain",
		["herb"] = "herbs",
		["leathers"] = "leather",
		["flax"] =         "plant fiber",
		["plantfiber"] =   "plant fiber",
		["plantfibers"] =  "plant fiber",
		["plant fibers"] = "plant fiber",
		["reed"] = "reeds",
		["stones"] = "stone",
		-- Refined crafting materials
		["barrel"] =   "barrels",
		["barrell"] =  "barrels",
		["barrells"] = "barrels",
		["copperbar"] =   "copper bars",
		["copperbars"] =  "copper bars",
		["copper bar"] = "copper bars",
		["flours"] = "flour",
		["pigments"] = "pigment",
		["waterskin"] =   "waterskins",
		["water skin"] =  "waterskins",
		["water skins"] = "waterskins",
		-- Trade goods
		["ambers"] = "amber",
		["coin"] =   "amber",
		["tablet"] =          "ancient tablet",
		["tablets"] =         "ancient tablet",
		["ancienttablet"] =   "ancient tablet",
		["ancienttablets"] =  "ancient tablet",
		["ancient tablets"] = "ancient tablet",
		["buildingmaterial"] =            "pack of building materials",
		["buildingmaterials"] =           "pack of building materials",
		["building material"] =           "pack of building materials",
		["building materials"] =          "pack of building materials",
		["packofbuildingmaterial"] =      "pack of building materials",
		["packofbuildingmaterials"] =     "pack of building materials",
		["pack of building materials"] =  "pack of building materials",
		["packsofbuildingmaterial"] =     "pack of building materials",
		["packsofbuildingmaterials"] =    "pack of building materials",
		["packs of building materials"] = "pack of building materials",
		["crop"] =          "pack of crops",
		["crops"] =         "pack of crops",
		["packofcrop"] =    "pack of crops",
		["packofcrops"] =   "pack of crops",
		["pack of crop"] =  "pack of crops",
		["packsofcrop"] =   "pack of crops",
		["packsofcrops"] =  "pack of crops",
		["packs of crop"] = "pack of crops",
		["luxury"] =               "pack of luxury goods",
		["luxuries"] =             "pack of luxury goods",
		["luxurygood"] =           "pack of luxury goods",
		["luxurygoods"] =          "pack of luxury goods",
		["luxury good"] =          "pack of luxury goods",
		["luxury goods"] =         "pack of luxury goods",
		["packofluxuries"] =       "pack of luxury goods",
		["packofluxurygood"] =     "pack of luxury goods",
		["packofluxurygoods"] =    "pack of luxury goods",
		["pack of luxury good"] =  "pack of luxury goods",
		["packsofluxuries"] =      "pack of luxury goods",
		["packsofluxurygood"] =    "pack of luxury goods",
		["packsofluxurygoods"] =   "pack of luxury goods",
		["packs of luxury good"] = "pack of luxury goods",
		["provision"] =          "pack of provisions",
		["provisions"] =         "pack of provisions",
		["packofprovision"] =    "pack of provisions",
		["packofprovisions"] =   "pack of provisions",
		["pack of provision"] =  "pack of provisions",
		["packsofprovision"] =   "pack of provisions",
		["packsofprovisions"] =  "pack of provisions",
		["packs of provision"] = "pack of provisions",
		["tradegood"] =           "pack of trade goods",
		["tradegoods"] =          "pack of trade goods",
		["trade good"] =          "pack of trade goods",
		["trade goods"] =         "pack of trade goods",
		["packoftradegood"] =     "pack of trade goods",
		["packoftradegoods"] =    "pack of trade goods",
		["pack of trade good"] =  "pack of trade goods",
		["packsoftradegood"] =    "pack of trade goods",
		["packsoftradegoods"] =   "pack of trade goods",
		["packs of trade good"] = "pack of trade goods",
		-- Meta resources
		["artifact"] =      "artifacts",
		["metaartifact"] =  "artifacts",
		["metaartifacts"] = "artifacts",
		["meta artifact"] =  "artifacts",
		["meta artifacts"] = "artifacts",
		["food"] =           "food stockpiles",
		["foods"] =          "food stockpiles",
		["metafood"] =       "food stockpiles",
		["metafoods"] =      "food stockpiles",
		["meta food"] =       "food stockpiles",
		["meta foods"] =      "food stockpiles",
		["foodstockpile"] =  "food stockpiles",
		["foodstockpiles"] = "food stockpiles",
		["food stockpile"] = "food stockpiles",
		["meta foodstockpile"] =  "food stockpiles",
		["meta foodstockpiles"] = "food stockpiles",
		["meta food stockpile"] = "food stockpiles",
		["meta food stockpiles"] = "food stockpiles",
		["machinary"] =     "machinery",
		["metamachinery"] = "machinery",
		["meta machinery"] = "machinery",
		-- Fuel & Exploration
		["coals"] = "coal",
		["oils"] = "oil",
		["seamarrow"] =   "sea marrow",
		["seamarrows"] =  "sea marrow",
		["sea marrows"] = "sea marrow",
		["woods"] = "wood",
		["simpletool"] =  "simple tools",
		["simpletools"] = "simple tools",
		["simple tool"] = "simple tools",
		["infusedtool"] =  "infused tools",
		["infusedtools"] = "infused tools",
		["infused tool"] = "infused tools",
		["purgingfire"] = "purging fire",
		["purgingfires"] = "purging fire",
		-- Rain
		["clearancewater"] = "clearance water",
		["clearencewater"] = "clearance water",
		["clearence water"] = "clearance water",
		["drizzlewater"] = "drizzle water",
		["stormwater"] = "storm water"
		
	} -- the end of the huge tResourceSimilarities
	
	-- If nothing is found, the result of the lookup will be nil, so just
	-- return whatever was passed in as the argument (now lowercase). we can
	-- assume that the input argument is fine and another function will worry
	-- about whether it's valid.
	return tResourceSimilarities[resourceName] or resourceName
end



-- return this class when required into another module.
return Utility