UNPKG

@rtsdk/lance-topia

Version:

A Node.js based real-time multiplayer game server

93 lines (81 loc) 2.41 kB
/** * The BaseTypes class defines the base types used in Lance. * These are the types which can be used to define an object's netscheme attributes, * which can be serialized by lance. * @example * static get netScheme() { * return { * strength: { type: BaseTypes.TYPES.FLOAT32 }, * shield: { type: BaseTypes.TYPES.INT8 }, * name: { type: BaseTypes.TYPES.STRING }, * backpack: { type: BaseTypes.TYPES.CLASSINSTANCE }, * coins: { * type: BaseTypes.TYPES.LIST, * itemType: BaseTypes.TYPES.UINT8 * } * }; * } */ class BaseTypes {} /** * @type {object} * @property {string} FLOAT32 Seriablizable float * @property {string} INT32 Seriablizable 32-bit integer * @property {string} INT16 Seriablizable 16-bit integer * @property {string} INT8 Seriablizable 8-bit integer * @property {string} UINT8 Seriablizable unsigned 8-bit integer * @property {string} STRING Seriablizable string * @property {string} CLASSINSTANCE Seriablizable class. Make sure you register all the classes included in this way. * @property {string} LIST Seriablizable list. In the netScheme definition, if an attribute is defined as a list, the itemType should also be defined. */ BaseTypes.TYPES = { /** * Seriablizable float * @alias TYPES.FLOAT32 * @memberof! BaseTypes# */ FLOAT32: 'FLOAT32', /** * Seriablizable 32-bit int * @alias TYPES.INT32 * @memberof! BaseTypes# */ INT32: 'INT32', /** * Seriablizable 16-bit int * @alias TYPES.INT16 * @memberof! BaseTypes# */ INT16: 'INT16', /** * Seriablizable 8-bit int * @alias TYPES.INT8 * @memberof! BaseTypes# */ INT8: 'INT8', /** * Seriablizable unsigned 8-bit int * @alias TYPES.UINT8 * @memberof! BaseTypes# */ UINT8: 'UINT8', /** * Seriablizable string * @alias TYPES.STRING * @memberof! BaseTypes# */ STRING: 'STRING', /** * Seriablizable class. Make sure you registered the classes included in this way. * @alias TYPES.CLASSINSTANCE * @memberof! BaseTypes# */ CLASSINSTANCE: 'CLASSINSTANCE', /** * Seriablizable list. * @alias TYPES.LIST * @memberof! BaseTypes# */ LIST: 'LIST' }; export default BaseTypes;