Source: constants.js

/**
 * @namespace CONSTANTS
 */
/**
 * @typedef {Object} CONST
 * @property {MODE} MODE
 * @property {Object} AUDIO
 * @property {CONNECTION_STATUS} CONNECTION_STATUS
 * @property {EVENTS} EVENTS
 * @property {WEBGL} WEBGL
 * @property {Object} GAME_OPTIONS
 * @property {LIBRARY} LIBRARY
 * @property {OPTIMIZATION} OPTIMIZATION
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} MODE
 * @property {String} DEBUG
 * @property {String} PRODUCTION
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} CONNECTION_STATUS
 * @property {String} DISCONNECTED
 * @property {String} CONNECTED
 * @property {String} CONNECTION_LOST
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} EVENTS
 * @property {SYSTEM} SYSTEM
 * @property {WEBSOCKET} WEBSOCKET
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} SYSTEM
 * @property {String} START_PAGE
 * @property {String} STOP_PAGE
 * @property {RENDER} RENDER
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} RENDER
 * @property {String} START - Start render loop
 * @property {String} END - End render loop
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} WEBSOCKET
 * @property {SERVER_CLIENT} SERVER_CLIENT
 * @property {CLIENT_SERVER} CLIENT_SERVER
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} SERVER_CLIENT
 * @property {String} CONNECTION_STATUS_CHANGED
 * @property {String} ROOMS_INFO
 * @property {String} CREATED
 * @property {String} JOINED
 * @property {String} FULL
 * @property {String} DISCONNECTED
 * @property {String} SERVER_MESSAGE
 * @property {String} RESTARTED
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} CLIENT_SERVER
 * @property {String} ROOMS_INFO_REQUEST
 * @property {String} CREATE_OR_JOIN
 * @property {String} RESTART_REQUEST
 * @property {String} CLIENT_MESSAGE
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} WEBGL
 * @property {DRAW_PROGRAMS} DRAW_PROGRAMS
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} DRAW_PROGRAMS
 * @property {String} PRIMITIVES
 * @property {String} PRIMITIVES_M
 * @property {String} IMAGES_M
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} OPTIMIZATION
 * @property {CYCLE_TIME_CALC} CYCLE_TIME_CALC
 * @property {NATIVE_JS} NATIVE_JS
 * @property {WEB_ASSEMBLY} WEB_ASSEMBLY
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} CYCLE_TIME_CALC
 * @property {String} AVERAGES
 * @property {String} CURRENT
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} NATIVE_JS
 * @property {String} NOT_OPTIMIZED
 * @property {String} OPTIMIZED
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} WEB_ASSEMBLY
 * @property {String} ASSEMBLY_SCRIPT
 * @property {String} NATIVE_WAT
 * @memberof CONSTANTS
 */
/**
 * @typedef {Object} LIBRARY
 * @property {String} WEBGL
 * @memberof CONSTANTS
 */
/**
 * Constants variables
 * @type {CONST}
 **/
export const CONST = {
    MODE: {
        DEBUG: "DEBUG",
        PRODUCTION: "PRODUCTION"
    },
    AUDIO: {},
    CONNECTION_STATUS: {
        DISCONNECTED: "disconnected",
        CONNECTED: "connected",
        CONNECTION_LOST: "connection lost"
    },
    EVENTS: {
        SYSTEM: {
            START_PAGE:"START_PAGE",
            STOP_PAGE: "STOP_PAGE",
            RENDER: {
                START: "start",
                END: "end"
            }
        },
        WEBSOCKET: {
            SERVER_CLIENT: {
                CONNECTION_STATUS_CHANGED: "CONNECTION_STATUS_CHANGED",
                ROOMS_INFO: "roomsInfo",
                CREATED: "created",
                JOINED: "joined",
                FULL: "full",
                DISCONNECTED: "disconnected",
                SERVER_MESSAGE: "message",
                RESTARTED: "restarted",
            },
            CLIENT_SERVER: {
                ROOMS_INFO_REQUEST: "gatherRoomsInfo",
                CREATE_OR_JOIN: "create or join",
                RESTART_REQUEST: "restart",
                CLIENT_MESSAGE: "message"
            }
        }
    },
    WEBGL: {
        DRAW_PROGRAMS: {
            PRIMITIVES: "drawPrimitives",
            PRIMITIVES_M: "drawPrimitivesMerge",
            IMAGES_M: "drawImagesMerge"
        }
    },
    GAME_OPTIONS: {},
    LIBRARY: {
        WEBGL: "webgl"
    },
    OPTIMIZATION: {
        CYCLE_TIME_CALC: {
            AVERAGES: "AVERAGES",
            CURRENT: "CURRENT"
        },
        NATIVE_JS: {
            NOT_OPTIMIZED: "NOT_OPTIMIZED",
            OPTIMIZED: "OPTIMIZED"
        },
        WEB_ASSEMBLY: {
            ASSEMBLY_SCRIPT: "ASSEMBLY_SCRIPT",
            NATIVE_WAT: "WASM"
        }
    }
};
/** @enum {string} */
export const DRAW_TYPE = {
    RECTANGLE: "rect",
    CONUS: "conus",
    CIRCLE: "circle",
    POLYGON: "polygon",
    LINE: "line",
    TEXT: "text",
    IMAGE: "image"
};

