UNPKG

@colyseus/core

Version:

Multiplayer Framework for Node.js.

80 lines (79 loc) 2.33 kB
var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var RoomData_exports = {}; __export(RoomData_exports, { RoomCache: () => RoomCache }); module.exports = __toCommonJS(RoomData_exports); var import_Utils = require("../../utils/Utils"); class RoomCache { constructor(initialValues, rooms) { this.clients = 0; this.locked = false; this.private = false; this.maxClients = Infinity; this.unlisted = false; this.createdAt = new Date(); for (const field in initialValues) { if (initialValues.hasOwnProperty(field)) { this[field] = initialValues[field]; } } Object.defineProperty(this, "$rooms", { value: rooms, enumerable: false, writable: true }); } save() { if (this.$rooms.indexOf(this) === -1) { this.$rooms.push(this); } } updateOne(operations) { if (operations.$set) { for (const field in operations.$set) { if (operations.$set.hasOwnProperty(field)) { this[field] = operations.$set[field]; } } } if (operations.$inc) { for (const field in operations.$inc) { if (operations.$inc.hasOwnProperty(field)) { this[field] += operations.$inc[field]; } } } } remove() { if (!this.$rooms) { return; } const roomIndex = this.$rooms.indexOf(this); if (roomIndex === -1) { return; } (0, import_Utils.spliceOne)(this.$rooms, roomIndex); this.$rooms = null; } } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { RoomCache });