Module:CampsData: Difference between revisions
From Against the Storm Official Wiki
(Updating to new data model!) Tag: Replaced |
(Refactoring to better inherit BaseDataModel; improving Luadoc) |
||
Line 1: | Line 1: | ||
---@ | ---@class CampsData | ||
---`extends BaseDataModel` | |||
local CampsData = {} | local CampsData = {} | ||
--region Dependencies | |||
---@type BaseDataModel | |||
local BaseDataModel = require("Module:BaseDataModel") | local BaseDataModel = require("Module:BaseDataModel") | ||
local INDEX = BaseDataModel.INDEX | |||
--endregion | |||
--region Private constants | |||
local DATA_FILE = "Module:CampsData/Camps.json" | local DATA_FILE = "Module:CampsData/Camps.json" | ||
--endregion | |||
-- | |||
--region Private member variables | |||
---@type BaseDataModel | |||
local campsDataModel = BaseDataModel.new(DATA_FILE) | local campsDataModel = BaseDataModel.new(DATA_FILE) | ||
--endregion | |||
--region Public building interface | |||
---@protected | |||
---@function | |||
---Initializes the specified record with special information related to this data model. | |||
--- | |||
---@param id string building ID | |||
---@overload BaseDataModel | |||
function CampsData:initializeRecord(id) | |||
local record = self.dataTable[id] | |||
record[INDEX.CATEGORY2] = "Gathering Camp" | |||
end | |||
---@public | |||
---@function | |||
---Checks whether the specified ID is a service-type building from this instance's data. | |||
--- | |||
---@param id string building ID | |||
---@return boolean _true_ if a service building, _false_ if not, or nil if not found | |||
---@overload BaseDataModel | |||
function CampsData:isServiceBuilding(id) | |||
-- Ignores the parameter; nothing in this data is a service building | |||
id = id | |||
return false | |||
end | |||
--endregion | |||
return campsDataModel | return campsDataModel |
Revision as of 22:33, 4 November 2024
Documentation for this module may be created at Module:CampsData/doc
---@class CampsData ---`extends BaseDataModel` local CampsData = {} --region Dependencies ---@type BaseDataModel local BaseDataModel = require("Module:BaseDataModel") local INDEX = BaseDataModel.INDEX --endregion --region Private constants local DATA_FILE = "Module:CampsData/Camps.json" --endregion --region Private member variables ---@type BaseDataModel local campsDataModel = BaseDataModel.new(DATA_FILE) --endregion --region Public building interface ---@protected ---@function ---Initializes the specified record with special information related to this data model. --- ---@param id string building ID ---@overload BaseDataModel function CampsData:initializeRecord(id) local record = self.dataTable[id] record[INDEX.CATEGORY2] = "Gathering Camp" end ---@public ---@function ---Checks whether the specified ID is a service-type building from this instance's data. --- ---@param id string building ID ---@return boolean _true_ if a service building, _false_ if not, or nil if not found ---@overload BaseDataModel function CampsData:isServiceBuilding(id) -- Ignores the parameter; nothing in this data is a service building id = id return false end --endregion return campsDataModel