Module:ResourceData: Difference between revisions

From Against the Storm Official Wiki
(forgot to change scope of helper function to new Utility)
m (improving commenting)
Line 1: Line 1:
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Lua storage table for looking up wiki pages, names, and resources
-- Lua storage module for looking up data about resources, for use in other
-- based on in-game names. All data is in English.
-- modules and templates, for example, {{Resource_Link}}.
--  
--
--
-- The table contains some deconfliction, but only for spaces, apostrophes, and
-- The main data table stores all available data about resources themselves and  
-- some singular/plural.
-- relies on other modules to store relationships between resources and
-- Use in-game names for things, and help keep this table up-to-date as the
-- buildings, services, etc.
-- game evolves.
--
--
-- Using the table requires a locally defined lookup function that performs
-- The helper functions include getters (to keep the data hidden) and a large
-- a string.lower on the argument so that the lookup table can accept any case
-- normalization method to provide some robustness when using the template and
-- and still function properly. Otherwise, we would need the table to define
-- from other Lua modules. Looking up a resource requires using in-game names,  
-- both Berries = "Berries" and berries = "Berries" which would multiply our
-- but forgives small differences in spacing, apostrophes, and plurals.
-- work.
-- @module ResourceData
-------------------------------------------------------------------------------
 
 
-- for returning when REQUIRE'd by other Lua modules.
local ResourceData = {}
local ResourceData = {}


--
-- Dependencies
--
Utility = Utility or require("Module:Utility") -- need normalize functions


Utility = Utility or require("Module:Utility") -- need to reuse the normalize methods




 
--
-------------------------------------------------------------------------------
-- Constants
-- Constants
-------------------------------------------------------------------------------
--
-- top-level categories; the main tabs in the top of the game window
local CAT_FOODS = "Food"
local CAT_FOODS = "Food"
local CAT_BUILD = "Building Materials"
local CAT_BUILD = "Building Materials"
Line 35: Line 34:
local CAT_RAINS = "Rainwater"
local CAT_RAINS = "Rainwater"
local CAT_BLIGH = "Blight Fuel"
local CAT_BLIGH = "Blight Fuel"
-- secondary categories, for use in wiki pages
-- Foods
-- Foods
local C2_RAWFOOD = "Raw Food"
local C2_RAWFOOD = "Raw Food"
Line 61: Line 62:




--
-- Class variables
--


