Module:HearthsData: Difference between revisions
From Against the Storm Official Wiki
(Created to serve data for hearths) |
(Now an instance override of BaseDataModel; functional change) |
||
Line 1: | Line 1: | ||
---@module HearthsData | ---@module HearthsData.lua | ||
--- | |||
---This module does not define an _actual_ derived class, but it creates an instance of one via prototyping patterns. Understand this file as a big procedure, top-to-bottom, rather than a class definition. | |||
--- | |||
---Initializes a BaseDataModel with the data file associated with this module. Makes necessary modifications to the basic data, including schema and method overrides, to permit the exceptions associated with data in this model. | |||
--Create instance | |||
local BaseDataModel = require("Module:BaseDataModel") | local BaseDataModel = require("Module:BaseDataModel") | ||
local DATA_FILE = "Module:HearthsData/Hearths.json" | local DATA_FILE = "Module:HearthsData/Hearths.json" | ||
---@type BaseDataModel | |||
local hearthsDataModel = BaseDataModel.new(DATA_FILE) | |||
--Begin instance overrides | |||
for _, building in pairs(hearthsDataModel.dataTable) do | |||
building[hearthsDataModel.schema.CATEGORY2] = "Hearth" | |||
building[hearthsDataModel.schema.IS_PROVIDING_SERVICES] = false | |||
end | |||
--The "recipes" in Hearths.json are sacrifices, so unset the standard recipes schema field and rename the sacrifices schema field. | |||
hearthsDataModel.schema.RECIPES = nil | |||
hearthsDataModel.schema.SACRIFICES = "recipes" | |||
--/** Function definitions follow. **/ | |||
--Collapse the regions in the IDE to see the procedure pick up with the assignments of these functions to override the associated member methods of BaseDataModel. | |||
--region Public building interface | |||
--no overrides! | |||
--endregion | |||
--region Public building recipe query interface | |||
--no overrides! | |||
--endregion | |||
--region Public recipe data retrieval interface | |||
--no overrides! | |||
--endregion | |||
--/** End Function definitions. Procedure resumes. **/ | |||
return hearthsDataModel | return hearthsDataModel |
Latest revision as of 03:06, 8 November 2024
Documentation for this module may be created at Module:HearthsData/doc
---@module HearthsData.lua --- ---This module does not define an _actual_ derived class, but it creates an instance of one via prototyping patterns. Understand this file as a big procedure, top-to-bottom, rather than a class definition. --- ---Initializes a BaseDataModel with the data file associated with this module. Makes necessary modifications to the basic data, including schema and method overrides, to permit the exceptions associated with data in this model. --Create instance local BaseDataModel = require("Module:BaseDataModel") local DATA_FILE = "Module:HearthsData/Hearths.json" ---@type BaseDataModel local hearthsDataModel = BaseDataModel.new(DATA_FILE) --Begin instance overrides for _, building in pairs(hearthsDataModel.dataTable) do building[hearthsDataModel.schema.CATEGORY2] = "Hearth" building[hearthsDataModel.schema.IS_PROVIDING_SERVICES] = false end --The "recipes" in Hearths.json are sacrifices, so unset the standard recipes schema field and rename the sacrifices schema field. hearthsDataModel.schema.RECIPES = nil hearthsDataModel.schema.SACRIFICES = "recipes" --/** Function definitions follow. **/ --Collapse the regions in the IDE to see the procedure pick up with the assignments of these functions to override the associated member methods of BaseDataModel. --region Public building interface --no overrides! --endregion --region Public building recipe query interface --no overrides! --endregion --region Public recipe data retrieval interface --no overrides! --endregion --/** End Function definitions. Procedure resumes. **/ return hearthsDataModel