export const ERROR_CODES = {
    CREATE_INSTANCE_ERROR: "CREATE_INSTANCE_ERROR",
    STAGE_NOT_EXIST: "STAGE_NOT_EXIST",
    ELEMENT_NOT_EXIST: "ELEMENT_NOT_EXIST",
    FILE_NOT_EXIST: "FILE_NOT_EXIST",
    CANT_GET_THE_IMAGE: "CANT_GET_THE_IMAGE",
    UNEXPECTED_INPUT_PARAMS: "UNEXPECTED_INPUT_PARAMS",
    UNHANDLED_EXCEPTION: "UNHANDLED_EXCEPTION",
    CANVAS_KEY_NOT_SPECIFIED: "CANVAS_KEY_NOT_SPECIFIED",
    CANVAS_WITH_KEY_NOT_EXIST: "CANVAS_WITH_KEY_NOT_EXIST",
    WRONG_TYPE_ERROR: "WRONG_TYPE_ERROR",
    UNEXPECTED_WS_MESSAGE: "UNEXPECTED_WS_MESSAGE",
    UNEXPECTED_PLAYER_ID: "UNEXPECTED_PLAYER_ID",
    UNEXPECTED_BULLET_ID: "UNEXPECTED_BULLET_ID",
    UNEXPECTED_EVENT_NAME: "UNEXPECTED_EVENT_NAME",
    WEBGL_ERROR: "WEBGL_ERROR",
    DRAW_PREPARE_ERROR: "DRAW_PREPARE_ERROR",
    ANOTHER_STAGE_ACTIVE: "ANOTHER_STAGE_ACTIVE",
    UNEXPECTED_TILE_ID: "UNEXPECTED_TILE_ID",
    UNEXPECTED_TOUCH_AREA: "UNEXPECTED TOUCH AREA",
    UNEXPECTED_METHOD_TYPE: "UNEXPECTED METHOD TYPE"
};

export const WARNING_CODES =  {
    MULTIPLE_IMAGE_TILESET: "MULTIPLE_IMAGE_TILESET",
    FILE_LOADING_ISSUE: "FILE_LOADING_ISSUE",
    ASSETS_NOT_READY: "ASSETS_NOT_READY",
    NOT_FOUND: "NOT_FOUND",
    NOT_TESTED: "NOT_TESTED",
    WORLD_DIMENSIONS_NOT_SET: "WORLD_DIMENSIONS_NOT_SET",
    INCORRECT_RENDER_TYPE: "INCORRECT_RENDER_TYPE",
    UNHANDLED_DRAW_ISSUE: "UNHANDLED_DRAW_ISSUE",
    UNEXPECTED_WORLD_SIZE: "UNEXPECTED_WORLD_SIZE",
    AUDIO_ALREADY_REGISTERED: "AUDIO_ALREADY_REGISTERED",
    AUDIO_NOT_REGISTERED: "AUDIO_NOT_REGISTERED",
    AUDIO_NOT_LOADED: "AUDIO_NOT_LOADED",
    UNKNOWN_DRAW_OBJECT: "UNKNOWN_DRAW_OBJECT",
    METHOD_NOT_IMPLEMENTED: "METHOD_NOT_IMPLEMENTED",
    POLYGON_VERTICES_NOT_CORRECT: "POLYGON_VERTICES_NOT_CORRECT",
    MODULE_ALREADY_INSTALLED: "MODULE_ALREADY_INSTALLED",
    DEPRECATED_PARAMETER: "DEPRECATED_PARAMETER",
    NEW_BEHAVIOR_INTRODUCED: "NEW_BEHAVIOR_INTRODUCED",
    TEXTURE_IMAGE_TEMP_OVERFLOW: "TEXTURE_IMAGE_TEMP_OVERFLOW",
    TRIANGULATE_ISSUE: "TRIANGULATE_ISSUE"
};