Module:RainCollectorsData: Difference between revisions

From Against the Storm Official Wiki
(Now an instance override of BaseDataModel; functional change)
(Updated for new data in 1.5.2)
 
Line 21: Line 21:
     building[rainCollectorsDataModel.schema.IS_PROVIDING_SERVICES] = false
     building[rainCollectorsDataModel.schema.IS_PROVIDING_SERVICES] = false
end
end
rainCollectorsDataModel.schema.RECIPE.PRODUCTION_TIME = "gatheringTime"




Line 37: Line 35:


--region Public recipe data retrieval interface
--region Public recipe data retrieval interface
--no overrides!
 
---@public
---Gets the efficiency grade from the provided recipe.
---
---@param recipeData recipePairTable
---@return number efficiency grade
function BaseDataModel:getRecipeGrade(recipeData)
 
    -- Default of grade zero.
    return 0
end
 
--endregion
--endregion
--/** End Function definitions. Procedure resumes. **/
--/** End Function definitions. Procedure resumes. **/

Latest revision as of 04:42, 28 November 2024

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

---@module RainCollectorsData
---
---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:RainCollectorsData/RainCatchers.json"

---@type BaseDataModel
local rainCollectorsDataModel = BaseDataModel.new(DATA_FILE)



--Begin instance overrides
for _, building in pairs(rainCollectorsDataModel.dataTable) do
    building[rainCollectorsDataModel.schema.CATEGORY2] = "Extraction Building"
    building[rainCollectorsDataModel.schema.IS_PROVIDING_SERVICES] = false
end



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

---@public
---Gets the efficiency grade from the provided recipe.
---
---@param recipeData recipePairTable
---@return number efficiency grade
function BaseDataModel:getRecipeGrade(recipeData)

    -- Default of grade zero.
    return 0
end

--endregion
--/** End Function definitions. Procedure resumes. **/



return rainCollectorsDataModel