--!strict --[=[ @class TieRealmService ]=] local require = require(script.Parent.loader).load(script) local ServiceBag = require("ServiceBag") local TieRealmUtils = require("TieRealmUtils") local TieRealms = require("TieRealms") local TieRealmService = {} TieRealmService.ServiceName = "TieRealmService" export type TieRealmService = typeof(setmetatable( {} :: { _serviceBag: ServiceBag.ServiceBag, _tieRealm: TieRealms.TieRealm, }, {} :: typeof({ __index = TieRealmService }) )) function TieRealmService.Init(self: TieRealmService, serviceBag: ServiceBag.ServiceBag) assert(not (self :: any)._serviceBag, "Already initialized") self._serviceBag = assert(serviceBag, "No serviceBag") if not self._tieRealm then self._tieRealm = TieRealmUtils.inferTieRealm() end end --[=[ Sets the tie realm for this service bag ]=] function TieRealmService.SetTieRealm(self: TieRealmService, tieRealm: TieRealms.TieRealm): () assert(TieRealmUtils.isTieRealm(tieRealm), "Bad tieRealm") self._tieRealm = tieRealm end --[=[ Get the tie realm for this service bag ]=] function TieRealmService.GetTieRealm(self: TieRealmService): TieRealms.TieRealm return self._tieRealm end return TieRealmService