UNPKG

@screeps/engine

Version:

This is a module for Screeps standalone server. See [main repository](https://github.com/screeps/screeps) for more info.

83 lines (75 loc) 2.63 kB
'use strict'; var _ = require('lodash'), messages = {}, commandResults = {}, visual = {}; exports.makeConsole = function (id, sandboxedFunctionWrapper) { messages[id] = []; commandResults[id] = []; visual[id] = {}; return Object.create(null, { log: { writable: true, configurable: true, value: sandboxedFunctionWrapper(function () { if (typeof self != 'undefined' && self.navigator.userAgent) { self['console']['log'].apply(console, arguments); } messages[id].push(_.map(arguments, function (i) { if (i && i.toString) return i.toString(); if (typeof i === 'undefined') return 'undefined'; return JSON.stringify(i); }).join(' ')); }) }, commandResult: { value: sandboxedFunctionWrapper(function (message) { if (typeof self != 'undefined' && self.navigator.userAgent) { self['console']['log'].call(console, message); } commandResults[id].push(String(message)); }) }, addVisual: { value: sandboxedFunctionWrapper(function (roomName, data) { roomName = roomName || ""; visual[id][roomName] = visual[id][roomName] || ""; if (visual[id][roomName].length > 500 * 1024) { throw new Error('RoomVisual size in room ' + roomName + ' has exceeded 500 KB limit'); } visual[id][roomName] += JSON.stringify(data) + "\n"; }) }, getVisualSize: { value: sandboxedFunctionWrapper(function (roomName) { roomName = roomName || ""; if (!visual[id][roomName]) { return 0; } return visual[id][roomName].length; }) }, clearVisual: { value: sandboxedFunctionWrapper(function (roomName) { roomName = roomName || ""; visual[id][roomName] = ""; }) } }); }; exports.getMessages = function (id) { var result = messages[id]; messages[id] = []; return result; }; exports.getCommandResults = function (id) { var result = commandResults[id]; commandResults[id] = []; return result; }; exports.getVisual = function (id) { var result = visual[id]; visual[id] = []; return result; }; //# sourceMappingURL=../sourcemaps/game/console.js.map