{"version":3,"sources":["../../../src/decorators/RoomDecorator.ts","../../../src/managers/NavigatorManager.ts","../../../src/decorators/QuestDecorator.ts","../../../src/constants.ts","../../../src/managers/TimeManagerSettings.ts","../../../src/managers/TimeManager.ts","../../../src/managers/index.ts","../../../src/decorators/ActivityDecorator.ts","../../../src/classes/navigation/NavigationAbstractClass.ts","../../../src/classes/navigation/LocationStoredClass.ts","../../../src/classes/navigation/LocationBaseModel.ts"],"names":["registeredRooms","getRoomById","id","room","CURRENT_ROOM_MEMORY_KEY","NavigatorManager","result","roomId","storage","_","TIME_DATA_KEY","TimeManagerSettings","TimeManager","settings","minDayHours","maxDayHours","defaultTimeSpent","timeSlots","weekLength","weekendStartDay","weekDaysNames","data","value","weekDayNumber","index","slot","timeSpent","newHour","newDayHour","days","newDay","fromHour","toHour","currentHour","timeTracker","navigator","registeredActivities","getActivityById","activity","NavigationAbstractClass","StoredClassModel","categoryId","defaultActivities","activityId","activeActivityScheduling","excludedActivitiesScheduling","scheduling","options","hours","fromDay","toDay","additionalActivitiesIds","excludedActivitiesIds","res","a","LOCATION_CATEGORY","LocationStoredClass","_map","activities","LocationBaseModel","map","props","getFlag"],"mappings":"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","file":"LocationBaseModel.mjs","sourcesContent":["import { RoomInterface } from \"../interface\";\n\nexport const registeredRooms: { [id: string]: RoomInterface } = {};\n\n/**\n * Save a room in the registered rooms. If the room already exists, it will be overwritten.\n * @param room The room to save.\n * @returns\n * @example\n * ```ts\n * saveRoom([mcRoom, aliceRoom, annRoom, bathroom, lounge, terrace, gymRoom]);\n * ```\n */\nexport function saveRoom(room: RoomInterface | RoomInterface[]) {\n\tif (Array.isArray(room)) {\n\t\troom.forEach((c) => saveRoom(c));\n\t\treturn;\n\t}\n\tif (registeredRooms[room.id]) {\n\t\tconsole.warn(`[NQTR] Room id ${room.id} already exists, it will be overwritten`);\n\t}\n\tregisteredRooms[room.id] = room;\n}\n\n/**\n * Get a room by its id.\n * @param id The id of the room.\n * @returns The room or undefined if not found.\n */\nexport function getRoomById(id: string): RoomInterface | undefined {\n\ttry {\n\t\tlet room = registeredRooms[id];\n\t\tif (!room) {\n\t\t\tconsole.error(`[NQTR] Room ${id} not found`);\n\t\t\treturn;\n\t\t}\n\t\treturn room;\n\t} catch (e) {\n\t\tconsole.error(`[NQTR] Error while getting Room ${id}`, e);\n\t\treturn;\n\t}\n}\n","import { storage } from \"@drincs/pixi-vn\";\nimport { getRoomById, registeredRooms } from \"../decorators/RoomDecorator\";\nimport { LocationInterface, MapInterface, RoomInterface } from \"../interface\";\n\nconst CURRENT_ROOM_MEMORY_KEY = \"___nqtr-current_room_memory___\";\nexport default class NavigatorManager {\n    get rooms() {\n        return Object.values(registeredRooms);\n    }\n    get locations() {\n        let result: { [id: string]: LocationInterface } = {};\n        Object.values(registeredRooms).forEach((room) => {\n            result[room.location.id] = room.location;\n        });\n        return Object.values(result);\n    }\n    get maps() {\n        let result: { [id: string]: MapInterface } = {};\n        Object.values(registeredRooms).forEach((room) => {\n            result[room.location.map.id] = room.location.map;\n        });\n        return Object.values(result);\n    }\n    get currentRoom(): RoomInterface | undefined {\n        let roomId = storage.getVariable<string>(CURRENT_ROOM_MEMORY_KEY);\n        if (!roomId) {\n            console.error(`[NQTR] The current room has not yet been set`);\n            return;\n        }\n        let room = getRoomById(roomId);\n        if (!room) {\n            console.error(`[NQTR] Current room ${roomId} not found`);\n            return;\n        }\n        return room;\n    }\n    set currentRoom(room: RoomInterface | string) {\n        if (typeof room !== \"string\") {\n            room = room.id;\n        }\n        let roomRegistrated = getRoomById(room);\n        if (!roomRegistrated) {\n            console.error(`[NQTR] The room ${room} is not registered, so it can't be set as current room`);\n            return;\n        }\n        storage.setVariable(CURRENT_ROOM_MEMORY_KEY, room);\n    }\n    get currentLocation(): LocationInterface | undefined {\n        return this.currentRoom?.location;\n    }\n    get currentMap(): MapInterface | undefined {\n        return this.currentRoom?.location.map;\n    }\n    /**\n     * Clear all the expired activities.\n     */\n    clearExpiredActivities() {\n        Object.entries(registeredRooms).forEach(([_, room]) => {\n            room.clearExpiredActivities();\n        });\n    }\n}\n","import { QuestInterface } from \"../interface\";\n\nexport const registeredQuests: { [id: string]: QuestInterface } = {};\n\n/**\n * Save a quest in the registered quests. If the quest already exists, it will be overwritten.\n * @param id The id of the quest, it must be unique\n * @param stages The stages of the quest\n * @param props The quest properties\n * @returns The created quest\n */\nexport function saveQuest(quest: QuestInterface | QuestInterface[]) {\n\tif (Array.isArray(quest)) {\n\t\tquest.forEach((c) => saveQuest(c));\n\t\treturn;\n\t}\n\tif (registeredQuests[quest.id]) {\n\t\tconsole.warn(`[NQTR] Quest id ${quest.id} already exists, it will be overwritten`);\n\t}\n\tregisteredQuests[quest.id] = quest;\n}\n\n/**\n * Get a quest by its id.\n * @param id The id of the quest.\n * @returns The quest or undefined if not found.\n */\nexport function getQuestById(id: string): QuestInterface | undefined {\n\ttry {\n\t\tlet quest = registeredQuests[id];\n\t\tif (!quest) {\n\t\t\tconsole.error(`[NQTR] Quest ${id} not found`);\n\t\t\treturn;\n\t\t}\n\t\treturn quest;\n\t} catch (e) {\n\t\tconsole.error(`[NQTR] Error while getting Quest ${id}`, e);\n\t\treturn;\n\t}\n}\n","export const TIME_SETTINGS_KEY = '___nqtr-time_manager_settings___';\nexport const TIME_DATA_KEY = '___nqtr-time_manager_data___';\n\n","import { ITimeStlot, TimeSettings } from \"../types/TimeSettings\";\n\nexport default class TimeManagerSettings implements TimeSettings {\n    static minDayHours: number = 0\n    static maxDayHours: number = 24\n    static defaultTimeSpent: number = 1\n    static timeSlots: ITimeStlot[] = []\n    static weekLength: number = 7\n    static weekendStartDay: number = this.weekLength - 1\n    static weekDaysNames: string[] = []\n}\n","import { storage } from \"@drincs/pixi-vn\";\nimport { TIME_DATA_KEY } from \"../constants\";\nimport TimeDataType from \"../types/TimeDataType\";\nimport { ITimeStlot, TimeSettings } from \"../types/TimeSettings\";\nimport TimeManagerSettings from \"./TimeManagerSettings\";\n\nexport default class TimeManager {\n    initialize(settings: TimeSettings) {\n        const {\n            minDayHours = 0,\n            maxDayHours = 24,\n            defaultTimeSpent = 1,\n            timeSlots = [],\n            weekLength = 7,\n            weekendStartDay = weekLength - 1,\n            weekDaysNames = [],\n        } = settings;\n        TimeManagerSettings.minDayHours = minDayHours;\n        TimeManagerSettings.maxDayHours = maxDayHours;\n        TimeManagerSettings.defaultTimeSpent = defaultTimeSpent;\n        TimeManagerSettings.timeSlots = timeSlots;\n        TimeManagerSettings.weekLength = weekLength;\n        if (weekendStartDay >= TimeManagerSettings.weekLength) {\n            console.warn(`[NQTR] Weekend start day should be less than week length ${weekLength}, so will be ignored`);\n        } else {\n            TimeManagerSettings.weekendStartDay = weekendStartDay;\n        }\n        if (weekDaysNames.length !== weekLength) {\n            console.warn(`[NQTR] Week days names should be equal to week length ${weekLength}, so will be ignored`);\n        } else {\n            TimeManagerSettings.weekDaysNames = weekDaysNames;\n        }\n    }\n    get minDayHours(): number {\n        return TimeManagerSettings.minDayHours;\n    }\n    get maxDayHours(): number {\n        return TimeManagerSettings.maxDayHours;\n    }\n    get defaultTimeSpent(): number {\n        return TimeManagerSettings.defaultTimeSpent;\n    }\n    get timeSlots(): ITimeStlot[] {\n        return TimeManagerSettings.timeSlots;\n    }\n    get weekLength(): number {\n        return TimeManagerSettings.weekLength;\n    }\n    get weekendStartDay(): number {\n        return TimeManagerSettings.weekendStartDay;\n    }\n    get weekDaysNames(): string[] {\n        return TimeManagerSettings.weekDaysNames;\n    }\n\n    /**\n     * Get the current hour\n     */\n    get currentHour(): number {\n        let data = storage.getVariable<TimeDataType>(TIME_DATA_KEY) || {};\n        if (data.hasOwnProperty(\"currentHour\") && typeof data.currentHour === \"number\") {\n            return data.currentHour;\n        }\n        return this.minDayHours;\n    }\n    set currentHour(value: number | undefined) {\n        let data = storage.getVariable<TimeDataType>(TIME_DATA_KEY) || {};\n        if (typeof value === \"number\") {\n            data.currentHour = value;\n        } else {\n            delete data.currentHour;\n        }\n        storage.setVariable(TIME_DATA_KEY, data);\n    }\n    /**\n     * Get the current day\n     */\n    get currentDay(): number {\n        let data = storage.getVariable<TimeDataType>(TIME_DATA_KEY) || {};\n        if (data.hasOwnProperty(\"currentDay\") && typeof data.currentDay === \"number\") {\n            return data.currentDay;\n        }\n        return 0;\n    }\n    set currentDay(value: number | undefined) {\n        let data = storage.getVariable<TimeDataType>(TIME_DATA_KEY) || {};\n        if (typeof value === \"number\") {\n            data.currentDay = value;\n        } else {\n            delete data.currentDay;\n        }\n        storage.setVariable(TIME_DATA_KEY, data);\n    }\n    /**\n     * If the current day is greater than or equal to the weekend start day, then it will return true.\n     */\n    get isWeekend(): boolean {\n        return this.currentWeekDayNumber >= this.weekendStartDay;\n    }\n    /**\n     * Get the current week day number (1 - {@link weekLength}).\n     * For example, if the week length is 7 and the current day is 10, then the result will be 4.\n     */\n    get currentWeekDayNumber(): number {\n        let result = this.currentDay % this.weekLength;\n        return result + 1;\n    }\n    /**\n     * Get the current week day name. If the week days names are not defined, then it will return undefined.\n     * For example, if the week days names are ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'] and the current day is 10, then the result will be 'Thursday'.\n     * @default \"\"\n     */\n    get currentDayName(): string {\n        let weekDayNumber = this.currentWeekDayNumber - 1;\n        if (weekDayNumber >= this.weekDaysNames.length) {\n            console.warn(`[NQTR] Week day name is not defined for day ${weekDayNumber}`, this.weekDaysNames);\n            return \"\";\n        }\n        return this.weekDaysNames[weekDayNumber];\n    }\n    /**\n     * Get the current {@link timeSlots} index.\n     * You can use this property to create \"Image that changes based on the time period\":\n     * @example\n     * ```tsx\n     * import { weekLength } from '@drincs/nqtr';\n     *\n     * function changeBackground() {\n     *     return (\n     *         <img src={`background-currentTimeSlot.currentTimeSlot.png`} />\n     *     )\n     * }\n     */\n    get currentTimeSlot(): number {\n        if (this.timeSlots.length === 0) {\n            console.warn(\"[NQTR] Time slots are not defined\");\n            return 0;\n        }\n        for (let index = 0; index < this.timeSlots.length; index++) {\n            let slot = this.timeSlots[index];\n            if (this.timeSlots.length > index + 1) {\n                if (this.nowIsBetween(slot.startHour, this.timeSlots[index + 1].startHour)) {\n                    return index;\n                }\n            }\n        }\n        return this.timeSlots.length - 1;\n    }\n\n    /**\n     * This function will increase the current hour by the given time spent.\n     * If the new hour is greater than or equal to the max day hours, then it will increase the day and set the new hour.\n     * @param timeSpent is the time spent in hours (default: {@link defaultTimeSpent})\n     * @returns currentTimeSlot.currentHour\n     */\n    increaseHour(timeSpent: number = this.defaultTimeSpent): number {\n        let newHour = this.currentHour + timeSpent;\n        if (newHour >= this.maxDayHours) {\n            this.increaseDay();\n            newHour = this.minDayHours + (newHour - this.maxDayHours);\n        }\n        this.currentHour = newHour;\n        return this.currentHour;\n    }\n\n    /**\n     * This function will increase the current day by the given days.\n     * @param newDayHour is the hour of the new day (default: {@link minDayHours})\n     * @param days is the number of days to increase (default: 1)\n     * @returns timeTracker.currentDay\n     */\n    increaseDay(newDayHour: number = this.minDayHours, days: number = 1): number {\n        let newDay = this.currentDay + days;\n        this.currentDay = newDay;\n        this.currentHour = newDayHour;\n        return this.currentDay;\n    }\n\n    /**\n     * This function will check if the current hour is between the given hours.\n     * @param fromHour the starting hour. If the {@link currentHour} is equal to this hour, the function will return true.\n     * @param toHour the ending hour.\n     * @returns true if the current hour is between the given hours, otherwise false.\n     */\n    nowIsBetween(fromHour: number | undefined, toHour: number | undefined): boolean {\n        if (fromHour === undefined) {\n            fromHour = this.minDayHours - 1;\n        }\n        if (toHour === undefined) {\n            toHour = this.maxDayHours + 1;\n        }\n        let currentHour = this.currentHour;\n        if (fromHour < toHour) {\n            return currentHour >= fromHour && currentHour < toHour;\n        }\n        return currentHour >= fromHour || currentHour < toHour;\n    }\n}\n","import NavigatorManager from \"./NavigatorManager\";\nimport QuestManager from \"./QuestManager\";\nimport RoutineManager from \"./RoutineManager\";\nimport { default as TimeManager } from \"./TimeManager\";\n\nconst timeTracker = new TimeManager();\nconst navigator = new NavigatorManager();\nconst routine = new RoutineManager();\nconst questsNotebook = new QuestManager();\n\nexport { navigator, questsNotebook, routine, timeTracker };\n","import { ActivityInterface } from \"../interface\"\n\nexport const registeredActivities: { [id: string]: ActivityInterface } = {}\n\nexport function saveActivity(activities: ActivityInterface | ActivityInterface[]) {\n    if (Array.isArray(activities)) {\n        activities.forEach(activity => {\n            registeredActivities[activity.id] = activity\n        })\n        return\n    }\n    registeredActivities[activities.id] = activities\n}\n\n/**\n * Get an activity by its id.\n * @param id The id of the activity.\n * @returns The activity or undefined if not found.\n */\nexport function getActivityById(id: string): ActivityInterface | undefined {\n    try {\n        let activity = registeredActivities[id]\n        if (!activity) {\n            console.error(`[NQTR] Activity ${id} not found`)\n            return\n        }\n        return activity\n    }\n    catch (e) {\n        console.error(`[NQTR] Error while getting Activity ${id}`, e)\n        return\n    }\n}\n","import { StoredClassModel } from \"@drincs/pixi-vn\";\nimport { getActivityById } from \"../../decorators\";\nimport { ActivityInterface } from \"../../interface\";\nimport NavigationAbstractInterface from \"../../interface/navigation/NavigationAbstractClass\";\nimport { timeTracker } from \"../../managers\";\n\ntype ActiveScheduling = {\n    fromHour?: number;\n    toHour?: number;\n    fromDay?: number;\n    toDay?: number;\n};\ntype ExcludedScheduling = {\n    toDay?: number;\n};\n\nexport default abstract class NavigationAbstractClass extends StoredClassModel implements NavigationAbstractInterface {\n    constructor(categoryId: string, id: string, private defaultActivities: ActivityInterface[] = []) {\n        super(categoryId, id);\n    }\n    private get defaultActivitiesIds(): string[] {\n        return this.defaultActivities.map((activity) => activity.id);\n    }\n    private get activeActivityScheduling(): { [activityId: string]: ActiveScheduling } {\n        return this.getStorageProperty<{ [activityId: string]: ActiveScheduling }>(`activeActivityScheduling`) || {};\n    }\n    private get excludedActivitiesScheduling(): { [activityId: string]: ExcludedScheduling } {\n        return (\n            this.getStorageProperty<{ [activityId: string]: ExcludedScheduling }>(`excludedActivitiesScheduling`) || {}\n        );\n    }\n    private removeActivityScheduling(activityId: string) {\n        let activeActivityScheduling = this.activeActivityScheduling;\n        delete activeActivityScheduling[activityId];\n        this.setStorageProperty(`activeActivityScheduling`, activeActivityScheduling);\n        let excludedActivitiesScheduling = this.excludedActivitiesScheduling;\n        delete excludedActivitiesScheduling[activityId];\n        this.setStorageProperty(`excludedActivitiesScheduling`, excludedActivitiesScheduling);\n    }\n    private editActivityScheduling(activityId: string, scheduling: ActiveScheduling) {\n        this.removeActivityScheduling(activityId);\n        let activeActivityScheduling = this.activeActivityScheduling;\n        activeActivityScheduling[activityId] = scheduling;\n        this.setStorageProperty(`activeActivityScheduling`, activeActivityScheduling);\n    }\n    private editExcludedActivityScheduling(activityId: string, scheduling: ExcludedScheduling) {\n        this.removeActivityScheduling(activityId);\n        let excludedActivitiesScheduling = this.excludedActivitiesScheduling;\n        excludedActivitiesScheduling[activityId] = scheduling;\n        this.setStorageProperty(`excludedActivitiesScheduling`, excludedActivitiesScheduling);\n    }\n    private get additionalActivitiesIds(): string[] {\n        return this.getStorageProperty<string[]>(`additionalActivitiesIds`) || [];\n    }\n    private get excludedActivitiesIds(): string[] {\n        return this.getStorageProperty<string[]>(`excludedActivitiesIds`) || [];\n    }\n    addActivity(\n        activity: ActivityInterface,\n        options: {\n            /**\n             * the activity will be associated with this class only for the specified hours.\n             * If you set from 3 and to 5, the activity will be associated with this class only for hours 3, 4 and 5. soSo at 2 or 6 it will not be associated with this class.\n             */\n            hours?: {\n                from: number;\n                to: number;\n            };\n            /**\n             * the activity will be associated with this class from the specified day.\n             * If you set 3, the activity will be associated with this class from day 3. So at day 2 it will not be associated with this class.\n             */\n            fromDay?: number;\n            /**\n             * the activity will be associated with this class to the specified day.\n             * If you set 3, the activity will be associated with this class until day 3. So at day 4 it will not be associated with this class.\n             */\n            toDay?: number;\n        } = {}\n    ) {\n        const { hours, fromDay, toDay } = options;\n        let scheduling: ActiveScheduling = {};\n        if (hours) {\n            if (hours.from >= hours.to) {\n                throw new Error(`[NQTR] The from hour must be less than the to hour.`);\n            }\n            scheduling.fromHour = hours.from;\n        }\n        if (fromDay === 0) {\n            console.warn(`[NQTR] The from day must be greater than 0, so it will be ignored.`);\n        }\n        if (toDay === 0) {\n            console.warn(`[NQTR] The to day must be greater than 0, so it will be ignored.`);\n        }\n        if (fromDay && toDay && fromDay >= toDay) {\n            throw new Error(`[NQTR] The from day must be less than the to day.`);\n        }\n        if (fromDay) {\n            scheduling.fromDay = fromDay;\n        }\n        if (toDay) {\n            scheduling.toDay = toDay;\n        }\n\n        if (this.defaultActivitiesIds.includes(activity.id)) {\n            console.warn(`[NQTR] Activity with id ${activity.id} already exists, so it will be ignored.`);\n            return;\n        }\n        let additionalActivitiesIds = this.additionalActivitiesIds;\n        if (additionalActivitiesIds.includes(activity.id)) {\n            if (Object.keys(scheduling).length) {\n                this.editActivityScheduling(activity.id, scheduling);\n                return;\n            } else if (this.excludedActivitiesIds.includes(activity.id)) {\n                this.removeActivityScheduling(activity.id);\n                console.log(\n                    `[NQTR] Activity with id ${activity.id} was excluded, so it will be associated with this class again.`\n                );\n                return;\n            }\n            console.warn(`[NQTR] Activity with id ${activity.id} already exists, so it will be ignored.`);\n            return;\n        }\n        additionalActivitiesIds.push(activity.id);\n        this.setStorageProperty(`additionalActivitiesIds`, additionalActivitiesIds);\n        if (Object.keys(scheduling).length) {\n            this.editActivityScheduling(activity.id, scheduling);\n        }\n    }\n    removeActivity(\n        activity: ActivityInterface,\n        options: {\n            /**\n             * The activity will be excluded from this class only for the specified days.\n             * If to 3, the activity will be excluded from this class only for days 1, 2 and 3. So at day 4 it will be associated with this class.\n             */\n            toDay?: number;\n        } = {}\n    ) {\n        const { toDay } = options;\n        let scheduling: ExcludedScheduling = {};\n        if (toDay === 0) {\n            console.warn(`[NQTR] The to day must be greater than 0, so it will be ignored.`);\n        }\n        if (toDay) {\n            scheduling.toDay = toDay;\n        }\n\n        let additionalActivitiesIds = this.additionalActivitiesIds;\n        if (additionalActivitiesIds.includes(activity.id)) {\n            if (Object.keys(scheduling).length) {\n                this.editExcludedActivityScheduling(activity.id, scheduling);\n                return;\n            }\n            additionalActivitiesIds = additionalActivitiesIds.filter((id) => id !== activity.id);\n            this.setStorageProperty(`additionalActivitiesIds`, additionalActivitiesIds);\n        } else if (this.defaultActivitiesIds.includes(activity.id)) {\n            if (Object.keys(scheduling).length) {\n                this.editExcludedActivityScheduling(activity.id, scheduling);\n                return;\n            }\n            let excludedActivitiesIds = this.excludedActivitiesIds;\n            excludedActivitiesIds.push(activity.id);\n            this.setStorageProperty(`excludedActivitiesIds`, excludedActivitiesIds);\n        } else {\n            console.warn(`[NQTR] Activity with id ${activity.id} not found, so it will be ignored.`);\n        }\n    }\n    clearExpiredActivities() {\n        let activeActivityScheduling = this.activeActivityScheduling;\n        let excludedActivitiesScheduling = this.excludedActivitiesScheduling;\n        let additionalActivitiesIds = this.additionalActivitiesIds;\n        let excludedActivitiesIds = this.excludedActivitiesIds;\n\n        additionalActivitiesIds.forEach((activityId) => {\n            if (activityId in activeActivityScheduling) {\n                let { toDay } = activeActivityScheduling[activityId];\n                if (toDay && toDay < timeTracker.currentDay) {\n                    this.removeActivityScheduling(activityId);\n                    additionalActivitiesIds = additionalActivitiesIds.filter((id) => id !== activityId);\n                }\n            }\n        });\n        excludedActivitiesIds.forEach((activityId) => {\n            if (activityId in excludedActivitiesScheduling) {\n                let { toDay } = excludedActivitiesScheduling[activityId];\n                if (toDay && toDay < timeTracker.currentDay) {\n                    this.removeActivityScheduling(activityId);\n                    excludedActivitiesIds = excludedActivitiesIds.filter((id) => id !== activityId);\n                }\n            }\n        });\n    }\n\n    get activities(): ActivityInterface[] {\n        let res: ActivityInterface[] = [];\n        Object.entries(this.activeActivityScheduling).forEach(([activityId, scheduling]) => {\n            let activity = getActivityById(activityId);\n            const {\n                fromDay = activity?.fromDay,\n                fromHour = activity?.fromHour,\n                toDay = activity?.toDay,\n                toHour = activity?.toHour,\n            } = scheduling;\n            if (\n                activity &&\n                timeTracker.nowIsBetween(fromHour, toHour) &&\n                !(fromDay && fromDay > timeTracker.currentDay) &&\n                !(toDay && toDay < timeTracker.currentDay)\n            ) {\n                res.push(activity);\n            }\n        });\n        Object.entries(this.excludedActivitiesScheduling).forEach(([activityId, scheduling]) => {\n            let activity = getActivityById(activityId);\n            if (activity && activity.isActive && !(scheduling.toDay && scheduling.toDay >= timeTracker.currentDay)) {\n                res.push(activity);\n            }\n        });\n        this.defaultActivities.forEach((activity) => {\n            if (activity.isActive && !res.find((a) => a.id === activity.id)) {\n                res.push(activity);\n            }\n        });\n        return res;\n    }\n}\n","import { ActivityInterface, MapInterface, RoomInterface } from \"../../interface\";\nimport { LocationInternalInterface } from \"../../interface/navigation/LocationInterface\";\nimport { navigator } from \"../../managers\";\nimport NavigationAbstractClass from \"./NavigationAbstractClass\";\n\nconst LOCATION_CATEGORY = \"__nqtr-location__\";\nexport default class LocationStoredClass extends NavigationAbstractClass implements LocationInternalInterface {\n\tconstructor(\n\t\tid: string,\n\t\t/**\n\t\t * The map where the location is.\n\t\t */\n\t\tprivate readonly _map: MapInterface,\n\t\tactivities: ActivityInterface[] = []\n\t) {\n\t\tsuper(LOCATION_CATEGORY, id, activities);\n\t}\n\n\tget map(): MapInterface {\n\t\treturn this._map;\n\t}\n\n\tget rooms(): RoomInterface[] {\n\t\treturn navigator.rooms.filter((room) => room.location.id === this.id);\n\t}\n}\n","import { getFlag } from \"@drincs/pixi-vn\";\nimport { LocationBaseModelProps, MapInterface } from \"../../interface\";\nimport { LocationInternalInterface } from \"../../interface/navigation/LocationInterface\";\nimport LocationStoredClass from \"./LocationStoredClass\";\n\n/**\n * The base model of a location. I suggest you extend this class to create your own location model.\n * @example\n * ```typescript\n * export const mcHome = new LocationBaseModel('mc_home', mainMap, {\n *     name: 'MC Home',\n *     icon: \"https://icon.jpg\",\n * });\n * ```\n */\nexport default class LocationBaseModel extends LocationStoredClass implements LocationInternalInterface {\n\t/**\n\t * @param id The id of the location, it must be unique.\n\t * @param map The map where the location is.\n\t * @param props The properties of the location.\n\t */\n\tconstructor(id: string, map: MapInterface, props: LocationBaseModelProps = {}) {\n\t\tsuper(id, map, props.activities || []);\n\t\tthis.defaultName = props.name || \"\";\n\t\tthis.defaultDisabled = props.disabled || false;\n\t\tthis.defaultHidden = props.hidden || false;\n\t\tthis._icon = props.icon;\n\t}\n\n\tprivate defaultName: string;\n\t/**\n\t * The name of the location.\n\t * If you set undefined, it will return the initial value of name.\n\t */\n\tget name(): string {\n\t\treturn this.getStorageProperty<string>(\"name\") || this.defaultName;\n\t}\n\tset name(value: string | undefined) {\n\t\tthis.setStorageProperty(\"name\", value);\n\t}\n\n\tprivate defaultDisabled: boolean | string;\n\t/**\n\t * Whether is disabled. If it is a string, it is a Pixi'VN flag name.\n\t */\n\tget disabled(): boolean {\n\t\tlet value = this.getStorageProperty<boolean>(\"disabled\") || this.defaultDisabled;\n\t\tif (typeof value === \"string\") {\n\t\t\treturn getFlag(value);\n\t\t}\n\t\treturn value;\n\t}\n\tset disabled(value: boolean | string) {\n\t\tthis.setStorageProperty(\"disabled\", value);\n\t}\n\n\tprivate defaultHidden: boolean | string;\n\t/**\n\t * Whether is hidden. If it is a string, it is a Pixi'VN flag name.\n\t */\n\tget hidden(): boolean {\n\t\tlet value = this.getStorageProperty<boolean>(\"hidden\") || this.defaultHidden;\n\t\tif (typeof value === \"string\") {\n\t\t\treturn getFlag(value);\n\t\t}\n\t\treturn value;\n\t}\n\tset hidden(value: boolean | string) {\n\t\tthis.setStorageProperty(\"hidden\", value);\n\t}\n\n\tprivate _icon?: string;\n\t/**\n\t * The icon of the location.\n\t */\n\tget icon(): string | undefined {\n\t\treturn this._icon;\n\t}\n}\n"]}