-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- Main data table, with string keys and string values.
-- Primary data table for this module.
-- Some of these are defined inline with string.lower to make the key easier
--
-- to spell and read correctly.
-- This table stories the details of resources 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
-- a design decision of this table is to make the key the same as the page name.
-- rest of the data. (The lookup method will handle converting it to lowercase.)
-- (the lookup methods will automatically make it lowercase.)
--
-- that way, whenever .page is referenced, it can be used again to retrieve  
-- Structure:
-- the rest of the data.
-- @key a lowercase version of the resource name, with the same spaces,
-- apostrophes, singular/plural, 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
-- @
local RESOURCE_DATA = {
local RESOURCE_DATA = {


Line 78: Line 88:
*defaults are stored here; these value will be modified during the game by
*defaults are stored here; these value will be modified during the game by
perks and city upgrades
perks and city upgrades
-- page: string: the name of the page on the wiki, case sensitive. this should match
the spelling, spacing, and punctuation in the game
-- iconfile: string: the filename, ending in .png, on the wiki. do not include  
-- iconfile: string: the filename, ending in .png, on the wiki. do not include  
the File: prefix. Align with dev data dumps (from Google Drive) or  
the File: prefix. Align with dev data dumps (from Google Drive) or  
from extracted assets from the Unity Asset Studio.
from extracted assets from the Unity Asset Studio.
-- page: string: the name of the page on the wiki, case sensitive. this should match
the spelling, spacing, and punctuation in the game
-- category: string/constant: the category the good belongs to, in the upper UI on
-- category: string/constant: the category the good belongs to, in the upper UI on
the game screen, for example "Food" or "Consumable Items." useful for building
the game screen, for example "Food" or "Consumable Items." useful for building
Line 99: Line 109:
---------------------------------------
---------------------------------------
     -- Food/Raw Food
     -- Food/Raw Food
["berries"] = {iconfile="Icon_Resource_Berries.png", page="Berries", category=CAT_FOODS, cat2=C2_RAWFOOD, eatable=true, sellValue=0.24, buyValue=0.40, description="Common food source. Obtained by: Plantation, Hallowed Herb Garden, Herbalists' Camp, Small Herbalists' Camp."},
["berries"] = { page="Berries",
["eggs"] = {iconfile="Eggs.png", page="Eggs", category=CAT_FOODS, cat2=C2_RAWFOOD, eatable=true, sellValue=0.24, buyVale=0.40, description="Common food source. Obtained by: Ranch, Trappers' Camp, Small Trappers' Camp."},
iconfile="Icon_Resource_Berries.png",  
["insects"] = {iconfile="Insects.png", page="Insects", category=CAT_FOODS, cat2=C2_RAWFOOD, eatable=true, sellValue=0.24, buyValue=0.40, description="Common food source. Obtained by: Trappers' Camp, Small Trappers' Camp."},
category=CAT_FOODS, cat2=C2_RAWFOOD,  
["meat"] = {iconfile="Meat.png", page="Meat", category=CAT_FOODS, cat2=C2_RAWFOOD, eatable=true, sellValue=0.24, buyValue=0.40, description="Common food source. Obtained by: Ranch, Trappers' Camp, Small Trappers' Camp."},
eatable=true,  
["mushrooms"] = {iconfile="Mushrooms.png", page="Mushrooms", category=CAT_FOODS, cat2=C2_RAWFOOD, eatable=true, sellValue=0.24, buyValue=0.40, description="Common food source. Obtained by: Herbalists' Camp, Small Herbalists' Camp, Greenhouse, Homestead."},
sellValue=0.24, buyValue=0.40,  
["roots"] = {iconfile="Roots.png", page="Roots", category=CAT_FOODS, cat2=C2_RAWFOOD, eatable=true, sellValue=0.24, buyValue=0.40, description="Common food source. Obtained by: Hallowed Herb Garden, Herb Garden, Foragers' Camp, Small Foragers' Camp."},
description="Common food source. Obtained by: Plantation, Hallowed Herb Garden, Herbalists' Camp, Small Herbalists' Camp."},
["vegetables"] = {iconfile="Vegetables.png", page="Vegetables", category=CAT_FOODS, cat2=C2_RAWFOOD, eatable=true, sellValue=0.24, buyValue=0.40, description="Common food source. Obtained by: Hallowed Small Farm, Small Farm, Foragers' Camp, Small Foragers' Camp, Homestead."},
["eggs"] = { page="Eggs",  
iconfile="Eggs.png",  
category=CAT_FOODS, cat2=C2_RAWFOOD,  
eatable=true,  
sellValue=0.24, buyValue=0.40,  
description="Common food source. Obtained by: Ranch, Trappers' Camp, Small Trappers' Camp."},
["insects"] = { page="Insects",
iconfile="Insects.png",
category=CAT_FOODS, cat2=C2_RAWFOOD,  
eatable=true,  
sellValue=0.24, buyValue=0.40,  
description="Common food source. Obtained by: Trappers' Camp, Small Trappers' Camp."},
["meat"] = { page="Meat",  
iconfile="Meat.png",  
category=CAT_FOODS, cat2=C2_RAWFOOD,  
eatable=true,  
sellValue=0.24, buyValue=0.40,  
description="Common food source. Obtained by: Ranch, Trappers' Camp, Small Trappers' Camp."},
["mushrooms"] = { page="Mushrooms",  
iconfile="Mushrooms.png",  
category=CAT_FOODS, cat2=C2_RAWFOOD,  
eatable=true,  
sellValue=0.24, buyValue=0.40,  
description="Common food source. Obtained by: Herbalists' Camp, Small Herbalists' Camp, Greenhouse, Homestead."},
["roots"] = { page="Roots",  
iconfile="Roots.png",  
category=CAT_FOODS, cat2=C2_RAWFOOD,  
eatable=true,  
sellValue=0.24, buyValue=0.40,  
description="Common food source. Obtained by: Hallowed Herb Garden, Herb Garden, Foragers' Camp, Small Foragers' Camp."},
["vegetables"] = { page="Vegetables",  
iconfile="Vegetables.png",  
category=CAT_FOODS, cat2=C2_RAWFOOD,  
eatable=true,  
sellValue=0.24, buyValue=0.40,  
description="Common food source. Obtained by: Hallowed Small Farm, Small Farm, Foragers' Camp, Small Foragers' Camp, Homestead."},
-- Food/Complex Food
-- Food/Complex Food
["biscuits"] = {iconfile="Icon_Resource_Biscuits.png", page="Biscuits", category=CAT_FOODS, cat2=C2_COMPLEX, eatable=true, sellValue=0.30, buyValue=0.50, description="Tasty and crunchy. Produced by: Field Kitchen, Bakery, Cookhouse, Smelter, Apothecary."},
["biscuits"] = { page="Biscuits",
["jerky"] = {iconfile="Jerky.png", page="Jerky", category=CAT_FOODS, cat2=C2_COMPLEX, eatable=true, sellValue=0.18, buyValue=0.30, description="Preserved, dried meat. Produced by: Field Kitchen, Smokehouse, Kiln, Butcher, Cellar."},
iconfile="Icon_Resource_Biscuits.png",  
["pickled goods"] = {iconfile="PickledGoods.png", page="Pickled Goods", category=CAT_FOODS, cat2=C2_COMPLEX, eatable=true, sellValue=0.24, buyValue=0.40, description="A Beaver specialty. Produced by: Field Kitchen, Granary, Cellar, Brewery, Flawless Brewery."},
category=CAT_FOODS, cat2=C2_COMPLEX,  
["pie"] = {iconfile="Pie.png", page="Pie", category=CAT_FOODS, cat2=C2_COMPLEX, eatable=true, sellValue=0.30, buyValue=0.50, description="A Human specialty. Produced by: Bakery, Brick Oven, Furnace."},
eatable=true,  
["skewers"] = {iconfile="Skewers.png", page="Skewers", category=CAT_FOODS, cat2=C2_COMPLEX, eatable=true, sellValue=0.24, buyValue=0.40, description="A Lizard specialty. Produced by: Cookhouse, Grill, Butcher."},
sellValue=0.30, buyValue=0.50,  
description="Tasty and crunchy. Produced by: Field Kitchen, Bakery, Cookhouse, Smelter, Apothecary."},
["jerky"] = { page="Jerky",  
iconfile="Jerky.png",  
category=CAT_FOODS, cat2=C2_COMPLEX,  
eatable=true,  
sellValue=0.18, buyValue=0.30,  
description="Preserved, dried meat. Produced by: Field Kitchen, Smokehouse, Kiln, Butcher, Cellar."},
["pickled goods"] = { page="Pickled Goods",
iconfile="PickledGoods.png",  
category=CAT_FOODS, cat2=C2_COMPLEX,  
eatable=true,  
sellValue=0.24, buyValue=0.40,  
description="A Beaver specialty. Produced by: Field Kitchen, Granary, Cellar, Brewery, Flawless Brewery."},
["pie"] = { page="Pie",  
iconfile="Pie.png",  
category=CAT_FOODS, cat2=C2_COMPLEX,  
eatable=true,  
sellValue=0.30, buyValue=0.50,  
description="A Human specialty. Produced by: Bakery, Brick Oven, Furnace."},
["skewers"] = { page="Skewers",  
iconfile="Skewers.png",  
category=CAT_FOODS, cat2=C2_COMPLEX,  
eatable=true,  
sellValue=0.24, buyValue=0.40,  
description="A Lizard specialty. Produced by: Cookhouse, Grill, Butcher."},
-- Building Materials
-- Building Materials
["bricks"] = {iconfile="Icon_Resource_Bricks.png", page="Bricks", category=CAT_BUILD, cat2=C2_CONSTRU, sellValue=0.375, buyValue=0.625, description="Mostly used for construction. Produced by: Crude Workstation, Workshop, Brickyard, Kiln, Furnace."},
["bricks"] = { page="Bricks",
["fabric"] = {iconfile="Fabric.png", page="Fabric", category=CAT_BUILD, cat2=C2_CONSTRU, sellValue=0.375, buyValue=0.625, description="Used for construction or production of clothes. Produced by: Crude Workstation, Workshop, Weaver, Granary, Leatherworker."},
iconfile="Icon_Resource_Bricks.png",  
["pipes"] = {iconfile="En_craft_23.png", page="Pipes", category=CAT_BUILD, cat2=C2_CONSTRU, sellValue=0.58, buyValue=1.00, description="Used to install Rainpunk Engines in production buildings and build Geyser Pumps. Produced by: Crude Workstation, Workshop, Smelter, Toolshop."},
category=CAT_BUILD, cat2=C2_CONSTRU,  
["planks"] = {iconfile="Planks.png", page="Planks", category=CAT_BUILD, cat2=C2_CONSTRU, sellValue=0.225, buyValue=0.375, description="Mostly used for construction. Produced by: Crude Workstation, Workshop, Lumber Mill, Carpenter, Supplier."},
sellValue=0.375, buyValue=0.625,  
description="Mostly used for construction. Produced by: Crude Workstation, Workshop, Brickyard, Kiln, Furnace."},
["fabric"] = { page="Fabric",  
iconfile="Fabric.png",  
category=CAT_BUILD, cat2=C2_CONSTRU,  
sellValue=0.375, buyValue=0.625,  
description="Used for construction or production of clothes. Produced by: Crude Workstation, Workshop, Weaver, Granary, Leatherworker."},
["pipes"] = { page="Pipes",
iconfile="En_craft_23.png",  
category=CAT_BUILD, cat2=C2_CONSTRU,  
sellValue=0.58, buyValue=1.00,  
description="Used to install Rainpunk Engines in production buildings and build Geyser Pumps. Produced by: Crude Workstation, Workshop, Smelter, Toolshop."},
["planks"] = { page="Planks",  
iconfile="Planks.png",  
category=CAT_BUILD, cat2=C2_CONSTRU,  
sellValue=0.225, buyValue=0.375,  
description="Mostly used for construction. Produced by: Crude Workstation, Workshop, Lumber Mill, Carpenter, Supplier."},
-- Building Materials/Rare
-- Building Materials/Rare
["parts"] = {iconfile="Parts.png", page="Parts", category=CAT_BUILD, cat2=C2_RAREMAT, sellValue=2.28, buyValue=4.80, description="Rare elements used in camp construction. Difficult to produce in this harsh environment."},
["parts"] = { page="Parts",  
["wildfire essence"] = {iconfile="Wildfire Essence.png", page="Wildfire Essence", category=CAT_BUILD, cat2=C2_RAREMAT, sellValue=6.00, buyValue=10.0, description="A sentient flame trapped in a bottle. This rare material is used to light the Holy Flame in Hearths. Can be acquired from orders, Glade Events, or traders."},
iconfile="Parts.png",  
category=CAT_BUILD, cat2=C2_RAREMAT,  
sellValue=2.28, buyValue=4.80,  
description="Rare elements used in camp construction. Difficult to produce in this harsh environment."},
["wildfire essence"] = { page="Wildfire Essence",  
iconfile="Wildfire Essence.png",  
category=CAT_BUILD, cat2=C2_RAREMAT,  
sellValue=6.00, buyValue=10.0,  
description="A sentient flame trapped in a bottle. This rare material is used to light the Holy Flame in Hearths. Can be acquired from orders, Glade Events, or traders."},
-- Consumable Items/Clothing
-- Consumable Items/Clothing
["coats"] = {iconfile="Coats.png", page="Coats", category=CAT_CONSU, cat2=C2_CLOTHIN, sellValue=0.12, buyValue=0.20, description="Used as clothing by some villagers. Produced by: Clothier, Smithy, Artisan, Druid's Hut."},
["coats"] = { page="Coats",  
iconfile="Coats.png",  
category=CAT_CONSU, cat2=C2_CLOTHIN,  
sellValue=0.12, buyValue=0.20,  
description="Used as clothing by some villagers. Produced by: Clothier, Smithy, Artisan, Druid's Hut."},
-- Consumable Items/Service Items
-- Consumable Items/Service Items
["ale"] = {iconfile="Icon_Resource_Ale.png", page="Ale", category=CAT_CONSU, cat2=C2_SERVICE, sellValue=0.21, buyValue=0.35, description="Used for Leisure at: Tavern, Monastery, Forum. Produced by: Grill, Brewery, Flawless Brewery, Tinctury, Scribe."},
["ale"] = { page="Ale",
["cosmetics"] = {iconfile="Cosmetics.png", page="Cosmetics", category=CAT_CONSU, cat2=C2_SERVICE, sellValue=0.18, buyValue=0.3, description="Used for Cleanliness at: Bath House, Holy Market, Market. Produced by: Cooperage, Alchemist's Hut, Apothecary."},
iconfile="Icon_Resource_Ale.png",  
["incense"] = {iconfile="Incense.png", page="Incense", category=CAT_CONSU, cat2=C2_SERVICE, sellValue=0.225, buyValue=0.375, description="Used for Religion at: Holy Temple, Temple, Monastery, Clan Hall. Produced by: Smokehouse, Brick Oven, Apothecary, Druid's Hut."},
category=CAT_CONSU, cat2=C2_SERVICE,  
["scrolls"] = {iconfile="Scrolls.png", page="Scrolls", category=CAT_CONSU, cat2=C2_SERVICE, sellValue=0.18, buyValue=0.30, description="Used for Education at: Holy Temple, Temple, Explorers' Lodge, Forum. Produced by: Lumber Mill, Clothier, Flawless Rain Mill, Rain Mill, Scribe."},
sellValue=0.21, buyValue=0.35,  
["training gear"] = {iconfile="TrainingGear.png", page="Training Gear", category=CAT_CONSU, cat2=C2_SERVICE, sellValue=0.255, buyValue=0.425, description="Used for Brawling at: Tavern, Clan Hall, Explorers' Lodge. Produced by: Cooperage, Weaver, Tinkerer, Manufactory."},
description="Used for Leisure at: Tavern, Monastery, Forum. Produced by: Grill, Brewery, Flawless Brewery, Tinctury, Scribe."},
["wine"] = {iconfile="Wine.png", page="Wine", category=CAT_CONSU, cat2=C2_SERVICE, sellValue=0.18, buyValue=0.30, description="Used for Luxury at: Guild House, Holy Market, Market. Produced by: Cellar, Alchemist's Hut, Tinctury."},
["cosmetics"] = { page="Cosmetics",  
iconfile="Cosmetics.png",  
category=CAT_CONSU, cat2=C2_SERVICE,  
sellValue=0.18, buyValue=0.3,  
description="Used for Cleanliness at: Bath House, Holy Market, Market. Produced by: Cooperage, Alchemist's Hut, Apothecary."},
["incense"] = { page="Incense",  
iconfile="Incense.png",  
category=CAT_CONSU, cat2=C2_SERVICE,  
sellValue=0.225, buyValue=0.375,  
description="Used for Religion at: Holy Temple, Temple, Monastery, Clan Hall. Produced by: Smokehouse, Brick Oven, Apothecary, Druid's Hut."},
["scrolls"] = { page="Scrolls",  
iconfile="Scrolls.png",  
category=CAT_CONSU, cat2=C2_SERVICE,  
sellValue=0.18, buyValue=0.30,  
description="Used for Education at: Holy Temple, Temple, Explorers' Lodge, Forum. Produced by: Lumber Mill, Clothier, Flawless Rain Mill, Rain Mill, Scribe."},
["training gear"] = { page="Training Gear",
iconfile="TrainingGear.png",  
category=CAT_CONSU, cat2=C2_SERVICE,  
sellValue=0.255, buyValue=0.425,  
description="Used for Brawling at: Tavern, Clan Hall, Explorers' Lodge. Produced by: Cooperage, Weaver, Tinkerer, Manufactory."},
["wine"] = { page="Wine",  
iconfile="Wine.png",  
category=CAT_CONSU, cat2=C2_SERVICE,  
sellValue=0.18, buyValue=0.30,  
description="Used for Luxury at: Guild House, Holy Market, Market. Produced by: Cellar, Alchemist's Hut, Tinctury."},
-- Crafting Materials/Raw Materials
-- Crafting Materials/Raw Materials
["clay"] = {iconfile="Icon_Resource_Clay.png", page="Clay", category=CAT_CRAFT, cat2=C2_RAWMATS, sellValue=0.18, buyValue=0.30, description="Flesh of the earth. Used mostly for crafting. Obtained by: Stonecutters' Camp, Clay Pit."},
["clay"] = { page="Clay",
["grain"] = {iconfile="Grain.png", page="Grain", category=CAT_CRAFT, cat2=C2_RAWMATS, sellValue=0.24, buyValue=0.40, description="Isn't eaten raw, but can be processed. Obtained by: Hallowed Small Farm, Small Farm, Foragers' Camp, Small Foragers' Camp, Homestead."},
iconfile="Icon_Resource_Clay.png",  
["herbs"] = {iconfile="Herbs.png", page="Herbs", category=CAT_CRAFT, cat2=C2_RAWMATS, sellValue=0.24, buyValue=0.40, description="Isn't eaten raw, but can be processed. Obtained by: Hallowed Herb Garden, Herb Garden, Herbalists' Camp, Small Herbalists' Camp, Greenhouse."},
category=CAT_CRAFT, cat2=C2_RAWMATS,  
["leather"] = {iconfile="Leather.png", page="Leather", category=CAT_CRAFT, cat2=C2_RAWMATS, sellValue=0.18, buyValue=0.30, description="Used for crafting. Obtained by: Ranch."},
sellValue=0.18, buyValue=0.30,  
["pigment"] = {iconfile="Pigment.png", page="Pigment", category=CAT_CRAFT, cat2=C2_RAWMATS, sellValue=0.15, buyValue=0.25, description="Used for crafting. Produced by: Cookhouse, Artisan, Tinctury, Manufactory."},
description="Flesh of the earth. Used mostly for crafting. Obtained by: Stonecutters' Camp, Clay Pit."},
["plant fiber"] = {iconfile="PlantFiber.png", page="Plant Fiber", category=CAT_CRAFT, cat2=C2_RAWMATS, sellValue=0.18, buyValue=0.30, description="Used for crafting. Obtained by: Hallowed Small Farm, Plantation, Harvesters' Camp, Homestead."},
["grain"] = { page="Grain",  
["reeds"] = {iconfile="Reeds.png", page="Reeds", category=CAT_CRAFT, cat2=C2_RAWMATS, sellValue=0.18, buyValue=0.30, description="Used for crafting. Obtained by: Harvesters' Camp, Clay Pit."},
iconfile="Grain.png",  
["resin"] = {iconfile="Resin.png", page="Resin", category=CAT_CRAFT, cat2=C2_RAWMATS, sellValue=0.18, buyValue=0.30, description="Used for crafting. Obtained by: Forester's Hut."},
category=CAT_CRAFT, cat2=C2_RAWMATS,  
["stone"] = {iconfile="Stone.png", page="Stone", category=CAT_CRAFT, cat2=C2_RAWMATS, sellValue=0.18, buyValue=0.30, description="Bones of the earth. Used mostly for crafting. Obtained by: Stonecutters' Camp."},
sellValue=0.24, buyValue=0.40,  
description="Isn't eaten raw, but can be processed. Obtained by: Hallowed Small Farm, Small Farm, Foragers' Camp, Small Foragers' Camp, Homestead."},
["herbs"] = { page="Herbs",  
iconfile="Herbs.png",  
category=CAT_CRAFT, cat2=C2_RAWMATS,  
sellValue=0.24, buyValue=0.40,  
description="Isn't eaten raw, but can be processed. Obtained by: Hallowed Herb Garden, Herb Garden, Herbalists' Camp, Small Herbalists' Camp, Greenhouse."},
["leather"] = { page="Leather",  
iconfile="Leather.png",  
category=CAT_CRAFT, cat2=C2_RAWMATS,  
sellValue=0.18, buyValue=0.30,  
description="Used for crafting. Obtained by: Ranch."},
["pigment"] = { page="Pigment",  
iconfile="Pigment.png",  
category=CAT_CRAFT, cat2=C2_RAWMATS,  
sellValue=0.15, buyValue=0.25,  
description="Used for crafting. Produced by: Cookhouse, Artisan, Tinctury, Manufactory."},
["plant fiber"] = { page="Plant Fiber",
iconfile="PlantFiber.png",  
category=CAT_CRAFT, cat2=C2_RAWMATS,  
sellValue=0.18, buyValue=0.30,  
description="Used for crafting. Obtained by: Hallowed Small Farm, Plantation, Harvesters' Camp, Homestead."},
["reeds"] = { page="Reeds",  
iconfile="Reeds.png",  
category=CAT_CRAFT, cat2=C2_RAWMATS,  
sellValue=0.18, buyValue=0.30,  
description="Used for crafting. Obtained by: Harvesters' Camp, Clay Pit."},
["resin"] = { page="Resin",  
iconfile="Resin.png",  
category=CAT_CRAFT, cat2=C2_RAWMATS,  
sellValue=0.18, buyValue=0.30,  
description="Used for crafting. Obtained by: Forester's Hut."},
["stone"] = { page="Stone",  
iconfile="Stone.png",  
category=CAT_CRAFT, cat2=C2_RAWMATS,  
sellValue=0.18, buyValue=0.30,  
description="Bones of the earth. Used mostly for crafting. Obtained by: Stonecutters' Camp."},
-- Crafting Materials/Processed Materials
-- Crafting Materials/Processed Materials
["flour"] = {iconfile="Flour.png", page="Flour", category=CAT_CRAFT, cat2=C2_PROCESS, sellValue=0.22, buyValue=0.38, description="Used for cooking. Produced by: Flawless Rain Mill, Rain Mill, Press, Provisioner, Stamping Mill, Supplier."},
["flour"] = { page="Flour",
iconfile="Flour.png",  
category=CAT_CRAFT, cat2=C2_PROCESS,  
sellValue=0.22, buyValue=0.38,  
description="Used for cooking. Produced by: Flawless Rain Mill, Rain Mill, Press, Provisioner, Stamping Mill, Supplier."},
-- Crafting Materials/Metal & Ore
-- Crafting Materials/Metal & Ore
["copper bars"] = {iconfile="CopperBar.png", page="Copper Bars", category=CAT_CRAFT, cat2=C2_METALOR, sellValue=0.72, buyValue=1.2, description="Refined copper ore, used for crafting. Produced by: Grill, Furnace, Stamping Mill, Smelter."},
["copper bars"] = { page="Copper Bars",
["copper ore"] = {iconfile="CopperOre.png", page="Copper Ore", category=CAT_CRAFT, cat2=C2_METALOR, sellValue=0.18, buyValue=0.30, description="A soft and malleable metal. Obtained by: Mine."},
iconfile="CopperBar.png",  
["crystalized dew"] = {iconfile="CrystalizedDew.png", page="Crystalized Dew", category=CAT_CRAFT, cat2=C2_METALOR, sellValue=0.72, buyValue=1.20, description="Crystalized rain essence. Produced by: Forester's Hut, Brickyard, Smelter, Alchemist's Hut."},
category=CAT_CRAFT, cat2=C2_METALOR,  
sellValue=0.72, buyValue=1.2,  
description="Refined copper ore, used for crafting. Produced by: Grill, Furnace, Stamping Mill, Smelter."},
["copper ore"] = { page="Copper Ore",
iconfile="CopperOre.png",  
category=CAT_CRAFT, cat2=C2_METALOR,  
sellValue=0.18, buyValue=0.30,  
description="A soft and malleable metal. Obtained by: Mine."},
["crystalized dew"] = { page="Crystalized Dew",
iconfile="CrystalizedDew.png",  
category=CAT_CRAFT, cat2=C2_METALOR,  
sellValue=0.72, buyValue=1.20,  
description="Crystalized rain essence. Produced by: Forester's Hut, Brickyard, Smelter, Alchemist's Hut."},
-- Crafting Materials/Vessels
-- Crafting Materials/Vessels
["barrels"] = {iconfile="Icon_Resource_Barrels.png", page="Barrels", category=CAT_CRAFT, cat2=C2_VESSELS, sellValue=0.24, buyValue=0.40, description="Used for crafting. Produced by: Cooperage, Provisioner, Toolshop, Artisan."},
["barrels"] = { page="Barrels",
["pottery"] = {iconfile="Pottery.png", page="Pottery", category=CAT_CRAFT, cat2=C2_VESSELS, sellValue=0.225, buyValue=0.375, description="Used for crafting. Produced by: Bakery, Smokehouse, Brickyard, Stamping Mill."},
iconfile="Icon_Resource_Barrels.png",  
["waterskins"] = {iconfile="Waterskins.png", page="Waterskins", category=CAT_CRAFT, cat2=C2_VESSELS, sellValue=0.225, buyValue=0.375, description="Used for crafting. Produced by: Clothier, Leatherworker, Toolshop, Supplier."},
category=CAT_CRAFT, cat2=C2_VESSELS,  
sellValue=0.24, buyValue=0.40,  
description="Used for crafting. Produced by: Cooperage, Provisioner, Toolshop, Artisan."},
["pottery"] = { page="Pottery",  
iconfile="Pottery.png",  
category=CAT_CRAFT, cat2=C2_VESSELS,  
sellValue=0.225, buyValue=0.375,  
description="Used for crafting. Produced by: Bakery, Smokehouse, Brickyard, Stamping Mill."},
["waterskins"] = { page="Waterskins",  
iconfile="Waterskins.png",  
category=CAT_CRAFT, cat2=C2_VESSELS,  
sellValue=0.225, buyValue=0.375,  
description="Used for crafting. Produced by: Clothier, Leatherworker, Toolshop, Supplier."},
-- Trade Goods/Valuable Items
-- Trade Goods/Valuable Items
["amber"] = {iconfile="Icon_Resource_Amber.png", page="Amber", category=CAT_TRADE, cat2=C2_VALUABL, sellValue=1.20, buyValue=1.50, description="A widely accepted currency in the kingdom. Crystalized tree blood... fitting."},
["amber"] = { page="Amber",
["ancient tablet"] = {iconfile="Icon_Resource_AncientTablet.png", page="Ancient Tablet", category=CAT_TRADE, cat2=C2_VALUABL, sellValue=9.60, buyValue=16.0, description="Valuable sources of knowledge, highly sought after by traders and the Queen herself. They can be found in Dangerous  or Forbidden Glades."},
iconfile="Icon_Resource_Amber.png",  
category=CAT_TRADE, cat2=C2_VALUABL,  
sellValue=1.20, buyValue=1.50,  
description="A widely accepted currency in the kingdom. Crystalized tree blood... fitting."},
["ancient tablet"] = { page="Ancient Tablet",
iconfile="Icon_Resource_AncientTablet.png",  
category=CAT_TRADE, cat2=C2_VALUABL,  
sellValue=9.60, buyValue=16.0,  
description="Valuable sources of knowledge, highly sought after by traders and the Queen herself. They can be found in Dangerous  or Forbidden Glades."},
-- Trade Goods/Packs of Goods
-- Trade Goods/Packs of Goods
["pack of building materials"] = {iconfile="Icon_Resource_BuildingMaterials.png", page="Pack of Building Materials", category=CAT_TRADE, cat2=C2_PACKSGO, sellValue=1.05, buyValue=1.60, description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Makeshift Post, Flawless Rain Mill, Rain Mill, Tinkerer."},
["pack of building materials"] = { page="Pack of Building Materials",  
["pack of crops"] = {iconfile="Crops.png", page="Pack of Crops", category=CAT_TRADE, cat2=C2_PACKSGO, sellValue=0.71, buyValue=1.10, description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Makeshift Post, Granary, Brewery, Flawless Brewery."},
iconfile="Icon_Resource_BuildingMaterials.png",
["pack of luxury goods"] = {iconfile="Luxury.png", page="Pack of Luxury Goods", category=CAT_TRADE, cat2=C2_PACKSGO, sellValue=0.78, buyValue=1.20, description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Carpenter, Leatherworker, Press."},
category=CAT_TRADE, cat2=C2_PACKSGO,  
["pack of provisions"] = {iconfile="Provisions.png", page="Pack of Provisions", category=CAT_TRADE, cat2=C2_PACKSGO, sellValue=0.48, buyValue=0.80, description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Makeshift Post, Provisioner, Manufactory."},
sellValue=1.05, buyValue=1.60,  
["pack of trade goods"] = {iconfile="TradeGoods.png", page="Pack of Trade Goods", category=CAT_TRADE, cat2=C2_PACKSGO, sellValue=0.96, buyValue=1.60, description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Lumber Mill, Weaver, Smithy."},
description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Makeshift Post, Flawless Rain Mill, Rain Mill, Tinkerer."},
["pack of crops"] = { page="Pack of Crops",  
iconfile="Crops.png",  
category=CAT_TRADE, cat2=C2_PACKSGO,  
sellValue=0.71, buyValue=1.10,  
description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Makeshift Post, Granary, Brewery, Flawless Brewery."},
["pack of luxury goods"] = { page="Pack of Luxury Goods",  
iconfile="Luxury.png",  
category=CAT_TRADE, cat2=C2_PACKSGO,  
sellValue=0.78, buyValue=1.20,  
description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Carpenter, Leatherworker, Press."},
["pack of provisions"] = { page="Pack of Provisions",  
iconfile="Provisions.png",  
category=CAT_TRADE, cat2=C2_PACKSGO,  
sellValue=0.48, buyValue=0.80,  
description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Makeshift Post, Provisioner, Manufactory."},
["pack of trade goods"] = { page="Pack of Trade Goods",  
iconfile="TradeGoods.png",
category=CAT_TRADE, cat2=C2_PACKSGO,  
sellValue=0.96, buyValue=1.60,  
description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Lumber Mill, Weaver, Smithy."},
-- Meta resources
-- Meta resources
["artifacts"] = {iconfile="Icon MetaResource Artifact.png", page="Artifacts", category=CAT_TRADE, cat2=C2_METARES, sellValue=0.60, buyValue=0.90, description="Curiosities of a varied nature. Fascinating, sinister, and all in between. Can be used to buy more advanced upgrades in the Smoldering City."},
["artifacts"] = { page="Artifacts",
["food stockpiles"] = {iconfile="Icon MetaResource FoodStockpiles.png", page="Food Stockpiles", category=CAT_TRADE, cat2=C2_METARES, sellValue=0.30, buyValue=0.45, description="A basic currency in the realm. Workers are eager to exchange their labor for food for their families. Can be used to buy upgrades in the Smoldering City."},
iconfile="Icon MetaResource Artifact.png",  
["machinery"] = {iconfile="Icon MetaResource Machinery.png", page="Machinery", category=CAT_TRADE, cat2=C2_METARES, sellValue=0.60, buyValue=0.90, description="Rainpunk technology ripped from the past. Repurposed using skill and labor. Can be used to buy upgrades in the Smoldering City."},
category=CAT_TRADE, cat2=C2_METARES,  
sellValue=0.60, buyValue=0.90,  
description="Curiosities of a varied nature. Fascinating, sinister, and all in between. Can be used to buy more advanced upgrades in the Smoldering City."},
["food stockpiles"] = { page="Food Stockpiles",
iconfile="Icon MetaResource FoodStockpiles.png",  
category=CAT_TRADE, cat2=C2_METARES,  
sellValue=0.30, buyValue=0.45,  
description="A basic currency in the realm. Workers are eager to exchange their labor for food for their families. Can be used to buy upgrades in the Smoldering City."},
["machinery"] = { page="Machinery",
iconfile="Icon MetaResource Machinery.png",  
category=CAT_TRADE, cat2=C2_METARES,  
sellValue=0.60, buyValue=0.90,  
description="Rainpunk technology ripped from the past. Repurposed using skill and labor. Can be used to buy upgrades in the Smoldering City."},
-- Fuel & Exploration/Fuel
-- Fuel & Exploration/Fuel
["coal"] = {iconfile="Icon_Resource_Coal.png", page="Coal", category=CAT_FUEXP, cat2=C2_FUELSAC, burnable=true, burnTime=60, sacrificedRate=18, sellValue=0.375, buyValue=0.625, description="Efficient fuel. Obtained by: Mine, Brick Oven, Kiln."},
["coal"] = { page="Coal",
["oil"] = {iconfile="Oil.png", page="Oil", category=CAT_FUEXP, cat2=C2_FUELSAC, burnable=true, burnTime=30, sacrifiedRate=15, sellValue=0.195, buyValue=0.325, description="Efficient fuel. Obtained by: Butcher, Press, Druid's Hut."},
iconfile="Icon_Resource_Coal.png",  
["sea marrow"] = {iconfile="SeaMarrow.png", page="Sea Marrow", category=CAT_FUEXP, cat2=C2_FUELSAC, burnable=true, burnTime=60, sacrifiedRate=18, sellValue=0.375, buyValue=0.625, description="Efficient fuel. Obtained by: Stonecutters' Camp."},
category=CAT_FUEXP, cat2=C2_FUELSAC,  
["wood"] = {iconfile="Wood.png", page="Wood", category=CAT_FUEXP, cat2=C2_FUELSAC, burnable=true, burnTime=15, sacrifiedRate=30, sellValue=0.075, buyValue=0.125, description="An abundant, yet crucial resource. Obtained by: Woodcutters' Camp."},
burnable=true, burnTime=60, sacrificedRate=18,  
sellValue=0.375, buyValue=0.625,  
description="Efficient fuel. Obtained by: Mine, Brick Oven, Kiln."},
["oil"] = { page="Oil",  
iconfile="Oil.png",  
category=CAT_FUEXP, cat2=C2_FUELSAC,  
burnable=true, burnTime=30, sacrifiedRate=15,  
sellValue=0.195, buyValue=0.325,  
description="Efficient fuel. Obtained by: Butcher, Press, Druid's Hut."},
["sea marrow"] = { page="Sea Marrow",
iconfile="SeaMarrow.png",  
category=CAT_FUEXP, cat2=C2_FUELSAC,  
burnable=true, burnTime=60, sacrifiedRate=18,  
sellValue=0.375, buyValue=0.625,  
description="Efficient fuel. Obtained by: Stonecutters' Camp."},
["wood"] = { page="Wood",  
iconfile="Wood.png",  
category=CAT_FUEXP, cat2=C2_FUELSAC,  
burnable=true, burnTime=15, sacrifiedRate=30,  
sellValue=0.075, buyValue=0.125,  
description="An abundant, yet crucial resource. Obtained by: Woodcutters' Camp."},
-- Fuel & Exploration/Tools
-- Fuel & Exploration/Tools
["simple tools"] = {iconfile="SimpleTools.png", page="Simple Tools", category=CAT_FUEXP, cat2=C2_EXPTOOL, sellValue=1.665, buyValue=2.775, description="Used in exploration, for opening caches and completing difficult events. Produced by: Carpenter, Smithy, Toolshop, Tinkerer, Scribe."},
["simple tools"] = { page="Simple Tools",
["infused tools"] = {iconfile="InfusedTools.png", page="Infused Tools", category=CAT_FUEXP, cat2=C2_EXPTOOL, sellValue=2.115, buyValue=3.525, description="Used in exploration, for opening caches and completing difficult events. Produced by: Finesmith, Rainpunk Foundry."},
iconfile="SimpleTools.png",  
category=CAT_FUEXP, cat2=C2_EXPTOOL,  
sellValue=1.665, buyValue=2.775,  
description="Used in exploration, for opening caches and completing difficult events. Produced by: Carpenter, Smithy, Toolshop, Tinkerer, Scribe."},
["infused tools"] = { page="Infused Tools",
iconfile="InfusedTools.png",  
category=CAT_FUEXP, cat2=C2_EXPTOOL,  
sellValue=2.115, buyValue=3.525,  
description="Used in exploration, for opening caches and completing difficult events. Produced by: Finesmith, Rainpunk Foundry."},
-- Rainwater
-- Rainwater
["clearance water"] = {iconfile="Yellow_30.png", page="Clearance Water", category=CAT_RAINS, cat2=C2_RAINWAT, description="Highly concentrated yellow clearance rainwater. Used to power Rain Engines in crafting-oriented buildings."},
["clearance water"] = { page="Clearance Water",
["drizzle water"] = {iconfile="Green_11.png", page="Drizzle Water", category=CAT_RAINS, cat2=C2_RAINWAT, description="Highly concentrated green drizzle rainwater. Used to power Rain Engines in food-oriented buildings."},
iconfile="Yellow_30.png",  
["storm water"] = {iconfile="Blue_14.png", page="Storm Water", category=CAT_RAINS, cat2=C2_RAINWAT, description="Highly concentrated blue storm rainwater. Used to power Rain Engines in industry-oriented buildings."},
category=CAT_RAINS, cat2=C2_RAINWAT,  
description="Highly concentrated yellow clearance rainwater. Used to power Rain Engines in crafting-oriented buildings."},
["drizzle water"] = { page="Drizzle Water",
iconfile="Green_11.png",  
category=CAT_RAINS, cat2=C2_RAINWAT,  
description="Highly concentrated green drizzle rainwater. Used to power Rain Engines in food-oriented buildings."},
["storm water"] = { page="Storm Water",
iconfile="Blue_14.png",  
category=CAT_RAINS, cat2=C2_RAINWAT,  
description="Highly concentrated blue storm rainwater. Used to power Rain Engines in industry-oriented buildings."},
-- Blight Fuel
-- Blight Fuel
["purging fire"] = {iconfile="PurgingFire.png", page="Purging Fire", category=CAT_BLIGH, cat2=C2_PURGING, sellValue=0.375, buyValue=0.625, description="A unique resource used by Blight Fighters to burn down Blightrot Cysts. Produced by: Blight Post."}
["purging fire"] = { page="Purging Fire",
iconfile="PurgingFire.png",  
category=CAT_BLIGH, cat2=C2_PURGING,  
sellValue=0.375, buyValue=0.625,  
description="A unique resource used by Blight Fighters to burn down Blightrot Cysts. Produced by: Blight Post."}
}
}



Revision as of 05:30, 13 February 2023

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

-------------------------------------------------------------------------------
-- Lua storage module for looking up data about resources, for use in other
-- modules and templates, for example, {{Resource_Link}}.
-- 
--
-- The main data table stores all available data about resources themselves and 
-- relies on other modules to store relationships between resources and 
-- buildings, services, etc.
--
-- The helper functions include getters (to keep the data hidden) and a large
-- normalization method to provide some robustness when using the template and 
-- from other Lua modules. Looking up a resource requires using in-game names, 
-- but forgives small differences in spacing, apostrophes, and plurals.
-- @module ResourceData
local ResourceData = {}

--
-- Dependencies
--
Utility = Utility or require("Module:Utility") -- need normalize functions



--
-- Constants
--
-- top-level categories; the main tabs in the top of the game window
local CAT_FOODS = "Food"
local CAT_BUILD = "Building Materials"
local CAT_CONSU = "Consumable Items"
local CAT_CRAFT = "Crafting Resources"
local CAT_TRADE = "Trade Goods"
local CAT_FUEXP = "Fuel & Exploration"
local CAT_RAINS = "Rainwater"
local CAT_BLIGH = "Blight Fuel"

-- secondary categories, for use in wiki pages
-- Foods
local C2_RAWFOOD = "Raw Food"
local C2_COMPLEX = "Complex Food"
-- Building Mats
local C2_CONSTRU = "Construction Material"
local C2_RAREMAT = "Rare Material"
-- Consumable Items
local C2_CLOTHIN = "Clothing"
local C2_SERVICE = "Service"
-- Crafting Resources
local C2_RAWMATS = "Raw Material"
local C2_PROCESS = "Processed Material"
local C2_METALOR = "Metal"
local C2_VESSELS = "Vessel"
-- Trade Goods
local C2_VALUABL = "Valuable"
local C2_PACKSGO = "Pack of Good"
local C2_METARES = "Metaresource"
-- Fuel & Exploration
local C2_FUELSAC = "Fuel"
local C2_EXPTOOL = "Tool"
-- Rainwater and Blight Fuel
local C2_RAINWAT = "Rainwater"
local C2_PURGING = "Purging Fire"



--
-- Class variables
--

-------------------------------------------------------------------------------
-- Primary data table for this module.
--
-- This table stories the details of resources 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 resource name, with the same spaces, 
-- apostrophes, singular/plural, 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
-- @
local RESOURCE_DATA = {

	---------------------------------------
	--[[ RESOURCE_DATA
		*defaults are stored here; these value will be modified during the game by
		perks and city upgrades
	-- page: string: the name of the page on the wiki, case sensitive. this should match
			the spelling, spacing, and punctuation in the game
	-- iconfile: string: the filename, ending in .png, on the wiki. do not include 
			the File: prefix. Align with dev data dumps (from Google Drive) or 
			from extracted assets from the Unity Asset Studio.
	-- category: string/constant: the category the good belongs to, in the upper UI on
			the game screen, for example "Food" or "Consumable Items." useful for building
			tables of similar items. use the constants above.
	-- cat2: string/constant: a more specific category, often referenced by perks,
			needs, or buildings, for example, "Complex Food" and "Packs of goods" 
			and "Metal or Ore"
	-- eatable: boolean: true if the good can be eaten, can omit if false
	-- burnable: boolean: true if the good can be burned or sacrified in a Hearth, can omit if false
	-- burnTime: int: default* seconds the item burns for in a Hearth, can omit if burnable is false
	-- sacrificedRate: int: default* number of items sacrified per minute in a Hearth, can omit if burnable is false
	-- sellValue: float: default* value when selling, in Amber (the spreadsheet shows value as 10x, so 2.4 = 0.24 in-game)
	-- buyValue: float: default* value when buying, in Amber
	-- description: string: the in-game description.
	--]]
	---------------------------------------
    -- Food/Raw Food
	["berries"] = {	page="Berries", 
		iconfile="Icon_Resource_Berries.png", 
		category=CAT_FOODS, cat2=C2_RAWFOOD, 
		eatable=true, 
		sellValue=0.24, buyValue=0.40, 
		description="Common food source. Obtained by: Plantation, Hallowed Herb Garden, Herbalists' Camp, Small Herbalists' Camp."},
	["eggs"] = { page="Eggs", 
		iconfile="Eggs.png", 
		category=CAT_FOODS, cat2=C2_RAWFOOD, 
		eatable=true, 
		sellValue=0.24, buyValue=0.40, 
		description="Common food source. Obtained by: Ranch, Trappers' Camp, Small Trappers' Camp."},
	["insects"] = { page="Insects",
		iconfile="Insects.png",	
		category=CAT_FOODS, cat2=C2_RAWFOOD, 
		eatable=true, 
		sellValue=0.24, buyValue=0.40, 
		description="Common food source. Obtained by: Trappers' Camp, Small Trappers' Camp."},
	["meat"] = { page="Meat", 
		iconfile="Meat.png", 
		category=CAT_FOODS, cat2=C2_RAWFOOD, 
		eatable=true, 
		sellValue=0.24, buyValue=0.40, 
		description="Common food source. Obtained by: Ranch, Trappers' Camp, Small Trappers' Camp."},
	["mushrooms"] = { page="Mushrooms", 
		iconfile="Mushrooms.png", 
		category=CAT_FOODS, cat2=C2_RAWFOOD, 
		eatable=true, 
		sellValue=0.24, buyValue=0.40, 
		description="Common food source. Obtained by: Herbalists' Camp, Small Herbalists' Camp, Greenhouse, Homestead."},
	["roots"] = { page="Roots", 
		iconfile="Roots.png", 
		category=CAT_FOODS, cat2=C2_RAWFOOD, 
		eatable=true, 
		sellValue=0.24, buyValue=0.40, 
		description="Common food source. Obtained by: Hallowed Herb Garden, Herb Garden, Foragers' Camp, Small Foragers' Camp."},
	["vegetables"] = { page="Vegetables", 
		iconfile="Vegetables.png", 
		category=CAT_FOODS, cat2=C2_RAWFOOD, 
		eatable=true, 
		sellValue=0.24, buyValue=0.40, 
		description="Common food source. Obtained by: Hallowed Small Farm, Small Farm, Foragers' Camp, Small Foragers' Camp, Homestead."},
		
	-- Food/Complex Food
	["biscuits"] = { page="Biscuits", 
		iconfile="Icon_Resource_Biscuits.png", 
		category=CAT_FOODS, cat2=C2_COMPLEX, 
		eatable=true, 
		sellValue=0.30, buyValue=0.50, 
		description="Tasty and crunchy. Produced by: Field Kitchen, Bakery, Cookhouse, Smelter, Apothecary."},
	["jerky"] = { page="Jerky", 
		iconfile="Jerky.png", 
		category=CAT_FOODS, cat2=C2_COMPLEX, 
		eatable=true, 
		sellValue=0.18, buyValue=0.30, 
		description="Preserved, dried meat. Produced by: Field Kitchen, Smokehouse, Kiln, Butcher, Cellar."},
	["pickled goods"] = { page="Pickled Goods", 
		iconfile="PickledGoods.png", 
		category=CAT_FOODS, cat2=C2_COMPLEX, 
		eatable=true, 
		sellValue=0.24, buyValue=0.40, 
		description="A Beaver specialty. Produced by: Field Kitchen, Granary, Cellar, Brewery, Flawless Brewery."},
	["pie"] = { page="Pie", 
		iconfile="Pie.png", 
		category=CAT_FOODS, cat2=C2_COMPLEX, 
		eatable=true, 
		sellValue=0.30, buyValue=0.50, 
		description="A Human specialty. Produced by: Bakery, Brick Oven, Furnace."},
	["skewers"] = { page="Skewers", 
		iconfile="Skewers.png", 
		category=CAT_FOODS, cat2=C2_COMPLEX, 
		eatable=true, 
		sellValue=0.24, buyValue=0.40, 
		description="A Lizard specialty. Produced by: Cookhouse, Grill, Butcher."},
		
	-- Building Materials
	["bricks"] = { page="Bricks", 
		iconfile="Icon_Resource_Bricks.png", 
		category=CAT_BUILD, cat2=C2_CONSTRU, 
		sellValue=0.375, buyValue=0.625, 
		description="Mostly used for construction. Produced by: Crude Workstation, Workshop, Brickyard, Kiln, Furnace."},
	["fabric"] = { page="Fabric", 
		iconfile="Fabric.png", 
		category=CAT_BUILD, cat2=C2_CONSTRU, 
		sellValue=0.375, buyValue=0.625, 
		description="Used for construction or production of clothes. Produced by: Crude Workstation, Workshop, Weaver, Granary, Leatherworker."},
	["pipes"] = { page="Pipes", 
		iconfile="En_craft_23.png", 
		category=CAT_BUILD, cat2=C2_CONSTRU, 
		sellValue=0.58, buyValue=1.00, 
		description="Used to install Rainpunk Engines in production buildings and build Geyser Pumps. Produced by: Crude Workstation, Workshop, Smelter, Toolshop."},
	["planks"] = { page="Planks", 
		iconfile="Planks.png", 
		category=CAT_BUILD, cat2=C2_CONSTRU, 
		sellValue=0.225, buyValue=0.375, 
		description="Mostly used for construction. Produced by: Crude Workstation, Workshop, Lumber Mill, Carpenter, Supplier."},
		
	-- Building Materials/Rare
	["parts"] = { page="Parts", 
		iconfile="Parts.png", 
		category=CAT_BUILD, cat2=C2_RAREMAT, 
		sellValue=2.28, buyValue=4.80, 
		description="Rare elements used in camp construction. Difficult to produce in this harsh environment."},
	["wildfire essence"] = { page="Wildfire Essence", 
		iconfile="Wildfire Essence.png", 
		category=CAT_BUILD, cat2=C2_RAREMAT, 
		sellValue=6.00, buyValue=10.0, 
		description="A sentient flame trapped in a bottle. This rare material is used to light the Holy Flame in Hearths. Can be acquired from orders, Glade Events, or traders."},
		
	-- Consumable Items/Clothing
	["coats"] = { page="Coats", 
		iconfile="Coats.png", 
		category=CAT_CONSU, cat2=C2_CLOTHIN, 
		sellValue=0.12, buyValue=0.20, 
		description="Used as clothing by some villagers. Produced by: Clothier, Smithy, Artisan, Druid's Hut."},
		
	-- Consumable Items/Service Items
	["ale"] = { page="Ale", 
		iconfile="Icon_Resource_Ale.png", 
		category=CAT_CONSU, cat2=C2_SERVICE, 
		sellValue=0.21, buyValue=0.35, 
		description="Used for Leisure at: Tavern, Monastery, Forum. Produced by: Grill, Brewery, Flawless Brewery, Tinctury, Scribe."},
	["cosmetics"] = { page="Cosmetics", 
		iconfile="Cosmetics.png", 
		category=CAT_CONSU, cat2=C2_SERVICE, 
		sellValue=0.18, buyValue=0.3, 
		description="Used for Cleanliness at: Bath House, Holy Market, Market. Produced by: Cooperage, Alchemist's Hut, Apothecary."},
	["incense"] = { page="Incense", 
		iconfile="Incense.png", 
		category=CAT_CONSU, cat2=C2_SERVICE, 
		sellValue=0.225, buyValue=0.375, 
		description="Used for Religion at: Holy Temple, Temple, Monastery, Clan Hall. Produced by: Smokehouse, Brick Oven, Apothecary, Druid's Hut."},
	["scrolls"] = { page="Scrolls", 
		iconfile="Scrolls.png", 
		category=CAT_CONSU, cat2=C2_SERVICE, 
		sellValue=0.18, buyValue=0.30, 
		description="Used for Education at: Holy Temple, Temple, Explorers' Lodge, Forum. Produced by: Lumber Mill, Clothier, Flawless Rain Mill, Rain Mill, Scribe."},
	["training gear"] = { page="Training Gear", 
		iconfile="TrainingGear.png", 
		category=CAT_CONSU, cat2=C2_SERVICE, 
		sellValue=0.255, buyValue=0.425, 
		description="Used for Brawling at: Tavern, Clan Hall, Explorers' Lodge. Produced by: Cooperage, Weaver, Tinkerer, Manufactory."},
	["wine"] = { page="Wine", 
		iconfile="Wine.png", 
		category=CAT_CONSU, cat2=C2_SERVICE, 
		sellValue=0.18, buyValue=0.30, 
		description="Used for Luxury at: Guild House, Holy Market, Market. Produced by: Cellar, Alchemist's Hut, Tinctury."},
		
	-- Crafting Materials/Raw Materials
	["clay"] = { page="Clay", 
		iconfile="Icon_Resource_Clay.png", 
		category=CAT_CRAFT, cat2=C2_RAWMATS, 
		sellValue=0.18, buyValue=0.30, 
		description="Flesh of the earth. Used mostly for crafting. Obtained by: Stonecutters' Camp, Clay Pit."},
	["grain"] = { page="Grain", 
		iconfile="Grain.png", 
		category=CAT_CRAFT, cat2=C2_RAWMATS, 
		sellValue=0.24, buyValue=0.40, 
		description="Isn't eaten raw, but can be processed. Obtained by: Hallowed Small Farm, Small Farm, Foragers' Camp, Small Foragers' Camp, Homestead."},
	["herbs"] = { page="Herbs", 
		iconfile="Herbs.png", 
		category=CAT_CRAFT, cat2=C2_RAWMATS, 
		sellValue=0.24, buyValue=0.40, 
		description="Isn't eaten raw, but can be processed. Obtained by: Hallowed Herb Garden, Herb Garden, Herbalists' Camp, Small Herbalists' Camp, Greenhouse."},
	["leather"] = { page="Leather", 
		iconfile="Leather.png", 
		category=CAT_CRAFT, cat2=C2_RAWMATS, 
		sellValue=0.18, buyValue=0.30, 
		description="Used for crafting. Obtained by: Ranch."},
	["pigment"] = { page="Pigment", 
		iconfile="Pigment.png", 
		category=CAT_CRAFT, cat2=C2_RAWMATS, 
		sellValue=0.15, buyValue=0.25, 
		description="Used for crafting. Produced by: Cookhouse, Artisan, Tinctury, Manufactory."},
	["plant fiber"] = { page="Plant Fiber", 
		iconfile="PlantFiber.png", 
		category=CAT_CRAFT, cat2=C2_RAWMATS, 
		sellValue=0.18, buyValue=0.30, 
		description="Used for crafting. Obtained by: Hallowed Small Farm, Plantation, Harvesters' Camp, Homestead."},
	["reeds"] = { page="Reeds", 
		iconfile="Reeds.png", 
		category=CAT_CRAFT, cat2=C2_RAWMATS, 
		sellValue=0.18, buyValue=0.30, 
		description="Used for crafting. Obtained by: Harvesters' Camp, Clay Pit."},
	["resin"] = { page="Resin", 
		iconfile="Resin.png", 
		category=CAT_CRAFT, cat2=C2_RAWMATS, 
		sellValue=0.18, buyValue=0.30, 
		description="Used for crafting. Obtained by: Forester's Hut."},
	["stone"] = { page="Stone", 
		iconfile="Stone.png", 
		category=CAT_CRAFT, cat2=C2_RAWMATS, 
		sellValue=0.18, buyValue=0.30, 
		description="Bones of the earth. Used mostly for crafting. Obtained by: Stonecutters' Camp."},
	
	-- Crafting Materials/Processed Materials
	["flour"] = { page="Flour",	
		iconfile="Flour.png", 
		category=CAT_CRAFT, cat2=C2_PROCESS, 
		sellValue=0.22, buyValue=0.38, 
		description="Used for cooking. Produced by: Flawless Rain Mill, Rain Mill, Press, Provisioner, Stamping Mill, Supplier."},
		
	-- Crafting Materials/Metal & Ore
	["copper bars"] = { page="Copper Bars", 
		iconfile="CopperBar.png", 
		category=CAT_CRAFT, cat2=C2_METALOR, 
		sellValue=0.72, buyValue=1.2, 
		description="Refined copper ore, used for crafting. Produced by: Grill, Furnace, Stamping Mill, Smelter."},
	["copper ore"] = { page="Copper Ore", 
		iconfile="CopperOre.png", 
		category=CAT_CRAFT, cat2=C2_METALOR, 
		sellValue=0.18, buyValue=0.30, 
		description="A soft and malleable metal. Obtained by: Mine."},
	["crystalized dew"] = { page="Crystalized Dew", 
		iconfile="CrystalizedDew.png", 
		category=CAT_CRAFT, cat2=C2_METALOR, 
		sellValue=0.72, buyValue=1.20, 
		description="Crystalized rain essence. Produced by: Forester's Hut, Brickyard, Smelter, Alchemist's Hut."},
		
	-- Crafting Materials/Vessels
	["barrels"] = { page="Barrels", 
		iconfile="Icon_Resource_Barrels.png", 
		category=CAT_CRAFT, cat2=C2_VESSELS, 
		sellValue=0.24, buyValue=0.40, 
		description="Used for crafting. Produced by: Cooperage, Provisioner, Toolshop, Artisan."},
	["pottery"] = { page="Pottery", 
		iconfile="Pottery.png", 
		category=CAT_CRAFT, cat2=C2_VESSELS, 
		sellValue=0.225, buyValue=0.375, 
		description="Used for crafting. Produced by: Bakery, Smokehouse, Brickyard, Stamping Mill."},
	["waterskins"] = { page="Waterskins", 
		iconfile="Waterskins.png", 
		category=CAT_CRAFT, cat2=C2_VESSELS, 
		sellValue=0.225, buyValue=0.375, 
		description="Used for crafting. Produced by: Clothier, Leatherworker, Toolshop, Supplier."},
		
	-- Trade Goods/Valuable Items
	["amber"] = { page="Amber", 
		iconfile="Icon_Resource_Amber.png", 
		category=CAT_TRADE, cat2=C2_VALUABL, 
		sellValue=1.20, buyValue=1.50, 
		description="A widely accepted currency in the kingdom. Crystalized tree blood... fitting."},
	["ancient tablet"] = { page="Ancient Tablet", 
		iconfile="Icon_Resource_AncientTablet.png", 
		category=CAT_TRADE, cat2=C2_VALUABL, 
		sellValue=9.60, buyValue=16.0, 
		description="Valuable sources of knowledge, highly sought after by traders and the Queen herself. They can be found in Dangerous  or Forbidden Glades."},
		
	-- Trade Goods/Packs of Goods
	["pack of building materials"] = { page="Pack of Building Materials", 
		iconfile="Icon_Resource_BuildingMaterials.png", 
		category=CAT_TRADE, cat2=C2_PACKSGO, 
		sellValue=1.05, buyValue=1.60, 
		description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Makeshift Post, Flawless Rain Mill, Rain Mill, Tinkerer."},
	["pack of crops"] = { page="Pack of Crops", 
		iconfile="Crops.png", 
		category=CAT_TRADE, cat2=C2_PACKSGO, 
		sellValue=0.71, buyValue=1.10, 
		description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Makeshift Post, Granary, Brewery, Flawless Brewery."},
	["pack of luxury goods"] = { page="Pack of Luxury Goods", 
		iconfile="Luxury.png", 
		category=CAT_TRADE, cat2=C2_PACKSGO, 
		sellValue=0.78, buyValue=1.20, 
		description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Carpenter, Leatherworker, Press."},
	["pack of provisions"] = { page="Pack of Provisions", 
		iconfile="Provisions.png", 
		category=CAT_TRADE, cat2=C2_PACKSGO, 
		sellValue=0.48, buyValue=0.80, 
		description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Makeshift Post, Provisioner, Manufactory."},
	["pack of trade goods"] = { page="Pack of Trade Goods", 
		iconfile="TradeGoods.png", 
		category=CAT_TRADE, cat2=C2_PACKSGO, 
		sellValue=0.96, buyValue=1.60, 
		description="Goods packed for delivery, used for fulfilling orders or trading. Produced by: Lumber Mill, Weaver, Smithy."},
		
	-- Meta resources
	["artifacts"] = { page="Artifacts", 
		iconfile="Icon MetaResource Artifact.png", 
		category=CAT_TRADE, cat2=C2_METARES, 
		sellValue=0.60, buyValue=0.90, 
		description="Curiosities of a varied nature. Fascinating, sinister, and all in between. Can be used to buy more advanced upgrades in the Smoldering City."},
	["food stockpiles"] = { page="Food Stockpiles", 
		iconfile="Icon MetaResource FoodStockpiles.png", 
		category=CAT_TRADE, cat2=C2_METARES, 
		sellValue=0.30, buyValue=0.45, 
		description="A basic currency in the realm. Workers are eager to exchange their labor for food for their families. Can be used to buy upgrades in the Smoldering City."},
	["machinery"] = { page="Machinery", 
		iconfile="Icon MetaResource Machinery.png", 
		category=CAT_TRADE, cat2=C2_METARES, 
		sellValue=0.60, buyValue=0.90, 
		description="Rainpunk technology ripped from the past. Repurposed using skill and labor. Can be used to buy upgrades in the Smoldering City."},
	
	-- Fuel & Exploration/Fuel
	["coal"] = { page="Coal", 
		iconfile="Icon_Resource_Coal.png", 
		category=CAT_FUEXP, cat2=C2_FUELSAC, 
		burnable=true, burnTime=60, sacrificedRate=18, 
		sellValue=0.375, buyValue=0.625, 
		description="Efficient fuel. Obtained by: Mine, Brick Oven, Kiln."},
	["oil"] = { page="Oil", 
		iconfile="Oil.png", 
		category=CAT_FUEXP, cat2=C2_FUELSAC, 
		burnable=true, burnTime=30, sacrifiedRate=15, 
		sellValue=0.195, buyValue=0.325, 
		description="Efficient fuel. Obtained by: Butcher, Press, Druid's Hut."},
	["sea marrow"] = { page="Sea Marrow", 
		iconfile="SeaMarrow.png", 
		category=CAT_FUEXP, cat2=C2_FUELSAC, 
		burnable=true, burnTime=60, sacrifiedRate=18, 
		sellValue=0.375, buyValue=0.625, 
		description="Efficient fuel. Obtained by: Stonecutters' Camp."},
	["wood"] = { page="Wood", 
		iconfile="Wood.png", 
		category=CAT_FUEXP, cat2=C2_FUELSAC, 
		burnable=true, burnTime=15, sacrifiedRate=30, 
		sellValue=0.075, buyValue=0.125, 
		description="An abundant, yet crucial resource. Obtained by: Woodcutters' Camp."},
	
	-- Fuel & Exploration/Tools
	["simple tools"] = { page="Simple Tools", 
		iconfile="SimpleTools.png", 
		category=CAT_FUEXP, cat2=C2_EXPTOOL, 
		sellValue=1.665, buyValue=2.775, 
		description="Used in exploration, for opening caches and completing difficult events. Produced by: Carpenter, Smithy, Toolshop, Tinkerer, Scribe."},
	["infused tools"] = { page="Infused Tools", 
		iconfile="InfusedTools.png", 
		category=CAT_FUEXP, cat2=C2_EXPTOOL, 
		sellValue=2.115, buyValue=3.525, 
		description="Used in exploration, for opening caches and completing difficult events. Produced by: Finesmith, Rainpunk Foundry."},
	
	-- Rainwater
	["clearance water"] = { page="Clearance Water", 
		iconfile="Yellow_30.png", 
		category=CAT_RAINS, cat2=C2_RAINWAT, 
		description="Highly concentrated yellow clearance rainwater. Used to power Rain Engines in crafting-oriented buildings."},
	["drizzle water"] = { page="Drizzle Water", 
		iconfile="Green_11.png", 
		category=CAT_RAINS, cat2=C2_RAINWAT, 
		description="Highly concentrated green drizzle rainwater. Used to power Rain Engines in food-oriented buildings."},
	["storm water"] = { page="Storm Water", 
		iconfile="Blue_14.png", 
		category=CAT_RAINS, cat2=C2_RAINWAT, 
		description="Highly concentrated blue storm rainwater. Used to power Rain Engines in industry-oriented buildings."},
	
	-- Blight Fuel
	["purging fire"] = { page="Purging Fire", 
		iconfile="PurgingFire.png", 
		category=CAT_BLIGH, cat2=C2_PURGING, 
		sellValue=0.375, buyValue=0.625, 
		description="A unique resource used by Blight Fighters to burn down Blightrot Cysts. Produced by: Blight Post."}
}



-------------------------------------------------------------------------------
-- Main lookup functions
-- Accepts the in-game name and returns the name of the page on the wiki
-- associated with that in-game item, resource, building, etc.
--
-- Some associated lookup functions are necessary to hide the inner table
-- names from outside functions. For example, getIconFilename so that we can
-- change the name of .iconfile without breaking other modules.
-------------------------------------------------------------------------------



-- returns the whole data table for the specified key
-- need to run normalize function first
function ResourceData.getData(strArg)

	-- normalize input
    local strArg = Utility.normalizeResourceName(strArg)
	
	-- Get it from the big table below and return it.
    return RESOURCE_DATA[strArg]
end



-- simpler version if all that's needed is the iconfile.
-- error handling by the calling module is required.
function ResourceData.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
-- and if the table is provided instead of the name to lookup
function ResourceData.getIconFilenameFromData(RESOURCE_DATA)

	-- if this particular data block doesn't have a iconfile, this will return nil
	-- therefore, error handling will be necessary
	return RESOURCE_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 ResourceData.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
-- and if the table is provided instead of the name to lookup
function ResourceData.getPagenameFromData(RESOURCE_DATA)

	-- if this particular data block doesn't have a page name, this will return nil
	-- therefore, error handling will be necessary
	return RESOURCE_DATA.page or nil
end



-- simpler version if all that's needed is the description.
-- error handling by the calling module is required.
function ResourceData.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
-- and if the table is provided instead of the name to lookup
function ResourceData.getDescriptionFromData(RESOURCE_DATA)

	-- if this particular data block doesn't have a description, this will return nil
	-- therefore, error handling will be necessary
	return RESOURCE_DATA.description or nil
end



-------------------------------------------------------------------------------
-- Return when required into another Module.
-------------------------------------------------------------------------------
return ResourceData