diff --git a/build/api-types/host/index.d.ts b/build/api-types/host/index.d.ts index f335d546..8e207738 100644 --- a/build/api-types/host/index.d.ts +++ b/build/api-types/host/index.d.ts @@ -1,10 +1,11 @@ - /// - import Chk from "bw-chk" -import CameraControls from "camera-controls" -import { Vector2, Color, Vector3, DataTexture, PerspectiveCamera, OrthographicCamera, Texture, Matrix4, Vector4, CompressedTexture, BufferAttribute, DataArrayTexture, CubeTexture, Object3D, Mesh, BufferGeometry, MeshBasicMaterial, SpriteMaterialParameters, Shader, MeshStandardMaterial, SkinnedMesh, AnimationClip, AudioContext, Quaternion, AnimationMixer, Box3, Sphere, Raycaster, Intersection, Group, Scene, Camera } from "three"; + + import CameraControls from "camera-controls" +import { CommandsStream, Replay } from "process-replay"; +import { DataTexture, PerspectiveCamera, OrthographicCamera, Texture, Matrix4, Vector4, CompressedTexture, BufferAttribute, DataArrayTexture, CubeTexture, Object3D, Mesh, BufferGeometry, MeshBasicMaterial, SpriteMaterialParameters, Shader, MeshStandardMaterial, SkinnedMesh, AnimationClip, AudioListener, Audio, AudioContext, Quaternion, AnimationMixer, Box3, Sphere, Raycaster, Intersection, Group, Scene, Camera, WebXRManager, XRTargetRaySpace } from "three"; import { Effect } from "postprocessing"; import { Janitor } from "three-janitor"; +import { XRControllerModelFactory } from "three/examples/jsm/webxr/XRControllerModelFactory.js"; @@ -46,10 +47,6 @@ interface NativePlugin { * Called when a plugin has it's configuration changed by the user */ onConfigChanged?(oldConfig: Record): void; - /** - * CaLLed when a plugin must release its resources - */ - dispose?(): void; /** * Called when an React component sends a message to this window */ @@ -66,6 +63,10 @@ interface NativePlugin { * Called on a game frame */ onFrame?(frame: number, commands?: any[]): void; + /** + * Called before render, every render tick + */ + onTick?(delta: number, elapsed: number): void; /** * When a game has been loaded and the game loop is about to begin */ @@ -78,14 +79,6 @@ interface NativePlugin { * When the scene objects have been reset due to replay forwarding or rewinding. */ onFrameReset?(): void; - /** - * When a scene is entered and nearly initialized. - */ - onEnterScene?(prevData: any): Promise; - /** - * When a scene has exited. Dispose resources here. - */ - onExitScene?(currentData: any): any; } //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/fields.ts @@ -106,7 +99,7 @@ interface FieldDefinition { options?: string[] | Record; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/game-time-api.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/game-time-api.ts /** * @public @@ -123,15 +116,15 @@ export interface GameTimeApi extends OverlayComposerApi, InputsComposerApi, Scen simpleMessage(message: string): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/overlay-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/overlay-composer.ts /** @internal */ -declare type OverlayComposerApi = OverlayComposer["api"]; +type OverlayComposerApi = OverlayComposer["api"]; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/overlay-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/overlay-composer.ts /** @internal */ -declare type OverlayComposer = { +type OverlayComposer = { api: { isMouseInsideMinimap: () => boolean; getMouseMinimapUV: () => Vector2 | undefined; @@ -142,17 +135,17 @@ declare type OverlayComposer = { onFrame(): void; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/input-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/input-composer.ts /** @internal */ -declare type InputsComposerApi = InputsComposer["api"]; +type InputsComposerApi = InputsComposer["api"]; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/input-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/input-composer.ts /** @internal */ -declare type InputsComposer = ReturnType; +type InputsComposer = ReturnType; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/input-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/input-composer.ts /** * Hanndles user input including unit selection events ( which is then sent through the message bus for other handlers to use ). @@ -178,7 +171,7 @@ declare const createInputComposer: (world: World, { images, scene, imageQuadrant }; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/world.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/world.ts /** @internal */ interface World { @@ -194,7 +187,7 @@ interface World { reset(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/players.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/players.ts /** @internal */ declare class Players extends Array { @@ -222,12 +215,12 @@ interface Player { startLocation?: Vector3; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/players.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/players.ts /** @internal */ -declare type PlayerName = Pick; +type PlayerName = Pick; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/players.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/players.ts /** * @public @@ -239,1149 +232,7 @@ export interface BasePlayer { race: string; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/process-replay/commands/commands-stream.ts - -/** - * A stream of game commands taken from the replay command buffer. - */ -/** @internal */ -declare class CommandsStream { - #private; - constructor(buffer?: Buffer, stormPlayerToGamePlayer?: number[]); - /** - * Creates a copy of this CommandsStream. - * @returns {CommandsStream} - */ - copy(): CommandsStream; - /** - * Generates commands from the buffer. - */ - generate(): Generator; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/fogofwar/fog-of-war.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/fogofwar/fog-of-war.ts /** @internal */ declare class FogOfWar { @@ -1399,7 +250,7 @@ declare class FogOfWar { isSomewhatExplored(x: number, y: number): boolean; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/fogofwar/fog-of-war-effect.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/fogofwar/fog-of-war-effect.ts /** @internal */ declare class FogOfWarEffect extends Effect { @@ -1421,7 +272,7 @@ declare class FogOfWarEffect extends Effect { set fogUvTransform(value: Vector4); } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/openbw/openbw.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/openbw.ts /** * @public @@ -1519,7 +370,7 @@ interface EmscriptenHeap { //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/emscripten.ts /** @internal */ -declare type SetGetType = "i8" | "i16" | "i32" | "i64" | "float" | "double" | "i8*" | "i16*" | "i32*" | "i64*" | "float*" | "double*" | "*"; +type SetGetType = "i8" | "i16" | "i32" | "i64" | "float" | "double" | "i8*" | "i16*" | "i32*" | "i64*" | "float*" | "double*" | "*"; //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/structs/sound-struct.ts /** @internal */ @@ -1535,7 +386,7 @@ interface SoundStruct { //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/openbw-wasm.ts /** @internal */ -declare type Callbacks = { +type Callbacks = { js_fatal_error?: (ptr: number) => string; js_pre_main_loop?: () => void; js_post_main_loop?: () => void; @@ -1546,7 +397,7 @@ declare type Callbacks = { js_on_replay_frame?: () => void; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/openbw/openbw.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/openbw.ts /** * @public @@ -1634,7 +485,7 @@ export declare class OpenBW implements OpenBW { getIScriptProgramDataAddress(): number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/openbw/openbw-filelist.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/openbw-filelist.ts /** @internal */ declare class OpenBWFileList { @@ -1645,11 +496,10 @@ declare class OpenBWFileList { normalize(path: string): string; constructor(openBw: OpenBWWasm); loadBuffers(readFile: (filename: string) => Promise): Promise; - dumpFileList(): Promise; clear(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/openbw/openbw.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/openbw.ts /** * @public @@ -1664,17 +514,17 @@ declare class OpenBWIterators { constructor(openbw: OpenBW); } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/units-buffer-view.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/units-buffer-view.ts /** @internal */ declare function destroyedUnitsIterator(openBW: OpenBW): Generator; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/units-buffer-view.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/units-buffer-view.ts /** @internal */ declare function killedUnitIterator(openBW: OpenBW): Generator; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/units-buffer-view.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/units-buffer-view.ts /** @internal */ declare class UnitsBufferViewIterator { @@ -1683,7 +533,7 @@ declare class UnitsBufferViewIterator { [Symbol.iterator](): Generator; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/units-buffer-view.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/units-buffer-view.ts /** * Maps to openbw unit_t @@ -1721,7 +571,7 @@ declare class UnitsBufferView extends FlingyBufferView implements UnitStruct { copy(bufferView?: UnitsBufferView): UnitsBufferView; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/flingy-buffer-view.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/flingy-buffer-view.ts /** @internal */ declare class FlingyBufferView extends ThingyBufferView implements FlingyStruct { @@ -1737,9 +587,10 @@ declare class FlingyBufferView extends ThingyBufferView implements FlingyStruct get x(): number; get y(): number; get currentSpeed(): number; + get currentVelocityDirection(): number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/thingy-buffer-view.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/thingy-buffer-view.ts /** * Maps to openbw thingy_t @@ -1769,7 +620,7 @@ interface ThingyStruct { spriteAddr: number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/scene-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/scene-composer.ts /** @internal */ declare const createSceneComposer: (world: World, assets: Assets) => Promise<{ @@ -1810,32 +661,29 @@ declare const createSceneComposer: (world: World, assets: Assets) => Promise<{ scene: BaseScene; followedUnits: IterableSet; startLocations: Vector3[]; - initialStartLocation: Vector3 | undefined; + initialStartLocation: Vector3; getFollowedUnitsCenterPosition: () => Vector3 | undefined; selectedUnits: IterableSet; createUnitQuadTree: (size: number) => SimpleQuadtree; }; }>; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/assets.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/image/assets.ts /** * @public * Most game assets excepting sprites / images. */ -export declare type Assets = Awaited> & { +export type Assets = Awaited> & { envMap?: Texture; bwDat: BwDAT; wireframeIcons?: Blob[]; -} & Partial>>; +}; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/assets.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/image/assets.ts /** @internal */ -declare const initializeAssets: (directories: { - starcraft: string; - assets: string; -}) => Promise<{ +declare const initializeAssets: () => Promise<{ selectionCircles: { isHD: boolean; isHD2: boolean; @@ -1871,51 +719,40 @@ declare const initializeAssets: (directories: { clock: import("three").CompressedTexture; square: import("three").CompressedTexture; }; - loadImageAtlas(imageId: number, bwDat: BwDAT): { - isHD: boolean; - isHD2: boolean; - diffuse: import("three").CompressedTexture; - imageIndex: number; - frames: { - x: number; - y: number; - w: number; - h: number; - xoff: number; - yoff: number; - }[]; - uvPos: { - pos: import("three").BufferAttribute; - uv: import("three").BufferAttribute; - flippedPos: import("three").BufferAttribute; - flippedUv: import("three").BufferAttribute; - }[]; - uvPosDataTex: import("three").DataArrayTexture; - textureWidth: number; - textureHeight: number; - spriteWidth: number; - spriteHeight: number; - unitTileScale: UnitTileScale; - teammask: import("three").CompressedTexture | undefined; - hdLayers: { - emissive: import("three").CompressedTexture | undefined; - }; - dispose(): void; - } | undefined; - getImageAtlas(imageId: number): AnimAtlas | undefined; - hasImageAtlas(imageId: number): boolean; - loadImageAtlasAsync(imageId: number, bwDat: BwDAT): Promise; + loader: ImageLoaderManager; skyBox: CubeTexture; refId: (id: number) => number; resetImagesCache: () => void; arrowIconsGPU: LegacyGRP; hoverIconsGPU: LegacyGRP; dragIconsGPU: LegacyGRP; - openCascStorage: () => Promise; - closeCascStorage: () => void; - readCascFile: (filePath: string) => Promise; - remaining: number; - atlases: { + openCascStorage: (url?: string) => Promise; + closeCascStorage: () => Promise; + readCascFile: (filepath: string) => Promise; +}>; + +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/image.ts + +/** @internal */ +declare enum UnitTileScale { + SD = 1, + HD2 = 2, + HD = 4 +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/image-loader-manager.ts + +/** @internal */ +declare class ImageLoaderManager { + #private; + maxDownloads: number; + currentDownloads: number; + imageLoaders: Map; + constructor(refId: (id: number) => number); + exists(imageId: number): boolean; + getImage(imageId: number, useRefId?: boolean): AnimAtlas | null; + loadImage(imageId: number, priority?: number): Promise | undefined; + loadImageImmediate(imageId: number): Promise<{ isHD: boolean; isHD2: boolean; diffuse: import("three").CompressedTexture; @@ -1945,18 +782,172 @@ declare const initializeAssets: (directories: { emissive: import("three").CompressedTexture | undefined; }; dispose(): void; + } | null>; + processQueue(): Promise; + dispose(): void; +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/image-loader.ts + +/** @internal */ +declare class ImageLoader { + atlas: AnimAtlas | null; + loader: ResourceLoader; + imageId: number; + priority: number; + status: ResourceLoaderStatus; + onLoaded: () => void; + constructor(url: string, imageId: number, cache: IndexedDBCache); +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/atlas/load-anim-atlas.ts + +/** @internal */ +type AnimAtlas = ReturnType; + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/atlas/load-anim-atlas.ts + +/** @internal */ +declare const loadAnimAtlas: (buf: Buffer, imageIndex: number, scale: Exclude) => { + isHD: boolean; + isHD2: boolean; + diffuse: import("three").CompressedTexture; + imageIndex: number; + frames: { + x: number; + y: number; + w: number; + h: number; + xoff: number; + yoff: number; }[]; -}>; + uvPos: { + pos: BufferAttribute; + uv: BufferAttribute; + flippedPos: BufferAttribute; + flippedUv: BufferAttribute; + }[]; + uvPosDataTex: DataArrayTexture; + textureWidth: number; + textureHeight: number; + spriteWidth: number; + spriteHeight: number; + unitTileScale: UnitTileScale; + teammask: import("three").CompressedTexture | undefined; + hdLayers: { + emissive: import("three").CompressedTexture | undefined; + }; + dispose(): void; +}; -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/image.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/resource-loader.ts /** @internal */ -declare enum UnitTileScale { - SD = 1, - HD2 = 2, - HD = 4 +declare class ResourceLoader { + #private; + url: string; + key: string; + buffer: Buffer | null; + onStatusChange: (status: ResourceLoaderStatus) => void; + protected cache?: IndexedDBCache; + constructor(url: string, key?: string, cache?: IndexedDBCache); + get status(): ResourceLoaderStatus; + set status(status: ResourceLoaderStatus); + fetch(): Promise; + cancel(): void; +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/resource-loader-status.ts +/** @internal */ +type ResourceLoaderStatus = "loading" | "loaded" | "error" | "idle" | "cancelled"; + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/indexed-db-cache.ts + +/** @internal */ +declare class IndexedDBCache { + #private; + constructor(storeName: CacheDBStoreName); + get enabled(): boolean; + set enabled(value: boolean); + clear(): Promise; + deleteValue(id: string): Promise; + setValue(value: SCAssetData): Promise; + getValue(id: string): Promise; +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/indexed-db-cache.ts + +/** @internal */ +type CacheDBStoreName = "general-casc-cache" | "image-cache"; + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/indexed-db-cache.ts +/// +/** @internal */ +interface SCAssetData { + id: string; + buffer: ArrayBuffer; +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/atlas/legacy-grp.ts + +/** @internal */ +declare class LegacyGRP { + width: number; + height: number; + grpWidth: number; + grpHeight: number; + texture: DataTexture; + teamcolor?: DataTexture; + frames: { + x: number; + y: number; + grpX: number; + grpY: number; + w: number; + h: number; + }[]; + constructor(); + load({ readGrp, imageDef, palettes, }: { + readGrp: () => Promise; + imageDef: ImageDAT; + palettes: Palettes; + }, stride?: number): Promise; + dispose(): void; } +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/images-dat.ts + +/** + * @public + */ +export interface ImageDAT { + index: number; + grpFile: string; + name: string; + grp: number; + gfxTurns: number; + clickable: number; + useFullIscript: number; + drawIfCloaked: number; + drawFunction: number; + remapping: number; + iscript: number; + shieldOverlay: number; + attackOverlay: number; + damageOverlay: number; + specialOverlay: number; + landingDustOverlay: number; + liftOffDustOverlay: number; +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/atlas/legacy-grp.ts + +/** @internal */ +type Palettes = Uint8Array[] & { + dark?: Buffer; + light?: Buffer; +}; + //C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/bw-dat.ts /** @@ -1997,12 +988,12 @@ interface IScriptProgram { //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/iscript.ts /** @internal */ -declare type IScriptAnimation = IScriptOperations[]; +type IScriptAnimation = IScriptOperations[]; //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/iscript.ts /** @internal */ -declare type IScriptOperations = [string, number[]]; +type IScriptOperations = [string, number[]]; //C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/sounds-dat.ts @@ -2035,66 +1026,6 @@ export interface TechDataDAT { researched: number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/common/enums/upgrades.ts -/** @internal */ -declare enum upgrades { - terranInfantryArmor = 0, - terranVehiclePlating = 1, - terranShipPlating = 2, - zergCarapace = 3, - zergFlyerCarapace = 4, - protossArmor = 5, - protossPlating = 6, - terranInfantryWeapons = 7, - terranVehicleWeapons = 8, - terranShipWeapons = 9, - zergMeleeAttacks = 10, - zergMissileAttacks = 11, - zergFlyerAttacks = 12, - protossGroundWeapons = 13, - protossAirWeapons = 14, - protossPlasmaShields = 15, - u238Shells = 16, - ionThrusters = 17, - burstLasers = 18, - titanReactor = 19, - ocularImplants = 20, - moebiusReactor = 21, - apolloReactor = 22, - colossusReactor = 23, - ventralSacs = 24, - antennae = 25, - pneumatizedCarapace = 26, - metabolicBoost = 27, - adrenalGlands = 28, - muscularAugments = 29, - groovedSpines = 30, - gameteMeiosis = 31, - metasynapticNode = 32, - singularityCharge = 33, - legEnhancements = 34, - scarabDamage = 35, - reaverCapacity = 36, - graviticDrive = 37, - sensorArray = 38, - graviticBoosters = 39, - khaydarinAmulet = 40, - apialSensors = 41, - graviticThrusters = 42, - carrierCapacity = 43, - khaydarinCore = 44, - unk45 = 45, - unk46 = 46, - argusJewel = 47, - unk48 = 48, - argusTalisman = 49, - unk50 = 50, - caduceusReactor = 51, - chitinousPlating = 52, - anabolicSynthesis = 53, - charonBooster = 54 -} - //C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/upgrades-dat.ts /** @@ -2114,201 +1045,6 @@ export interface UpgradeDAT { race: number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/common/enums/orders.ts -/** @internal */ -declare enum orders { - die = 0, - stop = 1, - gaurd = 2, - playerGaurd = 3, - turretGaurd = 4, - bunkerGaurd = 5, - move = 6, - stopReaver = 7, - attack1 = 8, - attack2 = 9, - attackUnit = 10, - attackFixedRange = 11, - attackTile = 12, - hover = 13, - attackMove = 14, - infestedCommandCenter = 15, - unusedNothing = 16, - unusedPowerup = 17, - towerGaurd = 18, - towerAttack = 19, - vultureMine = 20, - stayInRange = 21, - turretAttack = 22, - nothing = 23, - unused24 = 24, - droneStartBuild = 25, - droneBuild = 26, - castInfestation = 27, - moveToInfest = 28, - infestingCommandCenter = 29, - placeBuilding = 30, - placeProtossBuilding = 31, - createProtossBuilding = 32, - constructingBuilding = 33, - repair = 34, - moveToRepair = 35, - placeAddOn = 36, - buildAddOn = 37, - train = 38, - rallyPointUnit = 39, - rallyPointTile = 40, - zergBirth = 41, - zergUnitMorph = 42, - zergBuildingMorph = 43, - incompleteBuilding = 44, - incompleteMorphing = 45, - buildNydusExit = 46, - enterNydusCanal = 47, - incompleteWarping = 48, - follow = 49, - carrier = 50, - reaverCarrierMove = 51, - carrierStop = 52, - carrierAttack = 53, - carrierMoveToAttack = 54, - carrierIgnore2 = 55, - carrierFight = 56, - carrierHoldPosition = 57, - reaver = 58, - reaverAttack = 59, - reaverMoveToAttack = 60, - reaverFight = 61, - reaverHoldPosition = 62, - trainFighter = 63, - interceptorAttack = 64, - scarabAttack = 65, - rechargeShieldsUnit = 66, - rechargeShieldsBattery = 67, - shieldBattery = 68, - interceptorReturn = 69, - droneLand = 70, - buildingLand = 71, - buildingLiftOff = 72, - droneLiftOff = 73, - liftingOff = 74, - researchTech = 75, - upgrade = 76, - larva = 77, - spawningLarva = 78, - harvest1 = 79, - harvest2 = 80, - moveToGas = 81, - waitForGas = 82, - harvestGas = 83, - returnGas = 84, - moveToMinerals = 85, - waitForMinerals = 86, - miningMinerals = 87, - harvest3 = 88, - harvest4 = 89, - returnMinerals = 90, - interrupted = 91, - enterTransport = 92, - pickupIdle = 93, - pickupTransport = 94, - pickupBunker = 95, - pickup4 = 96, - powerupIdle = 97, - sieging = 98, - unsieging = 99, - watchTarget = 100, - initCreepGrowth = 101, - spreadCreep = 102, - stoppingCreepGrowth = 103, - guardianAspect = 104, - archonWarp = 105, - completingArchonSummon = 106, - holdPosition = 107, - queenHoldPosition = 108, - cloak = 109, - decloak = 110, - unload = 111, - moveUnload = 112, - fireYamatoGun = 113, - moveToFireYamatoGun = 114, - castLockdown = 115, - burrowing = 116, - burrowed = 117, - unburrowing = 118, - castDarkSwarm = 119, - castParasite = 120, - castSpawnBroodlings = 121, - castEmpShockwave = 122, - nukeWait = 123, - nukeTrain = 124, - nukeLaunch = 125, - nukePaint = 126, - nukeUnit = 127, - castNuclearStrike = 128, - nukeTrack = 129, - initializeArbiter = 130, - cloakNearbyUnits = 131, - placeSpiderMine = 132, - rightClickAction = 133, - suicideUnit = 134, - suicideTile = 135, - suicideHoldPosition = 136, - castRecall = 137, - teleport = 138, - castScannerSweep = 139, - scanner = 140, - castDefensiveMatrix = 141, - castPsionicStorm = 142, - castIrradiate = 143, - castPlague = 144, - castConsume = 145, - castEnsnare = 146, - castStasisField = 147, - castHallucination = 148, - hallucination2 = 149, - resetCollision = 150, - resetHarvestCollision = 151, - patrol = 152, - CTFCOPInit = 153, - CTFCOPStarted = 154, - CTFCOP2 = 155, - computerAI = 156, - atkMoveEp = 157, - harrassMove = 158, - AIPatrol = 159, - guardPost = 160, - rescuePassive = 161, - neutral = 162, - computerReturn = 163, - InitializePsiProvider = 164, - scarabSelfDestructing = 165, - critter = 166, - hiddenGun = 167, - openDoor = 168, - closeDoor = 169, - hideTrap = 170, - revealTrap = 171, - enableDoodad = 172, - disableDoodad = 173, - warpIn = 174, - medic = 175, - medicHeal = 176, - medicHealMove = 177, - medicHoldPosition = 178, - medicHealToIdle = 179, - castRestoration = 180, - castDisruptionWeb = 181, - castMindControl = 182, - darkArchonMeld = 183, - castFeedback = 184, - castOpticalFlare = 185, - castMaelstrom = 186, - junkYardDog = 187, - fatal = 188, - none = 189 -} - //C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/orders-dat.ts /** @@ -2429,37 +1165,12 @@ export declare class UnitDAT implements UnitDAT { constructor(data: UnitDATIncomingType); } -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/images-dat.ts - -/** - * @public - */ -export interface ImageDAT { - index: number; - grpFile: string; - name: string; - grp: number; - gfxTurns: number; - clickable: number; - useFullIscript: number; - drawIfCloaked: number; - drawFunction: number; - remapping: number; - iscript: number; - shieldOverlay: number; - attackOverlay: number; - damageOverlay: number; - specialOverlay: number; - landingDustOverlay: number; - liftOffDustOverlay: number; -} - //C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/parse-lo.ts /// /** * @public */ -export declare type LoDAT = number[][][]; +export type LoDAT = number[][][]; //C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/sprites-dat.ts @@ -2471,199 +1182,81 @@ export interface SpriteDAT { name: string; index: number; healthBar: number; - visible: number; - selectionCircle: { - size: number; - index: number; - }; - selectionCircleOffset: number; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/weapons-dat.ts - -/** - * @public - */ -export interface WeaponDAT { - index: number; - name: string; - flingy: FlingyDAT; - targetFlags: number; - minRange: number; - maxRange: number; - damageUpgrade: number; - damageType: number; - weaponBehavior: number; - lifetime: number; - explosionType: number; - innerSplashRange: number; - mediumSplashRange: number; - outerSplashRange: number; - damageAmount: number; - damageBonus: number; - weaponCooldown: number; - damageFactor: number; - attackAngle: number; - launchSpin: number; - forwardOffset: number; - upwardOffset: number; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/flingy-dat.ts - -/** - * @public - */ -export interface FlingyDAT { - sprite: SpriteDAT; - speed: number; - acceleration: number; - haltDistance: number; - turnRadius: number; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/anim-grp.ts - -/** @internal */ -declare type GrpSprite = { - w: number; - h: number; - frames: AnimFrame[]; - maxFrameH: number; - maxFramew: number; -}; - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/anim-grp.ts -/// -/** @internal */ -declare type AnimFrame = { - x: number; - y: number; - w: number; - h: number; - xoff: number; - yoff: number; -}; - -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/atlas/load-anim-atlas.ts - -/** @internal */ -declare type AnimAtlas = ReturnType; - -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/atlas/load-anim-atlas.ts - -/** @internal */ -declare const loadAnimAtlas: (buf: Buffer, imageIndex: number, scale: Exclude) => { - isHD: boolean; - isHD2: boolean; - diffuse: import("three").CompressedTexture; - imageIndex: number; - frames: { - x: number; - y: number; - w: number; - h: number; - xoff: number; - yoff: number; - }[]; - uvPos: { - pos: BufferAttribute; - uv: BufferAttribute; - flippedPos: BufferAttribute; - flippedUv: BufferAttribute; - }[]; - uvPosDataTex: DataArrayTexture; - textureWidth: number; - textureHeight: number; - spriteWidth: number; - spriteHeight: number; - unitTileScale: UnitTileScale; - teammask: import("three").CompressedTexture | undefined; - hdLayers: { - emissive: import("three").CompressedTexture | undefined; - }; - dispose(): void; -}; - -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/atlas/legacy-grp.ts - -/** @internal */ -declare class LegacyGRP { - width: number; - height: number; - grpWidth: number; - grpHeight: number; - texture: DataTexture; - teamcolor?: DataTexture; - frames: { - x: number; - y: number; - grpX: number; - grpY: number; - w: number; - h: number; - }[]; - constructor(); - load({ readGrp, imageDef, palettes, }: { - readGrp: () => Promise; - imageDef: ImageDAT; - palettes: Palettes; - }, stride?: number): Promise; - dispose(): void; + visible: number; + selectionCircle: { + size: number; + index: number; + }; + selectionCircleOffset: number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/atlas/legacy-grp.ts - -/** @internal */ -declare type Palettes = Uint8Array[] & { - dark?: Buffer; - light?: Buffer; -}; - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/casclib.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/weapons-dat.ts -/** @internal */ -declare const openCascStorage: (bwPath: string) => Promise; +/** + * @public + */ +export interface WeaponDAT { + index: number; + name: string; + flingy: FlingyDAT; + targetFlags: number; + minRange: number; + maxRange: number; + damageUpgrade: number; + damageType: number; + weaponBehavior: number; + lifetime: number; + explosionType: number; + innerSplashRange: number; + mediumSplashRange: number; + outerSplashRange: number; + damageAmount: number; + damageBonus: number; + weaponCooldown: number; + damageFactor: number; + attackAngle: number; + launchSpin: number; + forwardOffset: number; + upwardOffset: number; +} -//C:/Users/Game_Master/Projects/titan-reactor/src/common/casclib.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/flingy-dat.ts -/** @internal */ -declare const closeCascStorage: () => void; +/** + * @public + */ +export interface FlingyDAT { + sprite: SpriteDAT; + speed: number; + acceleration: number; + haltDistance: number; + turnRadius: number; +} -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/generate-icons/generate-icons.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/anim-grp.ts /** @internal */ -declare const generateUIIcons: (readFile: ReadFile) => Promise<{ - cmdIcons: ArrayBuffer[]; - gameIcons: { - minerals: Blob; - vespeneZerg: Blob; - vespeneTerran: Blob; - vespeneProtoss: Blob; - zerg: Blob; - terran: Blob; - protoss: Blob; - energy: Blob; - }; - raceInsetIcons: { - zerg: Blob; - terran: Blob; - protoss: Blob; - }; - workerIcons: { - apm: ArrayBuffer | SharedArrayBuffer; - terran: ArrayBuffer | SharedArrayBuffer; - zerg: ArrayBuffer | SharedArrayBuffer; - protoss: ArrayBuffer | SharedArrayBuffer; - }; -}>; +type GrpSprite = { + w: number; + h: number; + frames: AnimFrame[]; + maxFrameH: number; + maxFramew: number; +}; -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/file.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/anim-grp.ts /// /** @internal */ -declare type ReadFile = (filename: string) => Promise; +type AnimFrame = { + x: number; + y: number; + w: number; + h: number; + xoff: number; + yoff: number; +}; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/image-entities.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/image-entities.ts /** * A collection of all images in the game. @@ -2685,7 +1278,7 @@ declare class ImageEntities { getUnit(image: ImageBase): Unit | undefined; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/image-base.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/image-base.ts /** * Base structure for how starcraft image objects are represented in three.js @@ -2707,12 +1300,12 @@ interface ImageBase extends Object3D { readonly unitTileScale: UnitTileScale; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/utils/image-utils.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/utils/image-utils.ts /** @internal */ declare const isImageHd: (image: Object3D) => image is ImageHD; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/image-hd.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/image-hd.ts /** * A threejs mesh for a starcraft image. @@ -2752,7 +1345,7 @@ declare class ImageHD extends Mesh image is Image3D; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/image-3d.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/image-3d.ts /** * Starcraft image as a 3D object in GLB format with animations. @@ -2848,7 +1441,7 @@ declare class Image3D extends Object3D implements ImageBase { static clone(source: Object3D): Object3D; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/atlas/load-glb-atlas.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/image/atlas/load-glb-atlas.ts /** @internal */ interface GltfAtlas extends AnimAtlas { @@ -2859,19 +1452,15 @@ interface GltfAtlas extends AnimAtlas { fixedFrames: number[]; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/global.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/audio/main-mixer.ts -/** - * INTERCEPTS IPC MESSAGES AND PUSHES THEM INTO THE GLOBAL EVENT BUS. WE DO THIS TO KEEP THINGS CLEAN. - * ALSO CREATES GLOBAL SOUND MIXER AND MUSIC PLAYER - */ /** @internal */ -declare const mixer: MainMixer; +declare const mixer: Mixer; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/audio/main-mixer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/audio/main-mixer.ts /** @internal */ -declare class MainMixer { +declare class Mixer { intro: GainNode; sound: GainNode; music: GainNode; @@ -2893,17 +1482,38 @@ declare class MainMixer { source: AudioBufferSourceNode; gain: GainNode; }; - loadAudioBuffer(filenameOrId: string | number): Promise; + loadCascAudio(filename: string): Promise; + loadCascAudioById(id: number): Promise; + loadAudioBuffer(url: string): Promise; connect(...args: AudioNode[]): () => void; createGain(value: number): GainNode; createDistortion(k?: number): WaveShaperNode; smoothStop(gain: GainNode, delta?: number, decay?: number): void; } +//C:/Users/Game_Master/Projects/titan-reactor/src/audio/music.ts + +/** @internal */ +declare const music: Music; + +//C:/Users/Game_Master/Projects/titan-reactor/src/audio/music.ts + +/** @internal */ +declare class Music { + #private; + races: string[]; + constructor(listener: AudioListener); + getAudio(): Audio; + playGame(): Promise<() => void>; + playMenu(): Promise<() => void>; + stop(): void; + dispose(): void; +} + //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/settings.ts /** @internal */ -declare type Settings = SettingsV6; +type Settings = SettingsV6; //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/settings.ts @@ -2912,17 +1522,10 @@ interface SettingsV6 { version: 6; language: string; session: { - type: "replay" | "live" | "map"; + type: "replay" | "map"; sandbox: boolean; audioListenerDistance: number; }; - directories: { - starcraft: string; - maps: string; - replays: string; - assets: string; - plugins: string; - }; audio: { global: number; music: number; @@ -2931,8 +1534,9 @@ interface SettingsV6 { }; graphics: { pixelRatio: number; - useHD2: "auto" | "ignore" | "force"; - preload: boolean; + useHD: boolean; + use3D: boolean; + preloadMapSprites: boolean; cursorSize: number; }; minimap: { @@ -2948,6 +1552,7 @@ interface SettingsV6 { }; input: { sceneController: string; + vrController: string; dampingFactor: number; movementSpeed: number; rotateSpeed: number; @@ -2957,6 +1562,7 @@ interface SettingsV6 { cursorVisible: boolean; }; utilities: { + cacheLocally: boolean; sanityCheckReplayCommands: boolean; debugMode: boolean; detectMeleeObservers: boolean; @@ -2964,12 +1570,12 @@ interface SettingsV6 { alertDesynced: boolean; alertDesyncedThreshold: number; logLevel: LogLevel; - autoPlayReplayQueue: boolean; }; - plugins: { - serverPort: number; - developmentDirectory?: string; - activated: string[]; + replayQueue: { + alwaysClearReplayQueue: boolean; + autoplay: boolean; + show: boolean; + goToHomeBetweenReplays: boolean; }; postprocessing: { anisotropy: number; @@ -2997,151 +1603,14 @@ interface SettingsV6 { sunlightIntensity: number; shadowQuality: number; }; - macros: MacrosDTO; } //C:/Users/Game_Master/Projects/titan-reactor/src/common/logging.ts /** @internal */ -declare type LogLevel = "info" | "warn" | "error" | "debug"; - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/macros.ts - -/** @internal */ -interface MacrosDTO { - revision: number; - macros: MacroDTO[]; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/macros.ts - -/** @internal */ -interface MacroDTO { - id: string; - name: string; - description?: string; - enabled: boolean; - trigger: MacroTriggerDTO; - actions: MacroAction[]; - actionSequence: MacroActionSequence; - conditions: MacroCondition[]; - error?: string; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/macros.ts - -/** @internal */ -interface MacroTriggerDTO { - type: TriggerType; - value?: unknown; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/macros.ts - -/** @internal */ -declare enum TriggerType { - None = "None", - Hotkey = "Hotkey", - WorldEvent = "WorldEvent" -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/macros.ts - -/** @internal */ -interface MacroAction { - type: "action"; - id: string; - error?: MacroActionConfigurationError; - path: TargetedPath; - value?: unknown; - operator: Operator; - group?: number; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/macros.ts - -/** @internal */ -declare type TargetType = ":app" | ":plugin" | ":function" | ":macro"; - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/macros.ts - -/** @internal */ -interface MacroActionConfigurationError { - critical?: boolean; - type: MacroActionConfigurationErrorType; - message: string; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/macros.ts - -/** @internal */ -declare enum MacroActionConfigurationErrorType { - MissingField = "MissingField", - InvalidField = "InvalidField", - InvalidFieldValue = "InvalidFieldValue", - InvalidInstruction = "InvalidInstruction", - InvalidCondition = "InvalidCondition", - MissingPlugin = "MissingPlugin", - InvalidPlugin = "InvalidPlugin", - InvalidMacro = "InvalidMacro", - InvalidAction = "InvalidAction" -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/macros.ts - -/** @internal */ -declare type TargetedPath = [T, ...string[]]; - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/fields.ts -/** @internal */ -declare enum Operator { - SetToDefault = "SetToDefault", - Set = "Set", - Toggle = "Toggle", - Increase = "Increase", - Decrease = "Decrease", - IncreaseCycle = "IncreaseCycle", - DecreaseCycle = "DecreaseCycle", - Min = "Min", - Max = "Max", - Execute = "Execute" -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/macros.ts - -/** @internal */ -declare enum MacroActionSequence { - AllSync = "AllSync", - SingleAlternate = "SingleAlternate", - SingleRandom = "SingleRandom" -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/macros.ts - -/** @internal */ -interface MacroCondition { - type: "condition"; - id: string; - error?: MacroActionConfigurationError; - path: TargetedPath; - value?: unknown; - comparator: ConditionComparator; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/macros.ts - -/** @internal */ -declare enum ConditionComparator { - Equals = "Equals", - NotEquals = "NotEquals", - GreaterThan = "GreaterThan", - LessThan = "LessThan", - GreaterThanOrEquals = "GreaterThanOrEquals", - LessThanOrEquals = "LessThanOrEquals", - Execute = "Execute" -} +type LogLevel = "info" | "warn" | "error" | "debug"; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/image-3d-material.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/image-3d-material.ts /** * Custom material for starcraft images. Takes into account team color, warp in flash, and modifiers. @@ -3164,7 +1633,7 @@ declare class Image3DMaterial extends MeshStandardMaterial { customProgramCacheKey(): string; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/unit.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/unit.ts /** * @public @@ -3222,9 +1691,10 @@ interface FlingyStruct extends ThingyStruct { nextTargetWaypointX: number; nextTargetWaypointY: number; movementFlags: number; + currentVelocityDirection: number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/sprite-entities.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/sprite-entities.ts /** @internal */ declare class SpriteEntities { @@ -3252,7 +1722,7 @@ interface SpriteType extends Group { }; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/unit-entities.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/unit-entities.ts /** @internal */ declare class UnitEntities { @@ -3267,7 +1737,7 @@ declare class UnitEntities { clear(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/utils/data-structures/iteratible-map.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/utils/data-structures/iteratible-map.ts /** * A map that also keeps track of insertion order * @public @@ -3284,7 +1754,7 @@ export declare class IterableMap { get length(): number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/utils/data-structures/simple-quadtree.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/utils/data-structures/simple-quadtree.ts /** * @public @@ -3298,7 +1768,7 @@ export declare class SimpleQuadtree { clear(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/utils/data-structures/iterable-set.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/utils/data-structures/iterable-set.ts /** @internal */ declare class IterableSet { #private; @@ -3312,10 +1782,11 @@ declare class IterableSet { delete(value: T): void; has(key: T): boolean; clear(): void; + get(index: number): T; [Symbol.iterator](): IterableIterator; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/render/base-scene.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/render/base-scene.ts /** * @public @@ -3333,7 +1804,7 @@ export declare class BaseScene extends Scene { dispose(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/render/sunlight.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/render/sunlight.ts /** @internal */ declare class Sunlight { @@ -3353,7 +1824,7 @@ declare class Sunlight { dispose(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/terrain.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/terrain.ts /** * A high level object representing the terrain. @@ -3390,7 +1861,7 @@ interface TerrainQuartile extends Mesh (worldX: number, worldY: number) => number; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/generate-map/get-terrain-y.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/image/generate-map/get-terrain-y.ts /** @internal */ -declare type GetTerrainY = ReturnType; +type GetTerrainY = ReturnType; //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/terrain.ts /** @internal */ -declare type GeometryOptions = { +type GeometryOptions = { /** * low, walkable, mid, mid-walkable, high, high-walkable, mid/high/walkable */ @@ -3431,7 +1902,7 @@ declare type GeometryOptions = { firstBlurPassKernelSize: number; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/creep/creep.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/creep/creep.ts /** @internal */ declare class Creep { @@ -3448,7 +1919,7 @@ declare class Creep { dispose(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/simple-buffer-view.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/simple-buffer-view.ts /** A template for representing game struct(s) (eg units, sprites, etc) */ @@ -3474,7 +1945,7 @@ interface PxToWorld { xyz: (x: number, y: number, out: Vector3) => Vector3; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/sprites-buffer-view.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/sprites-buffer-view.ts /** * Maps to openbw sprite_t starting from index address @@ -3511,7 +1982,7 @@ interface SpriteStruct { mainImageIndex: number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/intrusive-list.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/intrusive-list.ts /** * Represents an openbw intrusive_list */ @@ -3527,7 +1998,7 @@ declare class IntrusiveList { reverse(): Generator; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/images-buffer-view.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/images-buffer-view.ts /** @internal */ declare class ImageBufferView implements ImageStruct { @@ -3570,7 +2041,7 @@ interface ImageStruct { modifierData2: number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/iscript-buffer-view.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/iscript-buffer-view.ts /** @internal */ declare class IScriptBufferView implements IScriptStateStruct { @@ -3598,17 +2069,17 @@ interface IScriptStateStruct { wait: number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/sprites-buffer-view-iterator.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/sprites-buffer-view-iterator.ts /** @internal */ declare function deletedSpritesIterator(openBW: OpenBW): Generator; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/images-buffer-view.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/images-buffer-view.ts /** @internal */ declare function deletedImageIterator(openBW: OpenBW): Generator; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/buffer-view/sprites-buffer-view-iterator.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/structs/sprites-buffer-view-iterator.ts /** @internal */ declare class SpritesBufferViewIterator { @@ -3618,7 +2089,7 @@ declare class SpritesBufferViewIterator { getSprite(addr: number): SpritesBufferView; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/openbw/openbw.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/openbw.ts /** @internal */ declare class OpenBWStructViews { @@ -3626,12 +2097,17 @@ declare class OpenBWStructViews { constructor(openbw: OpenBW); } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/settings-session-store.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/file.ts +/// +/** @internal */ +type ReadFile = (filename: string) => Promise; + +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/settings-session-store.ts /** @internal */ -declare type SettingsSessionStore = ReturnType; +type SettingsSessionStore = ReturnType; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/settings-session-store.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/settings-session-store.ts /** * An api that allows the consumer to modify setting values and have the system respond, eg fog of war level. @@ -3642,7 +2118,7 @@ declare const createSettingsSessionStore: (events: TypeEmitter) => dispose: () => void; getState: () => { session: { - type: "replay" | "live" | "map"; + type: "replay" | "map"; sandbox: boolean; audioListenerDistance: number; }; @@ -3654,6 +2130,7 @@ declare const createSettingsSessionStore: (events: TypeEmitter) => }; input: { sceneController: string; + vrController: string; dampingFactor: number; movementSpeed: number; rotateSpeed: number; @@ -3700,11 +2177,11 @@ declare const createSettingsSessionStore: (events: TypeEmitter) => shadowQuality: number; }; }; - setValue: (path: string[], value: unknown) => void; + setValue: (path: string[], value: unknown, silentUpdate?: boolean | undefined) => void; getValue: (path: string[]) => unknown; merge: (rhs: { session?: { - type?: "replay" | "live" | "map" | undefined; + type?: "replay" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; } | undefined; @@ -3716,6 +2193,7 @@ declare const createSettingsSessionStore: (events: TypeEmitter) => } | undefined; input?: { sceneController?: string | undefined; + vrController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; @@ -3762,7 +2240,7 @@ declare const createSettingsSessionStore: (events: TypeEmitter) => shadowQuality?: number | undefined; } | undefined; }) => void; - operate: (action: Operation, transformPath?: ((path: string[]) => string[]) | undefined) => void; + operate: (action: Operation, transformPath?: ((path: string[]) => string[]) | undefined, silentUpdate?: boolean | undefined) => void; createVariable: (path: string[]) => ((value?: unknown) => unknown) & { set: (value: any) => void; get: () => unknown; @@ -3774,10 +2252,19 @@ declare const createSettingsSessionStore: (events: TypeEmitter) => max: () => void; reset: () => void; toggle: () => void; + $set: (value: any) => void; + $inc: () => void; + $incCycle: () => void; + $dec: () => void; + $decCycle: () => void; + $min: () => void; + $max: () => void; + $reset: () => void; + $toggle: () => void; }; sourceOfTruth: SourceOfTruth<{ session: { - type: "replay" | "live" | "map"; + type: "replay" | "map"; sandbox: boolean; audioListenerDistance: number; }; @@ -3789,6 +2276,7 @@ declare const createSettingsSessionStore: (events: TypeEmitter) => }; input: { sceneController: string; + vrController: string; dampingFactor: number; movementSpeed: number; rotateSpeed: number; @@ -3837,7 +2325,7 @@ declare const createSettingsSessionStore: (events: TypeEmitter) => }>; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/utils/type-emitter.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/utils/type-emitter.ts /** @internal */ declare class TypeEmitter { @@ -3848,17 +2336,17 @@ declare class TypeEmitter { dispose(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/utils/type-emitter.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/utils/type-emitter.ts /** * @public */ -declare type Listener = { +type Listener = { fn: (v: T) => any; priority: number; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/world-events.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/world-events.ts /** @internal */ interface WorldEvents { @@ -3914,15 +2402,15 @@ interface WorldEvents { //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/settings.ts /** @internal */ -declare type SessionSettingsData = Pick; +type SessionSettingsData = Pick; //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/utils/deep-partial.ts /** @internal */ -declare type DeepPartial = T extends object ? { +type DeepPartial = T extends object ? { [P in keyof T]?: DeepPartial; } : T; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/render/game-surface.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/render/game-surface.ts /** @internal */ declare class GameSurface extends Surface { @@ -3940,17 +2428,16 @@ declare class GameSurface extends Surface { get screenAspect(): Vector3; getMinimapDimensions(minimapScale: number): Pick; dispose(): void; - show(): void; + show(): HTMLCanvasElement; hide(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/canvas/surface.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/image/canvas/surface.ts /** @internal */ declare class Surface { #private; - ctx?: CanvasRenderingContext2D; canvas: HTMLCanvasElement; - constructor(canvas?: HTMLCanvasElement, useContext?: boolean, styles?: Partial); + constructor(canvas?: HTMLCanvasElement, styles?: Partial); setDimensions(width: number, height: number, pixelRatio?: number): void; get aspect(): number; get width(): number; @@ -3962,7 +2449,7 @@ declare class Surface { dispose(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/render/minimap-dimensions.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/render/minimap-dimensions.ts /** @internal */ interface MinimapDimensions { matrix: number[]; @@ -3970,36 +2457,36 @@ interface MinimapDimensions { minimapHeight: number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/input/mouse-input.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/input/mouse-input.ts /** @internal */ -declare type MouseEventDTO = { +type MouseEventDTO = { ctrlKey: boolean; shiftKey: boolean; altKey: boolean; button: number; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/settings-session-store.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/settings-session-store.ts /** * @public */ -export declare type SessionVariables = { +export type SessionVariables = { [K in keyof SessionSettingsData]: { [T in keyof SessionSettingsData[K]]: MutationVariable; }; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/stores/operatable-store.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/stores/operatable-store.ts /** @internal */ -declare type MutationVariable = ReturnType>; +type MutationVariable = ReturnType>; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/stores/operatable-store.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/stores/operatable-store.ts /** @internal */ -declare const createMutationVariable: (operate: (operation: Operation) => void, getValue: (path: string[]) => unknown) => (path: string[]) => ((value?: unknown) => unknown) & { +declare const createMutationVariable: (operate: OperationRequest, getValue: (path: string[]) => unknown) => (path: string[]) => ((value?: unknown) => unknown) & { set: (value: any) => void; get: () => unknown; /** @@ -4034,8 +2521,46 @@ declare const createMutationVariable: (operate: (operation: Operation) => void, * Reset the value of the property to the default. */ toggle: () => void; + $set: (value: any) => void; + /** + * Increase the value of the property. + */ + $inc: () => void; + /** + * Increase the value of the property. Loop around if the value is greater than the maximum. + */ + $incCycle: () => void; + /** + * Decrease the value of the property. + */ + $dec: () => void; + /** + * Decrease the value of the property. Loop around if the value is less than the minimum. + */ + $decCycle: () => void; + /** + * Set the value of the property to the minimum. + */ + $min: () => void; + /** + * Set the value of the property to the maximum. + */ + $max: () => void; + /** + * Reset the value of the property to the default. + */ + $reset: () => void; + /** + * Reset the value of the property to the default. + */ + $toggle: () => void; }; +//C:/Users/Game_Master/Projects/titan-reactor/src/stores/operatable-store.ts + +/** @internal */ +type OperationRequest = (action: Operation, transformPath?: (path: string[]) => string[], silentUpdate?: boolean) => void; + //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/fields.ts /** @internal */ @@ -4045,7 +2570,22 @@ interface Operation { value?: any; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/stores/source-of-truth.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/fields.ts +/** @internal */ +declare enum Operator { + SetToDefault = "SetToDefault", + Set = "Set", + Toggle = "Toggle", + Increase = "Increase", + Decrease = "Decrease", + IncreaseCycle = "IncreaseCycle", + DecreaseCycle = "DecreaseCycle", + Min = "Min", + Max = "Max", + Execute = "Execute" +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/stores/source-of-truth.ts /** * An object that emits the diff when it is updated. @@ -4060,12 +2600,12 @@ declare class SourceOfTruth { clone(): T; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/scene-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/scene-composer.ts /** @internal */ -declare type SceneComposer = Awaited>; +type SceneComposer = Awaited>; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/input/mouse-input.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/input/mouse-input.ts /** @internal */ declare class MouseInput { @@ -4086,7 +2626,7 @@ declare class MouseInput { dispose(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/input/arrow-key-input.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/input/arrow-key-input.ts /** @internal */ declare class ArrowKeyInput { @@ -4096,7 +2636,7 @@ declare class ArrowKeyInput { dispose(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/input/create-unit-selection.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/input/create-unit-selection.ts /** @internal */ declare enum UnitSelectionStatus { @@ -4105,12 +2645,12 @@ declare enum UnitSelectionStatus { Hovering = 2 } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/view-controller-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/view-controller-composer.ts /** @internal */ -declare type ViewControllerComposer = ReturnType; +type ViewControllerComposer = ReturnType; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/view-controller-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/view-controller-composer.ts /** * The Scene Controller plugin is responsible for managing the game viewports. @@ -4121,7 +2661,7 @@ declare type ViewControllerComposer = ReturnType { +declare const createViewControllerComposer: (world: World, { gameSurface }: SurfaceComposer, initialStartLocation: Vector3) => { api: { readonly viewport: GameViewPort; readonly secondViewport: GameViewPort; @@ -4136,10 +2676,10 @@ declare const createViewControllerComposer: (world: World, { gameSurface }: Surf * Resets all viewports. * * @param newController - * @param firstRunData + * @param globalData * @returns */ - activate(newController: SceneController | null | undefined, firstRunData?: any): Promise; + activate(newController: SceneController): Promise; /** * Primary viewport is necessary because audio will require a camera position, and depth of field will only apply in one viewport for performance. */ @@ -4152,16 +2692,16 @@ declare const createViewControllerComposer: (world: World, { gameSurface }: Surf generatePrevData(): { target: Vector3; position: Vector3; - } | null; + }; doShakeCalculation(explosionType: Explosion, damageType: DamageType, spritePos: Vector3): void; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/surface-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/surface-composer.ts /** @internal */ -declare type SurfaceComposer = ReturnType; +type SurfaceComposer = ReturnType; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/surface-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/surface-composer.ts /** * Creates the game canvases, listeners, and resizers. @@ -4169,7 +2709,7 @@ declare type SurfaceComposer = ReturnType; * @returns */ /** @internal */ -declare const createSurfaceComposer: (world: World) => { +declare const createSurfaceComposer: (map: Chk, events: TypeEmitter) => { gameSurface: GameSurface; resize: (immediate?: boolean) => void; mount(): void; @@ -4178,7 +2718,7 @@ declare const createSurfaceComposer: (world: World) => { }; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/camera/game-viewport.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/camera/game-viewport.ts /** * @public @@ -4186,7 +2726,6 @@ declare const createSurfaceComposer: (world: World) => { */ export declare class GameViewPort extends Sizeable { #private; - name: string; camera: PerspectiveCamera | OrthographicCamera; projectedView: ProjectedCameraView; orbit: CameraControls; @@ -4198,9 +2737,11 @@ export declare class GameViewPort extends Sizeable { strength: Vector3; needsUpdate: boolean; }; + protected surface: Surface; constrainToAspect: boolean; needsUpdate: boolean; rotateSprites: boolean; + autoUpdateSmoothTime: boolean; audioType: "stereo" | "3d" | null; set renderMode3D(val: boolean); get renderMode3D(): boolean; @@ -4215,11 +2756,11 @@ export declare class GameViewPort extends Sizeable { }; shakeStart(elapsed: number, strength: number): void; shakeEnd(): void; - update(targetDamping: number, delta: number): void; + update(targetSmoothTime: number, delta: number): void; get direction32(): number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/camera/sizeable.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/camera/sizeable.ts /** * A class that can be used to set the size and location of a surface on the screen. @@ -4248,7 +2789,7 @@ declare class Sizeable { fullScreen(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/camera/projected-camera-view.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/camera/projected-camera-view.ts /** * World position for the four corners of our view @@ -4273,7 +2814,7 @@ declare class ProjectedCameraView { update(camera: Camera, target: Vector3): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/camera/camera-shake.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/camera/camera-shake.ts /** @internal */ declare class CameraShake { @@ -4293,24 +2834,18 @@ declare class CameraShake { restore(camera: Camera): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/plugin.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/scene-controller.ts /** - * These are the injectable services that are available to plugins during a world session. + * @public */ -/** @internal */ -interface Injectables { - /** - * Reactive setting values that apply to the active session only. - */ - settings: SessionVariables; - /** - * World events that can be listened to and emitted. - */ - events: TypeEmitterProxy; -} +export type PrevSceneData = { + position: Vector3; + target: Vector3; + data?: any; +}; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/utils/type-emitter.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/utils/type-emitter.ts /** * @public @@ -4347,13 +2882,22 @@ interface PluginPackage { peerDependencies?: Record; devDependencies?: Record; config?: PluginConfig; - permissions?: string[]; } //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/plugin.ts /** @internal */ -declare type PluginConfig = Record; +type PluginConfig = Record; + +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/plugin-base.ts + +/** @internal */ +type PluginSessionContext = { + game: GameTimeApi; + settings: SessionVariables; + events: TypeEmitter; + customEvents: TypeEmitter; +}; //C:/Users/Game_Master/Projects/titan-reactor/src/common/enums/explosions.ts /** @internal */ @@ -4395,27 +2939,27 @@ declare enum DamageType { IgnoreArmor = 4 } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/scene-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/scene-composer.ts /** @internal */ -declare type SceneComposerApi = SceneComposer["api"]; +type SceneComposerApi = SceneComposer["api"]; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/surface-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/surface-composer.ts /** @internal */ -declare type SurfaceComposerApi = SurfaceComposer["api"]; +type SurfaceComposerApi = SurfaceComposer["api"]; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/postprocessing-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/postprocessing-composer.ts /** @internal */ -declare type PostProcessingComposerApi = PostProcessingComposer["api"]; +type PostProcessingComposerApi = PostProcessingComposer["api"]; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/postprocessing-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/postprocessing-composer.ts /** @internal */ -declare type PostProcessingComposer = ReturnType; +type PostProcessingComposer = ReturnType; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/postprocessing-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/postprocessing-composer.ts /** @internal */ declare const createPostProcessingComposer: (world: World, { scene, images, sprites, terrain, ...sceneComposer }: SceneComposer, viewportsComposer: ViewControllerComposer, assets: Assets) => { @@ -4429,22 +2973,22 @@ declare const createPostProcessingComposer: (world: World, { scene, images, spri render(delta: number, elapsed: number): void; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/view-controller-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/view-controller-composer.ts /** @internal */ -declare type ViewControllerComposerApi = ViewControllerComposer["api"]; +type ViewControllerComposerApi = ViewControllerComposer["api"]; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/openbw-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/openbw-composer.ts /** @internal */ -declare type OpenBwComposerApi = OpenBwComposer["api"]; +type OpenBwComposerApi = OpenBwComposer["api"]; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/openbw-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/openbw-composer.ts /** @internal */ -declare type OpenBwComposer = ReturnType; +type OpenBwComposer = ReturnType; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/openbw-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/openbw-composer.ts /** * A lot of communication with OpenBW happens here. @@ -4491,20 +3035,20 @@ declare const createOpenBWComposer: (world: World, scene: Pick; +type GameLoopComposer = ReturnType; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/world/game-loop-composer.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/world/game-loop-composer.ts /** @internal */ -declare const createGameLoopComposer: (world: World) => { +declare const createGameLoopComposer: (events: TypeEmitter) => { readonly delta: number; start(): void; stop(): void; @@ -4515,96 +3059,7 @@ declare const createGameLoopComposer: (world: World) => { }; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/process-replay/parse-replay.ts - -/** - * @public - * A replay file structure containing header information and raw command and map data - */ -export declare type Replay = Awaited>; - -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/process-replay/parse-replay.ts -/// -/** @internal */ -declare const parseReplay: (buf: Buffer) => Promise<{ - version: number; - rawHeader: Buffer; - header: { - isBroodwar: number; - gameName: string; - mapName: string; - gameType: number; - gameSubtype: number; - players: ReplayPlayer[]; - frameCount: number; - randomSeed: number; - ancillary: { - campaignId: number; - commandByte: number; - playerBytes: Buffer; - unk1: number; - playerName: Buffer; - gameFlags: number; - mapWidth: number; - mapHeight: number; - activePlayerCount: number; - slotCount: number; - gameSpeed: number; - gameState: number; - unk2: number; - tileset: number; - replayAutoSave: number; - computerPlayerCount: number; - unk3: number; - unk4: number; - unk5: number; - unk6: number; - victoryCondition: number; - resourceType: number; - useStandardUnitStats: number; - fogOfWarEnabled: number; - createInitialUnits: number; - useFixedPositions: number; - restrictionFlags: number; - alliesEnabled: number; - teamsEnabled: number; - cheatsEnabled: number; - tournamentMode: number; - victoryConditionValue: number; - startingMinerals: number; - startingGas: number; - unk7: number; - }; - }; - rawCmds: Buffer; - chk: Buffer; - limits: { - images: number; - sprites: number; - thingies: number; - units: number; - bullets: number; - orders: number; - fogSprites: number; - }; - stormPlayerToGamePlayer: number[]; -}>; - -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/process-replay/parse-replay-header.ts -/// -/** @internal */ -interface ReplayPlayer { - id: number; - name: string; - race: "zerg" | "terran" | "protoss" | "unknown"; - team: number; - color: string; - isComputer: boolean; - isHuman: boolean; - isActive: boolean; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/openbw/sandbox-api.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/openbw/sandbox-api.ts /** * @public @@ -4623,23 +3078,36 @@ export declare const createSandboxApi: (_world: World, pxToWorldInverse: PxToWor orderUnitRightClick(unitOrId: UnitStruct | number, targetUnitOrId: UnitStruct | number | null, x?: number, y?: number): void; }; declare global { + var THREE: typeof import("three"); +var postprocessing: typeof import("postprocessing"); +var CameraControls: typeof import("camera-controls"); +var enums: any; +var Janitor: typeof import("three-janitor"); -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/plugin-base.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/plugin-base.ts -export interface PluginBase extends NativePlugin, GameTimeApi, Injectables { +export interface PluginBase extends NativePlugin, GameTimeApi { } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/utils/types/plugin-host-types.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/utils/types/plugin-host-types.ts export type context = any; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/scene-controller.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/scene-controller.ts /** * @public */ -export interface SceneController extends Omit, GameTimeApi, Injectables { +export interface SceneController extends Omit, GameTimeApi { + /** + * When a scene is entered and nearly initialized. + */ + onEnterScene(prevData: PrevSceneData): Promise | void; + /** + * When a scene has exited. Dispose resources here. + */ + onExitScene?(currentData: PrevSceneData): PrevSceneData | void; /** * Updates every frame with the current mouse data. * @@ -4679,25 +3147,31 @@ export interface SceneController extends Omit, GameTimeA onMinimapDragUpdate?(pos: Vector2, isDragStart: boolean, mouseButton?: number): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/scene-controller.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/scene-controller.ts /** * @public */ -export class SceneController extends PluginBase implements SceneController { +export class SceneController extends PluginBase implements NativePlugin, SceneController { isSceneController: boolean; - onEnterScene(prevData: unknown): Promise; + isWebXR: boolean; + viewportsCount: number; + parent: Group; onUpdateAudioMixerOrientation(): Quaternion; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/plugin-base.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/plugin-base.ts -export class PluginBase { +export class PluginBase implements PluginBase { #private; readonly id: string; readonly name: string; isSceneController: boolean; - constructor(pluginPackage: PluginPackage); + game: GameTimeApi; + settings: SessionVariables; + events: TypeEmitterProxy; + constructor(pluginPackage: PluginPackage, session: PluginSessionContext); + dispose(): void; sendUIMessage: (message: any) => void; /** * @@ -4709,7 +3183,6 @@ export class PluginBase { */ saveConfigProperty(key: string, value: unknown, persist?: boolean): void; refreshConfig(): void; - get configExists(): boolean; /** * Read from the normalized configuration. */ @@ -4725,5 +3198,32 @@ export class PluginBase { */ getFieldDefinition(key: string): FieldDefinition | undefined; } + +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/vr-controller.ts + +/** + * @public + */ +export class VRSceneController extends SceneController implements NativePlugin, SceneController { + isSceneController: boolean; + isWebXR: boolean; + viewportsCount: number; + xr: WebXRManager; + baseReferenceSpace: XRReferenceSpace; + controllerModelFactory: XRControllerModelFactory; + controller1: XRTargetRaySpace; + controller2: XRTargetRaySpace; + input1?: XRInputSource; + input2?: XRInputSource; + lastWorldPosition: Vector3; + viewerPosition: Group; + constructor(...args: ConstructorParameters); + setupXR(xr: WebXRManager): void; + moveLocal(targetPosition: Vector3): void; + moveWorld(targetPosition: Vector3): void; + getPoseWorldPosition(): Vector3; + onUpdateAudioMixerLocation(): Vector3; + onUpdateAudioMixerOrientation(): Quaternion; +} } \ No newline at end of file diff --git a/build/api-types/host/package.json b/build/api-types/host/package.json index f668fe9e..e9aee9b8 100644 --- a/build/api-types/host/package.json +++ b/build/api-types/host/package.json @@ -1,6 +1,6 @@ { - "name": "titan-reactor-runtime/host", - "version": "2.0.0", + "name": "@titan-reactor-runtime/host", + "version": "2.2.0", "description": "", "types": "index.d.ts", "scripts": { diff --git a/build/api-types/host/unrolled.json b/build/api-types/host/unrolled.json index a5f244d0..9e8fceee 100644 --- a/build/api-types/host/unrolled.json +++ b/build/api-types/host/unrolled.json @@ -1,130 +1,222 @@ { - "external": [], + "external": [ + "Vector2", + "Chk", + "Array", + "Color", + "Vector3", + "setStyle", + "console", + "Uint8Array", + "String", + "NodeJS", + "Uint8ClampedArray", + "Int32Array", + "Float32Array", + "AbortController", + "signal", + "abort", + "process", + "title", + "description", + "image", + "customFileAccess", + "units", + "sprite", + "sprites", + "spriteId", + "Int8Array", + "Int16Array", + "Uint16Array", + "Uint32Array", + "set", + "structuredClone", + "size", + "fromBufferAttribute", + "x", + "y", + "addScaledVector", + "z", + "tileset", + "_tiles", + "unitId", + "player", + "copy", + "setY", + "setX", + "width", + "height", + "clone", + "applyMatrix4", + "multiplyScalar", + "add", + "length", + "setFromMatrixScale", + "setFromMatrixPosition", + "multiply", + "distanceTo", + "divideScalar", + "setScalar", + "r", + "g", + "b", + "unproject", + "setComponent", + "getComponent", + "lerp", + "applyQuaternion", + "divide", + "addScalar", + "subScalar", + "tilesetName", + "getHSL", + "setHSL", + "getHexString", + "gc", + "lerpVectors" + ], "importFileNotFound": [ "zustand", - "three" + "three", + "immer/dist/internal", + "@core", + "process-replay" ], "nodeModules": [ "Record", - "Object", - "keys", - "forEach", - "structuredClone", - "JSON", - "parse", - "stringify", - "Error", - "indexOf", - "create", - "Date", - "Partial", - "Promise", - "set", - "ipcRenderer", - "invoke", - "getState", - "process", - "env", - "console", - "error", - "warn", - "log", - "debug", - "send", - "message", - "Vector2", "ReturnType", - "Chk", "Array", - "Color", - "Vector3", "Pick", + "Object", "freeze", "map", - "setStyle", "push", "Symbol", "species", - "Awaited", + "create", + "Replay", "Buffer", - "BufferList", - "append", - "alloc", - "readUInt32LE", - "consume", - "Math", - "ceil", - "Number", - "isNaN", - "reduce", - "slice", - "all", + "HTMLCanvasElement", + "Promise", + "ArrayBuffer", + "React", + "ReactNode", + "console", + "log", + "Awaited", + "assign", + "byteLength", + "Error", "readUInt8", - "Readable", - "read", - "pipe", - "createInflate", - "Writable", - "write", "length", - "readInt16LE", - "decode", + "reduce", + "readUInt16LE", + "Number", + "isNaN", + "forEach", "includes", - "readInt32LE", - "subarray", "toString", - "HTMLCanvasElement", - "filter", - "findIndex", - "setState", - "find", - "shallowSlice", - "readUInt16LE", - "readUint16LE", - "Int8Array", - "Uint8Array", - "Int16Array", - "Uint16Array", - "Int32Array", - "Uint32Array", - "ArrayBuffer", - "toLowerCase", + "then", + "substr", + "indexOf", + "readUInt32LE", + "flatMap", + "isArray", "replace", - "byteLength", - "splice", + "readInt8", + "Math", + "floor", + "Boolean", + "all", + "slice", + "Uint8Array", + "alloc", + "fill", + "IDBDatabase", + "transaction", + "objectStore", + "clear", + "onsuccess", + "onerror", + "delete", + "resolve", + "put", + "get", + "result", "from", - "buffer", - "byteOffset", - "casclib", - "findFiles", - "fullName", - "writeFileSync", - "join", - "document", - "hidden", - "performance", - "now", - "addEventListener", - "removeEventListener", - "WeakRef", - "deref", - "iterator", - "startsWith", + "error", "fetch", - "then", "arrayBuffer", - "some", - "endsWith", - "path", - "readFile", - "encoding", - "stat", - "isFile", - "readdir", - "isDirectory", - "closeStorage", - "openStorage", - "substr", + "setInterval", + "clearInterval", + "Window", + "Partial", + "set", + "lSet", + "localStorage", + "getItem", + "find", + "String", + "navigator", + "language", + "JSON", + "parse", + "setItem", + "stringify", + "immer", + "NodeJS", + "Timeout", + "SyntheticKeyboardEvent", + "HTMLInputElement", + "KeyboardEvent", + "code", + "ctrlKey", + "altKey", + "shiftKey", + "preventDefault", + "clearTimeout", + "setTimeout", + "join", + "getState", + "env", + "DEV", + "warn", + "debug", + "message", + "stack", + "MathUtils", + "generateUUID", + "findIndex", + "filter", + "Date", + "PROD", + "Required", + "values", + "startsWith", + "keys", + "info", + "json", + "catch", + "text", + "cache", + "deepMerge", + "arrayMerge", + "max", + "WritableDraft", + "splice", + "URLSearchParams", + "window", + "location", + "search", + "close", + "open", + "blur", + "focus", + "setState", + "BufferList", + "shallowSlice", + "consume", + "readInt16LE", "Exclude", "Janitor", "mop", @@ -143,14 +235,15 @@ "flipY", "RGB_S3TC_DXT1_Format", "charCodeAt", - "String", "fromCharCode", + "buffer", + "byteOffset", "Uint8ClampedArray", + "Int32Array", "RGBA_S3TC_DXT3_Format", "RGBA_S3TC_DXT5_Format", "RGB_ETC1_Format", "RGBAFormat", - "max", "data", "width", "height", @@ -165,10 +258,8 @@ "FloatType", "NearestFilter", "dispose", - "access", - "constants", - "R_OK", "DataTexture", + "endsWith", "Worker", "URL", "url", @@ -180,35 +271,20 @@ "mapping", "EquirectangularReflectionMapping", "terminate", - "setInterval", - "clearInterval", - "createElement", - "transferControlToOffscreen", + "subarray", + "min", + "ceil", + "RepeatWrapping", + "Map", + "AbortController", + "signal", + "name", + "abort", + "method", + "headers", "WebGLRenderer", - "OffscreenCanvas", - "OrthographicCamera", - "Scene", - "getContext", - "setSize", - "background", - "render", - "save", - "scale", - "drawImage", - "domElement", - "restore", - "globalCompositeOperation", - "fillStyle", - "fillRect", - "convertToBlob", - "range", "CanvasRenderingContext2D", - "ElementCSSInlineStyle", - "assign", - "style", - "preventDefault", - "floor", - "remove", + "ResizeObserver", "EffectComposer", "frameBufferType", "HalfFloatType", @@ -222,8 +298,8 @@ "stencil", "depth", "precision", - "outputColorSpace", "checkShaderErrors", + "process", "xr", "enabled", "shadowMap", @@ -233,140 +309,259 @@ "autoClear", "setRenderer", "autoRenderToScreen", - "Map", - "get", + "domElement", + "addEventListener", "sort", - "clear", + "disconnect", "setViewport", "Vector4", + "getContext", + "setSize", + "observe", + "Parameters", + "setAnimationLoop", "Pass", "removeAllPasses", "renderToScreen", "addPass", + "Scene", + "Camera", + "setMainCamera", + "setMainScene", + "isPresenting", "setScissorTest", "setScissor", - "setAnimationLoop", + "render", + "drawImage", + "outputColorSpace", "LinearSRGBColorSpace", - "globalAlpha", - "Blob", - "toBlob", - "next", - "value", - "fill", - "min", - "resolve", - "RepeatWrapping", - "Set", - "NodeJS", - "Timeout", - "pop", - "isArray", - "mipmaps", + "initTexture", "has", - "add", - "Texture", - "Object3D", - "Mesh", - "BufferGeometry", - "MeshStandardMaterial", - "SkinnedMesh", - "AnimationClip", - "Group", - "GLTFLoader", - "setMeshoptDecoder", - "WebAssembly", - "validate", - "instantiate", - "instance", - "setKTX2Loader", - "KTX2Loader", - "load", - "GLTF", - "scene", - "animations", - "traverse", - "castShadow", - "receiveShadow", - "material", - "envMap", - "emissive", - "emissiveIntensity", - "userData", - "children", - "position", - "setScalar", + "finally", "CubeTextureLoader", "setPath", "CubeTexture", - "Boolean", + "load", + "ok", + "Texture", + "Blob", + "ChkDowngrader", + "downgrade", + "document", + "title", + "createElement", + "createImageData", + "putImageData", + "Set", + "flat", + "add", + "isInteger", + "CommandsStream", + "Int8Array", + "Int16Array", + "Uint16Array", + "Uint32Array", + "toLowerCase", + "hidden", + "performance", + "now", + "removeEventListener", + "WeakRef", + "deref", + "iterator", "bind", - "readFileSync", "getOwnPropertyDescriptor", "defineProperty", + "Object3D", + "ElementCSSInlineStyle", + "style", + "remove", + "pointerLockElement", + "screen", + "requestPointerLock", + "exitPointerLock", + "display", + "deepDiff", + "diff", + "kind", + "path", + "rhs", + "structuredClone", + "every", + "isFinite", + "MAX_SAFE_INTEGER", + "MIN_SAFE_INTEGER", + "subscribe", + "split", "Effect", "attributes", "EffectAttribute", "DEPTH", "blendFunction", "BlendFunction", - "ALPHA", + "SUBTRACT", "uniforms", "Uniform", "Matrix4", "blendMode", "opacity", + "value", "PerspectiveCamera", + "OrthographicCamera", "copy", "projectionMatrixInverse", "matrixWorld", "RedFormat", "UnsignedByteType", - "pointerLockElement", - "screen", - "requestPointerLock", - "exitPointerLock", - "display", - "deepDiff", - "diff", - "kind", - "rhs", - "deepMerge", - "arrayMerge", - "Required", - "every", - "values", - "isFinite", - "MAX_SAFE_INTEGER", - "MIN_SAFE_INTEGER", - "lSet", - "subscribe", - "split", - "flat", - "delete", + "cursor", + "innerWidth", + "innerHeight", + "debounce", + "passive", + "body", + "appendChild", + "THREE", + "ColorSpace", + "PixelFormat", + "TextureDataType", + "PixelFormatGPU", + "internalFormat", + "RedIntegerFormat", + "UnsignedShortType", + "getImageData", + "WebGLRenderTarget", + "texture", + "Matrix3", + "CopyPass", + "KawaseBlurPass", + "kernelSize", + "ClearPass", + "EffectPass", + "NORMAL", + "defines", + "encoding", + "setChanged", + "setVertexShader", + "ColorChannel", + "RED", + "GREEN", + "BLUE", + "ALPHA", + "matrixAutoUpdate", + "updateMatrix", + "matrix", + "passes", + "KernelSize", + "VERY_SMALL", + "getRenderer", + "readRenderTargetPixels", + "Group", + "Mesh", + "BufferGeometry", + "MeshStandardMaterial", + "MeshBasicMaterial", + "castShadow", + "receiveShadow", + "material", + "bumpScale", + "envMapIntensity", + "mergeVertices", + "PlaneGeometry", + "willReadFrequently", + "getAttribute", + "count", + "InterleavedBufferAttribute", + "setXYZ", + "computeVertexNormals", + "roughness", + "bumpMap", + "envMap", + "fog", + "Shader", + "fragmentShader", + "vertexShader", + "ShaderChunk", + "uv_vertex", + "displacementmap_vertex", + "onBeforeCompile", + "userData", + "position", + "rotation", + "x", + "PI", + "visible", + "lookAt", + "capabilities", + "getMaxAnisotropy", + "LinearEncoding", + "generateMipmaps", + "setRenderTarget", + "trash", + "transparent", + "side", + "DoubleSide", + "scale", + "z", + "y", + "HUGE", + "maxTextureSize", + "logLevel", + "JanitorLogLevel", + "None", + "Debug", + "Info", + "BYTES_PER_ELEMENT", + "enumerable", + "configurable", + "PropertyDescriptor", + "getPrototypeOf", + "pop", + "children", + "color", + "Material", + "geometry", + "DirectionalLight", + "target", + "shadow", + "camera", + "near", + "far", + "normalBias", + "radius", + "left", + "right", + "top", + "bottom", + "mapSize", + "layers", + "enableAll", + "intensity", + "updateMatrixWorld", + "matrixWorldAutoUpdate", + "background", + "environment", + "removeFromParent", + "SkinnedMesh", + "AnimationClip", "AnimationMixer", "Box3", "Sphere", "AnimationAction", "SpriteMaterialParameters", - "defines", - "fog", - "Shader", - "fragmentShader", - "ShaderChunk", "map_fragment", "clone", + "traverse", "skeleton", "bones", "bindMatrix", "Bone", - "color", "lightMap", "lightMapIntensity", "aoMap", "aoMapIntensity", + "emissive", "emissiveMap", - "bumpMap", - "bumpScale", + "emissiveIntensity", "normalMap", "normalMapType", "normalScale", @@ -376,52 +571,37 @@ "roughnessMap", "metalnessMap", "alphaMap", - "envMapIntensity", "wireframe", "wireframeLinewidth", "wireframeLinecap", "wireframeLinejoin", "flatShading", "pose", - "geometry", "boundingBox", "tracks", "times", "clipAction", "play", "update", - "updateMatrixWorld", "boneMatrices", "index", "bindMatrixInverse", - "count", - "fromBufferAttribute", "array", - "applyMatrix4", + "fromBufferAttribute", "getComponent", "fromArray", - "multiplyScalar", "expandByPoint", "stop", + "applyMatrix4", "boundingSphere", "getCenter", "center", - "radius", "getSize", "computeBoundingSphere", "computeBoundingBox", "Box3Helper", "setTime", - "matrixAutoUpdate", - "matrixWorldAutoUpdate", - "name", - "rotation", - "MeshBasicMaterial", - "x", - "y", - "vertexShader", "project_vertex", - "transparent", "setIndex", "setAttribute", "alphaTest", @@ -430,19 +610,12 @@ "NormalBlending", "Raycaster", "Intersection", - "setFromMatrixScale", - "camera", "modelViewMatrix", "multiplyMatrices", "matrixWorldInverse", - "setFromMatrixPosition", - "multiply", "ray", "intersectTriangle", "origin", - "distanceTo", - "near", - "far", "Triangle", "getInterpolation", "distance", @@ -450,105 +623,7 @@ "uv", "face", "object", - "removeFromParent", - "Material", - "setY", - "setX", - "DirectionalLight", - "target", - "shadow", - "normalBias", - "left", - "right", - "top", - "bottom", - "mapSize", - "layers", - "enableAll", - "visible", - "intensity", - "Parameters", - "updateMatrix", - "PI", - "environment", - "size", - "THREE", - "ColorSpace", - "PixelFormat", - "TextureDataType", - "PixelFormatGPU", - "internalFormat", - "TextureLoader", - "loadAsync", - "RedIntegerFormat", - "UnsignedShortType", - "getImageData", - "WebGLRenderTarget", - "texture", - "Matrix3", - "CopyPass", - "KawaseBlurPass", - "kernelSize", - "ClearPass", - "EffectPass", - "NORMAL", - "setChanged", - "setVertexShader", - "ColorChannel", - "RED", - "GREEN", - "BLUE", - "matrix", - "passes", - "KernelSize", - "VERY_SMALL", - "getRenderer", - "readRenderTargetPixels", - "window", - "innerWidth", - "innerHeight", - "mergeVertices", - "PlaneGeometry", - "willReadFrequently", - "getAttribute", - "InterleavedBufferAttribute", - "addScaledVector", - "setXYZ", - "z", - "computeVertexNormals", - "roughness", - "uv_vertex", - "displacementmap_vertex", - "onBeforeCompile", - "lookAt", - "capabilities", - "getMaxAnisotropy", - "LinearEncoding", - "generateMipmaps", - "setRenderTarget", - "trash", - "side", - "DoubleSide", - "HUGE", - "maxTextureSize", - "logLevel", - "JanitorLogLevel", - "None", - "Debug", - "Info", - "divideScalar", - "BYTES_PER_ELEMENT", - "tileset", - "_tiles", - "units", - "unitId", - "player", - "enumerable", - "configurable", - "PropertyDescriptor", - "getPrototypeOf", "renderOrder", - "MathUtils", "damp", "parent", "matrixWorldNeedsUpdate", @@ -556,52 +631,24 @@ "frustumCulled", "setUsage", "DynamicDrawUsage", - "r", - "g", - "b", "setXY", "setZ", + "setX", + "setY", "compose", "quaternion", "toArray", "Verbose", - "catch", - "HTMLElement", - "WheelEvent", - "deltaY", - "setTimeout", - "clearTimeout", - "MouseEvent", - "clientX", - "clientY", - "movementX", - "movementY", - "PointerEvent", - "altKey", - "ctrlKey", - "shiftKey", - "button", - "body", - "KeyboardEvent", - "code", - "trim", - "SelectionBox", - "startPoint", - "abs", - "endPoint", - "Camera", - "unproject", + "generate", + "next", + "done", + "frame", + "clamp", "Plane", "intersectLine", "Line3", "Infinity", - "setFromCamera", - "intersectObjects", - "select", - "lerp", - "clamp", "CameraControls", - "setComponent", "random", "sin", "shuffle", @@ -613,14 +660,12 @@ "getTarget", "getPosition", "atan2", - "dampingFactor", + "getWorldPosition", + "smoothTime", + "setTarget", "decompose", "Quaternion", "Omit", - "cursor", - "debounce", - "passive", - "appendChild", "aspect", "updateProjectionMatrix", "GainNode", @@ -633,7 +678,6 @@ "gain", "setTargetAtTime", "currentTime", - "applyQuaternion", "listener", "positionX", "linearRampToValueAtTime", @@ -648,49 +692,25 @@ "numberOfChannels", "getChannelData", "loop", - "AudioBuffer", "decodeAudioData", + "AudioBuffer", "AudioNode", - "disconnect", + "abs", "WaveShaperNode", "curve", "setValueAtTime", "exponentialRampToValueAtTime", - "RenderPass", - "BrightnessContrastEffect", - "ToneMappingEffect", - "mode", - "ToneMappingMode", - "ACES_FILMIC", - "SelectiveBloomEffect", - "DepthOfFieldEffect", - "skipShadowMapUpdate", - "ignoreBackground", - "LARGE", - "luminanceThreshold", - "luminanceSmoothing", - "mipmapBlur", - "selection", - "blurMaterial", - "resolution", - "preferredHeight", - "bokehScale", - "maxSamples", - "brightness", - "contrast", - "toneMappingExposure", - "calculateFocusDistance", - "circleOfConfusionMaterial", - "focusDistance", - "enable", - "layer", - "isMesh", - "shallow", - "setMainScene", - "setMainCamera", - "getObjectByName", - "depthTest", - "depthWrite", + "WebXRManager", + "XRReferenceSpace", + "XRControllerModelFactory", + "XRTargetRaySpace", + "XRInputSource", + "ConstructorParameters", + "getReferenceSpace", + "getController", + "getFrame", + "getViewerPose", + "transform", "AudioBufferSourceNode", "PannerNode", "StereoPannerNode", @@ -708,62 +728,316 @@ "AudioListener", "setVolume", "setBuffer", - "IterableIterator" + "IterableIterator", + "RenderPass", + "BrightnessContrastEffect", + "ToneMappingEffect", + "mode", + "ToneMappingMode", + "ACES_FILMIC", + "SelectiveBloomEffect", + "DepthOfFieldEffect", + "skipShadowMapUpdate", + "ignoreBackground", + "LARGE", + "luminanceThreshold", + "luminanceSmoothing", + "mipmapBlur", + "selection", + "blurMaterial", + "resolution", + "preferredHeight", + "bokehScale", + "maxSamples", + "brightness", + "contrast", + "toneMappingExposure", + "calculateFocusDistance", + "circleOfConfusionMaterial", + "focusDistance", + "enable", + "layer", + "isMesh", + "shallow", + "compile", + "getObjectByName", + "depthTest", + "depthWrite", + "HTMLSpanElement", + "outline", + "pointerEvents", + "HTMLElement", + "WheelEvent", + "deltaY", + "MouseEvent", + "clientX", + "clientY", + "movementX", + "movementY", + "PointerEvent", + "button", + "ShaderMaterial", + "updateWorldMatrix", + "projectionMatrix", + "makeScale", + "setFromMatrix4", + "uniformsNeedUpdate", + "setFromCamera", + "raycast", + "SelectionBox", + "startPoint", + "endPoint", + "intersectObjects", + "scene", + "select", + "some", + "usage", + "StaticDrawUsage", + "HTMLIFrameElement", + "backgroundColor", + "border", + "zIndex", + "userSelect", + "sandbox", + "header", + "Root", + "createRoot", + "getElementById", + "useRef", + "HTMLPreElement", + "useEffect", + "mark", + "requestAnimationFrame", + "measure", + "clearMarks", + "clearMeasures", + "duration", + "current", + "innerText", + "div", + "flexDirection", + "fontFamily", + "img", + "borderRadius", + "src", + "p", + "marginBlock", + "CSSProperties", + "HTMLDivElement", + "className", + "ref", + "useLayoutEffect", + "useMemo", + "backgroundSize", + "animation", + "pre", + "key", + "onload", + "contentWindow", + "Transferable", + "visibility", + "MessageEvent", + "ArrayBufferLike", + "throttle", + "leading", + "trailing", + "entries", + "groupBy", + "randInt", + "Function", + "HTMLParagraphElement", + "trim", + "onEnded", + "isPlaying", + "useState", + "id", + "justifyContent", + "alignItems", + "svg", + "onClick", + "xmlns", + "viewBox", + "strokeWidth", + "stroke", + "float", + "strokeLinecap", + "strokeLinejoin", + "d", + "padding", + "gap", + "stopPropagation", + "h1", + "a", + "textDecoration", + "href", + "maxHeight", + "overflow", + "overflowX", + "table", + "fontSize", + "marginTop", + "thead", + "th", + "tr", + "td", + "textAlign", + "FC", + "XRSession", + "useCallback", + "isSessionSupported", + "requestSession", + "end", + "EXRLoader", + "loadAsync", + "AdditiveBlending", + "vertexColors", + "Points", + "Float32BufferAttribute", + "tan", + "degToRad", + "getEffectiveFOV", + "euclideanModulo", + "smoothstep", + "GLTFLoader", + "setMeshoptDecoder", + "WebAssembly", + "validate", + "instantiate", + "instance", + "setKTX2Loader", + "KTX2Loader", + "GLTF", + "animations", + "MeshPhysicalMaterial", + "metalness", + "transmission", + "thickness", + "lerp", + "randFloatSpread", + "PointLight", + "detune", + "BiquadFilterNode", + "BiquadFilterType", + "createBiquadFilter", + "frequency", + "pow", + "Q", + "normal", + "randFloat", + "pingpong", + "polarAngle", + "zoomTo", + "setLookAt", + "sign", + "rotate", + "rotatePolarTo", + "maxPolarAngle", + "minPolarAngle", + "maxAzimuthAngle", + "minAzimuthAngle", + "devicePixelRatio", + "PointsMaterial", + "sizeAttenuation", + "size", + "createOscillator", + "SphereGeometry", + "GodRaysEffect", + "SMALL", + "density", + "decay", + "weight", + "exposure", + "samples", + "clampMax", + "SCREEN", + "GlitchEffect", + "chromaticAberrationOffset", + "ChromaticAberrationEffect", + "offset", + "columns", + "delay", + "strength", + "OVERLAY", + "setOpacity", + "VignetteEffect", + "darkness", + "BloomEffect", + "SMAAEffect", + "azimuthAngle", + "DEG2RAD", + "minStrength", + "maxStrength", + "flex", + "flexGrow", + "gridTemplateColumns", + "paddingInline", + "maxWidth", + "players", + "gameName", + "chk", + "gameType", + "race", + "rawCmds", + "stormPlayerToGamePlayer", + "limits", + "units", + "frameCount", + "tbody", + "toUpperCase", + "marginLeft", + "backgroundRepeat", + "mapName", + "marginInline", + "margin", + "JSX", + "IntrinsicAttributes", + "SVGProps", + "SVGSVGElement", + "click", + "input", + "multiple", + "accept", + "onChange", + "files", + "File", + "FileReader", + "onloadend", + "readyState", + "DONE", + "readAsArrayBuffer", + "requestFullscreen", + "rel", + "onMouseEnter", + "onMouseLeave" ], "notFound": [ "undefined", - "globalThis", - "defaultMacros", - "pluginsMetadata", - "NODE_ENV", - "pkware", - "zlib", - "iconv", - "nextQueuedReplay", - "filepaths", - "fs", + "sceneStore", "gameStore", - "electronFileLoader", - "fsPromises", - "promises", - "const", "processStore", + "imageNames", + "spriteNames", + "buffer", + "defaultMacros", + "meta", + "length", + "_map", + "_enabled", + "_replay", + "const", "diffuse", "teamcolor", "emissive", - "meta", "format", - "canvas", - "destCanvas", - "icons", + "NODE_ENV", "renderToScreen", - "length", - "charCodeAt", - "exports", - "__wasm_call_ctors", - "sbrk", - "memory", - "buffer", - "set", - "meshopt_decodeVertexBuffer", - "meshopt_decodeIndexBuffer", - "meshopt_decodeIndexSequence", - "mesh", - "locateFile", - "wasmBinary", + "uniq", + "sprite", + "image", + "index", + "filepaths", "loadBuffers", - "label", - "value", - "options", - "hidden", - "conditionOnly", - "min", - "max", - "step", - "position", - "skinIndex", - "skinWeight", - "imageIndex", + "globalThis", "copy", "simplifyGeometry", "quartileSize", @@ -781,22 +1055,52 @@ "uResolution", "terrainExtra", "data", + "position", + "skinIndex", + "skinWeight", + "imageIndex", "imageAddress", - "uniq", - "sprite", - "image", - "index", - "sceneComposer", "queue", - "play" + "play", + "sceneComposer", + "r", + "g", + "b", + "uSize", + "props", + "type", + "default", + "postprocessing", + "context", + "xr", + "setSession", + "USE_SPRITEMAP", + "USE_SIZEATTENUATION", + "size", + "color", + "angle", + "frame", + "scale", + "charCodeAt", + "exports", + "__wasm_call_ctors", + "sbrk", + "memory", + "set", + "meshopt_decodeVertexBuffer", + "meshopt_decodeIndexBuffer", + "meshopt_decodeIndexSequence", + "mesh", + "packageJSON", + "version" ], "externNamedImportNodes": [ - "import { ipcRenderer } from \"electron\";", - "import { Vector2 } from \"three\";", - "import { Color } from \"three\";", - "import { Vector3 } from \"three\";", - "import { Readable } from \"stream\";", - "import { Writable } from \"stream\";", + "import { Replay } from \"process-replay\";", + "import { log } from \"@ipc/log\";", + "import { immer } from \"zustand/middleware/immer\";", + "import { KeyboardEvent } from \"react\";", + "import { MathUtils } from \"three\";", + "import { WritableDraft } from \"immer/dist/internal\";", "import { Janitor } from \"three-janitor\";", "import { SRGBColorSpace } from \"three\";", "import { CompressedTexture } from \"three\";", @@ -816,57 +1120,31 @@ "import { RGBE } from \"three/examples/jsm/loaders/RGBELoader\";", "import { EXR } from \"three/examples/jsm/loaders/EXRLoader\";", "import { EquirectangularReflectionMapping } from \"three\";", + "import { RepeatWrapping } from \"three\";", "import { WebGLRenderer } from \"three\";", - "import { OrthographicCamera } from \"three\";", - "import { Scene } from \"three\";", - "import { range } from \"lodash\";", "import { EffectComposer } from \"postprocessing\";", "import { HalfFloatType } from \"three\";", "import { VSMShadowMap } from \"three\";", "import { Vector4 } from \"three\";", "import { Pass } from \"postprocessing\";", + "import { Scene } from \"three\";", + "import { Camera } from \"three\";", "import { LinearSRGBColorSpace } from \"three\";", - "import { RepeatWrapping } from \"three\";", - "import { Texture } from \"three\";", - "import { Object3D } from \"three\";", - "import { Mesh } from \"three\";", - "import { BufferGeometry } from \"three\";", - "import { MeshStandardMaterial } from \"three\";", - "import { SkinnedMesh } from \"three\";", - "import { AnimationClip } from \"three\";", - "import { Group } from \"three\";", - "import { GLTFLoader } from \"three/examples/jsm/loaders/GLTFLoader\";", - "import { KTX2Loader } from \"three/examples/jsm/loaders/KTX2Loader\";", - "import { GLTF } from \"three/examples/jsm/loaders/GLTFLoader\";", "import { CubeTextureLoader } from \"three\";", "import { CubeTexture } from \"three\";", - "import { readFileSync } from \"fs\";", + "import { Texture } from \"three\";", + "import { ChkDowngrader } from \"process-replay\";", + "import { CommandsStream } from \"process-replay\";", + "import { Object3D } from \"three\";", "import { Effect } from \"postprocessing\";", "import { EffectAttribute } from \"postprocessing\";", "import { BlendFunction } from \"postprocessing\";", "import { Uniform } from \"three\";", "import { Matrix4 } from \"three\";", "import { PerspectiveCamera } from \"three\";", + "import { OrthographicCamera } from \"three\";", "import { RedFormat } from \"three\";", "import { UnsignedByteType } from \"three\";", - "import { AnimationMixer } from \"three\";", - "import { Box3 } from \"three\";", - "import { Sphere } from \"three\";", - "import { AnimationAction } from \"three\";", - "import { SpriteMaterialParameters } from \"three\";", - "import { Shader } from \"three\";", - "import { ShaderChunk } from \"three\";", - "import { Bone } from \"three\";", - "import { Box3Helper } from \"three\";", - "import { MeshBasicMaterial } from \"three\";", - "import { SubtractiveBlending } from \"three\";", - "import { NormalBlending } from \"three\";", - "import { Raycaster } from \"three\";", - "import { Intersection } from \"three\";", - "import { Triangle } from \"three\";", - "import { Material } from \"three\";", - "import { DirectionalLight } from \"three\";", - "import { TextureLoader } from \"three\";", "import { WebGLRenderTarget } from \"three\";", "import { Matrix3 } from \"three\";", "import { CopyPass } from \"postprocessing\";", @@ -875,119 +1153,185 @@ "import { EffectPass } from \"postprocessing\";", "import { ColorChannel } from \"postprocessing\";", "import { KernelSize } from \"postprocessing\";", + "import { Group } from \"three\";", + "import { Mesh } from \"three\";", + "import { BufferGeometry } from \"three\";", + "import { MeshStandardMaterial } from \"three\";", + "import { MeshBasicMaterial } from \"three\";", "import { mergeVertices } from \"three/examples/jsm/utils/BufferGeometryUtils\";", "import { PlaneGeometry } from \"three\";", "import { InterleavedBufferAttribute } from \"three\";", + "import { Shader } from \"three\";", + "import { ShaderChunk } from \"three\";", "import { LinearEncoding } from \"three\";", "import { DoubleSide } from \"three\";", "import { JanitorLogLevel } from \"three-janitor\";", - "import { MathUtils } from \"three\";", + "import { Material } from \"three\";", + "import { DirectionalLight } from \"three\";", + "import { SkinnedMesh } from \"three\";", + "import { AnimationClip } from \"three\";", + "import { AnimationMixer } from \"three\";", + "import { Box3 } from \"three\";", + "import { Sphere } from \"three\";", + "import { AnimationAction } from \"three\";", + "import { SpriteMaterialParameters } from \"three\";", + "import { Bone } from \"three\";", + "import { Box3Helper } from \"three\";", + "import { SubtractiveBlending } from \"three\";", + "import { NormalBlending } from \"three\";", + "import { Raycaster } from \"three\";", + "import { Intersection } from \"three\";", + "import { Triangle } from \"three\";", "import { InstancedBufferAttribute } from \"three\";", "import { DynamicDrawUsage } from \"three\";", - "import { SelectionBox } from \"three/examples/jsm/interactive/SelectionBox\";", - "import { Camera } from \"three\";", "import { Plane } from \"three\";", "import { Line3 } from \"three\";", "import { Quaternion } from \"three\";", "import { AudioContext } from \"three\";", + "import { WebXRManager } from \"three\";", + "import { XRControllerModelFactory } from \"three/examples/jsm/webxr/XRControllerModelFactory.js\";", + "import { XRTargetRaySpace } from \"three\";", + "import { Audio } from \"three\";", + "import { AudioListener } from \"three\";", "import { RenderPass } from \"postprocessing\";", "import { BrightnessContrastEffect } from \"postprocessing\";", "import { ToneMappingEffect } from \"postprocessing\";", "import { ToneMappingMode } from \"postprocessing\";", "import { SelectiveBloomEffect } from \"postprocessing\";", "import { DepthOfFieldEffect } from \"postprocessing\";", - "import { Audio } from \"three\";", - "import { AudioListener } from \"three\";" + "import { ShaderMaterial } from \"three\";", + "import { SelectionBox } from \"three/examples/jsm/interactive/SelectionBox\";", + "import { StaticDrawUsage } from \"three\";", + "import { Root } from \"react-dom/client\";", + "import { createRoot } from \"react-dom/client\";", + "import { useRef } from \"react\";", + "import { useEffect } from \"react\";", + "import { useLayoutEffect } from \"react\";", + "import { useMemo } from \"react\";", + "import { useState } from \"react\";", + "import { useCallback } from \"react\";", + "import { EXRLoader } from \"three/examples/jsm/loaders/EXRLoader.js\";", + "import { AdditiveBlending } from \"three/src/constants\";", + "import { Points } from \"three/src/objects/Points\";", + "import { Float32BufferAttribute } from \"three/src/core/BufferAttribute\";", + "import { GLTFLoader } from \"three/examples/jsm/loaders/GLTFLoader\";", + "import { KTX2Loader } from \"three/examples/jsm/loaders/KTX2Loader\";", + "import { GLTF } from \"three/examples/jsm/loaders/GLTFLoader\";", + "import { MeshPhysicalMaterial } from \"three\";", + "import { PointLight } from \"three\";", + "import { PointsMaterial } from \"three\";", + "import { SphereGeometry } from \"three\";", + "import { GodRaysEffect } from \"postprocessing\";", + "import { GlitchEffect } from \"postprocessing\";", + "import { ChromaticAberrationEffect } from \"postprocessing\";", + "import { VignetteEffect } from \"postprocessing\";", + "import { BloomEffect } from \"postprocessing\";", + "import { SMAAEffect } from \"postprocessing\";", + "import { SVGProps } from \"react\";" ], "externNamedImports": [ - "import { Vector2, Color, Vector3, DataTexture, PerspectiveCamera, OrthographicCamera, Texture, Matrix4, Vector4, CompressedTexture, BufferAttribute, DataArrayTexture, CubeTexture, Object3D, Mesh, BufferGeometry, MeshBasicMaterial, SpriteMaterialParameters, Shader, MeshStandardMaterial, SkinnedMesh, AnimationClip, AudioContext, Quaternion, AnimationMixer, Box3, Sphere, Raycaster, Intersection, Group, Scene, Camera } from \"three\";", + "import { CommandsStream, Replay } from \"process-replay\";", + "import { DataTexture, PerspectiveCamera, OrthographicCamera, Texture, Matrix4, Vector4, CompressedTexture, BufferAttribute, DataArrayTexture, CubeTexture, Object3D, Mesh, BufferGeometry, MeshBasicMaterial, SpriteMaterialParameters, Shader, MeshStandardMaterial, SkinnedMesh, AnimationClip, AudioListener, Audio, AudioContext, Quaternion, AnimationMixer, Box3, Sphere, Raycaster, Intersection, Group, Scene, Camera, WebXRManager, XRTargetRaySpace } from \"three\";", "import { Effect } from \"postprocessing\";", - "import { Janitor } from \"three-janitor\";" + "import { Janitor } from \"three-janitor\";", + "import { XRControllerModelFactory } from \"three/examples/jsm/webxr/XRControllerModelFactory.js\";" ], "externDefaultImportNodes": [ "import create from \"zustand\";", - "import ipcRenderer from \"electron\";", - "import Chk from \"bw-chk\";", - "import Color from \"three\";", + "import Replay from \"process-replay\";", + "import log from \"@ipc/log\";", + "import lSet from \"lodash.set\";", + "import immer from \"zustand/middleware/immer\";", + "import KeyboardEvent from \"react\";", + "import MathUtils from \"three\";", + "import deepMerge from \"deepmerge\";", + "import WritableDraft from \"immer/dist/internal\";", "import BufferList from \"bl\";", - "import Writable from \"stream\";", - "import casclib from \"bw-casclib\";", - "import path from \"path\";", "import Janitor from \"three-janitor\";", "import ClampToEdgeWrapping from \"three\";", "import RGB_ETC1_Format from \"three\";", "import BufferAttribute from \"three\";", "import RGBE from \"three/examples/jsm/loaders/RGBELoader\";", "import EXR from \"three/examples/jsm/loaders/EXRLoader\";", - "import OrthographicCamera from \"three\";", - "import range from \"lodash\";", - "import EffectComposer from \"postprocessing\";", - "import HalfFloatType from \"three\";", "import RepeatWrapping from \"three\";", - "import AnimationClip from \"three\";", - "import KTX2Loader from \"three/examples/jsm/loaders/KTX2Loader\";", - "import GLTF from \"three/examples/jsm/loaders/GLTFLoader\";", + "import EffectComposer from \"postprocessing\";", + "import Camera from \"three\";", "import CubeTexture from \"three\";", - "import readFileSync from \"fs\";", - "import Effect from \"postprocessing\";", - "import Vector3 from \"three\";", + "import ChkDowngrader from \"process-replay\";", + "import CommandsStream from \"process-replay\";", "import get from \"lodash.get\";", "import deepDiff from \"deep-diff\";", - "import set from \"lodash.set\";", - "import deepMerge from \"deepmerge\";", - "import lSet from \"lodash.set\";", - "import AnimationAction from \"three\";", - "import DirectionalLight from \"three\";", + "import Effect from \"postprocessing\";", + "import debounce from \"lodash.debounce\";", "import THREE from \"three\";", - "import TextureLoader from \"three\";", "import Matrix3 from \"three\";", "import ColorChannel from \"postprocessing\";", + "import Group from \"three\";", + "import BufferGeometry from \"three\";", "import mergeVertices from \"three/examples/jsm/utils/BufferGeometryUtils\";", "import DoubleSide from \"three\";", - "import SelectionBox from \"three/examples/jsm/interactive/SelectionBox\";", - "import Camera from \"three\";", + "import DirectionalLight from \"three\";", + "import AnimationClip from \"three\";", + "import AnimationAction from \"three\";", "import CameraControls from \"camera-controls\";", "import shuffle from \"lodash.shuffle\";", - "import Quaternion from \"three\";", - "import debounce from \"lodash.debounce\";", "import AudioContext from \"three\";", + "import XRControllerModelFactory from \"three/examples/jsm/webxr/XRControllerModelFactory.js\";", + "import AudioListener from \"three\";", "import BrightnessContrastEffect from \"postprocessing\";", "import shallow from \"zustand/shallow\";", - "import AudioListener from \"three\";" + "import ShaderMaterial from \"three\";", + "import SelectionBox from \"three/examples/jsm/interactive/SelectionBox\";", + "import createRoot from \"react-dom/client\";", + "import useEffect from \"react\";", + "import useLayoutEffect from \"react\";", + "import throttle from \"lodash.throttle\";", + "import groupBy from \"lodash.groupby\";", + "import EXRLoader from \"three/examples/jsm/loaders/EXRLoader.js\";", + "import AdditiveBlending from \"three/src/constants\";", + "import Points from \"three/src/objects/Points\";", + "import Float32BufferAttribute from \"three/src/core/BufferAttribute\";", + "import KTX2Loader from \"three/examples/jsm/loaders/KTX2Loader\";", + "import GLTF from \"three/examples/jsm/loaders/GLTFLoader\";", + "import MeshPhysicalMaterial from \"three\";", + "import random from \"random\";", + "import SVGProps from \"react\";" ], "externDefaultImports": [ - "import Chk from \"bw-chk\";", "import CameraControls from \"camera-controls\";" ], "nameClash": [ + "id", + "config", "value", "path", "max", + "delta", "frame", + "world", + "map", "color", - "buffer", - "x", - "y", - "unitTag", - "unit", - "unitTags", - "slotIds", - "player", - "data", + "colors", "texture", "effect", + "camera", + "buffer", "width", "height", + "args", "opts", + "getValue", "unitId", + "x", + "y", "index", "typeId", "volume", "pan", "e", + "dst", "offset", "size", - "files", "openBW", "units", "assets", @@ -997,57 +1341,70 @@ "h", "pos", "uv", + "minimapConsole", + "loader", + "buf", + "url", + "refId", + "grp", + "iscript", + "stride", + "sounds", "file", + "upgrades", + "orders", + "data", "images", - "grp", + "sprites", "image", "sprite", - "buf", - "refId", - "stride", - "readCascFile", - "atlas", "val", "flipped", "mesh", + "sound", "gain", - "version", "position", + "sceneController", + "z", "noise", "source", + "unit", "scene", "terrain", "qx", "qy", "quartileWidth", "quartileHeight", - "worker", "tiles", "v", "out", "addr", "heap", + "dest", + "fn", "settings", - "ctx", - "canvas", + "events", + "vars", + "action", + "sourceOfTruth", "janitor", "viewport", "bl", - "replay", - "header", - "frameCount" + "pluginPackage", + "replay" ], "failedToPrint": [ "Record", "T", - "Promise", + "Vector2", "ReturnType", + "Chk", "Array", + "Color", + "Vector3", "Pick", "Symbol", "ArrayConstructor", - "Buffer", - "Generator", "Uint8Array", "Int8Array", "Int16Array", @@ -1055,11 +1412,13 @@ "Int32Array", "Uint32Array", "ArrayBuffer", + "Promise", + "Buffer", + "Generator", "Awaited", + "Map", "Exclude", "Blob", - "Partial", - "SharedArrayBuffer", "GainNode", "DynamicsCompressorNode", "AudioBufferSourceNode", @@ -1075,10 +1434,14 @@ "Worker", "K", "HTMLCanvasElement", + "Partial", "P", - "CanvasRenderingContext2D", "ElementCSSInlineStyle", + "CanvasRenderingContext2D", "HTMLElement", - "Omit" + "Omit", + "XRReferenceSpace", + "XRInputSource", + "ConstructorParameters" ] } \ No newline at end of file diff --git a/build/api-types/index.ts b/build/api-types/index.ts index 6ad54506..68f0ca81 100644 --- a/build/api-types/index.ts +++ b/build/api-types/index.ts @@ -4,40 +4,25 @@ import { fn } from "./util"; import { unrollTypes } from "./unroll-types"; const doThing = async () => { - console.log("building runtime types"); - const runtimeTypes = await unrollTypes({ - tsConfigFilePath: fn("./tsconfig.json"), - inFiles: ["./src/runtime.tsx"], - defaultInternal: true, - globalExternals: [ - `var registerComponent: ( component: Partial>, JSXElement: React.FC ) => void;`, - ] - }); - writeFile( - fn("./build/api-types/ui/unrolled.json"), - JSON.stringify(runtimeTypes.diagnostics, null, 4) - ); - writeFile(fn("./build/api-types/ui/index.d.ts"), runtimeTypes.content); + console.log("building plugin host types"); const pluginHostTypes = await unrollTypes({ tsConfigFilePath: fn("./tsconfig.json"), - inFiles: ["./src/renderer/utils/types/plugin-host-types.ts"], + inFiles: ["./src/utils/types/plugin-host-types.ts"], defaultInternal: true, compilerOptions: { allowJs: false, }, - prefix: `/// -import { Janitor } from "three-janitor"; -`, - wrapInGlobal: ["PluginBase", "SceneController", "enums", "context"], + // prefix: `/// `, + wrapInGlobal: ["PluginBase", "SceneController", "VRSceneController", "enums", "context"], globalExternals: [ `var THREE: typeof import("three");`, `var postprocessing: typeof import("postprocessing");`, `var CameraControls: typeof import("camera-controls");`, //todo properly type common/enums `var enums: any;`, - `var Janitor: typeof Janitor;`, + `var Janitor: typeof import("three-janitor");`, ] }); writeFile( @@ -45,6 +30,22 @@ import { Janitor } from "three-janitor"; JSON.stringify(pluginHostTypes.diagnostics, null, 4) ); writeFile(fn("./build/api-types/host/index.d.ts"), pluginHostTypes.content); + + console.log("building runtime types"); + const runtimeTypes = await unrollTypes({ + tsConfigFilePath: fn("./tsconfig.json"), + inFiles: ["./src/runtime.tsx"], + defaultInternal: true, + globalExternals: [ + `var registerComponent: ( component: Partial>, JSXElement: React.FC ) => void;`, + ] + }); + writeFile( + fn("./build/api-types/ui/unrolled.json"), + JSON.stringify(runtimeTypes.diagnostics, null, 4) + ); + writeFile(fn("./build/api-types/ui/index.d.ts"), runtimeTypes.content); + }; doThing(); diff --git a/build/api-types/ui/index.d.ts b/build/api-types/ui/index.d.ts index 3b341971..50f5ce24 100644 --- a/build/api-types/ui/index.d.ts +++ b/build/api-types/ui/index.d.ts @@ -1,58 +1,35 @@ - import Chk from "bw-chk" -import React from "react" + import React from "react" +import Chk from "bw-chk" +import { Replay } from "process-replay"; import { CompressedTexture, BufferAttribute, DataArrayTexture, CubeTexture, DataTexture, Texture } from "three"; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** @internal */ declare function chunk(arr: Int32Array, n: number): Int32Array[]; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx -/** - * @internal - */ -declare function convertIcons({ cmdIcons, gameIcons, raceInsetIcons, wireframeIcons, workerIcons, }: Required): { - cmdIcons: string[]; - wireframeIcons: string[]; - raceInsetIcons: { - protoss: string; - terran: string; - zerg: string; - }; - workerIcons: { - protoss: string; - terran: string; - zerg: string; - apm: string; - }; - gameIcons: { - energy: string; - minerals: string; - protoss: string; - terran: string; - zerg: string; - vespeneProtoss: string; - vespeneTerran: string; - vespeneZerg: string; - }; -}; +/** @internal */ +interface Component { + pluginId: string; + id: number; + order: number | undefined; + messageHandler: EventTarget; + JSXElement: React.FC; + snap: string; +} -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/plugin-system-ui.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** @internal */ -interface SystemReadyMessage { - initialStore: PluginStateMessage; - plugins: PluginMetaData[]; - assets: Pick; - enums: any; -} +type StateMessage = Partial; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/plugin-system-ui.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/plugin-system-ui.ts /** * @resolve @@ -62,7 +39,7 @@ interface PluginStateMessage { language: string; [UI_STATE_EVENT_DIMENSIONS_CHANGED]: MinimapDimensions; [UI_STATE_EVENT_SCREEN_CHANGED]: { - screen: SceneStateID | undefined; + screen: TRSceneID | undefined; error: string | undefined; }; [UI_STATE_EVENT_WORLD_CHANGED]: ReturnType; @@ -76,12 +53,12 @@ interface PluginStateMessage { [UI_STATE_EVENT_UNITS_SELECTED]: DumpedUnit[] | DeepPartial[]; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/events.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/events.ts /** @internal */ declare const UI_STATE_EVENT_DIMENSIONS_CHANGED = "dimensions"; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/render/minimap-dimensions.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/render/minimap-dimensions.ts /** @internal */ interface MinimapDimensions { matrix: number[]; @@ -89,21 +66,22 @@ interface MinimapDimensions { minimapHeight: number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/events.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/events.ts /** @internal */ declare const UI_STATE_EVENT_SCREEN_CHANGED = "screen"; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/scenes/scene.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/scenes/scene.ts +/// /** @internal */ -declare type SceneStateID = "@home" | "@loading" | "@replay" | "@map" | "@iscriptah" | "@interstitial"; +type TRSceneID = "@home" | "@loading" | "@replay" | "@map" | "@iscriptah" | "@interstitial" | "@auth"; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/events.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/events.ts /** @internal */ declare const UI_STATE_EVENT_WORLD_CHANGED = "world"; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/plugin-system-ui.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/plugin-system-ui.ts /** @internal */ declare const worldPartial: (world: ReplayAndMapStore) => { @@ -121,7 +99,7 @@ declare const worldPartial: (world: ReplayAndMapStore) => { mapName: string; gameType: number; gameSubtype: number; - players: ReplayPlayer[]; + players: import("process-replay").ReplayPlayer[]; frameCount: number; randomSeed: number; ancillary: { @@ -164,140 +142,56 @@ declare const worldPartial: (world: ReplayAndMapStore) => { } | undefined; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/stores/replay-and-map-store.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/stores/replay-and-map-store.ts /** @internal */ interface ReplayAndMapStore { type: "map" | "replay" | "live"; live: boolean; map?: Chk; - replay?: Replay; + replay?: ValidatedReplay; mapImage?: HTMLCanvasElement; reset: () => void; totalGameTime: number; + replayIndex: number; addToTotalGameTime: (t: number) => void; replayQueue: ValidatedReplay[]; - nextReplay: ValidatedReplay | undefined; + getNextReplay: (this: void) => ValidatedReplay | undefined; + getDeltaReplay: (d: number) => ValidatedReplay | undefined; addReplaysToQueue: (replays: ValidatedReplay[]) => void; + addReplayToQueue: (replay: ValidatedReplay) => void; deleteReplayQueueItem: (replay: ValidatedReplay) => void; - queueUpNextReplay: (replay: ValidatedReplay) => void; clearReplayQueue: () => void; flushWatchedReplays: () => void; + updateNextReplay: () => void; + loadNextReplay: () => Promise; + loadMap: (fileBuffer: ArrayBuffer) => Promise; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/process-replay/parse-replay.ts - -/** - * @public - * A replay file structure containing header information and raw command and map data - */ -export declare type Replay = Awaited>; - -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/process-replay/parse-replay.ts -/// -/** @internal */ -declare const parseReplay: (buf: Buffer) => Promise<{ - version: number; - rawHeader: Buffer; - header: { - isBroodwar: number; - gameName: string; - mapName: string; - gameType: number; - gameSubtype: number; - players: ReplayPlayer[]; - frameCount: number; - randomSeed: number; - ancillary: { - campaignId: number; - commandByte: number; - playerBytes: Buffer; - unk1: number; - playerName: Buffer; - gameFlags: number; - mapWidth: number; - mapHeight: number; - activePlayerCount: number; - slotCount: number; - gameSpeed: number; - gameState: number; - unk2: number; - tileset: number; - replayAutoSave: number; - computerPlayerCount: number; - unk3: number; - unk4: number; - unk5: number; - unk6: number; - victoryCondition: number; - resourceType: number; - useStandardUnitStats: number; - fogOfWarEnabled: number; - createInitialUnits: number; - useFixedPositions: number; - restrictionFlags: number; - alliesEnabled: number; - teamsEnabled: number; - cheatsEnabled: number; - tournamentMode: number; - victoryConditionValue: number; - startingMinerals: number; - startingGas: number; - unk7: number; - }; - }; - rawCmds: Buffer; - chk: Buffer; - limits: { - images: number; - sprites: number; - thingies: number; - units: number; - bullets: number; - orders: number; - fogSprites: number; - }; - stormPlayerToGamePlayer: number[]; -}>; - -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/process-replay/parse-replay-header.ts -/// -/** @internal */ -interface ReplayPlayer { - id: number; - name: string; - race: "zerg" | "terran" | "protoss" | "unknown"; - team: number; - color: string; - isComputer: boolean; - isHuman: boolean; - isActive: boolean; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/scenes/replay-scene-loader.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/scenes/load-and-validate-replay.ts /** @internal */ -declare type ValidatedReplay = Replay & { +type ValidatedReplay = Replay & { buffer: Buffer; uid: number; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/events.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/events.ts /** @internal */ declare const UI_STATE_EVENT_ON_FRAME = "frame"; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/events.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/events.ts /** @internal */ declare const UI_STATE_EVENT_PRODUCTION = "production"; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/plugins/events.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/events.ts /** @internal */ declare const UI_STATE_EVENT_UNITS_SELECTED = "units"; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/unit.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/unit.ts /** * @public @@ -322,7 +216,7 @@ export interface DumpedUnit extends Partial { buildQueue?: number[]; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/core/unit.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/core/unit.ts /** * @public @@ -380,6 +274,7 @@ interface FlingyStruct extends ThingyStruct { nextTargetWaypointX: number; nextTargetWaypointY: number; movementFlags: number; + currentVelocityDirection: number; } //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/structs/thingy-struct.ts @@ -506,135 +401,422 @@ export declare class UnitDAT implements UnitDAT { //C:/Users/Game_Master/Projects/titan-reactor/src/common/types/utils/deep-partial.ts /** @internal */ -declare type DeepPartial = T extends object ? { +type DeepPartial = T extends object ? { [P in keyof T]?: DeepPartial; } : T; -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/plugin.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** - * A plugin's metadata based off it's package.json file and surrounding plugin files. + * @public + * Use the translation function to translate a string */ -/** @internal */ -interface PluginMetaData extends PluginPackage { - nativeSource?: string | null; - path: string; - date?: Date; - readme?: string; - indexFile: string; - externMethods: string[]; - hooks: string[]; - isSceneController: boolean; - apiVersion: string; - hostIndexFile: string; -} +export declare const useLocale: () => string | undefined; -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/plugin.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** - * A package definition for a plugin. - * This is the same format as a package.json file with exception of the `permissions` property. + * @public + * The replay header information. */ -/** @internal */ -interface PluginPackage { - name: string; - id: string; - version: string; - author?: string | { - name?: string; - email?: string; - username?: string; - }; - keywords?: string[]; - description?: string; - repository?: string | { - type?: string; - url?: string; +export declare const useReplay: () => { + isBroodwar: number; + gameName: string; + mapName: string; + gameType: number; + gameSubtype: number; + players: import("process-replay").ReplayPlayer[]; + frameCount: number; + randomSeed: number; + ancillary: { + campaignId: number; + commandByte: number; + playerBytes: Buffer; + unk1: number; + playerName: Buffer; + gameFlags: number; + mapWidth: number; + mapHeight: number; + activePlayerCount: number; + slotCount: number; + gameSpeed: number; + gameState: number; + unk2: number; + tileset: number; + replayAutoSave: number; + computerPlayerCount: number; + unk3: number; + unk4: number; + unk5: number; + unk6: number; + victoryCondition: number; + resourceType: number; + useStandardUnitStats: number; + fogOfWarEnabled: number; + createInitialUnits: number; + useFixedPositions: number; + restrictionFlags: number; + alliesEnabled: number; + teamsEnabled: number; + cheatsEnabled: number; + tournamentMode: number; + victoryConditionValue: number; + startingMinerals: number; + startingGas: number; + unk7: number; }; - peerDependencies?: Record; - devDependencies?: Record; - config?: PluginConfig; - permissions?: string[]; -} +} | undefined; -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/plugin.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx -/** @internal */ -declare type PluginConfig = Record; +/** + * @public + * The map information. + */ +export declare const useMap: () => { + title: string; + description: string; + width: number; + height: number; + tileset: number; + tilesetName: string; +} | undefined; -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/fields.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx -/** @internal */ -interface FieldDefinition { - /** - * The type is usually inferred except for the case of Leva Plugins. - */ - type?: string; - onChange?: (value: any, path: string, context: any) => void; - folder?: string; - label?: string; - value: T; - step?: number; - min?: number; - max?: number; - options?: string[] | Record; +/** + * @public + * The current frame of the replay. + */ +export declare const useFrame: () => number | undefined; + +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx + +/** + * @public + * All players in the current replay. + */ +export declare const usePlayers: () => import("process-replay").ReplayPlayer[]; + +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx + +/** + * @public + * Returns a function getPlayerInfo that can be used to get resource information about a player. + */ +export declare const usePlayerFrame: () => (id: number) => PlayerInfo; + +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx + +/** + * @public + * Player information. + */ +export declare class PlayerInfo { + _struct_size: number; + playerId: number; + playerData: Required["production"]["playerData"]; + get _offset(): number; + get minerals(): number; + get vespeneGas(): number; + get supply(): number; + get supplyMax(): number; + get workerSupply(): number; + get armySupply(): number; + get apm(): number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/assets.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** * @public - * Most game assets excepting sprites / images. + * Returns a function that can be used to get player information. */ -export declare type Assets = Awaited> & { - envMap?: Texture; - bwDat: BwDAT; - wireframeIcons?: Blob[]; -} & Partial>>; +export declare const usePlayer: () => (playerId: number) => import("process-replay").ReplayPlayer | undefined; -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/assets.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx -/** @internal */ -declare const initializeAssets: (directories: { - starcraft: string; - assets: string; -}) => Promise<{ - selectionCircles: { - isHD: boolean; - isHD2: boolean; - diffuse: import("three").CompressedTexture; - imageIndex: number; - frames: { - x: number; - y: number; - w: number; - h: number; - xoff: number; - yoff: number; - }[]; - uvPos: { - pos: import("three").BufferAttribute; - uv: import("three").BufferAttribute; - flippedPos: import("three").BufferAttribute; - flippedUv: import("three").BufferAttribute; - }[]; - uvPosDataTex: import("three").DataArrayTexture; - textureWidth: number; - textureHeight: number; - spriteWidth: number; - spriteHeight: number; - unitTileScale: UnitTileScale; - teammask: import("three").CompressedTexture | undefined; - hdLayers: { - emissive: import("three").CompressedTexture | undefined; - }; - dispose(): void; +/** + * @public + * Returns user selected units (if any). + */ +export declare const useSelectedUnits: () => { + extras: { + dat: UnitDAT; + }; + isAttacking?: boolean | undefined; + id?: number | undefined; + typeId?: number | undefined; + owner?: number | undefined; + energy?: number | undefined; + shields?: number | undefined; + statusFlags?: number | undefined; + remainingBuildTime?: number | undefined; + resourceAmount?: number | undefined; + order?: number | null | undefined; + kills?: number | undefined; + orderTargetAddr?: number | undefined; + orderTargetX?: number | undefined; + orderTargetY?: number | undefined; + orderTargetUnit?: number | undefined; + groundWeaponCooldown?: number | undefined; + airWeaponCooldown?: number | undefined; + spellCooldown?: number | undefined; + subunit?: { + id?: number | undefined; + typeId?: number | undefined; + owner?: number | undefined; + energy?: number | undefined; + shields?: number | undefined; + statusFlags?: number | undefined; + remainingBuildTime?: number | undefined; + resourceAmount?: number | undefined; + order?: number | null | undefined; + kills?: number | undefined; + orderTargetAddr?: number | undefined; + orderTargetX?: number | undefined; + orderTargetY?: number | undefined; + orderTargetUnit?: number | undefined; + groundWeaponCooldown?: number | undefined; + airWeaponCooldown?: number | undefined; + spellCooldown?: number | undefined; + subunit?: any | null | undefined; + subunitId?: number | null | undefined; + x?: number | undefined; + y?: number | undefined; + direction?: number | undefined; + currentSpeed?: number | undefined; + moveTargetX?: number | undefined; + moveTargetY?: number | undefined; + nextMovementWaypointX?: number | undefined; + nextMovementWaypointY?: number | undefined; + nextTargetWaypointX?: number | undefined; + nextTargetWaypointY?: number | undefined; + movementFlags?: number | undefined; + currentVelocityDirection?: number | undefined; + hp?: number | undefined; + spriteIndex?: number | undefined; + spriteAddr?: number | undefined; + } | null | undefined; + subunitId?: number | null | undefined; + x?: number | undefined; + y?: number | undefined; + direction?: number | undefined; + currentSpeed?: number | undefined; + moveTargetX?: number | undefined; + moveTargetY?: number | undefined; + nextMovementWaypointX?: number | undefined; + nextMovementWaypointY?: number | undefined; + nextTargetWaypointX?: number | undefined; + nextTargetWaypointY?: number | undefined; + movementFlags?: number | undefined; + currentVelocityDirection?: number | undefined; + hp?: number | undefined; + spriteIndex?: number | undefined; + spriteAddr?: number | undefined; +}[]; + +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx + +/** + * @public + * Get the icon id for a particular unit type. + */ +export declare const getUnitIcon: (unit: DumpedUnit) => any; + +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx + +/** + * @public + * Returns three functions that can be used to get player production information. + * Units, Upgrades and Research. + */ +export declare const useProduction: () => (((playerId: number) => ({ + typeId: number; + icon: number; + count: number; + progress: number; + isUnit: boolean; +} | null)[]) | ((playerId: number) => { + typeId: number; + icon: number; + level: number; + isUpgrade: boolean; + progress: number; +}[]) | ((playerId: number) => { + typeId: number; + icon: number; + progress: number; + isResearch: boolean; +}[]))[]; + +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx + +/** + * @public + * Converts a frame numer to a time string eg 01:00. + */ +export declare const getFriendlyTime: (frame: number) => string; + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/atlas/load-anim-atlas.ts + +/** @internal */ +declare const loadAnimAtlas: (buf: Buffer, imageIndex: number, scale: Exclude) => { + isHD: boolean; + isHD2: boolean; + diffuse: import("three").CompressedTexture; + imageIndex: number; + frames: { + x: number; + y: number; + w: number; + h: number; + xoff: number; + yoff: number; }[]; - minimapConsole: { - clock: import("three").CompressedTexture; - square: import("three").CompressedTexture; + uvPos: { + pos: BufferAttribute; + uv: BufferAttribute; + flippedPos: BufferAttribute; + flippedUv: BufferAttribute; + }[]; + uvPosDataTex: DataArrayTexture; + textureWidth: number; + textureHeight: number; + spriteWidth: number; + spriteHeight: number; + unitTileScale: UnitTileScale; + teammask: import("three").CompressedTexture | undefined; + hdLayers: { + emissive: import("three").CompressedTexture | undefined; + }; + dispose(): void; +}; + +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/image.ts + +/** @internal */ +declare enum UnitTileScale { + SD = 1, + HD2 = 2, + HD = 4 +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx + +/** + * @public + */ +export declare const openUrl: (url: string) => void; + +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx + +/** + * @public + * Images and game data. + */ +export type RuntimeAssets = Pick; + +//C:/Users/Game_Master/Projects/titan-reactor/src/plugins/plugin-system-ui.ts + +/** @internal */ +interface SystemReadyMessage { + initialStore: PluginStateMessage; + plugins: PluginMetaData[]; + assets: Pick & { + url: string; + imagesUrl: string; + }; + enums: any; +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/plugin.ts + +/** + * A plugin's metadata based off it's package.json file and surrounding plugin files. + */ +/** @internal */ +interface PluginMetaData extends PluginPackage { + path: string; + date?: Date; + readme?: string; + isSceneController: boolean; + apiVersion: string; + url: string; + config: PluginConfig; + urls: { + host: string | null; + ui: string | null; + }; +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/plugin.ts + +/** + * A package definition for a plugin. + * This is the same format as a package.json file with exception of the `permissions` property. + */ +/** @internal */ +interface PluginPackage { + name: string; + id: string; + version: string; + author?: string | { + name?: string; + email?: string; + username?: string; }; - loadImageAtlas(imageId: number, bwDat: BwDAT): { + keywords?: string[]; + description?: string; + repository?: string | { + type?: string; + url?: string; + }; + peerDependencies?: Record; + devDependencies?: Record; + config?: PluginConfig; +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/plugin.ts + +/** @internal */ +type PluginConfig = Record; + +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/fields.ts + +/** @internal */ +interface FieldDefinition { + /** + * The type is usually inferred except for the case of Leva Plugins. + */ + type?: string; + onChange?: (value: any, path: string, context: any) => void; + folder?: string; + label?: string; + value: T; + step?: number; + min?: number; + max?: number; + options?: string[] | Record; +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/assets.ts + +/** + * @public + * Most game assets excepting sprites / images. + */ +export type Assets = Awaited> & { + envMap?: Texture; + bwDat: BwDAT; + wireframeIcons?: Blob[]; +}; + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/assets.ts + +/** @internal */ +declare const initializeAssets: () => Promise<{ + selectionCircles: { isHD: boolean; isHD2: boolean; diffuse: import("three").CompressedTexture; @@ -664,21 +846,36 @@ declare const initializeAssets: (directories: { emissive: import("three").CompressedTexture | undefined; }; dispose(): void; - } | undefined; - getImageAtlas(imageId: number): AnimAtlas | undefined; - hasImageAtlas(imageId: number): boolean; - loadImageAtlasAsync(imageId: number, bwDat: BwDAT): Promise; + }[]; + minimapConsole: { + clock: import("three").CompressedTexture; + square: import("three").CompressedTexture; + }; + loader: ImageLoaderManager; skyBox: CubeTexture; refId: (id: number) => number; resetImagesCache: () => void; arrowIconsGPU: LegacyGRP; hoverIconsGPU: LegacyGRP; dragIconsGPU: LegacyGRP; - openCascStorage: () => Promise; - closeCascStorage: () => void; - readCascFile: (filePath: string) => Promise; - remaining: number; - atlases: { + openCascStorage: (url?: string) => Promise; + closeCascStorage: () => Promise; + readCascFile: (filepath: string) => Promise; +}>; + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/image-loader-manager.ts + +/** @internal */ +declare class ImageLoaderManager { + #private; + maxDownloads: number; + currentDownloads: number; + imageLoaders: Map; + constructor(refId: (id: number) => number); + exists(imageId: number): boolean; + getImage(imageId: number, useRefId?: boolean): AnimAtlas | null; + loadImage(imageId: number, priority?: number): Promise | undefined; + loadImageImmediate(imageId: number): Promise<{ isHD: boolean; isHD2: boolean; diffuse: import("three").CompressedTexture; @@ -700,289 +897,86 @@ declare const initializeAssets: (directories: { uvPosDataTex: import("three").DataArrayTexture; textureWidth: number; textureHeight: number; - spriteWidth: number; - spriteHeight: number; - unitTileScale: UnitTileScale; - teammask: import("three").CompressedTexture | undefined; - hdLayers: { - emissive: import("three").CompressedTexture | undefined; - }; - dispose(): void; - }[]; -}>; - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/image.ts - -/** @internal */ -declare enum UnitTileScale { - SD = 1, - HD2 = 2, - HD = 4 -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/bw-dat.ts - -/** - * @public - */ -export interface BwDAT { - iscript: IScriptDATType; - sounds: SoundDAT[]; - tech: TechDataDAT[]; - upgrades: UpgradeDAT[]; - orders: OrderDAT[]; - units: UnitDAT[]; - images: ImageDAT[]; - los: LoDAT[]; - sprites: SpriteDAT[]; - weapons: WeaponDAT[]; - grps: GrpSprite[]; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/iscript.ts - -/** @internal */ -interface IScriptDATType { - iscripts: Record; - animations: Record; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/iscript.ts - -/** @internal */ -interface IScriptProgram { - id: number; - type: number; - offset: number; - offsets: number[]; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/iscript.ts - -/** @internal */ -declare type IScriptAnimation = IScriptOperations[]; - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/iscript.ts - -/** @internal */ -declare type IScriptOperations = [string, number[]]; - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/sounds-dat.ts - -/** - * @public - */ -export interface SoundDAT { - file: string; - priority: number; - flags: number; - race: number; - minVolume: number; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/tech-data-dat.ts - -/** - * @public - */ -export interface TechDataDAT { - mineralCost: number; - vespeneCost: number; - researchTime: number; - energyRequired: number; - researchRequirements: number; - useRequirements: number; - icon: number; - name: string; - race: number; - researched: number; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/upgrades-dat.ts - -/** - * @public - */ -export interface UpgradeDAT { - mineralCostBase: number; - mineralCostFactor: number; - vespeneCostFactor: number; - vespeneCostBase: number; - researchTimeBase: number; - researchTimeFactor: number; - requirements: number; - icon: number; - name: string; - maxRepeats: number; - race: number; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/orders-dat.ts - -/** - * @public - */ -export interface OrderDAT { - name: string; -} - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/images-dat.ts - -/** - * @public - */ -export interface ImageDAT { - index: number; - grpFile: string; - name: string; - grp: number; - gfxTurns: number; - clickable: number; - useFullIscript: number; - drawIfCloaked: number; - drawFunction: number; - remapping: number; - iscript: number; - shieldOverlay: number; - attackOverlay: number; - damageOverlay: number; - specialOverlay: number; - landingDustOverlay: number; - liftOffDustOverlay: number; + spriteWidth: number; + spriteHeight: number; + unitTileScale: UnitTileScale; + teammask: import("three").CompressedTexture | undefined; + hdLayers: { + emissive: import("three").CompressedTexture | undefined; + }; + dispose(): void; + } | null>; + processQueue(): Promise; + dispose(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/parse-lo.ts -/// -/** - * @public - */ -export declare type LoDAT = number[][][]; - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/sprites-dat.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/image-loader.ts -/** - * @public - */ -export interface SpriteDAT { - image: ImageDAT; - name: string; - index: number; - healthBar: number; - visible: number; - selectionCircle: { - size: number; - index: number; - }; - selectionCircleOffset: number; +/** @internal */ +declare class ImageLoader { + atlas: AnimAtlas | null; + loader: ResourceLoader; + imageId: number; + priority: number; + status: ResourceLoaderStatus; + onLoaded: () => void; + constructor(url: string, imageId: number, cache: IndexedDBCache); } -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/weapons-dat.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/image/atlas/load-anim-atlas.ts -/** - * @public - */ -export interface WeaponDAT { - index: number; - name: string; - flingy: FlingyDAT; - targetFlags: number; - minRange: number; - maxRange: number; - damageUpgrade: number; - damageType: number; - weaponBehavior: number; - lifetime: number; - explosionType: number; - innerSplashRange: number; - mediumSplashRange: number; - outerSplashRange: number; - damageAmount: number; - damageBonus: number; - weaponCooldown: number; - damageFactor: number; - attackAngle: number; - launchSpin: number; - forwardOffset: number; - upwardOffset: number; -} +/** @internal */ +type AnimAtlas = ReturnType; -//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/flingy-dat.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/resource-loader.ts -/** - * @public - */ -export interface FlingyDAT { - sprite: SpriteDAT; - speed: number; - acceleration: number; - haltDistance: number; - turnRadius: number; +/** @internal */ +declare class ResourceLoader { + #private; + url: string; + key: string; + buffer: Buffer | null; + onStatusChange: (status: ResourceLoaderStatus) => void; + protected cache?: IndexedDBCache; + constructor(url: string, key?: string, cache?: IndexedDBCache); + get status(): ResourceLoaderStatus; + set status(status: ResourceLoaderStatus); + fetch(): Promise; + cancel(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/anim-grp.ts - +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/resource-loader-status.ts /** @internal */ -declare type GrpSprite = { - w: number; - h: number; - frames: AnimFrame[]; - maxFrameH: number; - maxFramew: number; -}; +type ResourceLoaderStatus = "loading" | "loaded" | "error" | "idle" | "cancelled"; + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/indexed-db-cache.ts -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/anim-grp.ts -/// /** @internal */ -declare type AnimFrame = { - x: number; - y: number; - w: number; - h: number; - xoff: number; - yoff: number; -}; +declare class IndexedDBCache { + #private; + constructor(storeName: CacheDBStoreName); + get enabled(): boolean; + set enabled(value: boolean); + clear(): Promise; + deleteValue(id: string): Promise; + setValue(value: SCAssetData): Promise; + getValue(id: string): Promise; +} -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/atlas/load-anim-atlas.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/indexed-db-cache.ts /** @internal */ -declare type AnimAtlas = ReturnType; - -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/atlas/load-anim-atlas.ts +type CacheDBStoreName = "general-casc-cache" | "image-cache"; +//C:/Users/Game_Master/Projects/titan-reactor/src/image/loader/indexed-db-cache.ts +/// /** @internal */ -declare const loadAnimAtlas: (buf: Buffer, imageIndex: number, scale: Exclude) => { - isHD: boolean; - isHD2: boolean; - diffuse: import("three").CompressedTexture; - imageIndex: number; - frames: { - x: number; - y: number; - w: number; - h: number; - xoff: number; - yoff: number; - }[]; - uvPos: { - pos: BufferAttribute; - uv: BufferAttribute; - flippedPos: BufferAttribute; - flippedUv: BufferAttribute; - }[]; - uvPosDataTex: DataArrayTexture; - textureWidth: number; - textureHeight: number; - spriteWidth: number; - spriteHeight: number; - unitTileScale: UnitTileScale; - teammask: import("three").CompressedTexture | undefined; - hdLayers: { - emissive: import("three").CompressedTexture | undefined; - }; - dispose(): void; -}; +interface SCAssetData { + id: string; + buffer: ArrayBuffer; +} -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/atlas/legacy-grp.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/image/atlas/legacy-grp.ts /** @internal */ declare class LegacyGRP { @@ -1009,350 +1003,245 @@ declare class LegacyGRP { dispose(): void; } -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/atlas/legacy-grp.ts +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/images-dat.ts + +/** + * @public + */ +export interface ImageDAT { + index: number; + grpFile: string; + name: string; + grp: number; + gfxTurns: number; + clickable: number; + useFullIscript: number; + drawIfCloaked: number; + drawFunction: number; + remapping: number; + iscript: number; + shieldOverlay: number; + attackOverlay: number; + damageOverlay: number; + specialOverlay: number; + landingDustOverlay: number; + liftOffDustOverlay: number; +} + +//C:/Users/Game_Master/Projects/titan-reactor/src/image/atlas/legacy-grp.ts /** @internal */ -declare type Palettes = Uint8Array[] & { +type Palettes = Uint8Array[] & { dark?: Buffer; light?: Buffer; }; -//C:/Users/Game_Master/Projects/titan-reactor/src/common/casclib.ts - -/** @internal */ -declare const openCascStorage: (bwPath: string) => Promise; - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/casclib.ts - -/** @internal */ -declare const closeCascStorage: () => void; - -//C:/Users/Game_Master/Projects/titan-reactor/src/renderer/image/generate-icons/generate-icons.ts - -/** @internal */ -declare const generateUIIcons: (readFile: ReadFile) => Promise<{ - cmdIcons: ArrayBuffer[]; - gameIcons: { - minerals: Blob; - vespeneZerg: Blob; - vespeneTerran: Blob; - vespeneProtoss: Blob; - zerg: Blob; - terran: Blob; - protoss: Blob; - energy: Blob; - }; - raceInsetIcons: { - zerg: Blob; - terran: Blob; - protoss: Blob; - }; - workerIcons: { - apm: ArrayBuffer | SharedArrayBuffer; - terran: ArrayBuffer | SharedArrayBuffer; - zerg: ArrayBuffer | SharedArrayBuffer; - protoss: ArrayBuffer | SharedArrayBuffer; - }; -}>; - -//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/file.ts -/// -/** @internal */ -declare type ReadFile = (filename: string) => Promise; - -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/bw-dat.ts /** * @public - * Enums and data for game types. */ -export declare const enums: any; +export interface BwDAT { + iscript: IScriptDATType; + sounds: SoundDAT[]; + tech: TechDataDAT[]; + upgrades: UpgradeDAT[]; + orders: OrderDAT[]; + units: UnitDAT[]; + images: ImageDAT[]; + los: LoDAT[]; + sprites: SpriteDAT[]; + weapons: WeaponDAT[]; + grps: GrpSprite[]; +} -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/iscript.ts /** @internal */ -interface Component { - pluginId: string; - id: number; - order: number | undefined; - messageHandler: EventTarget; - JSXElement: React.FC; - snap: string; - screen: string; +interface IScriptDATType { + iscripts: Record; + animations: Record; } -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/iscript.ts /** @internal */ -declare type StateMessage = Partial; - -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx - -/** - * @public - * Use the translation function to translate a string - */ -export declare const useLocale: () => string | undefined; - -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx - -/** - * @public - * The replay header information. - */ -export declare const useReplay: () => { - isBroodwar: number; - gameName: string; - mapName: string; - gameType: number; - gameSubtype: number; - players: ReplayPlayer[]; - frameCount: number; - randomSeed: number; - ancillary: { - campaignId: number; - commandByte: number; - playerBytes: Buffer; - unk1: number; - playerName: Buffer; - gameFlags: number; - mapWidth: number; - mapHeight: number; - activePlayerCount: number; - slotCount: number; - gameSpeed: number; - gameState: number; - unk2: number; - tileset: number; - replayAutoSave: number; - computerPlayerCount: number; - unk3: number; - unk4: number; - unk5: number; - unk6: number; - victoryCondition: number; - resourceType: number; - useStandardUnitStats: number; - fogOfWarEnabled: number; - createInitialUnits: number; - useFixedPositions: number; - restrictionFlags: number; - alliesEnabled: number; - teamsEnabled: number; - cheatsEnabled: number; - tournamentMode: number; - victoryConditionValue: number; - startingMinerals: number; - startingGas: number; - unk7: number; - }; -} | undefined; +interface IScriptProgram { + id: number; + type: number; + offset: number; + offsets: number[]; +} -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/iscript.ts -/** - * @public - * The map information. - */ -export declare const useMap: () => { - title: string; - description: string; - width: number; - height: number; - tileset: number; - tilesetName: string; -} | undefined; +/** @internal */ +type IScriptAnimation = IScriptOperations[]; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/iscript.ts -/** - * @public - * The current frame of the replay. - */ -export declare const useFrame: () => number | undefined; +/** @internal */ +type IScriptOperations = [string, number[]]; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/sounds-dat.ts /** * @public - * All players in the current replay. */ -export declare const usePlayers: () => ReplayPlayer[]; +export interface SoundDAT { + file: string; + priority: number; + flags: number; + race: number; + minVolume: number; +} -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/tech-data-dat.ts /** * @public - * Returns a function getPlayerInfo that can be used to get resource information about a player. */ -export declare const usePlayerFrame: () => (id: number) => PlayerInfo; +export interface TechDataDAT { + mineralCost: number; + vespeneCost: number; + researchTime: number; + energyRequired: number; + researchRequirements: number; + useRequirements: number; + icon: number; + name: string; + race: number; + researched: number; +} -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/upgrades-dat.ts /** * @public - * Player information. */ -export declare class PlayerInfo { - _struct_size: number; - playerId: number; - playerData: Required["production"]["playerData"]; - get _offset(): number; - get minerals(): number; - get vespeneGas(): number; - get supply(): number; - get supplyMax(): number; - get workerSupply(): number; - get armySupply(): number; - get apm(): number; +export interface UpgradeDAT { + mineralCostBase: number; + mineralCostFactor: number; + vespeneCostFactor: number; + vespeneCostBase: number; + researchTimeBase: number; + researchTimeFactor: number; + requirements: number; + icon: number; + name: string; + maxRepeats: number; + race: number; } -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/orders-dat.ts /** * @public - * Returns a function that can be used to get player information. */ -export declare const usePlayer: () => (playerId: number) => ReplayPlayer | undefined; - -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +export interface OrderDAT { + name: string; +} +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/parse-lo.ts +/// /** * @public - * Returns user selected units (if any). */ -export declare const useSelectedUnits: () => { - extras: { - dat: UnitDAT; - }; - isAttacking?: boolean | undefined; - id?: number | undefined; - typeId?: number | undefined; - owner?: number | undefined; - energy?: number | undefined; - shields?: number | undefined; - statusFlags?: number | undefined; - remainingBuildTime?: number | undefined; - resourceAmount?: number | undefined; - order?: number | null | undefined; - kills?: number | undefined; - orderTargetAddr?: number | undefined; - orderTargetX?: number | undefined; - orderTargetY?: number | undefined; - orderTargetUnit?: number | undefined; - groundWeaponCooldown?: number | undefined; - airWeaponCooldown?: number | undefined; - spellCooldown?: number | undefined; - subunit?: { - id?: number | undefined; - typeId?: number | undefined; - owner?: number | undefined; - energy?: number | undefined; - shields?: number | undefined; - statusFlags?: number | undefined; - remainingBuildTime?: number | undefined; - resourceAmount?: number | undefined; - order?: number | null | undefined; - kills?: number | undefined; - orderTargetAddr?: number | undefined; - orderTargetX?: number | undefined; - orderTargetY?: number | undefined; - orderTargetUnit?: number | undefined; - groundWeaponCooldown?: number | undefined; - airWeaponCooldown?: number | undefined; - spellCooldown?: number | undefined; - subunit?: any | null | undefined; - subunitId?: number | null | undefined; - x?: number | undefined; - y?: number | undefined; - direction?: number | undefined; - currentSpeed?: number | undefined; - moveTargetX?: number | undefined; - moveTargetY?: number | undefined; - nextMovementWaypointX?: number | undefined; - nextMovementWaypointY?: number | undefined; - nextTargetWaypointX?: number | undefined; - nextTargetWaypointY?: number | undefined; - movementFlags?: number | undefined; - hp?: number | undefined; - spriteIndex?: number | undefined; - spriteAddr?: number | undefined; - } | null | undefined; - subunitId?: number | null | undefined; - x?: number | undefined; - y?: number | undefined; - direction?: number | undefined; - currentSpeed?: number | undefined; - moveTargetX?: number | undefined; - moveTargetY?: number | undefined; - nextMovementWaypointX?: number | undefined; - nextMovementWaypointY?: number | undefined; - nextTargetWaypointX?: number | undefined; - nextTargetWaypointY?: number | undefined; - movementFlags?: number | undefined; - hp?: number | undefined; - spriteIndex?: number | undefined; - spriteAddr?: number | undefined; -}[]; +export type LoDAT = number[][][]; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/sprites-dat.ts /** * @public - * Get the icon id for a particular unit type. */ -export declare const getUnitIcon: (unit: DumpedUnit) => any; +export interface SpriteDAT { + image: ImageDAT; + name: string; + index: number; + healthBar: number; + visible: number; + selectionCircle: { + size: number; + index: number; + }; + selectionCircleOffset: number; +} -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/weapons-dat.ts /** * @public - * Returns three functions that can be used to get player production information. - * Units, Upgrades and Research. */ -export declare const useProduction: () => (((playerId: number) => ({ - typeId: number; - icon: number; - count: number; - progress: number; - isUnit: boolean; -} | null)[]) | ((playerId: number) => { - typeId: number; - icon: number; - level: number; - isUpgrade: boolean; - progress: number; -}[]) | ((playerId: number) => { - typeId: number; - icon: number; - progress: number; - isResearch: boolean; -}[]))[]; +export interface WeaponDAT { + index: number; + name: string; + flingy: FlingyDAT; + targetFlags: number; + minRange: number; + maxRange: number; + damageUpgrade: number; + damageType: number; + weaponBehavior: number; + lifetime: number; + explosionType: number; + innerSplashRange: number; + mediumSplashRange: number; + outerSplashRange: number; + damageAmount: number; + damageBonus: number; + weaponCooldown: number; + damageFactor: number; + attackAngle: number; + launchSpin: number; + forwardOffset: number; + upwardOffset: number; +} -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/bwdat/flingy-dat.ts /** * @public - * Converts a frame numer to a time string eg 01:00. */ -export declare const getFriendlyTime: (frame: number) => string; +export interface FlingyDAT { + sprite: SpriteDAT; + speed: number; + acceleration: number; + haltDistance: number; + turnRadius: number; +} -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/anim-grp.ts -/** - * @public - */ -export declare const openUrl: (url: string) => void; +/** @internal */ +type GrpSprite = { + w: number; + h: number; + frames: AnimFrame[]; + maxFrameH: number; + maxFramew: number; +}; + +//C:/Users/Game_Master/Projects/titan-reactor/src/common/types/anim-grp.ts +/// +/** @internal */ +type AnimFrame = { + x: number; + y: number; + w: number; + h: number; + xoff: number; + yoff: number; +}; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** * @public - * Images and game data. + * Enums and data for game types. */ -export declare type RuntimeAssets = Pick & ReturnType; +export declare const enums: any; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** * @public @@ -1360,7 +1249,7 @@ export declare type RuntimeAssets = Pick */ export declare const assets: RuntimeAssets; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** * @public @@ -1372,7 +1261,7 @@ export declare const RollingNumber: ({ value, upSpeed, downSpeed, ...props }: { downSpeed: number | undefined; }) => JSX.Element; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** * @public @@ -1380,7 +1269,7 @@ export declare const RollingNumber: ({ value, upSpeed, downSpeed, ...props }: { */ export declare const useMessage: (cb?: ((event: any) => void) | undefined, deps?: unknown[]) => void; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** * @public @@ -1388,7 +1277,7 @@ export declare const useMessage: (cb?: ((event: any) => void) | undefined, deps? */ export declare const useSendMessage: () => (message: unknown) => void; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** * @public @@ -1396,7 +1285,7 @@ export declare const useSendMessage: () => (message: unknown) => void; */ export declare const usePluginConfig: () => object; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** * @public @@ -1404,20 +1293,19 @@ export declare const usePluginConfig: () => object; */ export declare const useStyleSheet: (content: string, deps?: never[]) => void; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx /** * @public */ export declare const proxyFetch: (url: string) => Promise; -//C:/Users/Game_Master/Projects/titan-reactor/src/main/plugins/runtime.tsx +//C:/Users/Game_Master/Projects/titan-reactor/src/runtime.tsx -/** - * @internal - */ +/** @internal */ declare const _rc: (pluginId: string, component: Component, JSXElement: React.FC) => void; declare global { + var registerComponent: ( component: Partial>, JSXElement: React.FC ) => void; } \ No newline at end of file diff --git a/build/api-types/ui/package.json b/build/api-types/ui/package.json index 07c89e54..c0e317c4 100644 --- a/build/api-types/ui/package.json +++ b/build/api-types/ui/package.json @@ -1,6 +1,6 @@ { "name": "@titan-reactor-runtime/ui", - "version": "2.0.0", + "version": "2.2.0", "description": "", "types": "index.d.ts", "scripts": { diff --git a/build/api-types/ui/unrolled.json b/build/api-types/ui/unrolled.json index 25995f82..b9fb9d29 100644 --- a/build/api-types/ui/unrolled.json +++ b/build/api-types/ui/unrolled.json @@ -1,8 +1,10 @@ { "external": [], "importFileNotFound": [ + "process-replay", "zustand", - "three" + "three", + "immer/dist/internal" ], "nodeModules": [ "Partial", @@ -10,85 +12,138 @@ "assign", "ReturnType", "Chk", - "Awaited", + "Replay", "Buffer", - "BufferList", - "append", - "alloc", - "readUInt32LE", - "consume", - "Math", - "ceil", - "Error", - "Number", - "isNaN", - "push", - "reduce", - "slice", - "Promise", - "all", - "map", - "readUInt8", - "Readable", - "read", - "pipe", - "createInflate", - "Writable", - "write", - "length", - "readInt16LE", - "indexOf", - "decode", - "includes", - "readInt32LE", - "subarray", - "toString", "HTMLCanvasElement", + "Promise", + "ArrayBuffer", "title", "description", "size", "tileset", "tilesetName", + "header", "Int32Array", "Record", "Date", "Pick", + "Awaited", + "byteLength", + "Error", + "readUInt8", + "length", + "reduce", + "push", + "readUInt16LE", + "Number", + "isNaN", + "forEach", + "includes", + "map", + "toString", + "then", + "substr", + "indexOf", + "readUInt32LE", + "flatMap", + "Array", + "isArray", + "replace", + "readInt8", + "Math", + "floor", + "Boolean", + "all", + "slice", + "Uint8Array", + "alloc", + "fill", + "IDBDatabase", + "transaction", + "objectStore", + "clear", + "onsuccess", + "onerror", + "delete", + "resolve", + "put", + "get", + "result", + "from", + "console", + "error", + "fetch", + "arrayBuffer", + "setInterval", + "clearInterval", "create", + "Window", "set", - "ipcRenderer", - "invoke", + "lSet", + "localStorage", + "getItem", + "find", + "String", + "navigator", + "language", + "JSON", + "parse", + "setItem", + "stringify", + "immer", + "NodeJS", + "Timeout", + "SyntheticKeyboardEvent", + "HTMLInputElement", + "KeyboardEvent", + "code", + "ctrlKey", + "altKey", + "shiftKey", + "preventDefault", + "clearTimeout", + "setTimeout", + "join", "getState", - "process", "env", - "console", - "error", + "DEV", "warn", "log", "debug", - "send", "message", + "stack", + "MathUtils", + "generateUUID", + "findIndex", + "filter", + "PROD", + "Required", + "values", "startsWith", - "fetch", - "then", - "arrayBuffer", - "some", - "endsWith", - "path", - "join", - "readFile", - "encoding", - "buffer", - "stat", - "isFile", - "toLowerCase", - "readdir", - "isDirectory", - "casclib", - "closeStorage", - "openStorage", + "keys", + "info", + "json", + "catch", + "text", + "cache", + "deepMerge", + "arrayMerge", + "max", + "WritableDraft", + "splice", + "URLSearchParams", + "window", + "location", + "search", + "close", + "open", + "blur", + "focus", + "setState", + "BufferList", "shallowSlice", - "readUInt16LE", - "substr", + "consume", + "readInt16LE", "Exclude", "Janitor", "mop", @@ -105,18 +160,16 @@ "wrapS", "colorSpace", "flipY", - "Uint8Array", "RGB_S3TC_DXT1_Format", "charCodeAt", - "String", "fromCharCode", + "buffer", "byteOffset", "Uint8ClampedArray", "RGBA_S3TC_DXT3_Format", "RGBA_S3TC_DXT5_Format", "RGB_ETC1_Format", "RGBAFormat", - "max", "data", "width", "height", @@ -131,11 +184,8 @@ "FloatType", "NearestFilter", "dispose", - "byteLength", - "access", - "constants", - "R_OK", "DataTexture", + "endsWith", "Worker", "URL", "url", @@ -147,39 +197,20 @@ "mapping", "EquirectangularReflectionMapping", "terminate", - "setInterval", - "clearInterval", - "setState", - "document", - "createElement", - "transferControlToOffscreen", + "subarray", + "min", + "ceil", + "RepeatWrapping", + "Map", + "AbortController", + "signal", + "name", + "abort", + "method", + "headers", "WebGLRenderer", - "OffscreenCanvas", - "OrthographicCamera", - "Scene", - "getContext", - "setSize", - "background", - "render", - "save", - "scale", - "drawImage", - "domElement", - "restore", - "globalCompositeOperation", - "fillStyle", - "fillRect", - "convertToBlob", - "ArrayBuffer", - "range", - "WeakRef", "CanvasRenderingContext2D", - "ElementCSSInlineStyle", - "style", - "addEventListener", - "preventDefault", - "floor", - "remove", + "ResizeObserver", "EffectComposer", "frameBufferType", "HalfFloatType", @@ -193,8 +224,8 @@ "stencil", "depth", "precision", - "outputColorSpace", "checkShaderErrors", + "process", "xr", "enabled", "shadowMap", @@ -204,76 +235,42 @@ "autoClear", "setRenderer", "autoRenderToScreen", - "Map", - "Array", - "get", + "domElement", + "addEventListener", "sort", - "filter", - "clear", + "disconnect", "setViewport", "Vector4", + "getContext", + "setSize", + "observe", + "Parameters", + "setAnimationLoop", "Pass", "removeAllPasses", "renderToScreen", "addPass", + "Scene", + "Camera", + "setMainCamera", + "setMainScene", + "isPresenting", "setScissorTest", "setScissor", - "deref", - "setAnimationLoop", + "render", + "drawImage", + "outputColorSpace", "LinearSRGBColorSpace", - "globalAlpha", - "Blob", - "toBlob", - "next", - "value", - "fill", - "min", - "resolve", - "RepeatWrapping", - "Set", - "NodeJS", - "Timeout", - "now", - "pop", - "isArray", - "mipmaps", + "initTexture", "has", - "add", - "Texture", - "Object3D", - "Mesh", - "BufferGeometry", - "MeshStandardMaterial", - "SkinnedMesh", - "AnimationClip", - "Group", - "GLTFLoader", - "setMeshoptDecoder", - "WebAssembly", - "validate", - "instantiate", - "instance", - "setKTX2Loader", - "KTX2Loader", - "load", - "GLTF", - "scene", - "animations", - "traverse", - "castShadow", - "receiveShadow", - "material", - "envMap", - "emissive", - "Color", - "emissiveIntensity", - "userData", - "children", - "position", - "setScalar", + "finally", "CubeTextureLoader", "setPath", "CubeTexture", + "load", + "ok", + "Texture", + "Blob", "React", "useRef", "useEffect", @@ -284,35 +281,40 @@ "EventTarget", "FC", "HTMLScriptElement", + "ReactNode", "Transferable", "contentWindow", - "Required", - "find", - "createObjectURL", - "window", + "players", + "id", "parent", + "document", "getElementById", - "id", + "createElement", "head", "appendChild", "textContent", "removeChild", + "remove", "async", "src", + "random", "requestAnimationFrame", "HTMLSpanElement", "current", "span", "ref", - "MessageEvent", + "removeEventListener", + "encodeURIComponent", "HTMLDivElement", + "style", "opacity", "Provider", + "value", "Component", - "ReactNode", "key", "div", "display", + "position", "left", "top", "flexDirection", @@ -321,61 +323,39 @@ "justifyContent", "flexGrow", "alignItems", + "MessageEvent", "body", "clientX", "clientY", "button", - "shiftKey", - "ctrlKey", "MouseEvent", "elementFromPoint", "Simulate", "click", "CustomEvent", "detail", - "dispatchEvent", - "removeEventListener", - "encodeURIComponent", - "random" + "dispatchEvent" ], "notFound": [ - "pkware", - "zlib", - "iconv", "undefined", - "electronFileLoader", + "processStore", + "imageNames", + "spriteNames", + "buffer", "defaultMacros", - "pluginsMetadata", - "NODE_ENV", - "fsPromises", - "promises", + "meta", + "length", + "gameStore", + "_map", + "_enabled", + "_replay", "const", - "processStore", "diffuse", "teamcolor", "emissive", - "fs", - "meta", "format", - "canvas", - "destCanvas", - "icons", + "NODE_ENV", "renderToScreen", - "length", - "charCodeAt", - "exports", - "__wasm_call_ctors", - "sbrk", - "memory", - "buffer", - "set", - "meshopt_decodeVertexBuffer", - "meshopt_decodeIndexBuffer", - "meshopt_decodeIndexSequence", - "mesh", - "gameStore", - "type", - "payload", "production", "unitTypes", "reaver", @@ -385,19 +365,23 @@ "nuclearSilo", "nuclearMissile", "props", + "detail", + "type", "startsWith", + "payload", "dimensions", "enums", "plugins", "forEach", "pluginId", - "config", - "detail" + "config" ], "externNamedImportNodes": [ - "import { Readable } from \"stream\";", - "import { Writable } from \"stream\";", - "import { ipcRenderer } from \"electron\";", + "import { Replay } from \"process-replay\";", + "import { immer } from \"zustand/middleware/immer\";", + "import { KeyboardEvent } from \"react\";", + "import { MathUtils } from \"three\";", + "import { WritableDraft } from \"immer/dist/internal\";", "import { Janitor } from \"three-janitor\";", "import { SRGBColorSpace } from \"three\";", "import { CompressedTexture } from \"three\";", @@ -417,112 +401,103 @@ "import { RGBE } from \"three/examples/jsm/loaders/RGBELoader\";", "import { EXR } from \"three/examples/jsm/loaders/EXRLoader\";", "import { EquirectangularReflectionMapping } from \"three\";", + "import { RepeatWrapping } from \"three\";", "import { WebGLRenderer } from \"three\";", - "import { OrthographicCamera } from \"three\";", - "import { Scene } from \"three\";", - "import { range } from \"lodash\";", "import { EffectComposer } from \"postprocessing\";", "import { HalfFloatType } from \"three\";", "import { VSMShadowMap } from \"three\";", "import { Vector4 } from \"three\";", "import { Pass } from \"postprocessing\";", + "import { Scene } from \"three\";", + "import { Camera } from \"three\";", "import { LinearSRGBColorSpace } from \"three\";", - "import { RepeatWrapping } from \"three\";", - "import { Texture } from \"three\";", - "import { Object3D } from \"three\";", - "import { Mesh } from \"three\";", - "import { BufferGeometry } from \"three\";", - "import { MeshStandardMaterial } from \"three\";", - "import { SkinnedMesh } from \"three\";", - "import { AnimationClip } from \"three\";", - "import { Group } from \"three\";", - "import { GLTFLoader } from \"three/examples/jsm/loaders/GLTFLoader\";", - "import { KTX2Loader } from \"three/examples/jsm/loaders/KTX2Loader\";", - "import { GLTF } from \"three/examples/jsm/loaders/GLTFLoader\";", - "import { Color } from \"three\";", "import { CubeTextureLoader } from \"three\";", "import { CubeTexture } from \"three\";", + "import { Texture } from \"three\";", "import { useRef } from \"react\";", "import { useEffect } from \"react\";", "import { useContext } from \"react\";", "import { createContext } from \"react\";" ], "externNamedImports": [ + "import { Replay } from \"process-replay\";", "import { CompressedTexture, BufferAttribute, DataArrayTexture, CubeTexture, DataTexture, Texture } from \"three\";" ], "externDefaultImportNodes": [ "import Chk from \"bw-chk\";", - "import BufferList from \"bl\";", - "import Writable from \"stream\";", + "import Replay from \"process-replay\";", "import create from \"zustand\";", - "import ipcRenderer from \"electron\";", - "import path from \"path\";", - "import casclib from \"bw-casclib\";", + "import lSet from \"lodash.set\";", + "import immer from \"zustand/middleware/immer\";", + "import KeyboardEvent from \"react\";", + "import MathUtils from \"three\";", + "import deepMerge from \"deepmerge\";", + "import WritableDraft from \"immer/dist/internal\";", + "import BufferList from \"bl\";", "import Janitor from \"three-janitor\";", "import ClampToEdgeWrapping from \"three\";", "import RGB_ETC1_Format from \"three\";", "import BufferAttribute from \"three\";", "import RGBE from \"three/examples/jsm/loaders/RGBELoader\";", "import EXR from \"three/examples/jsm/loaders/EXRLoader\";", - "import OrthographicCamera from \"three\";", - "import range from \"lodash\";", - "import EffectComposer from \"postprocessing\";", - "import HalfFloatType from \"three\";", "import RepeatWrapping from \"three\";", - "import AnimationClip from \"three\";", - "import KTX2Loader from \"three/examples/jsm/loaders/KTX2Loader\";", - "import GLTF from \"three/examples/jsm/loaders/GLTFLoader\";", + "import EffectComposer from \"postprocessing\";", + "import Camera from \"three\";", "import CubeTexture from \"three\";", "import React from \"react\";", "import ReactDOM from \"react-dom\";", "import ReactTestUtils from \"react-dom/test-utils\";" ], "externDefaultImports": [ - "import Chk from \"bw-chk\";", - "import React from \"react\";" + "import React from \"react\";", + "import Chk from \"bw-chk\";" ], "nameClash": [ - "version", - "header", - "players", - "color", - "frameCount", + "buffer", "width", "height", "x", "y", - "assets", + "data", "frames", "w", "h", "pos", - "offset", - "file", - "size", + "url", + "plugins", + "config", + "value", + "assets", + "loader", "refId", "texture", - "readCascFile" + "grp", + "iscript", + "offset", + "sounds", + "size" ], "failedToPrint": [ "Int32Array", - "Required", + "EventTarget", + "Partial", "ReturnType", - "Awaited", "Buffer", - "Promise", "HTMLCanvasElement", - "Partial", + "Promise", + "ArrayBuffer", + "ReplayPlayer", "T", "P", + "Required", + "Exclude", + "Pick", "Record", "Date", - "Pick", - "Exclude", + "Awaited", + "Map", "Uint8Array", "Blob", - "ArrayBuffer", - "SharedArrayBuffer", - "EventTarget", "JSX", "Response" ] diff --git a/build/api-types/unroll-types.ts b/build/api-types/unroll-types.ts index 7d9c2dbc..f9f46351 100644 --- a/build/api-types/unroll-types.ts +++ b/build/api-types/unroll-types.ts @@ -15,6 +15,7 @@ import { isReferencedByAncestorDeclaration, getStatement, outputNodeText, + replaceTransientImport, } from "./util"; /** @@ -32,7 +33,7 @@ export const unrollTypes = async ({ wrapInGlobal = [], globalExternals = [], defaultInternal = false, - prefix = "" + prefix = "", }: { inFiles: string[]; tsConfigFilePath?: string; @@ -97,6 +98,12 @@ export const unrollTypes = async ({ // note: processed, not necessarily collected const _alreadyTriedToCollectNode = new Set(); + const _transients = new Set<{ + node: tsm.ImportTypeNode; + sourceFile: tsm.SourceFile; + declarationFile: tsm.SourceFile; + }>(); + /** * Recursively "collects" all definitions that are local to the project based off identifiers found in the source code (node). * @@ -113,7 +120,7 @@ export const unrollTypes = async ({ * * @param parentNode tsm.Node */ - function _collect(parentNode: tsm.Node) { + function _traverse(parentNode: tsm.Node) { const sourceFile = parentNode.getSourceFile(); parentNode.getDescendantsOfKind(tsm.SyntaxKind.Identifier).forEach((id) => { @@ -145,8 +152,8 @@ export const unrollTypes = async ({ result.diagnostics.externalDeclarations.add(id.getText()); continue; } - _addToCollectedNodes(defNode); _collect(defNode); + _traverse(defNode); } if (definitionNodes.length === 0) { @@ -162,26 +169,33 @@ export const unrollTypes = async ({ outProject ); - if (parentNode.getSourceFile().getFilePath().endsWith("input-composer.ts")) { - debugger; - } - if (declarationFile === undefined) { console.error(parentNode.getSourceFile().getFilePath()); throw new Error("Could not emit file declaration"); } - const transient = replaceTransientImports( - declarationFile, - parentNode.getSourceFile(), - inProject, - result.diagnostics - ); - - for (const node of transient) { - _addToCollectedNodes(node); - _collect(node); + for (const transient of declarationFile + .getDescendantsOfKind(tsm.SyntaxKind.ImportType) + .map((node) => ({ + node, + sourceFile, + declarationFile, + }))) { + _transients.add(transient); } + + // const transient = replaceTransientImports( + // declarationFile, + // parentNode.getSourceFile(), + // inProject, + // result.diagnostics + // ); + + // for (const node of transient) { + // _transients.add(node); + // _collect(node); + // _traverse(node); + // } } /** @@ -272,21 +286,19 @@ export const unrollTypes = async ({ } } - function _addToCollectedNodes(node: tsm.Node) { - if (hasOwnIdentifier(node)) { - const nodeId = getNodeId(node)!.getText(); - if (isExportable(node)) { - if (!_collectedNodeDefinitions.includes(node)) { - _collectedNodeDefinitions.push(node); - if (_collectedNodeDefinitionsListMap.has(nodeId)) { - _collectedNodeDefinitionsListMap.get(nodeId)!.push(node); - } else { - _collectedNodeDefinitionsListMap.set(nodeId, [node]); - } - - // set all nodes to exported so we can get declarations from TS - getExportableNode(node).setIsExported(true); + function _collect(node: tsm.Node) { + if (hasOwnIdentifier(node) && isExportable(node)) { + if (!_collectedNodeDefinitions.includes(node)) { + const nodeId = getNodeId(node)!.getText(); + _collectedNodeDefinitions.push(node); + if (_collectedNodeDefinitionsListMap.has(nodeId)) { + _collectedNodeDefinitionsListMap.get(nodeId)!.push(node); + } else { + _collectedNodeDefinitionsListMap.set(nodeId, [node]); } + + // set all nodes to exported so we can get declarations from TS + getExportableNode(node).setIsExported(true); } } } @@ -301,7 +313,16 @@ export const unrollTypes = async ({ sourceFile = inProject.getSourceFile(file); } - _collect(sourceFile); + _traverse(sourceFile); + + for (const t of _transients) { + try { + console.log(t.node.getFullText()) + _collect(replaceTransientImport(t, inProject, result.diagnostics)); + } catch (e) { + console.error(e); + } + } const rootNodes = [ ...(sourceFile.getExportedDeclarations().values() as Iterable), diff --git a/build/api-types/util.ts b/build/api-types/util.ts index ee0ab443..c4473b2f 100644 --- a/build/api-types/util.ts +++ b/build/api-types/util.ts @@ -1,3 +1,4 @@ +import _ from "lodash"; import { resolve, join } from "path"; import * as tsm from "ts-morph"; // import aliases from "../aliases"; @@ -174,6 +175,53 @@ const getFileFromModulePath = (project: tsm.Project, modulePath: string) => { return file; }; +const _forget = new Set(); + +export const replaceTransientImport = ({ + node, sourceFile, declarationFile +}: { + node: tsm.ImportTypeNode, + sourceFile: tsm.SourceFile, + declarationFile: tsm.SourceFile, +}, inProject: tsm.Project, diagnostics: Diagnostic) => { + const literal = node.getFirstDescendantByKind( + tsm.SyntaxKind.StringLiteral + )!; + const file = resolveModule( + literal.getLiteralValue(), + sourceFile.getDirectoryPath(), + inProject + ); + if (file) { + // find the node with the id and add to work items + const importedNode = findChildrenOfKindById( + node, + file + // [...file.getExportedDeclarations().values()].flat() + ); + + // strip the import type + const nodeText = getNodeId(node)!.getText(); + node.replaceWithText(nodeText); + + // add a @transient tag to the imported node for additional clarity + if ( + !hasJsDocTag(importedNode, "transient") && + tsm.Node.isJSDocable(importedNode) + ) { + importedNode.addJsDoc({ + description: `@transient`, + }); + } + return importedNode; + } else { + //TODO if the transient import is external, eg zustand + // we need to add the identifier to imports + diagnostics.importFileNotFound.add(literal.getLiteralValue()); + return null; + } +}; + /** * Replace transient imports with regular imports. * @@ -193,41 +241,15 @@ export const replaceTransientImports = ( declarationFile .getDescendantsOfKind(tsm.SyntaxKind.ImportType) .map((importType) => { - const literal = importType.getFirstDescendantByKind( - tsm.SyntaxKind.StringLiteral - )!; - const file = resolveModule( - literal.getLiteralValue(), - sourceFile.getDirectoryPath(), - inProject - ); - if (file) { - // find the node with the id and add to work items - const importedNode = findChildrenOfKindById( - importType, - file - // [...file.getExportedDeclarations().values()].flat() - ); - - // strip the import type - importType.replaceWithText(getNodeId(importType)!.getText()); - - // add a @transient tag to the imported node for additional clarity - if ( - !hasJsDocTag(importedNode, "transient") && - tsm.Node.isJSDocable(importedNode) - ) { - importedNode.addJsDoc({ - description: `@transient`, - }); - } - return importedNode; - } else { - //TODO if the transient import is external, eg zustand - // we need to add the identifier to imports - diagnostics.importFileNotFound.add(literal.getLiteralValue()); - return null; - } + return replaceTransientImport( + { + node: importType, + sourceFile, + declarationFile, + }, + inProject, + diagnostics + ) }) .filter((x) => x) ), diff --git a/configuration.html b/configuration.html index 772a3fe4..31b8db3d 100644 --- a/configuration.html +++ b/configuration.html @@ -2,9 +2,9 @@ - - - + + + diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 791fd464..66262953 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [unreleased] +## [7.0.1] + +## Added +- Auto observer plugin +- Help Menu + ## [7.0.0] - 2023-11-07 ## Added @@ -329,7 +335,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Good support for HD2/HD terrain, sluggish first render time, on the todo list. - Unit selection / unit boxing for the time being. -[unreleased]: https://github.com/imbateam-gg/titan-reactor/compare/v0.7.0...HEAD +[unreleased]: https://github.com/imbateam-gg/titan-reactor/compare/v0.7.1...HEAD +[0.7.0]: https://github.com/imbateam-gg/titan-reactor/compare/v0.7.0...v0.7.1 [0.7.0]: https://github.com/imbateam-gg/titan-reactor/compare/v0.6.9...v0.7.0 [0.6.9]: https://github.com/imbateam-gg/titan-reactor/compare/v0.6.8...v0.6.9 [0.6.8]: https://github.com/imbateam-gg/titan-reactor/compare/v0.6.7...v0.6.8 diff --git a/docs/host/assets/navigation.js b/docs/host/assets/navigation.js index a37abc4d..5bc5f5eb 100644 --- a/docs/host/assets/navigation.js +++ b/docs/host/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file diff --git a/docs/host/assets/search.js b/docs/host/assets/search.js index 3ba9b42c..ce2de8bc 100644 --- a/docs/host/assets/search.js +++ b/docs/host/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/host/classes/ArrowKeyInput.html b/docs/host/classes/ArrowKeyInput.html index 3bd0bff6..4345a101 100644 --- a/docs/host/classes/ArrowKeyInput.html +++ b/docs/host/classes/ArrowKeyInput.html @@ -1,4 +1,4 @@ -ArrowKeyInput | titan-reactor-runtime/host
+ArrowKeyInput | @titan-reactor-runtime/host
  • Preparing search index...
  • -
  • The search index is not available
titan-reactor-runtime/host
+
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • ArrowKeyInput
    +
  • Defined in build/api-types/host/index.d.ts:2632
  • @@ -56,14 +56,14 @@

    Parameters

    el: HTMLElement

    Returns ArrowKeyInput

    +
  • Defined in build/api-types/host/index.d.ts:2634
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:2633
  • Accessors

    @@ -73,7 +73,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:2635
  • Methods

    @@ -83,7 +83,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:2636
  • Generated using TypeDoc

    diff --git a/docs/host/classes/BaseScene.html b/docs/host/classes/BaseScene.html index 23c8405d..af99e8a2 100644 --- a/docs/host/classes/BaseScene.html +++ b/docs/host/classes/BaseScene.html @@ -1,4 +1,4 @@ -BaseScene | titan-reactor-runtime/host
    +BaseScene | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -26,7 +26,7 @@

    Hierarchy

    • BaseScene
    +
  • Defined in build/api-types/host/index.d.ts:1795
  • @@ -159,14 +159,14 @@
    Optional Returns BaseScene
    +
  • Defined in build/api-types/host/index.d.ts:1801
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1796
  • animations: AnimationClip[]
    @@ -177,7 +177,7 @@

    Default Value

    []

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:204
  • background: null | CubeTexture | Texture | Color
    @@ -232,10 +232,10 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:176
  • -
    children: Object3D<Event>[]
    +
    children: Object3D<Object3DEventMap>[]

    Array with object's children.

    @@ -245,7 +245,7 @@

    Default Value

    []

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:83
  • customDepthMaterial?: Material
    @@ -258,7 +258,7 @@

    Default Value

    undefined

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:220
  • customDistanceMaterial?: Material
    @@ -269,7 +269,7 @@

    Default Value

    undefined

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:226
  • environment: null | Texture
    @@ -304,7 +304,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:189
  • id: number
    @@ -315,7 +315,7 @@

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, .

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:47
  • isObject3D: true
    @@ -328,7 +328,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:40
  • isScene: true
    @@ -354,17 +354,17 @@

    Default Value

    new THREE.Layers()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:164
  • mapHeight: number
    +
  • Defined in build/api-types/host/index.d.ts:1798
  • mapWidth: number
    +
  • Defined in build/api-types/host/index.d.ts:1797
  • matrix: Matrix4
    @@ -375,7 +375,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:129
  • matrixAutoUpdate: boolean
    @@ -387,7 +387,7 @@

    Default Value

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:143
  • matrixWorld: Matrix4
    @@ -400,7 +400,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:136
  • matrixWorldAutoUpdate: boolean
    @@ -412,7 +412,7 @@

    Default Value

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:150
  • matrixWorldNeedsUpdate: boolean
    @@ -423,7 +423,7 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:156
  • modelViewMatrix: Matrix4
    @@ -432,7 +432,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:118
  • name: string
    @@ -445,7 +445,7 @@

    Default Value

    ""

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:60
  • normalMatrix: Matrix3
    @@ -454,7 +454,7 @@

    Default Value

    new THREE.Matrix3()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:123
  • onAfterRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -477,11 +477,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -490,7 +490,7 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:257
  • onBeforeRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -513,11 +513,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -526,7 +526,7 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:238
  • overrideMaterial: null | Material
    @@ -540,7 +540,7 @@

    Default Value

    null

  • Defined in node_modules/@types/three/src/scenes/Scene.d.ts:59
  • -
    parent: null | Object3D<Event>
    +
    parent: null | Object3D<Object3DEventMap>

    Object's parent in the scene graph.

    @@ -550,7 +550,7 @@

    Default Value

    null

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:75
  • position: Vector3
    @@ -561,7 +561,7 @@

    Default Value

    new THREE.Vector3() - that is (0, 0,

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:95
  • quaternion: Quaternion
    @@ -572,7 +572,7 @@

    Default Value

    new THREE.Quaternion() - that is (0,

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:107
  • receiveShadow: boolean
    @@ -583,7 +583,7 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:182
  • renderOrder: number
    @@ -597,7 +597,7 @@

    Default Value

    0

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:198
  • rotation: Euler
    @@ -608,7 +608,7 @@

    Default Value

    new THREE.Euler() - that is (0, 0, 0

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:101
  • scale: Vector3
    @@ -619,17 +619,17 @@

    Default Value

    new THREE.Vector3( 1, 1, 1 )

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:113
  • sunlight: Sunlight
    +
  • Defined in build/api-types/host/index.d.ts:1799
  • terrain: Terrain
    +
  • Defined in build/api-types/host/index.d.ts:1800
  • type: "Scene"
    @@ -649,7 +649,7 @@

    Default Value

    Inherited from Scene.up

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:84
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:89
  • userData: {
        [key: string]: any;
    }
    @@ -667,7 +667,7 @@

    Default

    {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:211
  • uuid: string
    @@ -678,7 +678,7 @@

    Remarks

    This gets automatically assigned and shouldn't be edited.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:53
  • visible: boolean
    @@ -689,7 +689,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:170
  • DEFAULT_MATRIX_AUTO_UPDATE: boolean
    @@ -700,7 +700,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:277
  • DEFAULT_MATRIX_WORLD_AUTO_UPDATE: boolean
    @@ -711,7 +711,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:283
  • DEFAULT_UP: Vector3
    @@ -723,7 +723,7 @@

    Default Value

    new THREE.Vector3( 0, 1, 0)

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:271
  • Methods

    @@ -737,7 +737,7 @@
    • -
      Rest ...object: Object3D<Event>[]
      +
      Rest ...object: Object3D<Object3DEventMap>[]

    Returns BaseScene

    @@ -750,7 +750,7 @@

    See

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:419
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -772,7 +772,7 @@
      type:
  • -
    listener: EventListener<Event, T, BaseScene>
    +
    listener: EventListener<Object3DEventMap[T], T, BaseScene>

    The function that gets called when the event is fired.

  • @@ -780,7 +780,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:52
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, BaseScene>
    +

    Returns void

    • @@ -798,7 +816,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:289
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:295
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:445
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:437
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:566
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:574
  • +
  • Defined in build/api-types/host/index.d.ts:1802
    • - +
    • Fire an event type.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends keyof Object3DEventMap

      Parameters

      • -
        event: Event
        +
        event: BaseEvent<T> & Object3DEventMap[T]

        The event that gets fired.

      @@ -923,7 +946,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:84
  • +
  • Defined in build/api-types/host/index.d.ts:1804
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching id.

      @@ -947,7 +970,7 @@
      id:

      Unique number of the object instance. Expects a Integer

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, ..., incrementing by one for each new object.

    @@ -955,11 +978,11 @@

    See

    id

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:453
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching name.

      @@ -971,17 +994,17 @@
      name:

      String to match to the children's Object3D.name property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that for most objects the name is an empty string by default

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:461
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -999,15 +1022,15 @@
      value:

      value of the given property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:470
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -1025,11 +1048,11 @@
      value:

      Value of the given property.

    -

    Returns Object3D<Event>[]

    +

    Returns Object3D<Object3DEventMap>[]

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:478
    • @@ -1049,7 +1072,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:502
    • @@ -1069,7 +1092,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:484
    • @@ -1089,7 +1112,7 @@

      Returns Quaterni

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:490
    • @@ -1109,7 +1132,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:496
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1131,7 +1154,7 @@
      type:
  • -
    listener: EventListener<Event, T, BaseScene>
    +
    listener: EventListener<Object3DEventMap[T], T, BaseScene>

    The function that gets called when the event is fired.

  • @@ -1139,7 +1162,25 @@

    Returns boolean +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:63
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, BaseScene>
    +

    Returns boolean

    • @@ -1159,7 +1200,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:388
    • @@ -1181,7 +1222,7 @@

      Remarks

      This method does not support objects having non-uniformly-sca

      +
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:401
  • Rotates the object to face a point in world space.

    @@ -1210,7 +1251,7 @@

    Remarks

    This method does not support objects having non-uniformly-sca

  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:409
    • @@ -1225,7 +1266,7 @@

      Parameters

      raycaster: Raycaster
    • -
      intersects: Intersection<Object3D<Event>>[]
      +
      intersects: Intersection<Object3D<Object3DEventMap>>[]

    Returns void

    @@ -1237,7 +1278,7 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:512
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:427
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1281,7 +1322,7 @@
      type:
  • -
    listener: EventListener<Event, T, BaseScene>
    +
    listener: EventListener<Object3DEventMap[T], T, BaseScene>

    The listener function that gets removed.

  • @@ -1289,7 +1330,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:74
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, BaseScene>
    +

    Returns void

  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:432
    • @@ -1328,7 +1387,7 @@

      Remarks

      The axis is assumed to be normalized.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:329
    • @@ -1355,7 +1414,7 @@

      Remarks

      The axis is assumed to be normalized

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:338
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:344
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:350
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:356
    • @@ -1419,7 +1478,7 @@

      Parameters

      color: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1803
    • @@ -1444,7 +1503,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:302
    • @@ -1464,7 +1523,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:308
    • @@ -1486,7 +1545,7 @@

      Remarks

      Note that this assumes that the upper 3x3 of m is a pure rota

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:315
    • @@ -1506,7 +1565,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:321
    • @@ -1553,7 +1612,7 @@

      Remarks

      The axis is assumed to be normalized.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:364
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:370
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:376
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:382
    • @@ -1638,7 +1697,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1646,7 +1705,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:519
    • @@ -1671,7 +1730,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1679,7 +1738,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:534
    • @@ -1704,7 +1763,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1712,7 +1771,7 @@

    Remarks

    Descendants of invisible objects are not traversed.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:527
    • @@ -1724,7 +1783,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:539
    • @@ -1746,7 +1805,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:547
    • @@ -1771,7 +1830,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:554
    • @@ -1791,7 +1850,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:394
  • Generated using TypeDoc

    diff --git a/docs/host/classes/CameraShake.html b/docs/host/classes/CameraShake.html index defdc325..5b37d47e 100644 --- a/docs/host/classes/CameraShake.html +++ b/docs/host/classes/CameraShake.html @@ -1,4 +1,4 @@ -CameraShake | titan-reactor-runtime/host
    +CameraShake | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • CameraShake
    +
  • Defined in build/api-types/host/index.d.ts:2820
  • @@ -69,34 +69,34 @@
    Optional Optional strength: number

    Returns CameraShake

    +
  • Defined in build/api-types/host/index.d.ts:2828
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:2821
  • _duration: Vector3
    +
  • Defined in build/api-types/host/index.d.ts:2822
  • _startTime: number[]
    +
  • Defined in build/api-types/host/index.d.ts:2823
  • _strength: Vector3
    +
  • Defined in build/api-types/host/index.d.ts:2824
  • maxShakeDistance: number
    +
  • Defined in build/api-types/host/index.d.ts:2825
  • Accessors

    @@ -106,7 +106,7 @@

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2826
  • Methods

    @@ -139,7 +139,7 @@
    frequency: strength: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2831
    • @@ -154,7 +154,7 @@
      component: elapsed: number

    Returns undefined | number

    +
  • Defined in build/api-types/host/index.d.ts:2830
    • @@ -167,7 +167,7 @@

      Parameters

      camera: Camera

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2834
    • @@ -186,7 +186,7 @@
      frequency: strength: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2829
    • @@ -205,7 +205,7 @@
      frequency: strength: Vector3

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2832
    • @@ -220,7 +220,7 @@
      elapsed: camera: Camera

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2833
  • Generated using TypeDoc

    diff --git a/docs/host/classes/CommandsStream.html b/docs/host/classes/CommandsStream.html deleted file mode 100644 index 9ff10fa1..00000000 --- a/docs/host/classes/CommandsStream.html +++ /dev/null @@ -1,124 +0,0 @@ -CommandsStream | titan-reactor-runtime/host
    -
    - -
    -
    -
    -
    - -

    Class CommandsStreamInternal

    -
    -

    Hierarchy

    -
      -
    • CommandsStream
    -
    -
    -
    - -
    -
    -

    Constructors

    -
    -
    -

    Properties

    -
    -
    -

    Methods

    -
    -
    -

    Constructors

    -
    - -
    -
    -

    Properties

    -
    - -
    #private: any
    -
    -

    Methods

    -
    - -
      - -
    • -

      Returns Generator<number | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit: number;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit: number;
          unitTag: number;
          unitTags: number[];
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order: number;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit: number;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId: number;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit: number;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit: number;
          unitTag: number;
          unitTags: number[];
          unitTypeId?: undefined;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags: number[];
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order: number;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags: number[];
          unitTypeId: number;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags: number[];
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group: number;
          hotkeyType: number;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit: number;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group: number;
          hotkeyType: number;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags: number[];
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group: number;
          hotkeyType: number;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order: number;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId: number;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group: number;
          hotkeyType: number;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group: number;
          hotkeyType: number;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit: number;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId: number;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags: number[];
          unitTypeId: number;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order: number;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId: number;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId: number;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags?: undefined;
          unitTypeId: number;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order: number;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags: number[];
          unitTypeId: number;
          unk?: undefined;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order: number;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId: number;
          unk?: undefined;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order: number;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags: number[];
          unitTypeId: number;
          unk?: undefined;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order: number;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId: number;
          unk?: undefined;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order: number;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags?: undefined;
          unitTypeId: number;
          unk?: undefined;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags: number[];
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags: number[];
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message: string;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot: number;
          slotIds?: undefined;
          unit: number;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message: string;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot: number;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags: number[];
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message: string;
          order: number;
          player: number;
          queued: number;
          senderSlot: number;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId: number;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message: string;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot: number;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message: string;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot: number;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit: number;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk: number;
          value: number;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags: number[];
          unitTypeId?: undefined;
          unk?: undefined;
          value: number;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order: number;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId: number;
          unk: number;
          value: number;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value: number;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value: number;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory: boolean;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds: number[];
          unit: number;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory: boolean;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds: number[];
          unit?: undefined;
          unitTag?: undefined;
          unitTags: number[];
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory: boolean;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order: number;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds: number[];
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId: number;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory: boolean;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds: number[];
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory: boolean;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds: number[];
          unit?: undefined;
          unitTag?: undefined;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds: number[];
          unit: number;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds: number[];
          unit?: undefined;
          unitTag?: undefined;
          unitTags: number[];
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order: number;
          player: number;
          queued: number;
          senderSlot?: undefined;
          slotIds: number[];
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId: number;
          unk: number;
          value?: undefined;
          x: number;
          y: number;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds: number[];
          unit?: undefined;
          unitTag: number;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds: number[];
          unit?: undefined;
          unitTag?: undefined;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      } | {
          alliedVictory?: undefined;
          data: Buffer;
          frame: number;
          group?: undefined;
          hotkeyType?: undefined;
          id: number;
          isUnknown: boolean;
          message?: undefined;
          order?: undefined;
          player: number;
          queued?: undefined;
          senderSlot?: undefined;
          slotIds?: undefined;
          unit?: undefined;
          unitTag?: undefined;
          unitTags?: undefined;
          unitTypeId?: undefined;
          unk?: undefined;
          value?: undefined;
          x?: undefined;
          y?: undefined;
      }, void, unknown>

    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/host/classes/Creep.html b/docs/host/classes/Creep.html index fc28a242..2e5f2a48 100644 --- a/docs/host/classes/Creep.html +++ b/docs/host/classes/Creep.html @@ -1,4 +1,4 @@ -Creep | titan-reactor-runtime/host
    +Creep | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • Creep
    +
  • Defined in build/api-types/host/index.d.ts:1908
  • @@ -66,44 +66,44 @@
    creepValuesTexture: creepEdgesValuesTexture: Texture

    Returns Creep

    +
  • Defined in build/api-types/host/index.d.ts:1916
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1909
  • creepEdgesValuesTexture: Texture
    +
  • Defined in build/api-types/host/index.d.ts:1913
  • creepValuesTexture: Texture
    +
  • Defined in build/api-types/host/index.d.ts:1912
  • mapHeight: number
    +
  • Defined in build/api-types/host/index.d.ts:1911
  • mapWidth: number
    +
  • Defined in build/api-types/host/index.d.ts:1910
  • minimapImageData: ImageData
    +
  • Defined in build/api-types/host/index.d.ts:1914
  • worker: Worker
    +
  • Defined in build/api-types/host/index.d.ts:1915
  • Methods

    @@ -113,7 +113,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1919
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1917
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1918
  • Generated using TypeDoc

    diff --git a/docs/host/classes/FlingyBufferView.html b/docs/host/classes/FlingyBufferView.html index 6b506ce7..690ec745 100644 --- a/docs/host/classes/FlingyBufferView.html +++ b/docs/host/classes/FlingyBufferView.html @@ -1,4 +1,4 @@ -FlingyBufferView | titan-reactor-runtime/host
    +FlingyBufferView | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Constructors

    @@ -83,7 +84,7 @@
    bw: Returns FlingyBufferView
    +
  • Defined in build/api-types/host/index.d.ts:606
  • Properties

    @@ -91,31 +92,25 @@
    +
  • Defined in build/api-types/host/index.d.ts:601
  • _addr8: number
    +
  • Defined in build/api-types/host/index.d.ts:602
  • _address: number
    +
  • Defined in build/api-types/host/index.d.ts:600
  • _bw: OpenBW
    -
    - -
    +
  • Defined in build/api-types/host/index.d.ts:603
  • Accessors

    @@ -126,7 +121,25 @@
    +
  • Defined in build/api-types/host/index.d.ts:604
  • +
    + +
    +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:586
  • +
  • Defined in build/api-types/host/index.d.ts:607
  • +
  • Defined in build/api-types/host/index.d.ts:578
  • +
  • Defined in build/api-types/host/index.d.ts:579
  • +
  • Defined in build/api-types/host/index.d.ts:580
  • +
  • Defined in build/api-types/host/index.d.ts:585
  • +
  • Defined in build/api-types/host/index.d.ts:581
  • +
  • Defined in build/api-types/host/index.d.ts:582
  • +
  • Defined in build/api-types/host/index.d.ts:583
  • +
  • Defined in build/api-types/host/index.d.ts:584
  • +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:608
  • +
  • Defined in build/api-types/host/index.d.ts:587
  • +
  • Defined in build/api-types/host/index.d.ts:588
  • Methods

    -
    - -
    +
  • Defined in build/api-types/host/index.d.ts:605
  • Generated using TypeDoc

    diff --git a/docs/host/classes/FogOfWar.html b/docs/host/classes/FogOfWar.html index 8db4767d..f7902c3a 100644 --- a/docs/host/classes/FogOfWar.html +++ b/docs/host/classes/FogOfWar.html @@ -1,4 +1,4 @@ -FogOfWar | titan-reactor-runtime/host
    +FogOfWar | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • FogOfWar
    +
  • Defined in build/api-types/host/index.d.ts:238
  • @@ -67,39 +67,39 @@
    openBw: effect: FogOfWarEffect

    Returns FogOfWar

    +
  • Defined in build/api-types/host/index.d.ts:245
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:239
  • buffer: Uint8Array
    +
  • Defined in build/api-types/host/index.d.ts:242
  • +
  • Defined in build/api-types/host/index.d.ts:241
  • enabled: boolean
    +
  • Defined in build/api-types/host/index.d.ts:244
  • forceInstantUpdate: boolean
    +
  • Defined in build/api-types/host/index.d.ts:243
  • texture: DataTexture
    +
  • Defined in build/api-types/host/index.d.ts:240
  • Methods

    @@ -116,7 +116,7 @@
    x:
    y: number

    Returns boolean

    +
  • Defined in build/api-types/host/index.d.ts:248
    • @@ -131,7 +131,7 @@
      x:
      y: number

    Returns boolean

    +
  • Defined in build/api-types/host/index.d.ts:250
    • @@ -146,7 +146,7 @@
      x:
      y: number

    Returns boolean

    +
  • Defined in build/api-types/host/index.d.ts:249
    • @@ -161,7 +161,7 @@
      x:
      y: number

    Returns boolean

    +
  • Defined in build/api-types/host/index.d.ts:247
    • @@ -174,7 +174,7 @@

      Parameters

      playerVision: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:246
  • Generated using TypeDoc

    diff --git a/docs/host/classes/FogOfWarEffect.html b/docs/host/classes/FogOfWarEffect.html index cd983a42..414b06c7 100644 --- a/docs/host/classes/FogOfWarEffect.html +++ b/docs/host/classes/FogOfWarEffect.html @@ -1,4 +1,4 @@ -FogOfWarEffect | titan-reactor-runtime/host
    +FogOfWarEffect | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    • FogOfWarEffect
    +
  • Defined in build/api-types/host/index.d.ts:256
  • @@ -90,7 +90,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:257
  • Properties

    @@ -101,7 +101,7 @@
    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4035
  • defines: Map<string, string>
    @@ -111,7 +111,7 @@
    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4013
  • extensions: Set<WebGLExtension>
    @@ -121,7 +121,7 @@
    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4029
  • name: string
    @@ -130,7 +130,7 @@
    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:3997
  • renderer: WebGLRenderer
    @@ -140,7 +140,7 @@
    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4005
  • uniforms: Map<string, Uniform<any>>
    @@ -150,7 +150,7 @@
    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4021
  • Accessors

    @@ -160,7 +160,7 @@

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:270
  • set fog(value): void
  • @@ -188,7 +188,7 @@

    Parameters

    value: Texture
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:262
  • set fogResolution(value): void
  • @@ -206,7 +206,7 @@

    Parameters

    value: Vector2
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:264
  • set fogUvTransform(value): void
  • @@ -224,7 +224,7 @@

    Parameters

    value: Vector4
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:272
    • @@ -236,7 +236,7 @@

      Returns ColorSpa
      +
    • Defined in node_modules/postprocessing/build/types/index.d.cts:4042
  • set inputColorSpace(arg): void
  • Protected Experimental
    @@ -248,7 +248,7 @@

    Returns void

  • +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4048
  • +
  • Defined in build/api-types/host/index.d.ts:260
    • @@ -279,7 +279,7 @@

      Returns void

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4069
  • set opacity(value): void
  • @@ -297,7 +297,7 @@

    Parameters

    value: number
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:258
    • @@ -310,7 +310,7 @@

      Returns ColorSpa
      +
    • Defined in node_modules/postprocessing/build/types/index.d.cts:4057
  • set outputColorSpace(arg): void
  • Protected Experimental
    @@ -322,7 +322,7 @@

    Returns void

  • +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4063
  • set projectionInverse(value): void
  • @@ -340,7 +340,7 @@

    Parameters

    value: Matrix4
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:268
  • set viewInverse(value): void
  • @@ -358,7 +358,7 @@

    Parameters

    value: Matrix4
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:266
  • Methods

    @@ -372,7 +372,7 @@
    +

    T extends keyof Event<string, unknown>

    Parameters

      @@ -382,7 +382,7 @@
      type:
  • -
    listener: EventListener<Event, T, FogOfWarEffect>
    +
    listener: EventListener<Event<string, unknown>[T], T, FogOfWarEffect>

    The function that gets called when the event is fired.

  • @@ -390,19 +390,42 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:52
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns void

    • - +
    • Fire an event type.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends keyof Event<string, unknown>

      Parameters

      • -
        event: Event
        +
        event: BaseEvent<T> & Event<string, unknown>[T]

        The event that gets fired.

      @@ -410,7 +433,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:84
    • @@ -423,7 +446,7 @@

      Returns void

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4233
    • @@ -436,7 +459,7 @@

      Returns EffectAt

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4125
    • @@ -452,7 +475,7 @@

      Deprecated

      Use blendMode instead.

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4119
    • @@ -467,7 +490,7 @@

      Deprecated

      Use defines instead.

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4096
    • @@ -482,7 +505,7 @@

      Deprecated

      Use extensions instead.

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4110
    • @@ -495,7 +518,7 @@

      Returns string

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4141
    • @@ -510,7 +533,7 @@

      Deprecated

      Use name instead.

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4082
    • @@ -525,7 +548,7 @@

      Deprecated

      Use uniforms instead.

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4103
    • @@ -538,7 +561,7 @@

      Returns string

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4154
  • +

    T extends keyof Event<string, unknown>

    Parameters

      @@ -560,7 +583,7 @@
      type:
  • -
    listener: EventListener<Event, T, FogOfWarEffect>
    +
    listener: EventListener<Event<string, unknown>[T], T, FogOfWarEffect>

    The function that gets called when the event is fired.

  • @@ -568,7 +591,25 @@

    Returns boolean +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:63
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns boolean

    • @@ -602,7 +643,7 @@

      Example

      if
    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4222
  • +

    T extends keyof Event<string, unknown>

    Parameters

      @@ -624,7 +665,7 @@
      type:
  • -
    listener: EventListener<Event, T, FogOfWarEffect>
    +
    listener: EventListener<Event<string, unknown>[T], T, FogOfWarEffect>

    The listener function that gets removed.

  • @@ -632,7 +673,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:74
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns void

    • @@ -654,7 +713,7 @@

      Returns void

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4135
    • @@ -667,7 +726,7 @@

      Returns void

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4169
    • @@ -694,7 +753,7 @@

      Returns void

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4179
    • @@ -714,7 +773,7 @@

      Returns void

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4148
    • @@ -735,7 +794,7 @@

      Returns voidDeprecated

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4089
    • @@ -762,7 +821,7 @@

      Returns void

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4211
    • @@ -782,7 +841,7 @@

      Returns void

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4161
    • @@ -802,7 +861,7 @@
      renderer:
    • -
      inputBuffer: WebGLRenderTarget
      +
      inputBuffer: WebGLRenderTarget<Texture>

      A frame buffer that contains the result of the previous pass.

    • @@ -815,7 +874,7 @@

      Returns void

    +
  • Defined in node_modules/postprocessing/build/types/index.d.cts:4196
  • Generated using TypeDoc

    diff --git a/docs/host/classes/GameSurface.html b/docs/host/classes/GameSurface.html index 64f73716..e744d00d 100644 --- a/docs/host/classes/GameSurface.html +++ b/docs/host/classes/GameSurface.html @@ -1,4 +1,4 @@ -GameSurface | titan-reactor-runtime/host
    +GameSurface | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    • GameSurface
    +
  • Defined in build/api-types/host/index.d.ts:2416
  • @@ -38,7 +38,6 @@

    Properties

    #private bottom canvas -ctx? left right top @@ -85,7 +84,7 @@
    canvas: Returns GameSurface
    +
  • Defined in build/api-types/host/index.d.ts:2422
  • Properties

    @@ -93,45 +92,39 @@
    +
  • Defined in build/api-types/host/index.d.ts:2417
  • #private: any
    +
  • Defined in build/api-types/host/index.d.ts:2438
  • bottom: number
    +
  • Defined in build/api-types/host/index.d.ts:2421
  • canvas: HTMLCanvasElement
    -
    - -
    ctx?: CanvasRenderingContext2D
    +
  • Defined in build/api-types/host/index.d.ts:2439
  • left: number
    +
  • Defined in build/api-types/host/index.d.ts:2419
  • right: number
    +
  • Defined in build/api-types/host/index.d.ts:2420
  • top: number
    +
  • Defined in build/api-types/host/index.d.ts:2418
  • Accessors

    @@ -142,7 +135,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:2442
  • +
  • Defined in build/api-types/host/index.d.ts:2446
  • +
  • Defined in build/api-types/host/index.d.ts:2445
  • +
  • Defined in build/api-types/host/index.d.ts:2444
  • +
  • Defined in build/api-types/host/index.d.ts:2447
  • +
  • Defined in build/api-types/host/index.d.ts:2428
  • +
  • Defined in build/api-types/host/index.d.ts:2443
  • Methods

    @@ -206,7 +199,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:2430
  • +
  • Defined in build/api-types/host/index.d.ts:2427
  • +
  • Defined in build/api-types/host/index.d.ts:2448
    • @@ -236,7 +229,7 @@

      Parameters

      minimapScale: number

    Returns Pick<MinimapDimensions, "minimapWidth" | "minimapHeight">

    +
  • Defined in build/api-types/host/index.d.ts:2429
  • +
  • Defined in build/api-types/host/index.d.ts:2432
  • +
  • Defined in build/api-types/host/index.d.ts:2424
  • +
  • Defined in build/api-types/host/index.d.ts:2426
  • +
  • Defined in build/api-types/host/index.d.ts:2423
  • +
  • Defined in build/api-types/host/index.d.ts:2431
    • @@ -299,7 +292,7 @@

      Parameters

      val: boolean

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2425
  • Generated using TypeDoc

    diff --git a/docs/host/classes/GameViewPort.html b/docs/host/classes/GameViewPort.html index 843d75f1..aafbe655 100644 --- a/docs/host/classes/GameViewPort.html +++ b/docs/host/classes/GameViewPort.html @@ -1,4 +1,4 @@ -GameViewPort | titan-reactor-runtime/host
    +GameViewPort | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,9 +22,11 @@

    Class GameViewPort

    Hierarchy

      -
    • GameViewPort
    @@ -36,49 +38,52 @@

    Constructors

    Properties

    -

    Accessors

    -

    Methods

    Constructors

      - +
    • Parameters

      @@ -86,62 +91,70 @@

      Parameters

    • surface: Surface
    • -
      isPrimaryViewport: boolean
    +
    Optional enabled: boolean

    Returns GameViewPort

    +
  • Defined in build/api-types/host/index.d.ts:2750
  • Properties

    -
    +
    #private: any
    +
    + +
    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:2770
  • audioType: null | "3d" | "stereo"
    +
  • Defined in build/api-types/host/index.d.ts:2745
  • +
    + +
    autoUpdateSmoothTime: boolean
    -
    +
  • Defined in build/api-types/host/index.d.ts:2729
  • cameraShake: CameraShake
    +
  • Defined in build/api-types/host/index.d.ts:2733
  • constrainToAspect: boolean
    -
    - -
    freezeCamera: boolean
    +
  • Defined in build/api-types/host/index.d.ts:2741
  • needsUpdate: boolean
    +
  • Defined in build/api-types/host/index.d.ts:2742
  • orbit: CameraControls
    +
  • Defined in build/api-types/host/index.d.ts:2731
  • projectedView: ProjectedCameraView
    +
  • Defined in build/api-types/host/index.d.ts:2730
  • rotateSprites: boolean
    +
  • Defined in build/api-types/host/index.d.ts:2743
  • shakeCalculation: {
        duration: Vector3;
        frequency: Vector3;
        needsUpdate: boolean;
        strength: Vector3;
    }
    @@ -157,68 +170,87 @@
    needsUpdate
    strength: Vector3
    +
  • Defined in build/api-types/host/index.d.ts:2734
  • +
    + +
    surface: Surface
    viewport: Vector4
    +
  • Defined in build/api-types/host/index.d.ts:2732
  • Accessors

    -
    +
    -

    Returns void

    -
    +
  • Defined in build/api-types/host/index.d.ts:2787
  • +
    -

    Returns void

    -
    +
  • Defined in build/api-types/host/index.d.ts:2784
  • +
    -

    Returns void

    +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:2760
  • set enabled(val): void
  • @@ -236,43 +268,47 @@

    Parameters

    val: boolean
  • Returns void

    -
    +
  • Defined in build/api-types/host/index.d.ts:2749
  • +
    -

    Returns void

    -
    +
  • Defined in build/api-types/host/index.d.ts:2775
  • +
    -

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2779
    • @@ -285,7 +321,7 @@

      Parameters

      value: boolean

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2751
  • set renderMode3D(val): void
  • @@ -303,61 +339,67 @@

    Parameters

    val: boolean
  • Returns void

    -
    +
  • Defined in build/api-types/host/index.d.ts:2746
  • +
    -

    Returns void

    -
    +
  • Defined in build/api-types/host/index.d.ts:2780
  • +
    -

    Returns void

    -
    +
  • Defined in build/api-types/host/index.d.ts:2783
  • +
    -

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2776
  • Methods

    @@ -367,7 +409,16 @@
    +
  • Defined in build/api-types/host/index.d.ts:2752
  • +
    + +
      @@ -380,20 +431,16 @@
      position
      target: Vector3
    -
    - -
    +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:2788
  • +
  • Defined in build/api-types/host/index.d.ts:2758
    • @@ -416,30 +463,22 @@
      elapsed: strength: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2757
    • - +
    • Parameters

      • -
        targetDamping: number
      • +
        targetSmoothTime: number
      • delta: number

      Returns void

    -
    - -
    +
  • Defined in build/api-types/host/index.d.ts:2759
  • Generated using TypeDoc

    diff --git a/docs/host/classes/IScriptBufferView.html b/docs/host/classes/IScriptBufferView.html index e868174b..2b7a3c61 100644 --- a/docs/host/classes/IScriptBufferView.html +++ b/docs/host/classes/IScriptBufferView.html @@ -1,4 +1,4 @@ -IScriptBufferView | titan-reactor-runtime/host
    +IScriptBufferView | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -24,7 +24,7 @@

    Implements

    +
  • Defined in build/api-types/host/index.d.ts:2047
  • @@ -69,24 +69,24 @@

    Parameters

    bw: OpenBW

    Returns IScriptBufferView

    +
  • Defined in build/api-types/host/index.d.ts:2052
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:2048
  • _bw: OpenBW
    +
  • Defined in build/api-types/host/index.d.ts:2049
  • _debug: number
    +
  • Defined in build/api-types/host/index.d.ts:2050
  • Accessors

    @@ -96,7 +96,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:2053
  • +
  • Defined in build/api-types/host/index.d.ts:2059
  • +
  • Defined in build/api-types/host/index.d.ts:2057
  • +
  • Defined in build/api-types/host/index.d.ts:2054
  • +
  • Defined in build/api-types/host/index.d.ts:2056
  • +
  • Defined in build/api-types/host/index.d.ts:2058
  • +
  • Defined in build/api-types/host/index.d.ts:2055
  • +
  • Defined in build/api-types/host/index.d.ts:2060
  • Methods

    @@ -171,7 +171,7 @@

    Parameters

    address: number

    Returns IScriptBufferView

    +
  • Defined in build/api-types/host/index.d.ts:2051
  • Generated using TypeDoc

    diff --git a/docs/host/classes/Image3D.html b/docs/host/classes/Image3D.html index cb79aaaa..e75a7d99 100644 --- a/docs/host/classes/Image3D.html +++ b/docs/host/classes/Image3D.html @@ -1,4 +1,4 @@ -Image3D | titan-reactor-runtime/host
    +Image3D | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -26,7 +26,7 @@

    Implements

    +
  • Defined in build/api-types/host/index.d.ts:1408
  • @@ -164,20 +164,20 @@
    atlas: Returns Image3D
    +
  • Defined in build/api-types/host/index.d.ts:1421
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1409
  • _zOff: number
    +
  • Defined in build/api-types/host/index.d.ts:1420
  • animations: AnimationClip[]
    @@ -189,23 +189,23 @@

    Default Value

    []

    Implementation of ImageBase.animations

    Inherited from Object3D.animations

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:199
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:204
  • atlas: GltfAtlas
    +
  • Defined in build/api-types/host/index.d.ts:1413
  • boundingBox: Box3
    +
  • Defined in build/api-types/host/index.d.ts:1417
  • boundingSphere: Sphere
    +
  • Defined in build/api-types/host/index.d.ts:1418
  • castShadow: boolean
    @@ -217,10 +217,10 @@

    Default Value

    false

    Implementation of ImageBase.castShadow

    Inherited from Object3D.castShadow

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:171
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:176
  • -
    children: Object3D<Event>[]
    +
    children: Object3D<Object3DEventMap>[]

    Array with object's children.

    @@ -231,7 +231,7 @@

    Default Value

    []

    Implementation of ImageBase.children

    Inherited from Object3D.children

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:78
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:83
  • customDepthMaterial?: Material
    @@ -245,7 +245,7 @@

    Default Value

    undefined

    Implementation of ImageBase.customDepthMaterial

    Inherited from Object3D.customDepthMaterial

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:215
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:220
  • customDistanceMaterial?: Material
    @@ -257,7 +257,7 @@

    Default Value

    undefined

    Implementation of ImageBase.customDistanceMaterial

    Inherited from Object3D.customDistanceMaterial

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:221
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:226
  • frustumCulled: boolean
    @@ -270,7 +270,7 @@

    Default Value

    true

    Implementation of ImageBase.frustumCulled

    Inherited from Object3D.frustumCulled

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:184
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:189
  • id: number
    @@ -282,30 +282,30 @@

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, .

    Implementation of ImageBase.id

    Inherited from Object3D.id

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:42
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:47
  • image3dMaterial: Image3DMaterial
    +
  • Defined in build/api-types/host/index.d.ts:1419
  • isImage3d: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1411
  • isImageHd: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1410
  • isInstanced: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1412
  • isObject3D: true
    @@ -319,7 +319,7 @@

    Default Value

    true

    Implementation of ImageBase.isObject3D

    Inherited from Object3D.isObject3D

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:35
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:40
  • layers: Layers
    @@ -333,7 +333,7 @@

    Default Value

    new THREE.Layers()

    Implementation of ImageBase.layers

    Inherited from Object3D.layers

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:159
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:164
  • matrix: Matrix4
    @@ -345,7 +345,7 @@

    Default Value

    new THREE.Matrix4()

    Implementation of ImageBase.matrix

    Inherited from Object3D.matrix

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:124
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:129
  • matrixAutoUpdate: boolean
    @@ -358,7 +358,7 @@

    Default Value

    Implementation of ImageBase.matrixAutoUpdate

    Inherited from Object3D.matrixAutoUpdate

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:138
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:143
  • matrixWorld: Matrix4
    @@ -372,7 +372,7 @@

    Default Value

    new THREE.Matrix4()

    Implementation of ImageBase.matrixWorld

    Inherited from Object3D.matrixWorld

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:131
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:136
  • matrixWorldAutoUpdate: boolean
    @@ -385,7 +385,7 @@

    Default Value

    Implementation of ImageBase.matrixWorldAutoUpdate

    Inherited from Object3D.matrixWorldAutoUpdate

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:145
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:150
  • matrixWorldNeedsUpdate: boolean
    @@ -397,22 +397,22 @@

    Default Value

    false

    Implementation of ImageBase.matrixWorldNeedsUpdate

    Inherited from Object3D.matrixWorldNeedsUpdate

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:151
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:156
  • -
    mesh: Mesh<BufferGeometry, Material | Material[]>
    +
  • Defined in build/api-types/host/index.d.ts:1416
  • mixer?: AnimationMixer
    +
  • Defined in build/api-types/host/index.d.ts:1414
  • -
    model: Object3D<Event>
    +
  • Defined in build/api-types/host/index.d.ts:1415
  • modelViewMatrix: Matrix4
    @@ -422,7 +422,7 @@

    Default Value

    new THREE.Matrix4()

    Implementation of ImageBase.modelViewMatrix

    Inherited from Object3D.modelViewMatrix

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:113
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:118
  • name: string
    @@ -436,7 +436,7 @@

    Default Value

    ""

    Implementation of ImageBase.name

    Inherited from Object3D.name

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:55
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:60
  • normalMatrix: Matrix3
    @@ -446,7 +446,7 @@

    Default Value

    new THREE.Matrix3()

    Implementation of ImageBase.normalMatrix

    Inherited from Object3D.normalMatrix

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:118
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:123
  • onAfterRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -469,11 +469,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -483,7 +483,7 @@

    Default Value

    () => {}

    Implementation of ImageBase.onAfterRender

    Inherited from Object3D.onAfterRender

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:252
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:257
  • onBeforeRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -506,11 +506,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -520,10 +520,10 @@

    Default Value

    () => {}

    Implementation of ImageBase.onBeforeRender

    Inherited from Object3D.onBeforeRender

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:233
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:238
  • -
    parent: null | Object3D<Event>
    +
    parent: null | Object3D<Object3DEventMap>

    Object's parent in the scene graph.

    @@ -534,7 +534,7 @@

    Default Value

    null

    Implementation of ImageBase.parent

    Inherited from Object3D.parent

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:70
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:75
  • position: Vector3
    @@ -546,7 +546,7 @@

    Default Value

    new THREE.Vector3() - that is (0, 0,

    Implementation of ImageBase.position

    Inherited from Object3D.position

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:90
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:95
  • quaternion: Quaternion
    @@ -558,7 +558,7 @@

    Default Value

    new THREE.Quaternion() - that is (0,

    Implementation of ImageBase.quaternion

    Inherited from Object3D.quaternion

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:102
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:107
  • receiveShadow: boolean
    @@ -570,7 +570,7 @@

    Default Value

    false

    Implementation of ImageBase.receiveShadow

    Inherited from Object3D.receiveShadow

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:177
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:182
  • renderOrder: number
    @@ -585,7 +585,7 @@

    Default Value

    0

    Implementation of ImageBase.renderOrder

    Inherited from Object3D.renderOrder

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:193
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:198
  • rotation: Euler
    @@ -597,7 +597,7 @@

    Default Value

    new THREE.Euler() - that is (0, 0, 0

    Implementation of ImageBase.rotation

    Inherited from Object3D.rotation

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:96
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:101
  • scale: Vector3
    @@ -609,7 +609,7 @@

    Default Value

    new THREE.Vector3( 1, 1, 1 )

    Implementation of ImageBase.scale

    Inherited from Object3D.scale

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:108
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:113
  • type: string
    @@ -623,7 +623,7 @@

    Default Value

    Object3D

    Implementation of ImageBase.type

    Inherited from Object3D.type

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:63
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:68
  • up: Vector3
    @@ -635,7 +635,7 @@

    Default Value

    ImageBase.up

    Inherited from Object3D.up

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:84
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:89
  • userData: {
        [key: string]: any;
    }
    @@ -654,7 +654,7 @@

    Default

    {}

    Implementation of ImageBase.userData

    Inherited from Object3D.userData

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:206
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:211
  • uuid: string
    @@ -666,7 +666,7 @@

    Remarks

    This gets automatically assigned and shouldn't be edited.

    Implementation of ImageBase.uuid

    Inherited from Object3D.uuid

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:48
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:53
  • visible: boolean
    @@ -678,7 +678,7 @@

    Default Value

    true

    Implementation of ImageBase.visible

    Inherited from Object3D.visible

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:165
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:170
  • DEFAULT_MATRIX_AUTO_UPDATE: boolean
    @@ -689,7 +689,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:277
  • DEFAULT_MATRIX_WORLD_AUTO_UPDATE: boolean
    @@ -700,7 +700,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:283
  • DEFAULT_UP: Vector3
    @@ -712,7 +712,7 @@

    Default Value

    new THREE.Vector3( 0, 1, 0)

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:271
  • Accessors

    @@ -723,7 +723,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1422
  • +
  • Defined in build/api-types/host/index.d.ts:1438
  • +
  • Defined in build/api-types/host/index.d.ts:1439
  • +
  • Defined in build/api-types/host/index.d.ts:1427
  • +
  • Defined in build/api-types/host/index.d.ts:1440
  • +
  • Defined in build/api-types/host/index.d.ts:1424
  • Methods

    @@ -779,7 +779,7 @@
    • -
      Rest ...object: Object3D<Event>[]
      +
      Rest ...object: Object3D<Object3DEventMap>[]

    Returns Image3D

    @@ -793,7 +793,7 @@

    See

      Implementation of ImageBase.add

      Inherited from Object3D.add

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:414
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:419
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -815,7 +815,7 @@
      type:
  • -
    listener: EventListener<Event, T, Image3D>
    +
    listener: EventListener<Object3DEventMap[T], T, Image3D>

    The function that gets called when the event is fired.

  • @@ -824,7 +824,26 @@

    Returns voidImplementation of ImageBase.addEventListener

    Inherited from Object3D.addEventListener

      -
    • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:46
    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:52
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, Image3D>
    +

    Returns void

    • @@ -843,7 +862,7 @@

      Returns voidImplementation of ImageBase.applyMatrix4

      Inherited from Object3D.applyMatrix4

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:284

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:289
    • @@ -862,7 +881,7 @@

      Returns ImageBase.applyQuaternion

      Inherited from Object3D.applyQuaternion

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:290

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:295
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:445
    • @@ -898,7 +917,7 @@

      Returns ImageBase.clear

      Inherited from Object3D.clear

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:432

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:437
    • @@ -919,7 +938,7 @@

      Returns ImageBase.clone

      Inherited from Object3D.clone

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:561

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:566
    • @@ -945,19 +964,24 @@

      Remarks

      Note: event listeners and user-defined callbacks (ImageBase.copy

      Inherited from Object3D.copy

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:569
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:574
    • - +
    • Fire an event type.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends keyof Object3DEventMap

      Parameters

      • -
        event: Event
        +
        event: BaseEvent<T> & Object3DEventMap[T]

        The event that gets fired.

      @@ -966,11 +990,11 @@

      Returns voidImplementation of ImageBase.dispatchEvent

      Inherited from Object3D.dispatchEvent

        -
      • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:66

    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:84
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching id.

      @@ -982,7 +1006,7 @@
      id:

      Unique number of the object instance. Expects a Integer

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, ..., incrementing by one for each new object.

    @@ -991,11 +1015,11 @@

    See

    id

    Implementation of ImageBase.getObjectById

    Inherited from Object3D.getObjectById

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:448
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:453
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching name.

      @@ -1007,18 +1031,18 @@
      name:

      String to match to the children's Object3D.name property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that for most objects the name is an empty string by default

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:461
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -1036,16 +1060,16 @@
      value:

      value of the given property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:470
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -1063,12 +1087,12 @@
      value:

      Value of the given property.

    -

    Returns Object3D<Event>[]

    +

    Returns Object3D<Object3DEventMap>[]

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:478
    • @@ -1089,7 +1113,7 @@

      Returns Vector3<

      Implementation of ImageBase.getWorldDirection

      Inherited from Object3D.getWorldDirection

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:497

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:502
    • @@ -1110,7 +1134,7 @@

      Returns Vector3<

      Implementation of ImageBase.getWorldPosition

      Inherited from Object3D.getWorldPosition

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:479

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:484
    • @@ -1131,7 +1155,7 @@

      Returns Quaterni

      Implementation of ImageBase.getWorldQuaternion

      Inherited from Object3D.getWorldQuaternion

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:485

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:490
    • @@ -1152,7 +1176,7 @@

      Returns Vector3<

      Implementation of ImageBase.getWorldScale

      Inherited from Object3D.getWorldScale

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:491

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:496
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1174,7 +1198,7 @@
      type:
  • -
    listener: EventListener<Event, T, Image3D>
    +
    listener: EventListener<Object3DEventMap[T], T, Image3D>

    The function that gets called when the event is fired.

  • @@ -1183,7 +1207,26 @@

    Returns booleanImplementation of ImageBase.hasEventListener

    Inherited from Object3D.hasEventListener

      -
    • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:53
    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:63
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, Image3D>
    +

    Returns boolean

    • @@ -1204,7 +1247,7 @@

      Returns Vector3<

      Implementation of ImageBase.localToWorld

      Inherited from Object3D.localToWorld

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:383

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:388
    • @@ -1227,7 +1270,7 @@

      Remarks

      This method does not support objects having non-uniformly-sca

      Implementation of ImageBase.lookAt

      Inherited from Object3D.lookAt

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:396
      +
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:401
  • Rotates the object to face a point in world space.

    @@ -1257,7 +1300,7 @@

    Remarks

    This method does not support objects having non-uniformly-sca

    Implementation of ImageBase.lookAt

    Inherited from Object3D.lookAt

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:404
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:409
    • @@ -1272,7 +1315,7 @@

      Parameters

      raycaster: Raycaster
    • -
      intersects: Intersection<Object3D<Event>>[]
      +
      intersects: Intersection<Object3D<Object3DEventMap>>[]

    Returns void

    @@ -1285,7 +1328,7 @@

    Default Value

    () => {}

    Implementation of ImageBase.raycast

    Inherited from Object3D.raycast

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:507
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:512
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:427
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1330,7 +1373,7 @@
      type:
  • -
    listener: EventListener<Event, T, Image3D>
    +
    listener: EventListener<Object3DEventMap[T], T, Image3D>

    The listener function that gets removed.

  • @@ -1339,7 +1382,26 @@

    Returns voidImplementation of ImageBase.removeEventListener

    Inherited from Object3D.removeEventListener

      -
    • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:60
    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:74
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, Image3D>
    +

    Returns void

    • @@ -1352,7 +1414,7 @@

      Returns ImageBase.removeFromParent

      Inherited from Object3D.removeFromParent

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:427

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:432
    • @@ -1380,7 +1442,7 @@

      Remarks

      The axis is assumed to be normalized.

      Implementation of ImageBase.rotateOnAxis

      Inherited from Object3D.rotateOnAxis

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:324
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:329
    • @@ -1408,7 +1470,7 @@

      Remarks

      The axis is assumed to be normalized

      Implementation of ImageBase.rotateOnWorldAxis

      Inherited from Object3D.rotateOnWorldAxis

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:333
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:338
    • @@ -1426,7 +1488,7 @@

      Returns ImageBase.rotateX

      Inherited from Object3D.rotateX

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:339

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:344
    • @@ -1444,7 +1506,7 @@

      Returns ImageBase.rotateY

      Inherited from Object3D.rotateY

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:345

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:350
    • @@ -1462,7 +1524,7 @@

      Returns ImageBase.rotateZ

      Inherited from Object3D.rotateZ

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:351

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:356
  • +
  • Defined in build/api-types/host/index.d.ts:1437
  • +
  • Defined in build/api-types/host/index.d.ts:1435
    • @@ -1503,7 +1565,7 @@

      Parameters

      frameSet: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1436
  • +
  • Defined in build/api-types/host/index.d.ts:1426
    • @@ -1538,7 +1600,7 @@

      Returns voidImplementation of ImageBase.setRotationFromAxisAngle

      Inherited from Object3D.setRotationFromAxisAngle

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:297

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:302
    • @@ -1559,7 +1621,7 @@

      Returns voidImplementation of ImageBase.setRotationFromEuler

      Inherited from Object3D.setRotationFromEuler

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:303

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:308
    • @@ -1582,7 +1644,7 @@

      Remarks

      Note that this assumes that the upper 3x3 of m is a pure rota

      Implementation of ImageBase.setRotationFromMatrix

      Inherited from Object3D.setRotationFromMatrix

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:310
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:315
    • @@ -1603,7 +1665,7 @@

      Returns voidImplementation of ImageBase.setRotationFromQuaternion

      Inherited from Object3D.setRotationFromQuaternion

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:316

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:321
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1425
    • @@ -1647,7 +1709,7 @@

      Returns anyImplementation of ImageBase.toJSON

      Inherited from Object3D.toJSON

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:555

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:560
    • @@ -1675,7 +1737,7 @@

      Remarks

      The axis is assumed to be normalized.

      Implementation of ImageBase.translateOnAxis

      Inherited from Object3D.translateOnAxis

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:359
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:364
    • @@ -1696,7 +1758,7 @@

      Returns ImageBase.translateX

      Inherited from Object3D.translateX

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:365

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:370
    • @@ -1717,7 +1779,7 @@

      Returns ImageBase.translateY

      Inherited from Object3D.translateY

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:371

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:376
    • @@ -1738,7 +1800,7 @@

      Returns ImageBase.translateZ

      Inherited from Object3D.translateZ

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:377

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:382
    • @@ -1763,7 +1825,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1772,7 +1834,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    Implementation of ImageBase.traverse

    Inherited from Object3D.traverse

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:514
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:519
    • @@ -1797,7 +1859,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1806,7 +1868,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    Implementation of ImageBase.traverseAncestors

    Inherited from Object3D.traverseAncestors

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:529
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:534
    • @@ -1831,7 +1893,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1840,7 +1902,7 @@

    Remarks

    Descendants of invisible objects are not traversed.

    Implementation of ImageBase.traverseVisible

    Inherited from Object3D.traverseVisible

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:522
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:527
  • +
  • Defined in build/api-types/host/index.d.ts:1423
    • @@ -1862,7 +1924,7 @@

      Returns voidImplementation of ImageBase.updateMatrix

      Inherited from Object3D.updateMatrix

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:534

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:539
    • @@ -1885,7 +1947,7 @@

      Returns voidImplementation of ImageBase.updateMatrixWorld

      Inherited from Object3D.updateMatrixWorld

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:542

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:547
    • @@ -1911,7 +1973,7 @@

      Returns voidImplementation of ImageBase.updateWorldMatrix

      Inherited from Object3D.updateWorldMatrix

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:549

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:554
    • @@ -1932,20 +1994,20 @@

      Returns Vector3<

      Implementation of ImageBase.worldToLocal

      Inherited from Object3D.worldToLocal

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:389

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:394
    • - +
    • Parameters

      • -
        source: Object3D<Event>
      -

      Returns Object3D<Event>

    +

    Returns Object3D<Object3DEventMap>

    +
  • Defined in build/api-types/host/index.d.ts:1441
  • Generated using TypeDoc

    diff --git a/docs/host/classes/Image3DMaterial.html b/docs/host/classes/Image3DMaterial.html index a2c20a68..34ef4996 100644 --- a/docs/host/classes/Image3DMaterial.html +++ b/docs/host/classes/Image3DMaterial.html @@ -1,4 +1,4 @@ -Image3DMaterial | titan-reactor-runtime/host
    +Image3DMaterial | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    • Image3DMaterial
    +
  • Defined in build/api-types/host/index.d.ts:1619
  • @@ -35,6 +35,7 @@

    Constructors

    Properties

    #private +alphaHash alphaMap alphaTest alphaToCoverage @@ -152,14 +153,20 @@
    Optional Returns Image3DMaterial
    +
  • Defined in build/api-types/host/index.d.ts:1622
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1620
  • +
    + +
    alphaHash: boolean
    alphaMap: null | Texture
    @@ -169,7 +176,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:159
  • alphaTest: number
    @@ -181,7 +188,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:75
  • alphaToCoverage: boolean
    @@ -193,7 +200,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:81
  • aoMap: null | Texture
    @@ -203,7 +210,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:84
  • aoMapIntensity: number
    @@ -213,7 +220,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:89
  • blendDst: BlendingDstFactor
    @@ -225,7 +232,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:87
  • blendDstAlpha: null | number
    @@ -237,7 +244,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:93
  • blendEquation: BlendingEquation
    @@ -249,7 +256,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:99
  • blendEquationAlpha: null | number
    @@ -261,7 +268,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:105
  • blendSrc: BlendingDstFactor | 210
    @@ -273,7 +280,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:117
  • blendSrcAlpha: null | number
    @@ -285,7 +292,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:123
  • blending: Blending
    @@ -297,7 +304,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:111
  • bumpMap: null | Texture
    @@ -307,7 +314,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:109
  • bumpScale: number
    @@ -317,7 +324,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:114
  • clipIntersection: boolean
    @@ -329,7 +336,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:129
  • clipShadows: boolean
    @@ -341,10 +348,10 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:144
  • -
    clippingPlanes: any
    +
    clippingPlanes: Plane[]

    User-defined clipping planes specified as THREE.Plane objects in world space. These planes apply to the objects this material is attached to. Points in space whose signed distance to the plane is negative are clipped (not rendered). @@ -356,7 +363,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:138
  • color: Color
    @@ -366,7 +373,7 @@

    Default

    new
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:54
  • colorWrite: boolean
    @@ -378,7 +385,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:150
  • defines: {
        [key: string]: any;
    }
    @@ -393,7 +400,7 @@

    Default

    { 
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:49
  • depthFunc: DepthModes
    @@ -405,7 +412,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:163
  • depthTest: boolean
    @@ -417,7 +424,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:169
  • depthWrite: boolean
    @@ -430,7 +437,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:176
  • displacementBias: number
    @@ -440,7 +447,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:144
  • displacementMap: null | Texture
    @@ -450,7 +457,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:134
  • displacementScale: number
    @@ -460,7 +467,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:139
  • dithering: boolean
    @@ -472,7 +479,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:299
  • emissive: Color
    @@ -482,7 +489,7 @@

    Default

    new
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:94
  • emissiveIntensity: number
    @@ -492,7 +499,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:99
  • emissiveMap: null | Texture
    @@ -502,7 +509,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:104
  • envMap: null | Texture
    @@ -512,7 +519,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:164
  • envMapIntensity: number
    @@ -522,7 +529,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:169
  • flatShading: boolean
    @@ -534,7 +541,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:195
  • fog: boolean
    @@ -546,7 +553,7 @@

    Default

    fog
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:201
  • forceSinglePass: boolean
    @@ -556,7 +563,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:293
  • id: number
    @@ -565,7 +572,7 @@
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:181
  • isMaterial: true
    @@ -575,18 +582,18 @@
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:239
  • isMeshStandardMaterial: boolean
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:203
  • isTeamSpriteMaterial: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1621
  • lightMap: null | Texture
    @@ -596,7 +603,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:74
  • lightMapIntensity: number
    @@ -606,7 +613,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:79
  • map: null | Texture
    @@ -616,7 +623,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:69
  • metalness: number
    @@ -626,7 +633,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:64
  • metalnessMap: null | Texture
    @@ -636,7 +643,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:154
  • name: string
    @@ -648,7 +655,7 @@

    Default

    ''
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:245
  • needsUpdate: boolean
    @@ -661,7 +668,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:252
  • normalMap: null | Texture
    @@ -671,7 +678,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:119
  • normalMapType: NormalMapTypes
    @@ -681,7 +688,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:124
  • normalScale: Vector2
    @@ -691,7 +698,7 @@

    Default

    new
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:129
  • opacity: number
    @@ -703,7 +710,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:258
  • polygonOffset: boolean
    @@ -715,7 +722,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:264
  • polygonOffsetFactor: number
    @@ -727,7 +734,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:270
  • polygonOffsetUnits: number
    @@ -739,7 +746,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:276
  • precision: null | "highp" | "mediump" | "lowp"
    @@ -751,7 +758,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:282
  • premultipliedAlpha: boolean
    @@ -763,7 +770,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:288
  • roughness: number
    @@ -773,7 +780,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:59
  • roughnessMap: null | Texture
    @@ -783,7 +790,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:149
  • shadowSide: null | Side
    @@ -796,7 +803,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:314
  • side: Side
    @@ -809,7 +816,7 @@

    Default

    {@
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:307
  • stencilFail: StencilOp
    @@ -821,7 +828,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:217
  • stencilFunc: StencilFunc
    @@ -833,7 +840,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:193
  • stencilFuncMask: number
    @@ -845,7 +852,7 @@

    Default

    0xff
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:211
  • stencilRef: number
    @@ -857,7 +864,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:199
  • stencilWrite: boolean
    @@ -869,7 +876,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:187
  • stencilWriteMask: number
    @@ -881,7 +888,7 @@

    Default

    0xff
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:205
  • stencilZFail: StencilOp
    @@ -895,7 +902,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:225
  • stencilZPass: StencilOp
    @@ -909,7 +916,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:233
  • toneMapped: boolean
    @@ -922,7 +929,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:321
  • transparent: boolean
    @@ -936,7 +943,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:329
  • type: string
    @@ -946,7 +953,7 @@

    Default

    'MeshStand
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:44
  • userData: any
    @@ -958,7 +965,7 @@

    Default

    {}
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:358
  • uuid: string
    @@ -967,7 +974,7 @@
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:340
  • version: number
    @@ -979,7 +986,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:364
  • vertexColors: boolean
    @@ -991,7 +998,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:346
  • visible: boolean
    @@ -1003,7 +1010,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:352
  • wireframe: boolean
    @@ -1013,7 +1020,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:174
  • wireframeLinecap: string
    @@ -1023,7 +1030,7 @@

    Default

    'round'
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:184
  • wireframeLinejoin: string
    @@ -1033,7 +1040,7 @@

    Default

    'round'
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:189
  • wireframeLinewidth: number
    @@ -1043,7 +1050,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:179
  • Accessors

    @@ -1053,7 +1060,7 @@

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1630
  • set modifierData1(val): void
  • @@ -1081,7 +1088,7 @@

    Parameters

    val: number
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1626
  • set modifierData2(val): void
  • @@ -1099,7 +1106,7 @@

    Parameters

    val: number
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1628
  • set teamColor(val): void
  • @@ -1117,7 +1124,7 @@

    Parameters

    val: Color
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1623
    • @@ -1130,7 +1137,7 @@

      Parameters

      val: undefined | {
          diffuse: CompressedTexture;
          frames: {
              h: number;
              w: number;
              x: number;
              xoff: number;
              y: number;
              yoff: number;
          }[];
          hdLayers: {
              emissive: undefined | CompressedTexture;
          };
          imageIndex: number;
          isHD: boolean;
          isHD2: boolean;
          spriteHeight: number;
          spriteWidth: number;
          teammask: undefined | CompressedTexture;
          textureHeight: number;
          textureWidth: number;
          unitTileScale: UnitTileScale;
          uvPos: {
              flippedPos: BufferAttribute;
              flippedUv: BufferAttribute;
              pos: BufferAttribute;
              uv: BufferAttribute;
          }[];
          uvPosDataTex: DataArrayTexture;
          dispose() => void;
      }

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1625
  • Methods

    @@ -1144,7 +1151,7 @@
    +

    T extends "dispose"

    Parameters

      @@ -1154,7 +1161,7 @@
      type:
  • -
    listener: EventListener<Event, T, Image3DMaterial>
    +
    listener: EventListener<{
        dispose: {};
    }[T], T, Image3DMaterial>

    The function that gets called when the event is fired.

  • @@ -1162,7 +1169,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:52
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns void

  • +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:369
  • +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:375
  • +
  • Defined in build/api-types/host/index.d.ts:1633
    • - +
    • Fire an event type.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends "dispose"

      Parameters

      • -
        event: Event
        +
        event: BaseEvent<T> & {
            dispose: {};
        }[T]

        The event that gets fired.

      @@ -1221,7 +1251,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:84
    • @@ -1233,7 +1263,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:380
  • +

    T extends "dispose"

    Parameters

      @@ -1255,7 +1285,7 @@
      type:
  • -
    listener: EventListener<Event, T, Image3DMaterial>
    +
    listener: EventListener<{
        dispose: {};
    }[T], T, Image3DMaterial>

    The function that gets called when the event is fired.

  • @@ -1263,7 +1293,25 @@

    Returns boolean +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:63
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns boolean

  • +
  • Defined in build/api-types/host/index.d.ts:1632
  • +

    T extends "dispose"

    Parameters

      @@ -1299,7 +1347,7 @@
      type:
  • -
    listener: EventListener<Event, T, Image3DMaterial>
    +
    listener: EventListener<{
        dispose: {};
    }[T], T, Image3DMaterial>

    The listener function that gets removed.

  • @@ -1307,7 +1355,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:74
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns void

    • @@ -1321,7 +1387,7 @@
      parameters: Returns void
    +
  • Defined in node_modules/@types/three/src/materials/MeshStandardMaterial.d.ts:205
    • @@ -1341,7 +1407,7 @@

      Returns any

    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:406
  • Generated using TypeDoc

    diff --git a/docs/host/classes/ImageBufferView.html b/docs/host/classes/ImageBufferView.html index 46b4fe5c..063bc2ab 100644 --- a/docs/host/classes/ImageBufferView.html +++ b/docs/host/classes/ImageBufferView.html @@ -1,4 +1,4 @@ -ImageBufferView | titan-reactor-runtime/host
    +ImageBufferView | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -24,7 +24,7 @@

    Implements

    +
  • Defined in build/api-types/host/index.d.ts:2004
  • @@ -59,6 +59,7 @@

    Accessors

    Methods

    @@ -75,14 +76,14 @@

    Parameters

    bw: OpenBW

    Returns ImageBufferView

    +
  • Defined in build/api-types/host/index.d.ts:2009
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:2005
  • Accessors

    @@ -92,7 +93,7 @@

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2008
  • +
  • Defined in build/api-types/host/index.d.ts:2018
  • +
  • Defined in build/api-types/host/index.d.ts:2015
  • +
  • Defined in build/api-types/host/index.d.ts:2016
  • +
  • Defined in build/api-types/host/index.d.ts:2017
  • +
  • Defined in build/api-types/host/index.d.ts:2010
  • +
  • Defined in build/api-types/host/index.d.ts:2021
  • +
  • Defined in build/api-types/host/index.d.ts:2012
  • +
  • Defined in build/api-types/host/index.d.ts:2013
  • +
  • Defined in build/api-types/host/index.d.ts:2014
  • +
  • Defined in build/api-types/host/index.d.ts:2022
  • +
  • Defined in build/api-types/host/index.d.ts:2011
  • +
  • Defined in build/api-types/host/index.d.ts:2019
  • +
  • Defined in build/api-types/host/index.d.ts:2020
  • Methods

    @@ -227,11 +228,19 @@
    +
  • Defined in build/api-types/host/index.d.ts:2023
  • +
    + +

    Returns Partial<ImageStruct>

    +
  • Defined in build/api-types/host/index.d.ts:2025
    • @@ -253,7 +262,7 @@

      Parameters

      address: number

    Returns ImageBufferView

    +
  • Defined in build/api-types/host/index.d.ts:2006
  • Generated using TypeDoc

    diff --git a/docs/host/classes/ImageEntities.html b/docs/host/classes/ImageEntities.html index 8dcea503..5540888c 100644 --- a/docs/host/classes/ImageEntities.html +++ b/docs/host/classes/ImageEntities.html @@ -1,4 +1,4 @@ -ImageEntities | titan-reactor-runtime/host
    +ImageEntities | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • ImageEntities
    +
  • Defined in build/api-types/host/index.d.ts:1265
  • @@ -57,14 +57,14 @@
    +
  • Defined in build/api-types/host/index.d.ts:1270
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1266
  • onCreateImage?: ((image) => void)
    @@ -82,7 +82,7 @@

    Parameters

    image: ImageBase

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1268
  • onFreeImage?: ((image) => void)
    @@ -100,12 +100,12 @@

    Parameters

    image: ImageBase

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1269
  • use3dImages: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1267
  • Methods

    @@ -115,7 +115,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1271
  • +
  • Defined in build/api-types/host/index.d.ts:1275
  • +
  • Defined in build/api-types/host/index.d.ts:1276
    • @@ -144,7 +144,7 @@

      Parameters

      imageIndex: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1274
    • @@ -157,7 +157,7 @@

      Parameters

      imageIndex: number

    Returns undefined | ImageBase

    +
  • Defined in build/api-types/host/index.d.ts:1272
    • @@ -172,7 +172,7 @@
      imageIndex: imageTypeId: number

    Returns undefined | ImageBase

    +
  • Defined in build/api-types/host/index.d.ts:1273
    • @@ -185,7 +185,7 @@

      Parameters

      image: ImageBase

    Returns undefined | Unit

    +
  • Defined in build/api-types/host/index.d.ts:1278
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1277
  • Generated using TypeDoc

    diff --git a/docs/host/classes/ImageHD.html b/docs/host/classes/ImageHD.html index 22368d71..0d9e3bce 100644 --- a/docs/host/classes/ImageHD.html +++ b/docs/host/classes/ImageHD.html @@ -1,4 +1,4 @@ -ImageHD | titan-reactor-runtime/host
    +ImageHD | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -26,7 +26,7 @@

    Implements

    +
  • Defined in build/api-types/host/index.d.ts:1314
  • @@ -161,20 +161,20 @@
    +
  • Defined in build/api-types/host/index.d.ts:1323
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1315
  • _zOff: number
    +
  • Defined in build/api-types/host/index.d.ts:1320
  • animations: AnimationClip[]
    @@ -186,7 +186,7 @@

    Default Value

    []

    Implementation of ImageBase.animations

    Inherited from Mesh.animations

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:199
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:204
  • atlas?: {
        diffuse: CompressedTexture;
        frames: {
            h: number;
            w: number;
            x: number;
            xoff: number;
            y: number;
            yoff: number;
        }[];
        hdLayers: {
            emissive: undefined | CompressedTexture;
        };
        imageIndex: number;
        isHD: boolean;
        isHD2: boolean;
        spriteHeight: number;
        spriteWidth: number;
        teammask: undefined | CompressedTexture;
        textureHeight: number;
        textureWidth: number;
        unitTileScale: UnitTileScale;
        uvPos: {
            flippedPos: BufferAttribute;
            flippedUv: BufferAttribute;
            pos: BufferAttribute;
            uv: BufferAttribute;
        }[];
        uvPosDataTex: DataArrayTexture;
        dispose() => void;
    }
    @@ -231,10 +231,10 @@
    dispose

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1319
  • castShadow: boolean
    @@ -246,10 +246,10 @@

    Default Value

    false

    Implementation of ImageBase.castShadow

    Inherited from Mesh.castShadow

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:171
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:176
  • -
    children: Object3D<Event>[]
    +
    children: Object3D<Object3DEventMap>[]

    Array with object's children.

    @@ -260,7 +260,7 @@

    Default Value

    []

    Implementation of ImageBase.children

    Inherited from Mesh.children

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:78
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:83
  • customDepthMaterial?: Material
    @@ -274,7 +274,7 @@

    Default Value

    undefined

    Implementation of ImageBase.customDepthMaterial

    Inherited from Mesh.customDepthMaterial

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:215
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:220
  • customDistanceMaterial?: Material
    @@ -286,7 +286,7 @@

    Default Value

    undefined

    Implementation of ImageBase.customDistanceMaterial

    Inherited from Mesh.customDistanceMaterial

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:221
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:226
  • frustumCulled: boolean
    @@ -299,10 +299,10 @@

    Default Value

    true

    Implementation of ImageBase.frustumCulled

    Inherited from Mesh.frustumCulled

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:184
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:189
  • -
    geometry: BufferGeometry
    +
    geometry: BufferGeometry<NormalBufferAttributes>

    An instance of THREE.BufferGeometry | BufferGeometry (or derived classes), defining the object's structure.

    @@ -311,7 +311,7 @@

    Default Value

    {@
    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:51
  • id: number
    @@ -323,25 +323,25 @@

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, .

    Implementation of ImageBase.id

    Inherited from Mesh.id

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:42
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:47
  • isImage3d: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1317
  • isImageHd: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1316
  • isInstanced: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1318
  • isMesh: true
    @@ -354,7 +354,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:39
  • isObject3D: true
    @@ -368,7 +368,7 @@

    Default Value

    true

    Implementation of ImageBase.isObject3D

    Inherited from Mesh.isObject3D

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:35
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:40
  • layers: Layers
    @@ -382,7 +382,7 @@

    Default Value

    new THREE.Layers()

    Implementation of ImageBase.layers

    Inherited from Mesh.layers

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:159
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:164
  • @@ -394,7 +394,7 @@

    Default Value

    {@
    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:57
  • matrix: Matrix4
    @@ -406,7 +406,7 @@

    Default Value

    new THREE.Matrix4()

    Implementation of ImageBase.matrix

    Inherited from Mesh.matrix

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:124
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:129
  • matrixAutoUpdate: boolean
    @@ -419,7 +419,7 @@

    Default Value

    Implementation of ImageBase.matrixAutoUpdate

    Inherited from Mesh.matrixAutoUpdate

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:138
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:143
  • matrixWorld: Matrix4
    @@ -433,7 +433,7 @@

    Default Value

    new THREE.Matrix4()

    Implementation of ImageBase.matrixWorld

    Inherited from Mesh.matrixWorld

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:131
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:136
  • matrixWorldAutoUpdate: boolean
    @@ -446,7 +446,7 @@

    Default Value

    Implementation of ImageBase.matrixWorldAutoUpdate

    Inherited from Mesh.matrixWorldAutoUpdate

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:145
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:150
  • matrixWorldNeedsUpdate: boolean
    @@ -458,7 +458,7 @@

    Default Value

    false

    Implementation of ImageBase.matrixWorldNeedsUpdate

    Inherited from Mesh.matrixWorldNeedsUpdate

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:151
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:156
  • modelViewMatrix: Matrix4
    @@ -468,7 +468,7 @@

    Default Value

    new THREE.Matrix4()

    Implementation of ImageBase.modelViewMatrix

    Inherited from Mesh.modelViewMatrix

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:113
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:118
  • morphTargetDictionary?: {
        [key: string]: number;
    }
    @@ -484,7 +484,7 @@

    Default Value

    undefined, but rebuilt by

    Inherited from Mesh.morphTargetDictionary

      -
    • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:71
    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:70
  • morphTargetInfluences?: number[]
    @@ -495,7 +495,7 @@

    Default Value

    undefined, but reset to a blank array

    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:63
  • name: string
    @@ -509,7 +509,7 @@

    Default Value

    ""

    Implementation of ImageBase.name

    Inherited from Mesh.name

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:55
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:60
  • normalMatrix: Matrix3
    @@ -519,7 +519,7 @@

    Default Value

    new THREE.Matrix3()

    Implementation of ImageBase.normalMatrix

    Inherited from Mesh.normalMatrix

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:118
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:123
  • onAfterRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -542,11 +542,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -556,7 +556,7 @@

    Default Value

    () => {}

    Implementation of ImageBase.onAfterRender

    Inherited from Mesh.onAfterRender

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:252
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:257
  • onBeforeRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -579,11 +579,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -593,10 +593,10 @@

    Default Value

    () => {}

    Implementation of ImageBase.onBeforeRender

    Inherited from Mesh.onBeforeRender

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:233
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:238
  • -
    parent: null | Object3D<Event>
    +
    parent: null | Object3D<Object3DEventMap>

    Object's parent in the scene graph.

    @@ -607,7 +607,7 @@

    Default Value

    null

    Implementation of ImageBase.parent

    Inherited from Mesh.parent

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:70
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:75
  • position: Vector3
    @@ -619,7 +619,7 @@

    Default Value

    new THREE.Vector3() - that is (0, 0,

    Implementation of ImageBase.position

    Inherited from Mesh.position

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:90
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:95
  • quaternion: Quaternion
    @@ -631,7 +631,7 @@

    Default Value

    new THREE.Quaternion() - that is (0,

    Implementation of ImageBase.quaternion

    Inherited from Mesh.quaternion

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:102
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:107
  • receiveShadow: boolean
    @@ -643,7 +643,7 @@

    Default Value

    false

    Implementation of ImageBase.receiveShadow

    Inherited from Mesh.receiveShadow

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:177
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:182
  • renderOrder: number
    @@ -658,7 +658,7 @@

    Default Value

    0

    Implementation of ImageBase.renderOrder

    Inherited from Mesh.renderOrder

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:193
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:198
  • rotation: Euler
    @@ -670,7 +670,7 @@

    Default Value

    new THREE.Euler() - that is (0, 0, 0

    Implementation of ImageBase.rotation

    Inherited from Mesh.rotation

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:96
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:101
  • scale: Vector3
    @@ -682,17 +682,17 @@

    Default Value

    new THREE.Vector3( 1, 1, 1 )

    Implementation of ImageBase.scale

    Inherited from Mesh.scale

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:108
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:113
  • spriteHeight: number
    +
  • Defined in build/api-types/host/index.d.ts:1322
  • spriteWidth: number
    +
  • Defined in build/api-types/host/index.d.ts:1321
  • type: string
    @@ -702,7 +702,7 @@

    Default Value

    Mesh

    Implementation of ImageBase.type

    Inherited from Mesh.type

      -
    • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:46
    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:45
  • up: Vector3
    @@ -714,7 +714,7 @@

    Default Value

    ImageBase.up

    Inherited from Mesh.up

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:84
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:89
  • userData: {
        [key: string]: any;
    }
    @@ -733,7 +733,7 @@

    Default

    {}

    Implementation of ImageBase.userData

    Inherited from Mesh.userData

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:206
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:211
  • uuid: string
    @@ -745,7 +745,7 @@

    Remarks

    This gets automatically assigned and shouldn't be edited.

    Implementation of ImageBase.uuid

    Inherited from Mesh.uuid

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:48
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:53
  • visible: boolean
    @@ -757,7 +757,7 @@

    Default Value

    true

    Implementation of ImageBase.visible

    Inherited from Mesh.visible

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:165
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:170
  • DEFAULT_MATRIX_AUTO_UPDATE: boolean
    @@ -768,7 +768,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:277
  • DEFAULT_MATRIX_WORLD_AUTO_UPDATE: boolean
    @@ -779,7 +779,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:283
  • DEFAULT_UP: Vector3
    @@ -791,7 +791,7 @@

    Default Value

    new THREE.Vector3( 0, 1, 0)

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:271
  • Accessors

    @@ -802,7 +802,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1325
  • set flip(val): void
  • @@ -820,7 +820,7 @@

    Parameters

    val: boolean
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1343
  • set frame(val): void
  • @@ -840,7 +840,7 @@
    val: Returns void
  • +
  • Defined in build/api-types/host/index.d.ts:1341
  • +
  • Defined in build/api-types/host/index.d.ts:1328
  • +
  • Defined in build/api-types/host/index.d.ts:1327
  • Methods

    @@ -871,7 +871,7 @@
    • -
      Rest ...object: Object3D<Event>[]
      +
      Rest ...object: Object3D<Object3DEventMap>[]

    Returns ImageHD

    @@ -885,7 +885,7 @@

    See

      Implementation of ImageBase.add

      Inherited from Mesh.add

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:414
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:419
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -907,7 +907,7 @@
      type:
  • -
    listener: EventListener<Event, T, ImageHD>
    +
    listener: EventListener<Object3DEventMap[T], T, ImageHD>

    The function that gets called when the event is fired.

  • @@ -916,7 +916,26 @@

    Returns voidImplementation of ImageBase.addEventListener

    Inherited from Mesh.addEventListener

      -
    • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:46
    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:52
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, ImageHD>
    +

    Returns void

    • @@ -935,7 +954,7 @@

      Returns voidImplementation of ImageBase.applyMatrix4

      Inherited from Mesh.applyMatrix4

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:284

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:289
    • @@ -954,7 +973,7 @@

      Returns ImageBase.applyQuaternion

      Inherited from Mesh.applyQuaternion

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:290

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:295
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:445
    • @@ -990,7 +1009,7 @@

      Returns ImageBase.clear

      Inherited from Mesh.clear

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:432

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:437
    • @@ -1011,7 +1030,7 @@

      Returns ImageBase.clone

      Inherited from Mesh.clone

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:561

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:566
    • @@ -1037,7 +1056,7 @@

      Remarks

      Note: event listeners and user-defined callbacks (ImageBase.copy

      Inherited from Mesh.copy

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:569
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:574
  • +
  • Defined in build/api-types/host/index.d.ts:1324
    • - +
    • Fire an event type.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends keyof Object3DEventMap

      Parameters

      • -
        event: Event
        +
        event: BaseEvent<T> & Object3DEventMap[T]

        The event that gets fired.

      @@ -1066,11 +1090,11 @@

      Returns voidImplementation of ImageBase.dispatchEvent

      Inherited from Mesh.dispatchEvent

        -
      • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:66

    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:84
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching id.

      @@ -1082,7 +1106,7 @@
      id:

      Unique number of the object instance. Expects a Integer

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, ..., incrementing by one for each new object.

    @@ -1091,11 +1115,11 @@

    See

    id

    Implementation of ImageBase.getObjectById

    Inherited from Mesh.getObjectById

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:448
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:453
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching name.

      @@ -1107,18 +1131,18 @@
      name:

      String to match to the children's Object3D.name property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that for most objects the name is an empty string by default

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:461
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -1136,16 +1160,16 @@
      value:

      value of the given property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:470
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -1163,12 +1187,12 @@
      value:

      Value of the given property.

    -

    Returns Object3D<Event>[]

    +

    Returns Object3D<Object3DEventMap>[]

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:478
    • @@ -1192,7 +1216,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:84
    • @@ -1213,7 +1237,7 @@

      Returns Vector3<

      Implementation of ImageBase.getWorldDirection

      Inherited from Mesh.getWorldDirection

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:497

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:502
    • @@ -1234,7 +1258,7 @@

      Returns Vector3<

      Implementation of ImageBase.getWorldPosition

      Inherited from Mesh.getWorldPosition

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:479

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:484
    • @@ -1255,7 +1279,7 @@

      Returns Quaterni

      Implementation of ImageBase.getWorldQuaternion

      Inherited from Mesh.getWorldQuaternion

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:485

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:490
    • @@ -1276,7 +1300,7 @@

      Returns Vector3<

      Implementation of ImageBase.getWorldScale

      Inherited from Mesh.getWorldScale

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:491

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:496
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1298,7 +1322,7 @@
      type:
  • -
    listener: EventListener<Event, T, ImageHD>
    +
    listener: EventListener<Object3DEventMap[T], T, ImageHD>

    The function that gets called when the event is fired.

  • @@ -1307,7 +1331,26 @@

    Returns booleanImplementation of ImageBase.hasEventListener

    Inherited from Mesh.hasEventListener

      -
    • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:53
    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:63
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, ImageHD>
    +

    Returns boolean

    • @@ -1328,7 +1371,7 @@

      Returns Vector3<

      Implementation of ImageBase.localToWorld

      Inherited from Mesh.localToWorld

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:383

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:388
    • @@ -1351,7 +1394,7 @@

      Remarks

      This method does not support objects having non-uniformly-sca

      Implementation of ImageBase.lookAt

      Inherited from Mesh.lookAt

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:396
      +
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:401
  • Rotates the object to face a point in world space.

    @@ -1381,7 +1424,7 @@

    Remarks

    This method does not support objects having non-uniformly-sca

    Implementation of ImageBase.lookAt

    Inherited from Mesh.lookAt

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:404
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:409
    • @@ -1396,7 +1439,7 @@

      Parameters

      raycaster: Raycaster
    • -
      intersects: Intersection<Object3D<Event>>[]
      +
      intersects: Intersection<Object3D<Object3DEventMap>>[]

    Returns void

    @@ -1409,7 +1452,7 @@

    Default Value

    () => {}

    Implementation of ImageBase.raycast

    Overrides Mesh.raycast

    +
  • Defined in build/api-types/host/index.d.ts:1345
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:427
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1454,7 +1497,7 @@
      type:
  • -
    listener: EventListener<Event, T, ImageHD>
    +
    listener: EventListener<Object3DEventMap[T], T, ImageHD>

    The listener function that gets removed.

  • @@ -1463,7 +1506,26 @@

    Returns voidImplementation of ImageBase.removeEventListener

    Inherited from Mesh.removeEventListener

      -
    • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:60
    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:74
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, ImageHD>
    +

    Returns void

    • @@ -1476,7 +1538,7 @@

      Returns ImageBase.removeFromParent

      Inherited from Mesh.removeFromParent

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:427

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:432
    • @@ -1504,7 +1566,7 @@

      Remarks

      The axis is assumed to be normalized.

      Implementation of ImageBase.rotateOnAxis

      Inherited from Mesh.rotateOnAxis

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:324
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:329
    • @@ -1532,7 +1594,7 @@

      Remarks

      The axis is assumed to be normalized

      Implementation of ImageBase.rotateOnWorldAxis

      Inherited from Mesh.rotateOnWorldAxis

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:333
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:338
    • @@ -1550,7 +1612,7 @@

      Returns ImageBase.rotateX

      Inherited from Mesh.rotateX

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:339

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:344
    • @@ -1568,7 +1630,7 @@

      Returns ImageBase.rotateY

      Inherited from Mesh.rotateY

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:345

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:350
    • @@ -1586,7 +1648,7 @@

      Returns ImageBase.rotateZ

      Inherited from Mesh.rotateZ

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:351

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:356
  • +
  • Defined in build/api-types/host/index.d.ts:1344
  • +
  • Defined in build/api-types/host/index.d.ts:1337
    • @@ -1633,7 +1695,7 @@

      Parameters

      val: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1339
    • @@ -1648,7 +1710,7 @@
      modifier: modifierData1: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1338
    • @@ -1674,7 +1736,7 @@

      Returns voidImplementation of ImageBase.setRotationFromAxisAngle

      Inherited from Mesh.setRotationFromAxisAngle

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:297

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:302
    • @@ -1695,7 +1757,7 @@

      Returns voidImplementation of ImageBase.setRotationFromEuler

      Inherited from Mesh.setRotationFromEuler

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:303

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:308
    • @@ -1718,7 +1780,7 @@

      Remarks

      Note that this assumes that the upper 3x3 of m is a pure rota

      Implementation of ImageBase.setRotationFromMatrix

      Inherited from Mesh.setRotationFromMatrix

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:310
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:315
    • @@ -1739,7 +1801,7 @@

      Returns voidImplementation of ImageBase.setRotationFromQuaternion

      Inherited from Mesh.setRotationFromQuaternion

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:316

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:321
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1336
    • @@ -1783,7 +1845,7 @@

      Returns anyImplementation of ImageBase.toJSON

      Inherited from Mesh.toJSON

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:555

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:560
    • @@ -1811,7 +1873,7 @@

      Remarks

      The axis is assumed to be normalized.

      Implementation of ImageBase.translateOnAxis

      Inherited from Mesh.translateOnAxis

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:359
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:364
    • @@ -1832,7 +1894,7 @@

      Returns ImageBase.translateX

      Inherited from Mesh.translateX

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:365

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:370
    • @@ -1853,7 +1915,7 @@

      Returns ImageBase.translateY

      Inherited from Mesh.translateY

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:371

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:376
    • @@ -1874,7 +1936,7 @@

      Returns ImageBase.translateZ

      Inherited from Mesh.translateZ

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:377

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:382
    • @@ -1899,7 +1961,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1908,7 +1970,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    Implementation of ImageBase.traverse

    Inherited from Mesh.traverse

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:514
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:519
    • @@ -1933,7 +1995,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1942,7 +2004,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    Implementation of ImageBase.traverseAncestors

    Inherited from Mesh.traverseAncestors

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:529
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:534
    • @@ -1967,7 +2029,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1976,7 +2038,7 @@

    Remarks

    Descendants of invisible objects are not traversed.

    Implementation of ImageBase.traverseVisible

    Inherited from Mesh.traverseVisible

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:522
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:527
  • +
  • Defined in build/api-types/host/index.d.ts:840
  • force: boolean
  • Returns ImageHD

    +
  • Defined in build/api-types/host/index.d.ts:1326
    • @@ -2045,7 +2107,7 @@

      Returns voidImplementation of ImageBase.updateMatrix

      Inherited from Mesh.updateMatrix

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:534

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:539
    • @@ -2068,7 +2130,7 @@

      Returns voidImplementation of ImageBase.updateMatrixWorld

      Inherited from Mesh.updateMatrixWorld

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:542

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:547
  • +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:76
    • @@ -2108,7 +2170,7 @@

      Returns voidImplementation of ImageBase.updateWorldMatrix

      Inherited from Mesh.updateWorldMatrix

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:549

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:554
    • @@ -2129,7 +2191,7 @@

      Returns Vector3<

      Implementation of ImageBase.worldToLocal

      Inherited from Mesh.worldToLocal

        -
      • Defined in node_modules/@types/three/src/core/Object3D.d.ts:389

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:394
  • Generated using TypeDoc

    diff --git a/docs/host/classes/ImageHDInstancedMaterial.html b/docs/host/classes/ImageHDInstancedMaterial.html index 7d0cd204..585b23e7 100644 --- a/docs/host/classes/ImageHDInstancedMaterial.html +++ b/docs/host/classes/ImageHDInstancedMaterial.html @@ -1,4 +1,4 @@ -ImageHDInstancedMaterial | titan-reactor-runtime/host
    +ImageHDInstancedMaterial | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    • ImageHDInstancedMaterial
    +
  • Defined in build/api-types/host/index.d.ts:1378
  • @@ -35,6 +35,7 @@

    Constructors

    Properties

    #private +alphaHash alphaMap alphaTest alphaToCoverage @@ -140,14 +141,20 @@
    Optional Returns ImageHDInstancedMaterial
    +
  • Defined in build/api-types/host/index.d.ts:1382
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1379
  • +
    + +
    alphaHash: boolean
    alphaMap: null | Texture
    @@ -157,7 +164,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:75
  • alphaTest: number
    @@ -169,7 +176,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:75
  • alphaToCoverage: boolean
    @@ -181,7 +188,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:81
  • aoMap: null | Texture
    @@ -191,7 +198,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:60
  • aoMapIntensity: number
    @@ -201,7 +208,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:65
  • blendDst: BlendingDstFactor
    @@ -213,7 +220,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:87
  • blendDstAlpha: null | number
    @@ -225,7 +232,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:93
  • blendEquation: BlendingEquation
    @@ -237,7 +244,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:99
  • blendEquationAlpha: null | number
    @@ -249,7 +256,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:105
  • blendSrc: BlendingDstFactor | 210
    @@ -261,7 +268,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:117
  • blendSrcAlpha: null | number
    @@ -273,7 +280,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:123
  • blending: Blending
    @@ -285,7 +292,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:111
  • clipIntersection: boolean
    @@ -297,7 +304,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:129
  • clipShadows: boolean
    @@ -309,10 +316,10 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:144
  • -
    clippingPlanes: any
    +
    clippingPlanes: Plane[]

    User-defined clipping planes specified as THREE.Plane objects in world space. These planes apply to the objects this material is attached to. Points in space whose signed distance to the plane is negative are clipped (not rendered). @@ -324,7 +331,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:138
  • color: Color
    @@ -334,7 +341,7 @@

    Default

    new
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:40
  • colorWrite: boolean
    @@ -346,7 +353,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:150
  • combine: Combine
    @@ -356,7 +363,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:85
  • defines: undefined | {
        [key: string]: any;
    }
    @@ -374,7 +381,7 @@

    Default

    undefined
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:157
  • depthFunc: DepthModes
    @@ -386,7 +393,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:163
  • depthTest: boolean
    @@ -398,7 +405,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:169
  • depthWrite: boolean
    @@ -411,7 +418,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:176
  • dithering: boolean
    @@ -423,7 +430,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:299
  • envMap: null | Texture
    @@ -433,12 +440,12 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:80
  • flatProjection: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1381
  • fog: boolean
    @@ -450,7 +457,7 @@

    Default

    fog
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:121
  • forceSinglePass: boolean
    @@ -460,7 +467,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:293
  • id: number
    @@ -469,7 +476,7 @@
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:181
  • isMaterial: true
    @@ -479,12 +486,12 @@
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:239
  • isTeamSpriteMaterial: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1380
  • lightMap: null | Texture
    @@ -494,7 +501,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:50
  • lightMapIntensity: number
    @@ -504,7 +511,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:55
  • map: null | Texture
    @@ -514,7 +521,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:45
  • name: string
    @@ -526,7 +533,7 @@

    Default

    ''
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:245
  • needsUpdate: boolean
    @@ -539,7 +546,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:252
  • opacity: number
    @@ -551,7 +558,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:258
  • polygonOffset: boolean
    @@ -563,7 +570,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:264
  • polygonOffsetFactor: number
    @@ -575,7 +582,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:270
  • polygonOffsetUnits: number
    @@ -587,7 +594,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:276
  • precision: null | "highp" | "mediump" | "lowp"
    @@ -599,7 +606,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:282
  • premultipliedAlpha: boolean
    @@ -611,7 +618,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:288
  • reflectivity: number
    @@ -621,7 +628,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:90
  • refractionRatio: number
    @@ -631,7 +638,7 @@

    Default

    0.98
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:95
  • shadowSide: null | Side
    @@ -644,7 +651,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:314
  • side: Side
    @@ -657,7 +664,7 @@

    Default

    {@
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:307
  • specularMap: null | Texture
    @@ -667,7 +674,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:70
  • stencilFail: StencilOp
    @@ -679,7 +686,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:217
  • stencilFunc: StencilFunc
    @@ -691,7 +698,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:193
  • stencilFuncMask: number
    @@ -703,7 +710,7 @@

    Default

    0xff
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:211
  • stencilRef: number
    @@ -715,7 +722,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:199
  • stencilWrite: boolean
    @@ -727,7 +734,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:187
  • stencilWriteMask: number
    @@ -739,7 +746,7 @@

    Default

    0xff
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:205
  • stencilZFail: StencilOp
    @@ -753,7 +760,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:225
  • stencilZPass: StencilOp
    @@ -767,7 +774,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:233
  • toneMapped: boolean
    @@ -780,7 +787,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:321
  • transparent: boolean
    @@ -794,7 +801,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:329
  • type: string
    @@ -804,7 +811,7 @@

    Default

    'MeshBasic
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:35
  • userData: any
    @@ -816,7 +823,7 @@

    Default

    {}
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:358
  • uuid: string
    @@ -825,7 +832,7 @@
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:340
  • version: number
    @@ -837,7 +844,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:364
  • vertexColors: boolean
    @@ -849,7 +856,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:346
  • visible: boolean
    @@ -861,7 +868,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:352
  • wireframe: boolean
    @@ -871,7 +878,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:100
  • wireframeLinecap: string
    @@ -881,7 +888,7 @@

    Default

    'round'
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:110
  • wireframeLinejoin: string
    @@ -891,7 +898,7 @@

    Default

    'round'
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:115
  • wireframeLinewidth: number
    @@ -901,7 +908,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:105
  • Accessors

    @@ -911,7 +918,7 @@

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1390
  • set modifierData(val): void
  • @@ -939,7 +946,7 @@

    Parameters

    val: Vector2
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1388
  • set teamColor(val): void
  • @@ -957,7 +964,7 @@

    Parameters

    val: Color
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1385
  • set teamMask(val): void
  • @@ -975,7 +982,7 @@

    Parameters

    val: undefined | Texture
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1383
    • @@ -988,7 +995,7 @@

      Parameters

      val: Texture

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1392
    • @@ -1001,7 +1008,7 @@

      Parameters

      val: undefined | {
          diffuse: CompressedTexture;
          frames: {
              h: number;
              w: number;
              x: number;
              xoff: number;
              y: number;
              yoff: number;
          }[];
          hdLayers: {
              emissive: undefined | CompressedTexture;
          };
          imageIndex: number;
          isHD: boolean;
          isHD2: boolean;
          spriteHeight: number;
          spriteWidth: number;
          teammask: undefined | CompressedTexture;
          textureHeight: number;
          textureWidth: number;
          unitTileScale: UnitTileScale;
          uvPos: {
              flippedPos: BufferAttribute;
              flippedUv: BufferAttribute;
              pos: BufferAttribute;
              uv: BufferAttribute;
          }[];
          uvPosDataTex: DataArrayTexture;
          dispose() => void;
      }

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1387
  • Methods

    @@ -1015,7 +1022,7 @@
    +

    T extends "dispose"

    Parameters

      @@ -1025,7 +1032,7 @@
      type:
  • -
    listener: EventListener<Event, T, ImageHDInstancedMaterial>
    +
    listener: EventListener<{
        dispose: {};
    }[T], T, ImageHDInstancedMaterial>

    The function that gets called when the event is fired.

  • @@ -1033,7 +1040,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:52
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns void

  • +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:369
  • +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:375
  • +
  • Defined in build/api-types/host/index.d.ts:1394
    • - +
    • Fire an event type.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends "dispose"

      Parameters

      • -
        event: Event
        +
        event: BaseEvent<T> & {
            dispose: {};
        }[T]

        The event that gets fired.

      @@ -1092,7 +1122,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:84
    • @@ -1104,7 +1134,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:380
  • +

    T extends "dispose"

    Parameters

      @@ -1126,7 +1156,7 @@
      type:
  • -
    listener: EventListener<Event, T, ImageHDInstancedMaterial>
    +
    listener: EventListener<{
        dispose: {};
    }[T], T, ImageHDInstancedMaterial>

    The function that gets called when the event is fired.

  • @@ -1134,7 +1164,25 @@

    Returns boolean +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:63
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns boolean

  • +
  • Defined in build/api-types/host/index.d.ts:1393
  • +

    T extends "dispose"

    Parameters

      @@ -1170,7 +1218,7 @@
      type:
  • -
    listener: EventListener<Event, T, ImageHDInstancedMaterial>
    +
    listener: EventListener<{
        dispose: {};
    }[T], T, ImageHDInstancedMaterial>

    The listener function that gets removed.

  • @@ -1178,7 +1226,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:74
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns void

    • @@ -1192,7 +1258,7 @@
      parameters: Returns void
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:123
    • @@ -1212,7 +1278,7 @@

      Returns any

    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:406
  • Generated using TypeDoc

    diff --git a/docs/host/classes/ImageHDMaterial.html b/docs/host/classes/ImageHDMaterial.html index 3810cd9a..07ace201 100644 --- a/docs/host/classes/ImageHDMaterial.html +++ b/docs/host/classes/ImageHDMaterial.html @@ -1,4 +1,4 @@ -ImageHDMaterial | titan-reactor-runtime/host
    +ImageHDMaterial | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    • ImageHDMaterial
    +
  • Defined in build/api-types/host/index.d.ts:1351
  • @@ -35,6 +35,7 @@

    Constructors

    Properties

    #private +alphaHash alphaMap alphaTest alphaToCoverage @@ -143,14 +144,20 @@
    Optional Returns ImageHDMaterial
    +
  • Defined in build/api-types/host/index.d.ts:1354
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1352
  • +
    + +
    alphaHash: boolean
    alphaMap: null | Texture
    @@ -160,7 +167,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:75
  • alphaTest: number
    @@ -172,7 +179,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:75
  • alphaToCoverage: boolean
    @@ -184,7 +191,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:81
  • aoMap: null | Texture
    @@ -194,7 +201,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:60
  • aoMapIntensity: number
    @@ -204,7 +211,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:65
  • blendDst: BlendingDstFactor
    @@ -216,7 +223,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:87
  • blendDstAlpha: null | number
    @@ -228,7 +235,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:93
  • blendEquation: BlendingEquation
    @@ -240,7 +247,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:99
  • blendEquationAlpha: null | number
    @@ -252,7 +259,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:105
  • blendSrc: BlendingDstFactor | 210
    @@ -264,7 +271,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:117
  • blendSrcAlpha: null | number
    @@ -276,7 +283,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:123
  • blending: Blending
    @@ -288,7 +295,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:111
  • clipIntersection: boolean
    @@ -300,7 +307,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:129
  • clipShadows: boolean
    @@ -312,10 +319,10 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:144
  • -
    clippingPlanes: any
    +
    clippingPlanes: Plane[]

    User-defined clipping planes specified as THREE.Plane objects in world space. These planes apply to the objects this material is attached to. Points in space whose signed distance to the plane is negative are clipped (not rendered). @@ -327,7 +334,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:138
  • color: Color
    @@ -337,7 +344,7 @@

    Default

    new
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:40
  • colorWrite: boolean
    @@ -349,7 +356,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:150
  • combine: Combine
    @@ -359,7 +366,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:85
  • defines: undefined | {
        [key: string]: any;
    }
    @@ -377,7 +384,7 @@

    Default

    undefined
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:157
  • depthFunc: DepthModes
    @@ -389,7 +396,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:163
  • depthTest: boolean
    @@ -401,7 +408,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:169
  • depthWrite: boolean
    @@ -414,7 +421,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:176
  • dithering: boolean
    @@ -426,7 +433,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:299
  • envMap: null | Texture
    @@ -436,7 +443,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:80
  • fog: boolean
    @@ -448,7 +455,7 @@

    Default

    fog
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:121
  • forceSinglePass: boolean
    @@ -458,7 +465,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:293
  • id: number
    @@ -467,7 +474,7 @@
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:181
  • isMaterial: true
    @@ -477,12 +484,12 @@
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:239
  • isTeamSpriteMaterial: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1353
  • lightMap: null | Texture
    @@ -492,7 +499,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:50
  • lightMapIntensity: number
    @@ -502,7 +509,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:55
  • map: null | Texture
    @@ -512,7 +519,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:45
  • name: string
    @@ -524,7 +531,7 @@

    Default

    ''
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:245
  • needsUpdate: boolean
    @@ -537,7 +544,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:252
  • opacity: number
    @@ -549,7 +556,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:258
  • polygonOffset: boolean
    @@ -561,7 +568,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:264
  • polygonOffsetFactor: number
    @@ -573,7 +580,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:270
  • polygonOffsetUnits: number
    @@ -585,7 +592,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:276
  • precision: null | "highp" | "mediump" | "lowp"
    @@ -597,7 +604,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:282
  • premultipliedAlpha: boolean
    @@ -609,7 +616,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:288
  • reflectivity: number
    @@ -619,7 +626,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:90
  • refractionRatio: number
    @@ -629,7 +636,7 @@

    Default

    0.98
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:95
  • shadowSide: null | Side
    @@ -642,7 +649,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:314
  • side: Side
    @@ -655,7 +662,7 @@

    Default

    {@
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:307
  • specularMap: null | Texture
    @@ -665,7 +672,7 @@

    Default

    null
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:70
  • stencilFail: StencilOp
    @@ -677,7 +684,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:217
  • stencilFunc: StencilFunc
    @@ -689,7 +696,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:193
  • stencilFuncMask: number
    @@ -701,7 +708,7 @@

    Default

    0xff
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:211
  • stencilRef: number
    @@ -713,7 +720,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:199
  • stencilWrite: boolean
    @@ -725,7 +732,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:187
  • stencilWriteMask: number
    @@ -737,7 +744,7 @@

    Default

    0xff
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:205
  • stencilZFail: StencilOp
    @@ -751,7 +758,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:225
  • stencilZPass: StencilOp
    @@ -765,7 +772,7 @@

    Default

    THREE
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:233
  • toneMapped: boolean
    @@ -778,7 +785,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:321
  • transparent: boolean
    @@ -792,7 +799,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:329
  • type: string
    @@ -802,7 +809,7 @@

    Default

    'MeshBasic
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:35
  • userData: any
    @@ -814,7 +821,7 @@

    Default

    {}
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:358
  • uuid: string
    @@ -823,7 +830,7 @@
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:340
  • version: number
    @@ -835,7 +842,7 @@

    Default

    0
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:364
  • vertexColors: boolean
    @@ -847,7 +854,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:346
  • visible: boolean
    @@ -859,7 +866,7 @@

    Default

    true
     
    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:352
  • wireframe: boolean
    @@ -869,7 +876,7 @@

    Default

    false
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:100
  • wireframeLinecap: string
    @@ -879,7 +886,7 @@

    Default

    'round'
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:110
  • wireframeLinejoin: string
    @@ -889,7 +896,7 @@

    Default

    'round'
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:115
  • wireframeLinewidth: number
    @@ -899,7 +906,7 @@

    Default

    1
     
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:105
  • Accessors

    @@ -914,7 +921,7 @@

    Parameters

    val: boolean

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1361
    • @@ -927,7 +934,7 @@

      Parameters

      val: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1360
  • set localMatrix(val): void
  • @@ -945,7 +952,7 @@

    Parameters

    val: Matrix4
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1367
  • set modifier(val): void
  • @@ -963,7 +970,7 @@

    Parameters

    val: number
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1365
  • set modifierData(val): void
  • @@ -981,7 +988,7 @@

    Parameters

    val: Vector2
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1363
  • set parentMatrix(val): void
  • @@ -999,7 +1006,7 @@

    Parameters

    val: Matrix4
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1369
  • set teamColor(val): void
  • @@ -1017,7 +1024,7 @@

    Parameters

    val: Color
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1357
  • set teamMask(val): void
  • @@ -1035,7 +1042,7 @@

    Parameters

    val: undefined | Texture
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1355
    • @@ -1048,7 +1055,7 @@

      Parameters

      val: Texture

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1359
    • @@ -1061,7 +1068,7 @@

      Parameters

      val: undefined | {
          diffuse: CompressedTexture;
          frames: {
              h: number;
              w: number;
              x: number;
              xoff: number;
              y: number;
              yoff: number;
          }[];
          hdLayers: {
              emissive: undefined | CompressedTexture;
          };
          imageIndex: number;
          isHD: boolean;
          isHD2: boolean;
          spriteHeight: number;
          spriteWidth: number;
          teammask: undefined | CompressedTexture;
          textureHeight: number;
          textureWidth: number;
          unitTileScale: UnitTileScale;
          uvPos: {
              flippedPos: BufferAttribute;
              flippedUv: BufferAttribute;
              pos: BufferAttribute;
              uv: BufferAttribute;
          }[];
          uvPosDataTex: DataArrayTexture;
          dispose() => void;
      }

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1362
  • Methods

    @@ -1075,7 +1082,7 @@
    +

    T extends "dispose"

    Parameters

      @@ -1085,7 +1092,7 @@
      type:
  • -
    listener: EventListener<Event, T, ImageHDMaterial>
    +
    listener: EventListener<{
        dispose: {};
    }[T], T, ImageHDMaterial>

    The function that gets called when the event is fired.

  • @@ -1093,7 +1100,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:52
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns void

  • +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:369
  • +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:375
  • +
  • Defined in build/api-types/host/index.d.ts:1372
    • - +
    • Fire an event type.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends "dispose"

      Parameters

      • -
        event: Event
        +
        event: BaseEvent<T> & {
            dispose: {};
        }[T]

        The event that gets fired.

      @@ -1152,7 +1182,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:84
    • @@ -1164,7 +1194,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:380
  • +

    T extends "dispose"

    Parameters

      @@ -1186,7 +1216,7 @@
      type:
  • -
    listener: EventListener<Event, T, ImageHDMaterial>
    +
    listener: EventListener<{
        dispose: {};
    }[T], T, ImageHDMaterial>

    The function that gets called when the event is fired.

  • @@ -1194,7 +1224,25 @@

    Returns boolean +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:63
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns boolean

  • +
  • Defined in build/api-types/host/index.d.ts:1371
  • +

    T extends "dispose"

    Parameters

      @@ -1230,7 +1278,7 @@
      type:
  • -
    listener: EventListener<Event, T, ImageHDMaterial>
    +
    listener: EventListener<{
        dispose: {};
    }[T], T, ImageHDMaterial>

    The listener function that gets removed.

  • @@ -1238,7 +1286,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:74
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns void

    • @@ -1252,7 +1318,7 @@
      parameters: Returns void
    +
  • Defined in node_modules/@types/three/src/materials/MeshBasicMaterial.d.ts:123
    • @@ -1272,7 +1338,7 @@

      Returns any

    +
  • Defined in node_modules/@types/three/src/materials/Material.d.ts:406
  • Generated using TypeDoc

    diff --git a/docs/host/classes/ImageLoader.html b/docs/host/classes/ImageLoader.html new file mode 100644 index 00000000..ddb186b7 --- /dev/null +++ b/docs/host/classes/ImageLoader.html @@ -0,0 +1,196 @@ +ImageLoader | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Class ImageLoaderInternal

    +
    +

    Hierarchy

    +
      +
    • ImageLoader
    +
    +
    +
    + +
    +
    +

    Constructors

    +
    +
    +

    Properties

    +
    +
    +

    Constructors

    +
    + +
    +
    +

    Properties

    +
    + +
    atlas: null | {
        diffuse: CompressedTexture;
        frames: {
            h: number;
            w: number;
            x: number;
            xoff: number;
            y: number;
            yoff: number;
        }[];
        hdLayers: {
            emissive: undefined | CompressedTexture;
        };
        imageIndex: number;
        isHD: boolean;
        isHD2: boolean;
        spriteHeight: number;
        spriteWidth: number;
        teammask: undefined | CompressedTexture;
        textureHeight: number;
        textureWidth: number;
        unitTileScale: UnitTileScale;
        uvPos: {
            flippedPos: BufferAttribute;
            flippedUv: BufferAttribute;
            pos: BufferAttribute;
            uv: BufferAttribute;
        }[];
        uvPosDataTex: DataArrayTexture;
        dispose() => void;
    }
    +
    +

    Type declaration

    +
      +
    • +
      diffuse: CompressedTexture
    • +
    • +
      frames: {
          h: number;
          w: number;
          x: number;
          xoff: number;
          y: number;
          yoff: number;
      }[]
    • +
    • +
      hdLayers: {
          emissive: undefined | CompressedTexture;
      }
      +
        +
      • +
        emissive: undefined | CompressedTexture
    • +
    • +
      imageIndex: number
    • +
    • +
      isHD: boolean
    • +
    • +
      isHD2: boolean
    • +
    • +
      spriteHeight: number
    • +
    • +
      spriteWidth: number
    • +
    • +
      teammask: undefined | CompressedTexture
    • +
    • +
      textureHeight: number
    • +
    • +
      textureWidth: number
    • +
    • +
      unitTileScale: UnitTileScale
    • +
    • +
      uvPos: {
          flippedPos: BufferAttribute;
          flippedUv: BufferAttribute;
          pos: BufferAttribute;
          uv: BufferAttribute;
      }[]
    • +
    • +
      uvPosDataTex: DataArrayTexture
    • +
    • +
      dispose:function
      +
    +
    + +
    imageId: number
    +
    + +
    +
    + +
    onLoaded: (() => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (): void
      • +
      • +

        Returns void

    +
    + +
    priority: number
    +
    + +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/classes/ImageLoaderManager.html b/docs/host/classes/ImageLoaderManager.html new file mode 100644 index 00000000..630df9ca --- /dev/null +++ b/docs/host/classes/ImageLoaderManager.html @@ -0,0 +1,228 @@ +ImageLoaderManager | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Class ImageLoaderManagerInternal

    +
    +

    Hierarchy

    +
      +
    • ImageLoaderManager
    +
    +
    +
    + +
    +
    +

    Constructors

    +
    + +
    +
    +

    Properties

    +
    + +
    #private: any
    +
    + +
    currentDownloads: number
    +
    + +
    imageLoaders: Map<number, ImageLoader>
    +
    + +
    maxDownloads: number
    +
    +

    Methods

    +
    + +
    +
    + +
    +
    + +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        imageId: number
      • +
      • +
        Optional useRefId: boolean
      +

      Returns null | {
          diffuse: CompressedTexture;
          frames: {
              h: number;
              w: number;
              x: number;
              xoff: number;
              y: number;
              yoff: number;
          }[];
          hdLayers: {
              emissive: undefined | CompressedTexture;
          };
          imageIndex: number;
          isHD: boolean;
          isHD2: boolean;
          spriteHeight: number;
          spriteWidth: number;
          teammask: undefined | CompressedTexture;
          textureHeight: number;
          textureWidth: number;
          unitTileScale: UnitTileScale;
          uvPos: {
              flippedPos: BufferAttribute;
              flippedUv: BufferAttribute;
              pos: BufferAttribute;
              uv: BufferAttribute;
          }[];
          uvPosDataTex: DataArrayTexture;
          dispose() => void;
      }

    +
    + +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        imageId: number
      • +
      • +
        Optional priority: number
      +

      Returns undefined | Promise<void>

    +
    + +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        imageId: number
      +

      Returns Promise<null | {
          diffuse: CompressedTexture;
          frames: {
              h: number;
              w: number;
              x: number;
              xoff: number;
              y: number;
              yoff: number;
          }[];
          hdLayers: {
              emissive: undefined | CompressedTexture;
          };
          imageIndex: number;
          isHD: boolean;
          isHD2: boolean;
          spriteHeight: number;
          spriteWidth: number;
          teammask: undefined | CompressedTexture;
          textureHeight: number;
          textureWidth: number;
          unitTileScale: UnitTileScale;
          uvPos: {
              flippedPos: BufferAttribute;
              flippedUv: BufferAttribute;
              pos: BufferAttribute;
              uv: BufferAttribute;
          }[];
          uvPosDataTex: DataArrayTexture;
          dispose() => void;
      }>

    +
    + +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/classes/IndexedDBCache.html b/docs/host/classes/IndexedDBCache.html new file mode 100644 index 00000000..a5f04a5b --- /dev/null +++ b/docs/host/classes/IndexedDBCache.html @@ -0,0 +1,192 @@ +IndexedDBCache | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Class IndexedDBCacheInternal

    +
    +

    Hierarchy

    +
      +
    • IndexedDBCache
    +
    +
    +
    + +
    +
    +

    Constructors

    +
    +
    +

    Properties

    +
    +
    +

    Accessors

    +
    +
    +

    Methods

    +
    +
    +

    Constructors

    +
    + +
    +
    +

    Properties

    +
    + +
    #private: any
    +
    +

    Accessors

    +
    + +
    +
    +

    Methods

    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/classes/IntrusiveList.html b/docs/host/classes/IntrusiveList.html index 527bd864..dec297ed 100644 --- a/docs/host/classes/IntrusiveList.html +++ b/docs/host/classes/IntrusiveList.html @@ -1,4 +1,4 @@ -IntrusiveList | titan-reactor-runtime/host
    +IntrusiveList | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • IntrusiveList
    +
  • Defined in build/api-types/host/index.d.ts:1990
  • @@ -61,34 +61,34 @@
    Optional Optional pairOffset: number

    Returns IntrusiveList

    +
  • Defined in build/api-types/host/index.d.ts:1996
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1991
  • _current: any
    +
  • Defined in build/api-types/host/index.d.ts:1994
  • _heapU32: any
    +
  • Defined in build/api-types/host/index.d.ts:1992
  • _pairOffset: any
    +
  • Defined in build/api-types/host/index.d.ts:1993
  • addr: number
    +
  • Defined in build/api-types/host/index.d.ts:1995
  • Methods

    @@ -98,7 +98,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1997
  • +
  • Defined in build/api-types/host/index.d.ts:1998
  • Generated using TypeDoc

    diff --git a/docs/host/classes/IterableMap.html b/docs/host/classes/IterableMap.html index d1fe8c43..84710e52 100644 --- a/docs/host/classes/IterableMap.html +++ b/docs/host/classes/IterableMap.html @@ -1,4 +1,4 @@ -IterableMap | titan-reactor-runtime/host
    +IterableMap | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    +

    Class IterableMap<T, R>

    +
    +

    A map that also keeps track of insertion order

    +
    +

    Type Parameters

      @@ -27,7 +31,7 @@

      Hierarchy

      • IterableMap
    +
  • Defined in build/api-types/host/index.d.ts:1745
  • @@ -76,7 +80,7 @@

    Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1746
  • Accessors

    @@ -86,7 +90,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1747
  • +
  • Defined in build/api-types/host/index.d.ts:1754
  • Methods

    @@ -104,7 +108,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1753
  • +
  • Defined in build/api-types/host/index.d.ts:1752
    • @@ -125,7 +129,7 @@

      Parameters

      key: T

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1750
    • @@ -138,7 +142,7 @@

      Parameters

      key: T

    Returns undefined | R

    +
  • Defined in build/api-types/host/index.d.ts:1748
    • @@ -151,7 +155,7 @@

      Parameters

      key: T

    Returns boolean

    +
  • Defined in build/api-types/host/index.d.ts:1751
    • @@ -166,7 +170,7 @@
      key: value: R

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1749
  • Generated using TypeDoc

    diff --git a/docs/host/classes/IterableSet.html b/docs/host/classes/IterableSet.html index 8ad8e2ea..3ea2216d 100644 --- a/docs/host/classes/IterableSet.html +++ b/docs/host/classes/IterableSet.html @@ -1,4 +1,4 @@ -IterableSet | titan-reactor-runtime/host
    +IterableSet | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -25,7 +25,7 @@

    Hierarchy

    • IterableSet
    +
  • Defined in build/api-types/host/index.d.ts:1773
  • @@ -52,6 +52,7 @@

    Methods

    clear copyAsArray delete +get has set
    @@ -85,14 +86,14 @@
    values: Returns void

    Returns IterableSet<T>

    +
  • Defined in build/api-types/host/index.d.ts:1776
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1774
  • onChange: ((values) => void)
    @@ -110,7 +111,7 @@

    Parameters

    values: T[]

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1775
  • Accessors

    @@ -120,7 +121,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1779
  • +
  • Defined in build/api-types/host/index.d.ts:1778
  • Methods

    @@ -138,7 +139,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1786
    • @@ -151,7 +152,7 @@

      Parameters

      value: T

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1780
  • +
  • Defined in build/api-types/host/index.d.ts:1784
  • +
  • Defined in build/api-types/host/index.d.ts:1777
    • @@ -180,7 +181,20 @@

      Parameters

      value: T

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1782
  • +
    + +
      @@ -193,7 +207,7 @@

      Parameters

      key: T

    Returns boolean

    +
  • Defined in build/api-types/host/index.d.ts:1783
    • @@ -206,7 +220,7 @@

      Parameters

      values: T[]

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1781
  • Generated using TypeDoc

    diff --git a/docs/host/classes/LegacyGRP.html b/docs/host/classes/LegacyGRP.html index 11b58c89..6e485957 100644 --- a/docs/host/classes/LegacyGRP.html +++ b/docs/host/classes/LegacyGRP.html @@ -1,4 +1,4 @@ -LegacyGRP | titan-reactor-runtime/host
    +LegacyGRP | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • LegacyGRP
    +
  • Defined in build/api-types/host/index.d.ts:894
  • @@ -54,7 +54,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:909
  • Properties

    @@ -76,37 +76,37 @@
    x:
  • y: number
  • +
  • Defined in build/api-types/host/index.d.ts:901
  • grpHeight: number
    +
  • Defined in build/api-types/host/index.d.ts:898
  • grpWidth: number
    +
  • Defined in build/api-types/host/index.d.ts:897
  • height: number
    +
  • Defined in build/api-types/host/index.d.ts:896
  • teamcolor?: DataTexture
    +
  • Defined in build/api-types/host/index.d.ts:900
  • texture: DataTexture
    +
  • Defined in build/api-types/host/index.d.ts:899
  • width: number
    +
  • Defined in build/api-types/host/index.d.ts:895
  • Methods

    @@ -116,7 +116,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:915
    • @@ -144,7 +144,7 @@

      Returns Promise<
      Optional stride: number

    Returns Promise<LegacyGRP>

    +
  • Defined in build/api-types/host/index.d.ts:910
  • Generated using TypeDoc

    diff --git a/docs/host/classes/MainMixer.html b/docs/host/classes/Mixer.html similarity index 75% rename from docs/host/classes/MainMixer.html rename to docs/host/classes/Mixer.html index ee3fe8fd..359208fc 100644 --- a/docs/host/classes/MainMixer.html +++ b/docs/host/classes/Mixer.html @@ -1,4 +1,4 @@ -MainMixer | titan-reactor-runtime/host
    +Mixer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Constructors

    +
  • Defined in build/api-types/host/index.d.ts:1470
  • Properties

    compressor: DynamicsCompressorNode
    +
  • Defined in build/api-types/host/index.d.ts:1469
  • context: AudioContext
    +
  • Defined in build/api-types/host/index.d.ts:1468
  • gain: GainNode
    +
  • Defined in build/api-types/host/index.d.ts:1467
  • intro: GainNode
    +
  • Defined in build/api-types/host/index.d.ts:1464
  • music: GainNode
    +
  • Defined in build/api-types/host/index.d.ts:1466
  • sound: GainNode
    +
  • Defined in build/api-types/host/index.d.ts:1465
  • Accessors

    @@ -109,7 +111,7 @@

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1473
  • set musicVolume(val): void
  • @@ -137,7 +139,7 @@

    Parameters

    val: number
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1477
  • +
  • Defined in build/api-types/host/index.d.ts:1480
  • set soundVolume(val): void
  • @@ -163,7 +165,7 @@

    Parameters

    val: number
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1475
  • Methods

    @@ -184,7 +186,7 @@

    Returns (

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1488
    • @@ -197,7 +199,7 @@

      Parameters

      Optional k: number

    Returns WaveShaperNode

    +
  • Defined in build/api-types/host/index.d.ts:1490
    • @@ -210,7 +212,7 @@

      Parameters

      value: number

    Returns GainNode

    +
  • Defined in build/api-types/host/index.d.ts:1489
  • +
  • Defined in build/api-types/host/index.d.ts:1471
    • - +
    • Parameters

      • -
        filenameOrId: string | number
      +
      url: string

    Returns Promise<AudioBuffer>

    +
  • Defined in build/api-types/host/index.d.ts:1487
  • +
    + +
    +
    + +
      @@ -251,7 +279,7 @@
      gain
      source: AudioBufferSourceNode
    +
  • Defined in build/api-types/host/index.d.ts:1481
    • @@ -273,7 +301,7 @@
      playIntroSoundssound: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1478
    • @@ -290,7 +318,7 @@
      Optional Optional decay: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1491
    • @@ -307,7 +335,7 @@
      orientation: delta: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1479
  • Generated using TypeDoc

    diff --git a/docs/host/classes/MouseInput.html b/docs/host/classes/MouseInput.html index a92f2bbd..c6f18b31 100644 --- a/docs/host/classes/MouseInput.html +++ b/docs/host/classes/MouseInput.html @@ -1,4 +1,4 @@ -MouseInput | titan-reactor-runtime/host
    +MouseInput | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • MouseInput
    +
  • Defined in build/api-types/host/index.d.ts:2611
  • @@ -67,34 +67,34 @@

    Parameters

    domElement: HTMLElement

    Returns MouseInput

    +
  • Defined in build/api-types/host/index.d.ts:2615
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:2612
  • direction: Vector3
    +
  • Defined in build/api-types/host/index.d.ts:2614
  • +
  • Defined in build/api-types/host/index.d.ts:2613
  • Accessors

    +
  • Defined in build/api-types/host/index.d.ts:2620
  • +
  • Defined in build/api-types/host/index.d.ts:2616
  • +
  • Defined in build/api-types/host/index.d.ts:2617
  • +
  • Defined in build/api-types/host/index.d.ts:2624
  • +
  • Defined in build/api-types/host/index.d.ts:2623
  • +
  • Defined in build/api-types/host/index.d.ts:2622
  • +
  • Defined in build/api-types/host/index.d.ts:2619
  • +
  • Defined in build/api-types/host/index.d.ts:2618
  • +
  • Defined in build/api-types/host/index.d.ts:2621
  • Methods

    @@ -168,7 +168,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:2626
  • +
  • Defined in build/api-types/host/index.d.ts:2625
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/MacroAction.html b/docs/host/classes/Music.html similarity index 54% rename from docs/host/interfaces/MacroAction.html rename to docs/host/classes/Music.html index 397eecd0..462976a0 100644 --- a/docs/host/interfaces/MacroAction.html +++ b/docs/host/classes/Music.html @@ -1,4 +1,4 @@ -MacroAction | titan-reactor-runtime/host
    +Music | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    Interface MacroAction<T>Internal

    -
    -

    Type Parameters

    -
    +
  • @titan-reactor-runtime/host
  • +
  • Music
  • +

    Class MusicInternal

    Hierarchy

      -
    • MacroAction
    +

    Constructors

    +
    +

    Properties

    -
    +
    +

    Methods

    +
    +

    Constructors

    +
    + +
    +

    Properties

    -
    - -
    +
    +

    Methods

    +
    + +
    -
    - -
    operator: Operator
    +
    + +
    -
    - -
    path: TargetedPath<T>
    +
    + +
    -
    - -
    type: "action"
    +
    + +
    -
    - -
    value?: unknown
    +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:1509
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -126,7 +131,8 @@

    Methods

    isSandboxMode loadMap loadReplay -nextFrameNoAdvance +nextReplayStep +nextStep setCurrentFrame setCurrentReplayFrame setGameSpeed @@ -157,49 +163,49 @@

    Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:407
  • ALLOC_NORMAL: number
    +
  • Defined in build/api-types/host/index.d.ts:368
  • HEAP16: Int16Array
    +
  • Defined in build/api-types/host/index.d.ts:362
  • HEAP32: Int32Array
    +
  • Defined in build/api-types/host/index.d.ts:364
  • HEAP8: Int8Array
    +
  • Defined in build/api-types/host/index.d.ts:360
  • HEAPU16: Uint16Array
    +
  • Defined in build/api-types/host/index.d.ts:363
  • HEAPU32: Uint32Array
    +
  • Defined in build/api-types/host/index.d.ts:365
  • HEAPU8: Uint8Array
    +
  • Defined in build/api-types/host/index.d.ts:361
  • UTF8ToString: ((ptr) => undefined | string)
    @@ -218,7 +224,7 @@
    ptr: Returns undefined | string
    +
  • Defined in build/api-types/host/index.d.ts:334
  • _counts: ((index) => number)
    @@ -237,7 +243,7 @@
    index: Returns number
    +
  • Defined in build/api-types/host/index.d.ts:296
  • _create_unit: ((unitId, playerId, x, y) => number)
    @@ -262,7 +268,7 @@
    y:

    Returns number

    +
  • Defined in build/api-types/host/index.d.ts:295
  • _free: ((buffer) => void)
    @@ -281,7 +287,7 @@
    buffer: Returns void
    +
  • Defined in build/api-types/host/index.d.ts:367
  • _generate_frame: (() => void)
    @@ -295,7 +301,7 @@

    Type declaration

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:301
  • _get_buffer: ((index) => number)
    @@ -314,7 +320,7 @@
    index: Returns number
    +
  • Defined in build/api-types/host/index.d.ts:297
  • _load_map: ((buffer, length) => void)
    @@ -335,7 +341,7 @@
    length: Returns void
    +
  • Defined in build/api-types/host/index.d.ts:289
  • _load_replay: ((buffer, length) => void)
    @@ -356,7 +362,7 @@
    length: Returns void
    +
  • Defined in build/api-types/host/index.d.ts:288
  • _load_replay_with_height_map: ((replayBuffer, replayLength, buffer, length, width, height) => void)
    @@ -385,7 +391,7 @@
    height: Returns void
    +
  • Defined in build/api-types/host/index.d.ts:291
  • _next_frame: (() => number)
    @@ -399,21 +405,35 @@

    Type declaration

    Returns number

    -
    - -
    _next_no_replay: (() => number)
    +
  • Defined in build/api-types/host/index.d.ts:292
  • +
    + +
    _next_replay_step: (() => number)

    Type declaration

      • -
      • (): number
      • +
      • (): number
      • Returns number

    +
  • Defined in build/api-types/host/index.d.ts:294
  • +
    + +
    _next_step: (() => number)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (): number
      • +
      • +

        Returns number

    _replay_get_value: ((index) => number)
    @@ -422,7 +442,7 @@

    Type declaration

      • -
      • (index): number
      • +
      • (index): number
      • Parameters

        @@ -432,7 +452,7 @@
        index: Returns number
    +
  • Defined in build/api-types/host/index.d.ts:298
  • _replay_set_value: ((index, value) => void)
    @@ -441,7 +461,7 @@

    Type declaration

      • -
      • (index, value): void
      • +
      • (index, value): void
      • Parameters

        @@ -453,7 +473,7 @@
        value: Returns void
    +
  • Defined in build/api-types/host/index.d.ts:299
  • _reset: (() => void)
    @@ -462,12 +482,12 @@

    Type declaration

      • -
      • (): void
      • +
      • (): void
      • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:287
  • _set_player_visibility: ((playerId) => void)
    @@ -476,7 +496,7 @@

    Type declaration

      • -
      • (playerId): void
      • +
      • (playerId): void
      • Parameters

        @@ -486,7 +506,7 @@
        playerId: Returns void
    +
  • Defined in build/api-types/host/index.d.ts:300
  • _upload_height_map: ((buffer, length, width, height) => void)
    @@ -495,7 +515,7 @@

    Type declaration

      • -
      • (buffer, length, width, height): void
      • +
      • (buffer, length, width, height): void
      • Parameters

        @@ -511,7 +531,7 @@
        height: Returns void
    +
  • Defined in build/api-types/host/index.d.ts:290
  • allocate: ((buffer, flags) => number)
    @@ -520,7 +540,7 @@

    Type declaration

      • -
      • (buffer, flags): number
      • +
      • (buffer, flags): number
      • Parameters

        @@ -532,7 +552,7 @@
        flags: Returns number
    +
  • Defined in build/api-types/host/index.d.ts:366
  • callMain: (() => void)
    @@ -541,17 +561,17 @@

    Type declaration

      • -
      • (): void
      • +
      • (): void
      • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:324
  • +
  • Defined in build/api-types/host/index.d.ts:409
  • getExceptionMessage: ((e) => string)
    @@ -560,7 +580,7 @@

    Type declaration

      • -
      • (e): string
      • +
      • (e): string
      • Parameters

        @@ -570,7 +590,7 @@
        e:

        Returns string

    +
  • Defined in build/api-types/host/index.d.ts:325
  • get_util_funcs: (() => {
        dump_unit: ((unitAddr) => {
            buildQueue?: number[];
            id: number;
            loaded?: number[];
            remainingTrainTime?: number;
            research?: {
                id: number;
                time: number;
            };
            resourceAmount?: number;
            upgrade?: {
                id: number;
                level: number;
                time: number;
            };
        });
        get_sounds: (() => SoundStruct[]);
        issue_command: ((unitId, command, targetId, x, y, extra) => boolean);
        kill_unit: ((unitId) => number);
        remove_unit: ((unitId) => number);
    })
    @@ -579,7 +599,7 @@

    Type declaration

      • -
      • (): {
            dump_unit: ((unitAddr) => {
                buildQueue?: number[];
                id: number;
                loaded?: number[];
                remainingTrainTime?: number;
                research?: {
                    id: number;
                    time: number;
                };
                resourceAmount?: number;
                upgrade?: {
                    id: number;
                    level: number;
                    time: number;
                };
            });
            get_sounds: (() => SoundStruct[]);
            issue_command: ((unitId, command, targetId, x, y, extra) => boolean);
            kill_unit: ((unitId) => number);
            remove_unit: ((unitId) => number);
        }
      • +
      • (): {
            dump_unit: ((unitAddr) => {
                buildQueue?: number[];
                id: number;
                loaded?: number[];
                remainingTrainTime?: number;
                research?: {
                    id: number;
                    time: number;
                };
                resourceAmount?: number;
                upgrade?: {
                    id: number;
                    level: number;
                    time: number;
                };
            });
            get_sounds: (() => SoundStruct[]);
            issue_command: ((unitId, command, targetId, x, y, extra) => boolean);
            kill_unit: ((unitId) => number);
            remove_unit: ((unitId) => number);
        }
      • Returns {
            dump_unit: ((unitAddr) => {
                buildQueue?: number[];
                id: number;
                loaded?: number[];
                remainingTrainTime?: number;
                research?: {
                    id: number;
                    time: number;
                };
                resourceAmount?: number;
                upgrade?: {
                    id: number;
                    level: number;
                    time: number;
                };
            });
            get_sounds: (() => SoundStruct[]);
            issue_command: ((unitId, command, targetId, x, y, extra) => boolean);
            kill_unit: ((unitId) => number);
            remove_unit: ((unitId) => number);
        }

          @@ -588,7 +608,7 @@
          dump_unit
          • -
          • (unitAddr): {
                buildQueue?: number[];
                id: number;
                loaded?: number[];
                remainingTrainTime?: number;
                research?: {
                    id: number;
                    time: number;
                };
                resourceAmount?: number;
                upgrade?: {
                    id: number;
                    level: number;
                    time: number;
                };
            }
          • +
          • (unitAddr): {
                buildQueue?: number[];
                id: number;
                loaded?: number[];
                remainingTrainTime?: number;
                research?: {
                    id: number;
                    time: number;
                };
                resourceAmount?: number;
                upgrade?: {
                    id: number;
                    level: number;
                    time: number;
                };
            }
          • Parameters

            @@ -628,7 +648,7 @@
            get_sounds
        • @@ -636,7 +656,7 @@
          issue_command
          • -
          • (unitId, command, targetId, x, y, extra): boolean
          • +
          • (unitId, command, targetId, x, y, extra): boolean
          • Parameters

            @@ -659,7 +679,7 @@
            kill_unit
            • -
            • (unitId): number
            • +
            • (unitId): number
            • Parameters

              @@ -672,7 +692,7 @@
              remove_unit
              • -
              • (unitId): number
              • +
              • (unitId): number
              • Parameters

                @@ -682,7 +702,12 @@
                unitId: Returns number
    +
  • Defined in build/api-types/host/index.d.ts:302
  • +
    + +
    iterators: OpenBWIterators
    nextFrame: (() => number)
    @@ -691,7 +716,7 @@

    Type declaration

      • -
      • (): number
      • +
      • (): number
      • Increments the game frame where openbw will run until the next frame. If the game is in sandbox mode, the game will run at 24 fps.

        @@ -700,7 +725,7 @@

        Returns number

    +
  • Defined in build/api-types/host/index.d.ts:446
  • nextFrameSafe: (() => number)
    @@ -709,16 +734,40 @@

    Type declaration

      • -
      • (): number
      • +
      • (): number
      • Returns number

    +
  • Defined in build/api-types/host/index.d.ts:447
  • running: boolean
    +
  • Defined in build/api-types/host/index.d.ts:408
  • +
    + +
    setReplayFrameListener: ((fn) => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (fn): void
      • +
      • +
        +

        Parameters

        +
          +
        • +
          fn: (() => void)
          +
            +
          • +
              +
            • (): void
            • +
            • +

              Returns void

        +

        Returns void

    setSandboxMode: ((sandbox) => undefined | boolean)
    @@ -727,7 +776,7 @@

    Type declaration

      • -
      • (sandbox): undefined | boolean
      • +
      • (sandbox): undefined | boolean
      • Parameters

        @@ -736,7 +785,28 @@

        Parameters

        sandbox: boolean

      Returns undefined | boolean

    +
  • Defined in build/api-types/host/index.d.ts:419
  • +
    + +
    setupCallback: ((key, callback) => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (key, callback): void
      • +
      • +
        +

        Parameters

        +
          +
        • +
          key: keyof Callbacks
        • +
        • +
          callback: undefined | ((ptr) => string) | (() => void) | (() => void) | ((index) => number) | ((index, dst, offset, size) => void) | (() => void) | ((ptr) => number) | (() => void)
        +

        Returns void

    setupCallbacks: ((callbacks) => void)
    @@ -745,7 +815,7 @@

    Type declaration

      • -
      • (callbacks): void
      • +
      • (callbacks): void
      • Parameters

        @@ -755,12 +825,17 @@
        callbacks: Returns void
    +
  • Defined in build/api-types/host/index.d.ts:326
  • +
    + +
    unitGenerationSize: number
    +
  • Defined in build/api-types/host/index.d.ts:410
  • uploadHeightMap: ((data, width, height) => void)
    @@ -769,7 +844,7 @@

    Type declaration

      • -
      • (data, width, height): void
      • +
      • (data, width, height): void
      • OpenBW uses the height map to determine Y coordinates for units so that we don't have to.

        @@ -794,7 +869,7 @@
        height: Returns void
    +
  • Defined in build/api-types/host/index.d.ts:431
  • Methods

    @@ -810,7 +885,7 @@
    ptr: Returns undefined | string
    +
  • Defined in build/api-types/host/index.d.ts:340
  • +
  • Defined in build/api-types/host/index.d.ts:336
  • +
  • Defined in build/api-types/host/index.d.ts:338
  • +
  • Defined in build/api-types/host/index.d.ts:345
  • +
  • Defined in build/api-types/host/index.d.ts:348
  • +
  • Defined in build/api-types/host/index.d.ts:463
  • +
  • Defined in build/api-types/host/index.d.ts:479
  • +
  • Defined in build/api-types/host/index.d.ts:481
  • +
  • Defined in build/api-types/host/index.d.ts:480
  • +
  • Defined in build/api-types/host/index.d.ts:470
  • +
  • Defined in build/api-types/host/index.d.ts:469
  • +
  • Defined in build/api-types/host/index.d.ts:468
  • +
  • Defined in build/api-types/host/index.d.ts:467
  • +
  • Defined in build/api-types/host/index.d.ts:453
  • +
  • Defined in build/api-types/host/index.d.ts:455
  • +
  • Defined in build/api-types/host/index.d.ts:465
  • +
  • Defined in build/api-types/host/index.d.ts:464
  • +
  • Defined in build/api-types/host/index.d.ts:451
  • +
  • Defined in build/api-types/host/index.d.ts:485
  • +
  • Defined in build/api-types/host/index.d.ts:484
  • +
  • Defined in build/api-types/host/index.d.ts:474
  • +
  • Defined in build/api-types/host/index.d.ts:475
  • +
  • Defined in build/api-types/host/index.d.ts:458
  • +
  • Defined in build/api-types/host/index.d.ts:473
  • +
  • Defined in build/api-types/host/index.d.ts:482
  • +
  • Defined in build/api-types/host/index.d.ts:483
  • +
  • Defined in build/api-types/host/index.d.ts:477
  • +
  • Defined in build/api-types/host/index.d.ts:476
  • +
  • Defined in build/api-types/host/index.d.ts:471
  • +
  • Defined in build/api-types/host/index.d.ts:472
  • +
  • Defined in build/api-types/host/index.d.ts:478
  • +
  • Defined in build/api-types/host/index.d.ts:352
  • +
  • Defined in build/api-types/host/index.d.ts:416
  • +
  • Defined in build/api-types/host/index.d.ts:341
  • +
  • Defined in build/api-types/host/index.d.ts:342
  • +
  • Defined in build/api-types/host/index.d.ts:456
  • +
  • Defined in build/api-types/host/index.d.ts:417
  • +
  • Defined in build/api-types/host/index.d.ts:418
  • +
  • Defined in build/api-types/host/index.d.ts:435
  • -
    - +
  • Defined in build/api-types/host/index.d.ts:423
  • +
    + +
    +
    +
    +
  • Defined in build/api-types/host/index.d.ts:448
    • @@ -1235,7 +1318,7 @@

      Parameters

      frame: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:452
    • @@ -1248,7 +1331,7 @@

      Parameters

      frame: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:454
    • @@ -1261,7 +1344,7 @@

      Parameters

      speed: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:450
    • @@ -1274,7 +1357,7 @@

      Parameters

      paused: boolean

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:457
    • @@ -1287,7 +1370,7 @@

      Parameters

      visibility: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:466
    • @@ -1300,7 +1383,7 @@

      Parameters

      unitLimits: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:459
  • +
  • Defined in build/api-types/host/index.d.ts:351
  • +
  • Defined in build/api-types/host/index.d.ts:353
  • +
  • Defined in build/api-types/host/index.d.ts:439
  • +
  • Defined in build/api-types/host/index.d.ts:337
  • +
  • Defined in build/api-types/host/index.d.ts:339
  • +
  • Defined in build/api-types/host/index.d.ts:335
  • +
  • Defined in build/api-types/host/index.d.ts:343
  • +
  • Defined in build/api-types/host/index.d.ts:344
  • Generated using TypeDoc

    diff --git a/docs/host/classes/OpenBWFileList.html b/docs/host/classes/OpenBWFileList.html index 6a40fe0a..9fe5380a 100644 --- a/docs/host/classes/OpenBWFileList.html +++ b/docs/host/classes/OpenBWFileList.html @@ -1,4 +1,4 @@ -OpenBWFileList | titan-reactor-runtime/host
    +OpenBWFileList | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • OpenBWFileList
    +
  • Defined in build/api-types/host/index.d.ts:491
  • @@ -40,7 +40,6 @@

    Properties

    Methods

    @@ -58,29 +57,29 @@

    Parameters

    openBw: OpenBWWasm

    Returns OpenBWFileList

    +
  • Defined in build/api-types/host/index.d.ts:497
  • Properties

    _cleared: any
    +
  • Defined in build/api-types/host/index.d.ts:495
  • buffers: any
    +
  • Defined in build/api-types/host/index.d.ts:492
  • index: any
    +
  • Defined in build/api-types/host/index.d.ts:493
  • unused: number[]
    +
  • Defined in build/api-types/host/index.d.ts:494
  • Methods

    @@ -90,15 +89,7 @@
    -
    - -
    +
  • Defined in build/api-types/host/index.d.ts:499
    • @@ -122,7 +113,7 @@
      filename: Returns Promise<Buffer | Uint8Array>

    Returns Promise<void>

    +
  • Defined in build/api-types/host/index.d.ts:498
    • @@ -135,7 +126,7 @@

      Parameters

      path: string

    Returns string

    +
  • Defined in build/api-types/host/index.d.ts:496
  • Generated using TypeDoc

    diff --git a/docs/host/classes/OpenBWIterators.html b/docs/host/classes/OpenBWIterators.html new file mode 100644 index 00000000..58e12d30 --- /dev/null +++ b/docs/host/classes/OpenBWIterators.html @@ -0,0 +1,174 @@ +OpenBWIterators | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Class OpenBWIterators

    +
    +

    Hierarchy

    +
      +
    • OpenBWIterators
    +
    +
    +
    + +
    +
    +

    Constructors

    +
    + +
    +
    +

    Properties

    +
    + +
    deletedImagesThisFrame: (() => Generator<number, void, unknown>)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (): Generator<number, void, unknown>
      • +
      • +

        Returns Generator<number, void, unknown>

    +
    + +
    deletedSpritesThisFrame: (() => Generator<number, void, unknown>)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (): Generator<number, void, unknown>
      • +
      • +

        Returns Generator<number, void, unknown>

    +
    + +
    destroyedUnitsThisFrame: (() => Generator<number, void, unknown>)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (): Generator<number, void, unknown>
      • +
      • +

        Returns Generator<number, void, unknown>

    +
    + +
    killedUnitsThisFrame: (() => Generator<number, void, unknown>)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (): Generator<number, void, unknown>
      • +
      • +

        Returns Generator<number, void, unknown>

    +
    + +
    +
    + +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/interfaces/Injectables.html b/docs/host/classes/OpenBWStructViews.html similarity index 74% rename from docs/host/interfaces/Injectables.html rename to docs/host/classes/OpenBWStructViews.html index 6844c0a2..29b15575 100644 --- a/docs/host/interfaces/Injectables.html +++ b/docs/host/classes/OpenBWStructViews.html @@ -1,4 +1,4 @@ -Injectables | titan-reactor-runtime/host
    +OpenBWStructViews | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    Interface InjectablesInternal

    +
  • @titan-reactor-runtime/host
  • +
  • OpenBWStructViews
  • +

    Class OpenBWStructViewsInternal

    Hierarchy

      -
    • Injectables
    +

    Constructors

    +
    +

    Properties

    -
    -

    Properties

    -
    - - -

    World events that can be listened to and emitted.

    -
    -
    +
    +

    Properties

    +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:2096
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    • Players
    +
  • Defined in build/api-types/host/index.d.ts:193
  • @@ -35,10 +35,10 @@

    Constructors

    Properties

    Accessors

    @@ -46,43 +46,43 @@

    Accessors

    Methods

    -
    +
  • Defined in build/api-types/host/index.d.ts:196
  • Properties

    #private: any
    -
    - +
  • Defined in build/api-types/host/index.d.ts:194
  • +
    + +
    [unscopables]: {
        [unscopables]?: boolean;
        length?: boolean;
        [iterator]?: any;
        at?: any;
        concat?: any;
        copyWithin?: any;
        entries?: any;
        every?: any;
        fill?: any;
        filter?: any;
        find?: any;
        findIndex?: any;
        flat?: any;
        flatMap?: any;
        forEach?: any;
        includes?: any;
        indexOf?: any;
        join?: any;
        keys?: any;
        lastIndexOf?: any;
        map?: any;
        pop?: any;
        push?: any;
        reduce?: any;
        reduceRight?: any;
        reverse?: any;
        shift?: any;
        slice?: any;
        some?: any;
        sort?: any;
        splice?: any;
        toLocaleString?: any;
        toString?: any;
        unshift?: any;
        values?: any;
    }
    +

    Is an object whose properties have the value 'true' +when they will be absent when used in a 'with' statement.

    +
    +
    +

    Type declaration

    +
      +
    • +
      Optional Readonly [unscopables]?: boolean
      +

      Is an object whose properties have the value 'true' +when they will be absent when used in a 'with' statement.

      +
      +
    • +
    • +
      Optional length?: boolean
      +

      Gets or sets the length of the array. This is a number one higher than the highest index in the array.

      +
      +
    +
    +
    +
    length: number

    Gets or sets the length of the array. This is a number one higher than the highest index in the array.

    -
    - -
    originalColors: readonly string[]
    +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1318
  • originalNames: readonly PlayerName[]
    -
    - -
    setPlayerColors: ((colors) => void)
    +
  • Defined in build/api-types/host/index.d.ts:195
  • +
    + +
    setColors: ((colors) => void)

    Type declaration

      • -
      • (colors): void
      • +
      • (colors): void
      • Parameters

        • -
          colors: string[]
        +
        colors: readonly string[]

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:201
  • Accessors

    @@ -158,13 +177,13 @@
    +
  • Defined in build/api-types/host/index.d.ts:198
  • Methods

    -
    - +
    +
      - +
    • Iterator

      @@ -172,39 +191,11 @@

      Returns Iterable

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:58
  • +
    +
      - -
    • -

      Returns an object whose properties have the value 'true' -when they will be absent when used in a 'with' statement.

      -
      -

      Returns {
          copyWithin: boolean;
          entries: boolean;
          fill: boolean;
          find: boolean;
          findIndex: boolean;
          keys: boolean;
          values: boolean;
      }

      -
        -
      • -
        copyWithin: boolean
      • -
      • -
        entries: boolean
      • -
      • -
        fill: boolean
      • -
      • -
        find: boolean
      • -
      • -
        findIndex: boolean
      • -
      • -
        keys: boolean
      • -
      • -
        values: boolean
      -
    -
    - -
      - +
    • Returns the item located at the specified index.

      @@ -220,11 +211,11 @@

      Returns undefined

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es2022.array.d.ts:24
  • +
    + +
  • Combines two or more arrays. This method returns a new array without modifying any existing arrays.

    @@ -259,7 +250,7 @@

    Returns

  • +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1348
  • +
  • Defined in node_modules/typescript/lib/lib.es2015.core.d.ts:62
    • @@ -304,11 +295,11 @@

      Returns Iterable

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:63
  • +
    +
      - +
    • Determines whether all the members of an array satisfy the specified test.

      @@ -352,8 +343,8 @@

      Returns this

    • - +
    • Defined in node_modules/typescript/lib/lib.es5.d.ts:1425
    +
  • Determines whether all the members of an array satisfy the specified test.

    @@ -392,7 +383,7 @@

    Returns boolean

  • +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1434
  • -
    - +
  • Defined in node_modules/typescript/lib/lib.es2015.core.d.ts:51
  • +
    +
      - +
    • Returns the elements of an array that meet the condition specified in a callback function.

      @@ -469,8 +460,8 @@

      Returns

    • - +
    • Defined in node_modules/typescript/lib/lib.es5.d.ts:1461
    +
  • Returns the elements of an array that meet the condition specified in a callback function.

    @@ -506,7 +497,7 @@

    Returns

  • +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1467
    • @@ -524,7 +515,7 @@

      SParameters

      • -
        predicate: ((this, value, index, obj) => value is S)
        +
        predicate: ((value, index, obj) => value is S)

        find calls predicate once for each element of the array, in ascending order, until it finds one where predicate returns true. If such an element is found, find immediately returns that element value. Otherwise, find returns undefined.

        @@ -533,14 +524,12 @@
        predicate:
        • -
        • (this, value, index, obj): value is S
        • +
        • (value, index, obj): value is S
        • Parameters

          • -
            this: void
          • -
          • value: Player
          • index: number
          • @@ -557,7 +546,7 @@

            Returns undefined
            +
          • Defined in node_modules/typescript/lib/lib.es2015.core.d.ts:29
        • @@ -585,7 +574,7 @@
          Optional Returns undefined | Player
    +
  • Defined in node_modules/typescript/lib/lib.es2015.core.d.ts:30
    • @@ -629,11 +618,11 @@

      Returns number

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es2015.core.d.ts:41
  • +
    +
      - +
    • Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth.

      @@ -659,11 +648,11 @@

      Returns FlatArra

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es2019.array.d.ts:79
  • +
    +
      - +
    • Calls a defined callback function on each element of an array. Then, flattens the result into a new array. @@ -712,11 +701,11 @@

      Returns

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es2019.array.d.ts:68
  • +
    +
      - +
    • Performs the specified action for each element in an array.

      @@ -752,7 +741,7 @@

      Returns void

    +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1449
    • @@ -765,7 +754,7 @@

      Parameters

      id: number

    Returns undefined | Player

    +
  • Defined in build/api-types/host/index.d.ts:197
  • -
    - +
  • Defined in build/api-types/host/index.d.ts:200
  • +
    +
      - +
    • Determines whether an array includes a certain element, returning true or false as appropriate.

      @@ -798,11 +787,11 @@

      Returns boolean

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es2016.array.include.d.ts:25
  • +
    +
      - +
    • Returns the index of the first occurrence of a value in an array, or -1 if it is not present.

      @@ -823,11 +812,11 @@

      Returns number

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1410
  • +
    +
      - +
    • Adds all the elements of an array into a string, separated by the specified separator string.

      @@ -843,7 +832,7 @@

      Returns string

    +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1353
    • @@ -855,11 +844,11 @@

      Returns Iterable

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:68
  • +
    +
      - +
    • Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present.

      @@ -880,11 +869,11 @@

      Returns number

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1416
  • +
    +
      - +
    • Calls a defined callback function on each element of an array, and returns an array that contains the results.

      @@ -925,11 +914,11 @@

      Returns

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1455
  • +
    +
      - +
    • Removes the last element from an array and returns it. If the array is empty, undefined is returned and the array is not modified.

      @@ -938,11 +927,11 @@

      Returns undefined

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1331
  • +
    +
      - +
    • Appends new elements to the end of an array, and returns the new length of the array.

      @@ -958,11 +947,11 @@

      Returns number

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1336
  • +
    + +
  • Parameters

    @@ -1025,8 +1014,8 @@
    initialValue: Returns Player
  • - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1474
  • +
  • Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

    @@ -1069,11 +1058,11 @@

    Returns

  • -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1480
  • +
    + +
  • Parameters

    @@ -1136,8 +1125,8 @@
    initialValue: Returns Player
  • - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1487
  • +
  • Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function.

    @@ -1180,11 +1169,19 @@

    Returns

  • -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1493
  • +
    + +
    +
    +
    -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1358
  • +
    +
      - +
    • Parameters

      @@ -1206,11 +1203,11 @@

      Parameters

      players: PlayerName[]

    Returns void

    -
    - +
  • Defined in build/api-types/host/index.d.ts:203
  • +
    +
      - +
    • Removes the first element from an array and returns it. If the array is empty, undefined is returned and the array is not modified.

      @@ -1219,11 +1216,11 @@

      Returns undefined

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1363
  • +
    +
    -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1373
  • +
    +
      - +
    • Determines whether the specified callback function returns true for any element of an array.

      @@ -1291,11 +1288,11 @@

      Returns boolean

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1443
  • +
    +
    -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1384
  • +
    + +
  • Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements.

    @@ -1383,11 +1380,11 @@

    Returns

  • -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1399
  • +
    +
      - +
    • Returns a string representation of an array. The elements are converted to string using their toLocaleString methods.

      @@ -1395,11 +1392,11 @@

      Returns string

    -
    - +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1326
  • +
    +
      - +
    • Returns a string representation of an array.

      @@ -1407,7 +1404,7 @@

      Returns string

    +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1322
    • @@ -1420,11 +1417,11 @@

      Parameters

      id: number

    Returns void

    -
    - +
  • Defined in build/api-types/host/index.d.ts:199
  • +
    +
      - +
    • Inserts new elements at the start of an array, and returns the new length of the array.

      @@ -1440,7 +1437,7 @@

      Returns number

    +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1404
    • @@ -1452,7 +1449,7 @@

      Returns Iterable

    +
  • Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:73
    • @@ -1477,7 +1474,7 @@

      Returns +
    • Defined in node_modules/typescript/lib/lib.es2015.core.d.ts:70
  • Creates an array from an iterable object.

    @@ -1524,7 +1521,7 @@

    Returns

  • +
  • Defined in node_modules/typescript/lib/lib.es2015.core.d.ts:78
  • Creates an array from an iterable object.

    @@ -1546,7 +1543,7 @@

    Returns

  • +
  • Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:81
  • Creates an array from an iterable object.

    @@ -1593,7 +1590,7 @@

    Returns

  • +
  • Defined in node_modules/typescript/lib/lib.es2015.iterable.d.ts:89
    • @@ -1607,7 +1604,7 @@
      arg: Returns arg is any[]
    +
  • Defined in node_modules/typescript/lib/lib.es5.d.ts:1505
    • @@ -1632,7 +1629,7 @@

      Returns

    +
  • Defined in node_modules/typescript/lib/lib.es2015.core.d.ts:84
  • Generated using TypeDoc

    diff --git a/docs/host/classes/ProjectedCameraView.html b/docs/host/classes/ProjectedCameraView.html index 88cdd297..68a06f04 100644 --- a/docs/host/classes/ProjectedCameraView.html +++ b/docs/host/classes/ProjectedCameraView.html @@ -1,4 +1,4 @@ -ProjectedCameraView | titan-reactor-runtime/host
    +ProjectedCameraView | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • ProjectedCameraView
    +
  • Defined in build/api-types/host/index.d.ts:2798
  • @@ -63,57 +63,57 @@

    Properties

    bl: [number, number]
    +
  • Defined in build/api-types/host/index.d.ts:2805
  • bottom: number
    +
  • Defined in build/api-types/host/index.d.ts:2802
  • br: [number, number]
    +
  • Defined in build/api-types/host/index.d.ts:2807
  • center: Vector3
    +
  • Defined in build/api-types/host/index.d.ts:2809
  • height: number
    +
  • Defined in build/api-types/host/index.d.ts:2804
  • left: number
    +
  • Defined in build/api-types/host/index.d.ts:2799
  • right: number
    +
  • Defined in build/api-types/host/index.d.ts:2801
  • tl: [number, number]
    +
  • Defined in build/api-types/host/index.d.ts:2808
  • top: number
    +
  • Defined in build/api-types/host/index.d.ts:2800
  • tr: [number, number]
    +
  • Defined in build/api-types/host/index.d.ts:2806
  • width: number
    +
  • Defined in build/api-types/host/index.d.ts:2803
  • Methods

    @@ -130,11 +130,11 @@
    camera: target: Vector3

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2814
    • - +
    • Parameters

      @@ -148,9 +148,9 @@
      x:
      y: number
  • camera: Camera
  • -

    Returns null | Vector3

    Generated using TypeDoc

    diff --git a/docs/host/classes/ResourceLoader.html b/docs/host/classes/ResourceLoader.html new file mode 100644 index 00000000..39c55e4f --- /dev/null +++ b/docs/host/classes/ResourceLoader.html @@ -0,0 +1,209 @@ +ResourceLoader | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Class ResourceLoaderInternal

    +
    +

    Hierarchy

    +
      +
    • ResourceLoader
    +
    +
    +
    + +
    +
    +

    Constructors

    +
    +
    +

    Properties

    +
    +
    +

    Accessors

    +
    +
    +

    Methods

    +
    +
    +

    Constructors

    +
    + +
    +
    +

    Properties

    +
    + +
    #private: any
    +
    + +
    buffer: null | Buffer
    +
    + +
    +
    + +
    key: string
    +
    + +
    onStatusChange: ((status) => void)
    +
    +

    Type declaration

    +
    +
    + +
    url: string
    +
    +

    Accessors

    +
    + +
    +
    +

    Methods

    +
    + +
    +
    + +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/classes/SimpleBufferView.html b/docs/host/classes/SimpleBufferView.html index d910af27..1acbe664 100644 --- a/docs/host/classes/SimpleBufferView.html +++ b/docs/host/classes/SimpleBufferView.html @@ -1,4 +1,4 @@ -SimpleBufferView | titan-reactor-runtime/host
    +SimpleBufferView | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -25,7 +25,7 @@

    Hierarchy

    • SimpleBufferView
    +
  • Defined in build/api-types/host/index.d.ts:1927
  • @@ -75,24 +75,24 @@
    itemsCount: buffer: K

    Returns SimpleBufferView<K>

    +
  • Defined in build/api-types/host/index.d.ts:1931
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1928
  • _structSizeInBytes: any
    +
  • Defined in build/api-types/host/index.d.ts:1930
  • viewSize: number
    +
  • Defined in build/api-types/host/index.d.ts:1929
  • Accessors

    @@ -102,7 +102,7 @@

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1932
  • Methods

    @@ -122,7 +122,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1934
  • +
  • Defined in build/api-types/host/index.d.ts:1935
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/MacroDTO.html b/docs/host/classes/SimpleQuadtree.html similarity index 56% rename from docs/host/interfaces/MacroDTO.html rename to docs/host/classes/SimpleQuadtree.html index 5ed65041..51f0d2ab 100644 --- a/docs/host/interfaces/MacroDTO.html +++ b/docs/host/classes/SimpleQuadtree.html @@ -1,4 +1,4 @@ -MacroDTO | titan-reactor-runtime/host
    +SimpleQuadtree | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    Interface MacroDTOInternal

    +
  • @titan-reactor-runtime/host
  • +
  • SimpleQuadtree
  • +

    Class SimpleQuadtree<T>

    +
    +

    Type Parameters

    +
      +
    • +

      T

    Hierarchy

      -
    • MacroDTO
    +

    Constructors

    +
    +

    Properties

    -
    +
    +

    Accessors

    +
    +
    +

    Methods

    +
    -

    Properties

    -
    - -
    actionSequence: MacroActionSequence
    -
    - -
    -
    - -
    conditions: MacroCondition<TargetType>[]
    +
    +

    Properties

    +
    + +
    #private: any
    -
    - -
    error?: string
    +
    +

    Accessors

    +
    + +
    -
    - -
    id: string
    +
    +

    Methods

    +
    + +
    -
    - -
    name: string
    +
    + +
    -
    - -
    +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:1767
  • +
    +
    +
    +
    + +

    Class SizeableInternal

    +
    +

    Hierarchy

    +
    +
    +
    +
    + +
    +
    +

    Constructors

    +
    +
    +

    Properties

    +
    +
    +

    Accessors

    +
    +
    +

    Methods

    +
    +
    +

    Constructors

    +
    + +
    +
    +

    Properties

    +
    + +
    #private: any
    +
    +

    Accessors

    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    +

    Methods

    +
    + +
    +
    + +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/classes/SourceOfTruth.html b/docs/host/classes/SourceOfTruth.html index 9c72819e..f9755e35 100644 --- a/docs/host/classes/SourceOfTruth.html +++ b/docs/host/classes/SourceOfTruth.html @@ -1,4 +1,4 @@ -SourceOfTruth | titan-reactor-runtime/host
    +SourceOfTruth | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -25,7 +25,7 @@

    Hierarchy

    • SourceOfTruth
    +
  • Defined in build/api-types/host/index.d.ts:2594
  • @@ -65,14 +65,14 @@

    Parameters

    data: T

    Returns SourceOfTruth<T>

    +
  • Defined in build/api-types/host/index.d.ts:2597
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:2595
  • onUpdate: undefined | ((diff) => void)
    @@ -90,7 +90,7 @@

    Parameters

    diff: DeepPartial<T>

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2596
  • Methods

    @@ -100,7 +100,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:2600
    • @@ -113,7 +113,7 @@

      Parameters

      path: string[]

    Returns any

    +
  • Defined in build/api-types/host/index.d.ts:2598
    • @@ -126,7 +126,7 @@

      Parameters

      data: Partial<T>

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2599
  • Generated using TypeDoc

    diff --git a/docs/host/classes/SpriteEntities.html b/docs/host/classes/SpriteEntities.html index b8cd24fa..72768ee9 100644 --- a/docs/host/classes/SpriteEntities.html +++ b/docs/host/classes/SpriteEntities.html @@ -1,4 +1,4 @@ -SpriteEntities | titan-reactor-runtime/host
    +SpriteEntities | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • SpriteEntities
    +
  • Defined in build/api-types/host/index.d.ts:1700
  • @@ -58,19 +58,19 @@
    +
  • Defined in build/api-types/host/index.d.ts:1703
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1701
  • -
    group: Group
    +
  • Defined in build/api-types/host/index.d.ts:1702
  • Accessors

    @@ -80,7 +80,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1704
  • Methods

    @@ -90,7 +90,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1705
  • +
  • Defined in build/api-types/host/index.d.ts:1709
    • @@ -111,7 +111,7 @@

      Parameters

      spriteIndex: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1708
    • @@ -124,7 +124,7 @@

      Parameters

      spriteIndex: number

    Returns undefined | SpriteType

    +
  • Defined in build/api-types/host/index.d.ts:1706
    • @@ -139,7 +139,7 @@
      spriteIndex: spriteTypeId: number

    Returns SpriteType

    +
  • Defined in build/api-types/host/index.d.ts:1707
    • @@ -152,7 +152,7 @@

      Parameters

      spriteIndex: number

    Returns undefined | Unit

    +
  • Defined in build/api-types/host/index.d.ts:1710
    • @@ -167,7 +167,7 @@
      spriteIndex: unit: Unit

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1711
  • Generated using TypeDoc

    diff --git a/docs/host/classes/SpritesBufferView.html b/docs/host/classes/SpritesBufferView.html index 9d9e5d98..49945440 100644 --- a/docs/host/classes/SpritesBufferView.html +++ b/docs/host/classes/SpritesBufferView.html @@ -1,4 +1,4 @@ -SpritesBufferView | titan-reactor-runtime/host
    +SpritesBufferView | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -24,7 +24,7 @@

    Implements

    +
  • Defined in build/api-types/host/index.d.ts:1954
  • @@ -71,19 +71,19 @@

    Parameters

    bw: OpenBW

    Returns SpritesBufferView

    +
  • Defined in build/api-types/host/index.d.ts:1958
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1955
  • +
  • Defined in build/api-types/host/index.d.ts:1956
  • Accessors

    @@ -94,7 +94,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1962
  • +
  • Defined in build/api-types/host/index.d.ts:1969
  • +
  • Defined in build/api-types/host/index.d.ts:1968
  • +
  • Defined in build/api-types/host/index.d.ts:1963
  • +
  • Defined in build/api-types/host/index.d.ts:1959
  • +
  • Defined in build/api-types/host/index.d.ts:1966
  • +
  • Defined in build/api-types/host/index.d.ts:1967
  • +
  • Defined in build/api-types/host/index.d.ts:1961
  • +
  • Defined in build/api-types/host/index.d.ts:1960
  • +
  • Defined in build/api-types/host/index.d.ts:1964
  • +
  • Defined in build/api-types/host/index.d.ts:1965
  • Methods

    @@ -196,7 +196,7 @@

    Parameters

    address: number

    Returns SpritesBufferView

    +
  • Defined in build/api-types/host/index.d.ts:1957
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/MacroCondition.html b/docs/host/classes/SpritesBufferViewIterator.html similarity index 63% rename from docs/host/interfaces/MacroCondition.html rename to docs/host/classes/SpritesBufferViewIterator.html index fa3d5cfb..d26b9160 100644 --- a/docs/host/interfaces/MacroCondition.html +++ b/docs/host/classes/SpritesBufferViewIterator.html @@ -1,4 +1,4 @@ -MacroCondition | titan-reactor-runtime/host
    +SpritesBufferViewIterator | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    Interface MacroCondition<T>Internal

    -
    -

    Type Parameters

    -
    +
  • @titan-reactor-runtime/host
  • +
  • SpritesBufferViewIterator
  • +

    Class SpritesBufferViewIteratorInternal

    Hierarchy

      -
    • MacroCondition
    +

    Constructors

    +
    +

    Properties

    -
    +
    +

    Methods

    +
    -

    Properties

    -
    - -
    -
    - -
    -
    - -
    id: string
    +
    +

    Properties

    +
    + +
    #private: any
    -
    - -
    type: "condition"
    +
    +

    Methods

    +
    + +
    -
    - -
    value?: unknown
    +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:2089
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • Sunlight
    +
  • Defined in build/api-types/host/index.d.ts:1810
  • @@ -67,29 +67,29 @@
    mapWidth: mapHeight: number

    Returns Sunlight

    +
  • Defined in build/api-types/host/index.d.ts:1813
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1811
  • shadowIntensity: number
    +
  • Defined in build/api-types/host/index.d.ts:1812
  • Accessors

      -
    • get children(): (Object3D<Event> | DirectionalLight)[]
    • +
    • get children(): Object3D<Object3DEventMap>[]
    • -

      Returns (Object3D<Event> | DirectionalLight)[]

    +
  • Defined in build/api-types/host/index.d.ts:1814
    • @@ -102,7 +102,7 @@

      Parameters

      val: boolean

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1815
    • @@ -115,7 +115,7 @@

      Parameters

      value: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1816
  • set shadowQuality(quality): void
  • @@ -133,15 +133,15 @@

    Parameters

    quality: number
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1822
    • -
    • get target(): Object3D<Event>
    • +
    • get target(): Object3D<Object3DEventMap>
    • -

      Returns Object3D<Event>

    +
  • Defined in build/api-types/host/index.d.ts:1817
  • Methods

    @@ -151,7 +151,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1824
  • +
  • Defined in build/api-types/host/index.d.ts:1819
  • +
  • Defined in build/api-types/host/index.d.ts:1821
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1820
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1818
  • Generated using TypeDoc

    diff --git a/docs/host/classes/Surface.html b/docs/host/classes/Surface.html index 1d3b0cf2..a3bf6632 100644 --- a/docs/host/classes/Surface.html +++ b/docs/host/classes/Surface.html @@ -1,4 +1,4 @@ -Surface | titan-reactor-runtime/host
    +Surface | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    +
  • Defined in build/api-types/host/index.d.ts:2437
  • @@ -36,7 +36,6 @@

    Constructors

    Properties

    Accessors

    @@ -58,7 +57,7 @@

    Constructors

      - +
    • Parameters

      @@ -66,29 +65,22 @@

      Parameters

    • Optional canvas: HTMLCanvasElement
    • -
      Optional useContext: boolean
    • -
    • Optional styles: Partial<CSSStyleDeclaration>

    Returns Surface

    +
  • Defined in build/api-types/host/index.d.ts:2440
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:2438
  • canvas: HTMLCanvasElement
    -
    - -
    ctx?: CanvasRenderingContext2D
    +
  • Defined in build/api-types/host/index.d.ts:2439
  • Accessors

    @@ -98,7 +90,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:2442
  • +
  • Defined in build/api-types/host/index.d.ts:2446
  • +
  • Defined in build/api-types/host/index.d.ts:2445
  • +
  • Defined in build/api-types/host/index.d.ts:2444
  • +
  • Defined in build/api-types/host/index.d.ts:2447
  • +
  • Defined in build/api-types/host/index.d.ts:2443
  • Methods

    @@ -148,7 +140,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:2449
  • +
  • Defined in build/api-types/host/index.d.ts:2448
    • @@ -173,7 +165,7 @@
      height: Optional pixelRatio: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2441
  • Generated using TypeDoc

    diff --git a/docs/host/classes/Terrain.html b/docs/host/classes/Terrain.html index 45c59fa3..6189c57c 100644 --- a/docs/host/classes/Terrain.html +++ b/docs/host/classes/Terrain.html @@ -1,4 +1,4 @@ -Terrain | titan-reactor-runtime/host
    +Terrain | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    • Terrain
    +
  • Defined in build/api-types/host/index.d.ts:1834
  • @@ -170,14 +170,14 @@

    Returns voidReturns Terrain

    +
  • Defined in build/api-types/host/index.d.ts:1846
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:1835
  • animations: AnimationClip[]
    @@ -188,7 +188,7 @@

    Default Value

    []

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:204
  • castShadow: boolean
    @@ -199,13 +199,13 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:176
  • children: TerrainQuartile[]
    +
  • Defined in build/api-types/host/index.d.ts:1836
  • customDepthMaterial?: Material
    @@ -218,7 +218,7 @@

    Default Value

    undefined

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:220
  • customDistanceMaterial?: Material
    @@ -229,7 +229,7 @@

    Default Value

    undefined

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:226
  • frustumCulled: boolean
    @@ -241,12 +241,12 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:189
  • geomOptions: GeometryOptions
    +
  • Defined in build/api-types/host/index.d.ts:1845
  • getTerrainY: ((worldX, worldY) => number)
    @@ -266,7 +266,7 @@
    worldX: worldY: number

    Returns number

    +
  • Defined in build/api-types/host/index.d.ts:1844
  • id: number
    @@ -277,7 +277,7 @@

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, .

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:47
  • isGroup: true
    @@ -303,7 +303,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:40
  • layers: Layers
    @@ -316,7 +316,7 @@

    Default Value

    new THREE.Layers()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:164
  • matrix: Matrix4
    @@ -327,7 +327,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:129
  • matrixAutoUpdate: boolean
    @@ -339,7 +339,7 @@

    Default Value

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:143
  • matrixWorld: Matrix4
    @@ -352,7 +352,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:136
  • matrixWorldAutoUpdate: boolean
    @@ -364,7 +364,7 @@

    Default Value

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:150
  • matrixWorldNeedsUpdate: boolean
    @@ -375,7 +375,7 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:156
  • modelViewMatrix: Matrix4
    @@ -384,7 +384,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:118
  • name: string
    @@ -397,7 +397,7 @@

    Default Value

    ""

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:60
  • normalMatrix: Matrix3
    @@ -406,7 +406,7 @@

    Default Value

    new THREE.Matrix3()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:123
  • onAfterRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -429,11 +429,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -442,7 +442,7 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:257
  • onBeforeRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -465,11 +465,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -478,10 +478,10 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:238
  • -
    parent: null | Object3D<Event>
    +
    parent: null | Object3D<Object3DEventMap>

    Object's parent in the scene graph.

    @@ -491,7 +491,7 @@

    Default Value

    null

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:75
  • position: Vector3
    @@ -502,7 +502,7 @@

    Default Value

    new THREE.Vector3() - that is (0, 0,

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:95
  • quaternion: Quaternion
    @@ -513,7 +513,7 @@

    Default Value

    new THREE.Quaternion() - that is (0,

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:107
  • receiveShadow: boolean
    @@ -524,7 +524,7 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:182
  • renderOrder: number
    @@ -538,7 +538,7 @@

    Default Value

    0

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:198
  • rotation: Euler
    @@ -549,7 +549,7 @@

    Default Value

    new THREE.Euler() - that is (0, 0, 0

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:101
  • scale: Vector3
    @@ -560,7 +560,7 @@

    Default Value

    new THREE.Vector3( 1, 1, 1 )

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:113
  • type: string
    @@ -580,7 +580,7 @@

    Default Value

    Inherited from Group.up

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:84
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:89
  • userData: {
        quartileHeight: number;
        quartileWidth: number;
        tilesX: number;
        tilesY: number;
        update(delta) => void;
    }
    @@ -607,10 +607,10 @@

    Parameters

    delta: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1837
  • uuid: string
    @@ -621,7 +621,7 @@

    Remarks

    This gets automatically assigned and shouldn't be edited.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:53
  • visible: boolean
    @@ -632,7 +632,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:170
  • DEFAULT_MATRIX_AUTO_UPDATE: boolean
    @@ -643,7 +643,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:277
  • DEFAULT_MATRIX_WORLD_AUTO_UPDATE: boolean
    @@ -654,7 +654,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:283
  • DEFAULT_UP: Vector3
    @@ -666,7 +666,7 @@

    Default Value

    new THREE.Vector3( 0, 1, 0)

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:271
  • Accessors

    @@ -681,7 +681,7 @@

    Parameters

    intensity: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1848
    • @@ -694,7 +694,7 @@

      Parameters

      val: boolean

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1847
  • Methods

    @@ -708,7 +708,7 @@
    • -
      Rest ...object: Object3D<Event>[]
      +
      Rest ...object: Object3D<Object3DEventMap>[]

    Returns Terrain

    @@ -721,7 +721,7 @@

    See

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:419
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -743,7 +743,7 @@
      type:
  • -
    listener: EventListener<Event, T, Terrain>
    +
    listener: EventListener<Object3DEventMap[T], T, Terrain>

    The function that gets called when the event is fired.

  • @@ -751,7 +751,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:52
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, Terrain>
    +

    Returns void

    • @@ -769,7 +787,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:289
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:295
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:445
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:437
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:566
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:574
    • - +
    • Fire an event type.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends keyof Object3DEventMap

      Parameters

      • -
        event: Event
        +
        event: BaseEvent<T> & Object3DEventMap[T]

        The event that gets fired.

      @@ -886,11 +909,11 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:84
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching id.

      @@ -902,7 +925,7 @@
      id:

      Unique number of the object instance. Expects a Integer

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, ..., incrementing by one for each new object.

    @@ -910,11 +933,11 @@

    See

    id

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:453
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching name.

      @@ -926,17 +949,17 @@
      name:

      String to match to the children's Object3D.name property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that for most objects the name is an empty string by default

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:461
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -954,15 +977,15 @@
      value:

      value of the given property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:470
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -980,11 +1003,11 @@
      value:

      Value of the given property.

    -

    Returns Object3D<Event>[]

    +

    Returns Object3D<Object3DEventMap>[]

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:478
    • @@ -1004,7 +1027,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:502
    • @@ -1024,7 +1047,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:484
    • @@ -1044,7 +1067,7 @@

      Returns Quaterni

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:490
    • @@ -1064,7 +1087,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:496
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1086,7 +1109,7 @@
      type:
  • -
    listener: EventListener<Event, T, Terrain>
    +
    listener: EventListener<Object3DEventMap[T], T, Terrain>

    The function that gets called when the event is fired.

  • @@ -1094,7 +1117,25 @@

    Returns boolean +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:63
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, Terrain>
    +

    Returns boolean

    • @@ -1114,7 +1155,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:388
    • @@ -1136,7 +1177,7 @@

      Remarks

      This method does not support objects having non-uniformly-sca

      +
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:401
  • Rotates the object to face a point in world space.

    @@ -1165,7 +1206,7 @@

    Remarks

    This method does not support objects having non-uniformly-sca

  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:409
    • @@ -1180,7 +1221,7 @@

      Parameters

      raycaster: Raycaster
    • -
      intersects: Intersection<Object3D<Event>>[]
      +
      intersects: Intersection<Object3D<Object3DEventMap>>[]

    Returns void

    @@ -1192,7 +1233,7 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:512
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:427
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1236,7 +1277,7 @@
      type:
  • -
    listener: EventListener<Event, T, Terrain>
    +
    listener: EventListener<Object3DEventMap[T], T, Terrain>

    The listener function that gets removed.

  • @@ -1244,7 +1285,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:74
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, Terrain>
    +

    Returns void

  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:432
    • @@ -1283,7 +1342,7 @@

      Remarks

      The axis is assumed to be normalized.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:329
    • @@ -1310,7 +1369,7 @@

      Remarks

      The axis is assumed to be normalized

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:338
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:344
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:350
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:356
    • @@ -1386,7 +1445,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:302
    • @@ -1406,7 +1465,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:308
    • @@ -1428,7 +1487,7 @@

      Remarks

      Note that this assumes that the upper 3x3 of m is a pure rota

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:315
    • @@ -1448,7 +1507,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:321
    • @@ -1463,7 +1522,7 @@
      highDefinition: anisotropy: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1849
    • @@ -1492,7 +1551,7 @@

      Returns any

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:560
    • @@ -1519,7 +1578,7 @@

      Remarks

      The axis is assumed to be normalized.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:364
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:370
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:376
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:382
    • @@ -1604,7 +1663,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1612,7 +1671,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:519
    • @@ -1637,7 +1696,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1645,7 +1704,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:534
    • @@ -1670,7 +1729,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1678,7 +1737,7 @@

    Remarks

    Descendants of invisible objects are not traversed.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:527
    • @@ -1690,7 +1749,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:539
    • @@ -1712,7 +1771,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:547
    • @@ -1737,7 +1796,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:554
    • @@ -1757,7 +1816,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:394
  • Generated using TypeDoc

    diff --git a/docs/host/classes/ThingyBufferView.html b/docs/host/classes/ThingyBufferView.html index 9e781376..0466a784 100644 --- a/docs/host/classes/ThingyBufferView.html +++ b/docs/host/classes/ThingyBufferView.html @@ -1,4 +1,4 @@ -ThingyBufferView | titan-reactor-runtime/host
    +ThingyBufferView | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -26,7 +26,7 @@

    Implements

    +
  • Defined in build/api-types/host/index.d.ts:599
  • @@ -42,18 +42,17 @@

    Properties

    _addr8 _address _bw -_sprite?

    Accessors

    Methods

    -

    Constructors

    @@ -69,34 +68,29 @@

    Parameters

    bw: OpenBW

    Returns ThingyBufferView

    +
  • Defined in build/api-types/host/index.d.ts:606
  • Properties

    _addr32: number
    +
  • Defined in build/api-types/host/index.d.ts:601
  • _addr8: number
    +
  • Defined in build/api-types/host/index.d.ts:602
  • _address: number
    +
  • Defined in build/api-types/host/index.d.ts:600
  • _bw: OpenBW
    -
    - -
    +
  • Defined in build/api-types/host/index.d.ts:603
  • Accessors

    @@ -106,7 +100,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:604
  • +
  • Defined in build/api-types/host/index.d.ts:607
  • +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:608
  • Methods

    -
    - -
      @@ -153,7 +143,7 @@

      Parameters

      address: number

    Returns ThingyBufferView

    +
  • Defined in build/api-types/host/index.d.ts:605
  • Generated using TypeDoc

    diff --git a/docs/host/classes/TypeEmitter.html b/docs/host/classes/TypeEmitter.html index 9ed12985..09149b42 100644 --- a/docs/host/classes/TypeEmitter.html +++ b/docs/host/classes/TypeEmitter.html @@ -1,4 +1,4 @@ -TypeEmitter | titan-reactor-runtime/host
    +TypeEmitter | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -25,7 +25,7 @@

    Hierarchy

    • TypeEmitter
    +
  • Defined in build/api-types/host/index.d.ts:2331
  • @@ -65,7 +65,7 @@

    Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:2332
  • Methods

    @@ -75,11 +75,11 @@
    +
  • Defined in build/api-types/host/index.d.ts:2336
    • - +
    • Parameters

      @@ -88,9 +88,9 @@

      Parameters

      s: keyof T
    • Optional v: T[keyof T]
    -

    Returns undefined | false

      @@ -107,25 +107,25 @@

      Parameters

    • s: K
    • -
      listener: ((v) => void)
      +
      listener: ((v) => any)
        • -
        • (v): void
        • +
        • (v): any
        • Parameters

          • v: T[K]
          -

          Returns void

    +

    Returns any

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2334
    • - +
    • Type Parameters

      @@ -138,18 +138,20 @@

      Parameters

    • s: K
    • -
      listener: ((v) => void)
      +
      listener: ((v) => any)
        • -
        • (v): void
        • +
        • (v): any
        • Parameters

          • v: T[K]
          -

          Returns void

    +

    Returns any

    +
  • +
    Optional priority: number
  • Returns (() => void)

    • @@ -158,7 +160,7 @@

      Returns (

      Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2333
  • Generated using TypeDoc

    diff --git a/docs/host/classes/TypeEmitterProxy.html b/docs/host/classes/TypeEmitterProxy.html index c18fac38..e846a316 100644 --- a/docs/host/classes/TypeEmitterProxy.html +++ b/docs/host/classes/TypeEmitterProxy.html @@ -1,4 +1,4 @@ -TypeEmitterProxy | titan-reactor-runtime/host
    +TypeEmitterProxy | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    +

    Class TypeEmitterProxy<T>

    Type Parameters

      @@ -25,7 +25,7 @@

      Hierarchy

      • TypeEmitterProxy
    +
  • Defined in build/api-types/host/index.d.ts:2853
  • @@ -63,14 +63,14 @@

    Parameters

    host: TypeEmitter<T>

    Returns TypeEmitterProxy<T>

    +
  • Defined in build/api-types/host/index.d.ts:2855
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:2854
  • Methods

    @@ -80,11 +80,11 @@
    +
  • Defined in build/api-types/host/index.d.ts:2857
    • - +
    • Type Parameters

      @@ -97,18 +97,20 @@

      Parameters

    • s: K
    • -
      listener: ((v) => void)
      +
      listener: ((v) => any)
        • -
        • (v): void
        • +
        • (v): any
        • Parameters

          • v: T[K]
          -

          Returns void

    +

    Returns any

    +
  • +
    Optional priority: number
  • Returns (() => void)

    • @@ -117,7 +119,7 @@

      Returns (

      Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2856
  • Generated using TypeDoc

    diff --git a/docs/host/classes/UnitDAT.html b/docs/host/classes/UnitDAT.html index 94c1ba50..15132e25 100644 --- a/docs/host/classes/UnitDAT.html +++ b/docs/host/classes/UnitDAT.html @@ -1,4 +1,4 @@ -UnitDAT | titan-reactor-runtime/host
    +UnitDAT | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -30,8 +30,8 @@

    Implemented by

    +
  • Defined in build/api-types/host/index.d.ts:1062
  • +
  • Defined in build/api-types/host/index.d.ts:1126
  • @@ -144,7 +144,7 @@
    data: Returns UnitDAT
    +
  • Defined in build/api-types/host/index.d.ts:1165
  • Properties

    @@ -152,474 +152,474 @@
    +
  • Defined in build/api-types/host/index.d.ts:1100
  • addonVertical: number
    +
  • Defined in build/api-types/host/index.d.ts:1101
  • airWeapon: number
    +
  • Defined in build/api-types/host/index.d.ts:1083
  • animatedIdle: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1138
  • armor: number
    +
  • Defined in build/api-types/host/index.d.ts:1087
  • armorUpgrade: number
    +
  • Defined in build/api-types/host/index.d.ts:1085
  • battleReactions: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1157
  • buildScore: number
    +
  • Defined in build/api-types/host/index.d.ts:1116
  • buildTime: number
    +
  • Defined in build/api-types/host/index.d.ts:1109
  • burrowable: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1150
  • cloakable: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1139
  • constructionImage: number
    +
  • Defined in build/api-types/host/index.d.ts:1076
  • destroyScore: number
    +
  • Defined in build/api-types/host/index.d.ts:1117
  • direction: number
    +
  • Defined in build/api-types/host/index.d.ts:1077
  • elevationLevel: number
    +
  • Defined in build/api-types/host/index.d.ts:1081
  • flingy: any
    +
  • Defined in build/api-types/host/index.d.ts:1072
  • fullAutoAttack: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1158
  • groundWeapon: number
    +
  • Defined in build/api-types/host/index.d.ts:1082
  • hp: number
    +
  • Defined in build/api-types/host/index.d.ts:1080
  • ignoreSupplyCheck: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1154
  • index: number
    +
  • Defined in build/api-types/host/index.d.ts:1071
  • infestation: number[]
    +
  • Defined in build/api-types/host/index.d.ts:1075
  • invincible: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1159
  • isAddon: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1131
  • isBuilding: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1130
  • isDetector: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1145
  • isFlyer: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1132
  • isFlyingBuilding: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1135
  • isHero: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1136
  • isMechanical: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1160
  • isOrganic: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1146
  • isProtoss: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1164
  • isResourceContainer: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1143
  • isResourceDepot: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1142
  • isResourceMiner: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1133
  • isRobotic: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1144
  • isSpellcaster: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1151
  • isTerran: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1163
  • isTurret: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1134
  • isZerg: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1162
  • mineralCost: number
    +
  • Defined in build/api-types/host/index.d.ts:1107
  • name: string
    +
  • Defined in build/api-types/host/index.d.ts:1129
  • permanentCloak: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1152
  • pickupItem: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1153
  • pissSound: number[]
    +
  • Defined in build/api-types/host/index.d.ts:1091
  • pissSoundEnd: number
    +
  • Defined in build/api-types/host/index.d.ts:1097
  • pissSoundStart: number
    +
  • Defined in build/api-types/host/index.d.ts:1096
  • placementHeight: number
    +
  • Defined in build/api-types/host/index.d.ts:1099
  • placementWidth: number
    +
  • Defined in build/api-types/host/index.d.ts:1098
  • portrait: number
    +
  • Defined in build/api-types/host/index.d.ts:1106
  • producesUnits: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1161
  • readySound: number
    +
  • Defined in build/api-types/host/index.d.ts:1088
  • regenerates: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1137
  • requirements: number
    +
  • Defined in build/api-types/host/index.d.ts:1110
  • requiresCreep: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1147
  • requiresPsi: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1149
  • shields: number
    +
  • Defined in build/api-types/host/index.d.ts:1079
  • shieldsEnabled: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1078
  • sightRange: number
    +
  • Defined in build/api-types/host/index.d.ts:1084
  • singleEntity: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1141
  • spaceProvided: number
    +
  • Defined in build/api-types/host/index.d.ts:1115
  • spaceRequired: number
    +
  • Defined in build/api-types/host/index.d.ts:1114
  • specialAbilityFlags: number
    +
  • Defined in build/api-types/host/index.d.ts:1127
  • starEditAvailabilityFlags: number
    +
  • Defined in build/api-types/host/index.d.ts:1118
  • starEditGroupFlags: number
    +
  • Defined in build/api-types/host/index.d.ts:1128
  • subUnit1: number
    +
  • Defined in build/api-types/host/index.d.ts:1073
  • subUnit2: number
    +
  • Defined in build/api-types/host/index.d.ts:1074
  • supplyProvided: number
    +
  • Defined in build/api-types/host/index.d.ts:1112
  • supplyRequired: number
    +
  • Defined in build/api-types/host/index.d.ts:1113
  • twoUnitsInOneEgg: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1140
  • unitSize: number
    +
  • Defined in build/api-types/host/index.d.ts:1086
  • unitSizeDown: number
    +
  • Defined in build/api-types/host/index.d.ts:1105
  • unitSizeLeft: number
    +
  • Defined in build/api-types/host/index.d.ts:1102
  • unitSizeRight: number
    +
  • Defined in build/api-types/host/index.d.ts:1104
  • unitSizeUp: number
    +
  • Defined in build/api-types/host/index.d.ts:1103
  • unusedFlag: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1148
  • useLargeOverlays: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1156
  • useMediumOverlays: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1155
  • vespeneCost: number
    +
  • Defined in build/api-types/host/index.d.ts:1108
  • whatSound: number[]
    +
  • Defined in build/api-types/host/index.d.ts:1089
  • whatSoundEnd: number
    +
  • Defined in build/api-types/host/index.d.ts:1093
  • whatSoundStart: number
    +
  • Defined in build/api-types/host/index.d.ts:1092
  • yesSound: number[]
    +
  • Defined in build/api-types/host/index.d.ts:1090
  • yesSoundEnd: number
    +
  • Defined in build/api-types/host/index.d.ts:1095
  • yesSoundStart: number
    +
  • Defined in build/api-types/host/index.d.ts:1094
  • Generated using TypeDoc

    diff --git a/docs/host/classes/UnitEntities.html b/docs/host/classes/UnitEntities.html index 7a42c3cf..cb993b43 100644 --- a/docs/host/classes/UnitEntities.html +++ b/docs/host/classes/UnitEntities.html @@ -1,4 +1,4 @@ -UnitEntities | titan-reactor-runtime/host
    +UnitEntities | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • UnitEntities
    +
  • Defined in build/api-types/host/index.d.ts:1728
  • @@ -59,12 +59,12 @@

    Properties

    freeUnits: Unit[]
    +
  • Defined in build/api-types/host/index.d.ts:1729
  • units: IterableMap<number, Unit>
    +
  • Defined in build/api-types/host/index.d.ts:1730
  • Methods

    @@ -74,7 +74,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:1733
  • +
  • Defined in build/api-types/host/index.d.ts:1737
  • +
  • Defined in build/api-types/host/index.d.ts:1732
    • @@ -103,7 +103,7 @@

      Parameters

      unit: Unit

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1731
    • @@ -116,7 +116,7 @@

      Parameters

      unit: Unit

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1736
    • @@ -129,20 +129,20 @@

      Parameters

      unitId: number

    Returns undefined | Unit

    +
  • Defined in build/api-types/host/index.d.ts:1734
  • Returns Unit

    +
  • Defined in build/api-types/host/index.d.ts:1735
  • Generated using TypeDoc

    diff --git a/docs/host/classes/UnitsBufferView.html b/docs/host/classes/UnitsBufferView.html index 6a5b7b77..bf76a340 100644 --- a/docs/host/classes/UnitsBufferView.html +++ b/docs/host/classes/UnitsBufferView.html @@ -1,4 +1,4 @@ -UnitsBufferView | titan-reactor-runtime/host
    +UnitsBufferView | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Constructors

    @@ -106,50 +111,44 @@
    bw: Returns UnitsBufferView
    +
  • Defined in build/api-types/host/index.d.ts:606
  • Properties

    #private: any
    +
  • Defined in build/api-types/host/index.d.ts:543
  • _addr32: number
    +
  • Defined in build/api-types/host/index.d.ts:601
  • _addr8: number
    +
  • Defined in build/api-types/host/index.d.ts:602
  • _address: number
    +
  • Defined in build/api-types/host/index.d.ts:600
  • _bw: OpenBW
    -
    - -
    +
  • Defined in build/api-types/host/index.d.ts:603
  • resourceAmount: 0 = 0
    +
  • Defined in build/api-types/host/index.d.ts:545
  • Accessors

    @@ -160,15 +159,16 @@
    +
  • Defined in build/api-types/host/index.d.ts:604
  • +
  • Defined in build/api-types/host/index.d.ts:550
  • +
  • Defined in build/api-types/host/index.d.ts:568
  • +
    + +
    +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:586
  • +
  • Defined in build/api-types/host/index.d.ts:563
  • +
  • Defined in build/api-types/host/index.d.ts:564
  • +
  • Defined in build/api-types/host/index.d.ts:549
  • +
  • Defined in build/api-types/host/index.d.ts:607
  • +
  • Defined in build/api-types/host/index.d.ts:546
  • +
  • Defined in build/api-types/host/index.d.ts:578
  • +
  • Defined in build/api-types/host/index.d.ts:562
  • +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:579
  • +
  • Defined in build/api-types/host/index.d.ts:580
  • +
  • Defined in build/api-types/host/index.d.ts:585
  • +
  • Defined in build/api-types/host/index.d.ts:581
  • +
  • Defined in build/api-types/host/index.d.ts:582
  • +
  • Defined in build/api-types/host/index.d.ts:583
  • +
  • Defined in build/api-types/host/index.d.ts:584
  • +
  • Defined in build/api-types/host/index.d.ts:548
  • +
  • Defined in build/api-types/host/index.d.ts:552
  • +
  • Defined in build/api-types/host/index.d.ts:555
  • +
  • Defined in build/api-types/host/index.d.ts:553
  • +
  • Defined in build/api-types/host/index.d.ts:554
  • +
  • Defined in build/api-types/host/index.d.ts:547
  • +
  • Defined in build/api-types/host/index.d.ts:560
  • +
  • Defined in build/api-types/host/index.d.ts:565
  • +
  • Defined in build/api-types/host/index.d.ts:556
  • +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:609
  • +
  • Defined in build/api-types/host/index.d.ts:608
  • +
  • Defined in build/api-types/host/index.d.ts:567
  • +
  • Defined in build/api-types/host/index.d.ts:559
  • +
  • Defined in build/api-types/host/index.d.ts:561
  • +
  • Defined in build/api-types/host/index.d.ts:558
  • +
  • Defined in build/api-types/host/index.d.ts:557
  • +
  • Defined in build/api-types/host/index.d.ts:587
  • +
  • Defined in build/api-types/host/index.d.ts:588
  • Methods

    @@ -497,7 +537,7 @@

    Parameters

    Optional bufferView: UnitsBufferView

    Returns UnitsBufferView

    +
  • Defined in build/api-types/host/index.d.ts:571
    • @@ -509,9 +549,8 @@

      Parameters

    • dest: Partial<Unit>

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:570
  • +
  • Defined in build/api-types/host/index.d.ts:605
  • +
    + +
    +
    + +

    Generated using TypeDoc

    diff --git a/docs/host/interfaces/MacroActionConfigurationError.html b/docs/host/classes/UnitsBufferViewIterator.html similarity index 67% rename from docs/host/interfaces/MacroActionConfigurationError.html rename to docs/host/classes/UnitsBufferViewIterator.html index 9e601a59..7143fee9 100644 --- a/docs/host/interfaces/MacroActionConfigurationError.html +++ b/docs/host/classes/UnitsBufferViewIterator.html @@ -1,4 +1,4 @@ -MacroActionConfigurationError | titan-reactor-runtime/host
    +UnitsBufferViewIterator | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    Interface MacroActionConfigurationErrorInternal

    +
  • @titan-reactor-runtime/host
  • +
  • UnitsBufferViewIterator
  • +

    Class UnitsBufferViewIteratorInternal

    Hierarchy

      -
    • MacroActionConfigurationError
    +

    Constructors

    +
    +

    Properties

    -
    +
    +

    Methods

    +
    -

    Properties

    -
    - -
    critical?: boolean
    +
    +

    Properties

    +
    + +
    #private: any
    -
    - -
    +
    +

    Methods

    +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:533
  • -
    -
    -
    -
    - -

    Enumeration ConditionComparatorInternal

    -
    -
    -
    - -
    -
    -

    Enumeration Members

    -
    - -
    Equals: "Equals"
    -
    - -
    Execute: "Execute"
    -
    - -
    GreaterThan: "GreaterThan"
    -
    - -
    GreaterThanOrEquals: "GreaterThanOrEquals"
    -
    - -
    LessThan: "LessThan"
    -
    - -
    LessThanOrEquals: "LessThanOrEquals"
    -
    - -
    NotEquals: "NotEquals"
    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/host/enums/DamageType.html b/docs/host/enums/DamageType.html index 2aaa85ef..bfbc41f8 100644 --- a/docs/host/enums/DamageType.html +++ b/docs/host/enums/DamageType.html @@ -1,4 +1,4 @@ -DamageType | titan-reactor-runtime/host
    +DamageType | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    +
  • Defined in build/api-types/host/index.d.ts:2934
  • @@ -36,27 +36,27 @@

    Enumeration Members

    Concussive: 2
    +
  • Defined in build/api-types/host/index.d.ts:2937
  • Explosive: 1
    +
  • Defined in build/api-types/host/index.d.ts:2936
  • IgnoreArmor: 4
    +
  • Defined in build/api-types/host/index.d.ts:2939
  • Independent: 0
    +
  • Defined in build/api-types/host/index.d.ts:2935
  • Normal: 3
    +
  • Defined in build/api-types/host/index.d.ts:2938
  • Generated using TypeDoc

    diff --git a/docs/host/enums/Explosion.html b/docs/host/enums/Explosion.html index d44c4f0d..ff803add 100644 --- a/docs/host/enums/Explosion.html +++ b/docs/host/enums/Explosion.html @@ -1,4 +1,4 @@ -Explosion | titan-reactor-runtime/host
    +Explosion | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    +
  • Defined in build/api-types/host/index.d.ts:2904
  • @@ -56,127 +56,127 @@

    Enumeration Members

    Broodlings: 7
    +
  • Defined in build/api-types/host/index.d.ts:2912
  • Consume: 14
    +
  • Defined in build/api-types/host/index.d.ts:2919
  • CorrosiveAcid: 18
    +
  • Defined in build/api-types/host/index.d.ts:2923
  • DarkSwarm: 13
    +
  • Defined in build/api-types/host/index.d.ts:2918
  • DisruptionWeb: 17
    +
  • Defined in build/api-types/host/index.d.ts:2922
  • EmpShockwave: 8
    +
  • Defined in build/api-types/host/index.d.ts:2913
  • Ensnare: 10
    +
  • Defined in build/api-types/host/index.d.ts:2915
  • Feedback: 20
    +
  • Defined in build/api-types/host/index.d.ts:2925
  • Irradiate: 9
    +
  • Defined in build/api-types/host/index.d.ts:2914
  • Lockdown: 4
    +
  • Defined in build/api-types/host/index.d.ts:2909
  • Maelstrom: 22
    +
  • Defined in build/api-types/host/index.d.ts:2927
  • MindControl: 19
    +
  • Defined in build/api-types/host/index.d.ts:2924
  • None: 0
    +
  • Defined in build/api-types/host/index.d.ts:2905
  • Normal: 1
    +
  • Defined in build/api-types/host/index.d.ts:2906
  • NuclearMissile: 5
    +
  • Defined in build/api-types/host/index.d.ts:2910
  • OpticalFlare: 21
    +
  • Defined in build/api-types/host/index.d.ts:2926
  • Parasite: 6
    +
  • Defined in build/api-types/host/index.d.ts:2911
  • Plague: 11
    +
  • Defined in build/api-types/host/index.d.ts:2916
  • Restoration: 16
    +
  • Defined in build/api-types/host/index.d.ts:2921
  • SplashAir: 24
    +
  • Defined in build/api-types/host/index.d.ts:2929
  • Splash_Enemy: 3
    +
  • Defined in build/api-types/host/index.d.ts:2908
  • Splash_Radial: 2
    +
  • Defined in build/api-types/host/index.d.ts:2907
  • StasisField: 12
    +
  • Defined in build/api-types/host/index.d.ts:2917
  • Unknown: 23
    +
  • Defined in build/api-types/host/index.d.ts:2928
  • YamatoGun: 15
    +
  • Defined in build/api-types/host/index.d.ts:2920
  • Generated using TypeDoc

    diff --git a/docs/host/enums/MacroActionConfigurationErrorType.html b/docs/host/enums/MacroActionConfigurationErrorType.html deleted file mode 100644 index 2241b11e..00000000 --- a/docs/host/enums/MacroActionConfigurationErrorType.html +++ /dev/null @@ -1,139 +0,0 @@ -MacroActionConfigurationErrorType | titan-reactor-runtime/host
    -
    - -
    -
    -
    -
    - -

    Enumeration MacroActionConfigurationErrorTypeInternal

    -
    -
    -
    - -
    -
    -

    Enumeration Members

    -
    - -
    InvalidAction: "InvalidAction"
    -
    - -
    InvalidCondition: "InvalidCondition"
    -
    - -
    InvalidField: "InvalidField"
    -
    - -
    InvalidFieldValue: "InvalidFieldValue"
    -
    - -
    InvalidInstruction: "InvalidInstruction"
    -
    - -
    InvalidMacro: "InvalidMacro"
    -
    - -
    InvalidPlugin: "InvalidPlugin"
    -
    - -
    MissingField: "MissingField"
    -
    - -
    MissingPlugin: "MissingPlugin"
    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/host/enums/MacroActionSequence.html b/docs/host/enums/MacroActionSequence.html deleted file mode 100644 index b3fc7a7c..00000000 --- a/docs/host/enums/MacroActionSequence.html +++ /dev/null @@ -1,97 +0,0 @@ -MacroActionSequence | titan-reactor-runtime/host
    -
    - -
    -
    -
    -
    - -

    Enumeration MacroActionSequenceInternal

    -
    -
    -
    - -
    -
    -

    Enumeration Members

    -
    -
    -

    Enumeration Members

    -
    - -
    AllSync: "AllSync"
    -
    - -
    SingleAlternate: "SingleAlternate"
    -
    - -
    SingleRandom: "SingleRandom"
    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/host/enums/Operator.html b/docs/host/enums/Operator.html index 69845c2a..2b041ac8 100644 --- a/docs/host/enums/Operator.html +++ b/docs/host/enums/Operator.html @@ -1,4 +1,4 @@ -Operator | titan-reactor-runtime/host
    +Operator | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    +
  • Defined in build/api-types/host/index.d.ts:2575
  • @@ -41,52 +41,52 @@

    Enumeration Members

    Decrease: "Decrease"
    +
  • Defined in build/api-types/host/index.d.ts:2580
  • DecreaseCycle: "DecreaseCycle"
    +
  • Defined in build/api-types/host/index.d.ts:2582
  • Execute: "Execute"
    +
  • Defined in build/api-types/host/index.d.ts:2585
  • Increase: "Increase"
    +
  • Defined in build/api-types/host/index.d.ts:2579
  • IncreaseCycle: "IncreaseCycle"
    +
  • Defined in build/api-types/host/index.d.ts:2581
  • Max: "Max"
    +
  • Defined in build/api-types/host/index.d.ts:2584
  • Min: "Min"
    +
  • Defined in build/api-types/host/index.d.ts:2583
  • Set: "Set"
    +
  • Defined in build/api-types/host/index.d.ts:2577
  • SetToDefault: "SetToDefault"
    +
  • Defined in build/api-types/host/index.d.ts:2576
  • Toggle: "Toggle"
    +
  • Defined in build/api-types/host/index.d.ts:2578
  • Generated using TypeDoc

    diff --git a/docs/host/enums/TriggerType.html b/docs/host/enums/TriggerType.html deleted file mode 100644 index 6bdf2e9f..00000000 --- a/docs/host/enums/TriggerType.html +++ /dev/null @@ -1,97 +0,0 @@ -TriggerType | titan-reactor-runtime/host
    -
    - -
    -
    -
    -
    - -

    Enumeration TriggerTypeInternal

    -
    -
    -
    - -
    -
    -

    Enumeration Members

    -
    -
    -

    Enumeration Members

    -
    - -
    Hotkey: "Hotkey"
    -
    - -
    None: "None"
    -
    - -
    WorldEvent: "WorldEvent"
    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/host/enums/UnitSelectionStatus.html b/docs/host/enums/UnitSelectionStatus.html index 64e499e0..19907656 100644 --- a/docs/host/enums/UnitSelectionStatus.html +++ b/docs/host/enums/UnitSelectionStatus.html @@ -1,4 +1,4 @@ -UnitSelectionStatus | titan-reactor-runtime/host
    +UnitSelectionStatus | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    +
  • Defined in build/api-types/host/index.d.ts:2642
  • @@ -34,17 +34,17 @@

    Enumeration Members

    Dragging: 1
    +
  • Defined in build/api-types/host/index.d.ts:2644
  • Hovering: 2
    +
  • Defined in build/api-types/host/index.d.ts:2645
  • None: 0
    +
  • Defined in build/api-types/host/index.d.ts:2643
  • Generated using TypeDoc

    diff --git a/docs/host/enums/UnitTileScale.html b/docs/host/enums/UnitTileScale.html index 9a3417c8..2d94724f 100644 --- a/docs/host/enums/UnitTileScale.html +++ b/docs/host/enums/UnitTileScale.html @@ -1,4 +1,4 @@ -UnitTileScale | titan-reactor-runtime/host
    +UnitTileScale | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/enums/orders.html b/docs/host/enums/orders.html deleted file mode 100644 index a3fdffd6..00000000 --- a/docs/host/enums/orders.html +++ /dev/null @@ -1,1406 +0,0 @@ -orders | titan-reactor-runtime/host
    -
    - -
    -
    -
    -
    - -

    Enumeration ordersInternal

    -
    -
    -
    - -
    -
    -

    Enumeration Members

    -
    AIPatrol -CTFCOP2 -CTFCOPInit -CTFCOPStarted -InitializePsiProvider -archonWarp -atkMoveEp -attack1 -attack2 -attackFixedRange -attackMove -attackTile -attackUnit -buildAddOn -buildNydusExit -buildingLand -buildingLiftOff -bunkerGaurd -burrowed -burrowing -carrier -carrierAttack -carrierFight -carrierHoldPosition -carrierIgnore2 -carrierMoveToAttack -carrierStop -castConsume -castDarkSwarm -castDefensiveMatrix -castDisruptionWeb -castEmpShockwave -castEnsnare -castFeedback -castHallucination -castInfestation -castIrradiate -castLockdown -castMaelstrom -castMindControl -castNuclearStrike -castOpticalFlare -castParasite -castPlague -castPsionicStorm -castRecall -castRestoration -castScannerSweep -castSpawnBroodlings -castStasisField -cloak -cloakNearbyUnits -closeDoor -completingArchonSummon -computerAI -computerReturn -constructingBuilding -createProtossBuilding -critter -darkArchonMeld -decloak -die -disableDoodad -droneBuild -droneLand -droneLiftOff -droneStartBuild -enableDoodad -enterNydusCanal -enterTransport -fatal -fireYamatoGun -follow -gaurd -guardPost -guardianAspect -hallucination2 -harrassMove -harvest1 -harvest2 -harvest3 -harvest4 -harvestGas -hiddenGun -hideTrap -holdPosition -hover -incompleteBuilding -incompleteMorphing -incompleteWarping -infestedCommandCenter -infestingCommandCenter -initCreepGrowth -initializeArbiter -interceptorAttack -interceptorReturn -interrupted -junkYardDog -larva -liftingOff -medic -medicHeal -medicHealMove -medicHealToIdle -medicHoldPosition -miningMinerals -move -moveToFireYamatoGun -moveToGas -moveToInfest -moveToMinerals -moveToRepair -moveUnload -neutral -none -nothing -nukeLaunch -nukePaint -nukeTrack -nukeTrain -nukeUnit -nukeWait -openDoor -patrol -pickup4 -pickupBunker -pickupIdle -pickupTransport -placeAddOn -placeBuilding -placeProtossBuilding -placeSpiderMine -playerGaurd -powerupIdle -queenHoldPosition -rallyPointTile -rallyPointUnit -reaver -reaverAttack -reaverCarrierMove -reaverFight -reaverHoldPosition -reaverMoveToAttack -rechargeShieldsBattery -rechargeShieldsUnit -repair -rescuePassive -researchTech -resetCollision -resetHarvestCollision -returnGas -returnMinerals -revealTrap -rightClickAction -scanner -scarabAttack -scarabSelfDestructing -shieldBattery -sieging -spawningLarva -spreadCreep -stayInRange -stop -stopReaver -stoppingCreepGrowth -suicideHoldPosition -suicideTile -suicideUnit -teleport -towerAttack -towerGaurd -train -trainFighter -turretAttack -turretGaurd -unburrowing -unload -unsieging -unused24 -unusedNothing -unusedPowerup -upgrade -vultureMine -waitForGas -waitForMinerals -warpIn -watchTarget -zergBirth -zergBuildingMorph -zergUnitMorph -
    -
    -

    Enumeration Members

    -
    - -
    AIPatrol: 159
    -
    - -
    CTFCOP2: 155
    -
    - -
    CTFCOPInit: 153
    -
    - -
    CTFCOPStarted: 154
    -
    - -
    InitializePsiProvider: 164
    -
    - -
    archonWarp: 105
    -
    - -
    atkMoveEp: 157
    -
    - -
    attack1: 8
    -
    - -
    attack2: 9
    -
    - -
    attackFixedRange: 11
    -
    - -
    attackMove: 14
    -
    - -
    attackTile: 12
    -
    - -
    attackUnit: 10
    -
    - -
    buildAddOn: 37
    -
    - -
    buildNydusExit: 46
    -
    - -
    buildingLand: 71
    -
    - -
    buildingLiftOff: 72
    -
    - -
    bunkerGaurd: 5
    -
    - -
    burrowed: 117
    -
    - -
    burrowing: 116
    -
    - -
    carrier: 50
    -
    - -
    carrierAttack: 53
    -
    - -
    carrierFight: 56
    -
    - -
    carrierHoldPosition: 57
    -
    - -
    carrierIgnore2: 55
    -
    - -
    carrierMoveToAttack: 54
    -
    - -
    carrierStop: 52
    -
    - -
    castConsume: 145
    -
    - -
    castDarkSwarm: 119
    -
    - -
    castDefensiveMatrix: 141
    -
    - -
    castDisruptionWeb: 181
    -
    - -
    castEmpShockwave: 122
    -
    - -
    castEnsnare: 146
    -
    - -
    castFeedback: 184
    -
    - -
    castHallucination: 148
    -
    - -
    castInfestation: 27
    -
    - -
    castIrradiate: 143
    -
    - -
    castLockdown: 115
    -
    - -
    castMaelstrom: 186
    -
    - -
    castMindControl: 182
    -
    - -
    castNuclearStrike: 128
    -
    - -
    castOpticalFlare: 185
    -
    - -
    castParasite: 120
    -
    - -
    castPlague: 144
    -
    - -
    castPsionicStorm: 142
    -
    - -
    castRecall: 137
    -
    - -
    castRestoration: 180
    -
    - -
    castScannerSweep: 139
    -
    - -
    castSpawnBroodlings: 121
    -
    - -
    castStasisField: 147
    -
    - -
    cloak: 109
    -
    - -
    cloakNearbyUnits: 131
    -
    - -
    closeDoor: 169
    -
    - -
    completingArchonSummon: 106
    -
    - -
    computerAI: 156
    -
    - -
    computerReturn: 163
    -
    - -
    constructingBuilding: 33
    -
    - -
    createProtossBuilding: 32
    -
    - -
    critter: 166
    -
    - -
    darkArchonMeld: 183
    -
    - -
    decloak: 110
    -
    - -
    die: 0
    -
    - -
    disableDoodad: 173
    -
    - -
    droneBuild: 26
    -
    - -
    droneLand: 70
    -
    - -
    droneLiftOff: 73
    -
    - -
    droneStartBuild: 25
    -
    - -
    enableDoodad: 172
    -
    - -
    enterNydusCanal: 47
    -
    - -
    enterTransport: 92
    -
    - -
    fatal: 188
    -
    - -
    fireYamatoGun: 113
    -
    - -
    follow: 49
    -
    - -
    gaurd: 2
    -
    - -
    guardPost: 160
    -
    - -
    guardianAspect: 104
    -
    - -
    hallucination2: 149
    -
    - -
    harrassMove: 158
    -
    - -
    harvest1: 79
    -
    - -
    harvest2: 80
    -
    - -
    harvest3: 88
    -
    - -
    harvest4: 89
    -
    - -
    harvestGas: 83
    -
    - -
    hiddenGun: 167
    -
    - -
    hideTrap: 170
    -
    - -
    holdPosition: 107
    -
    - -
    hover: 13
    -
    - -
    incompleteBuilding: 44
    -
    - -
    incompleteMorphing: 45
    -
    - -
    incompleteWarping: 48
    -
    - -
    infestedCommandCenter: 15
    -
    - -
    infestingCommandCenter: 29
    -
    - -
    initCreepGrowth: 101
    -
    - -
    initializeArbiter: 130
    -
    - -
    interceptorAttack: 64
    -
    - -
    interceptorReturn: 69
    -
    - -
    interrupted: 91
    -
    - -
    junkYardDog: 187
    -
    - -
    larva: 77
    -
    - -
    liftingOff: 74
    -
    - -
    medic: 175
    -
    - -
    medicHeal: 176
    -
    - -
    medicHealMove: 177
    -
    - -
    medicHealToIdle: 179
    -
    - -
    medicHoldPosition: 178
    -
    - -
    miningMinerals: 87
    -
    - -
    move: 6
    -
    - -
    moveToFireYamatoGun: 114
    -
    - -
    moveToGas: 81
    -
    - -
    moveToInfest: 28
    -
    - -
    moveToMinerals: 85
    -
    - -
    moveToRepair: 35
    -
    - -
    moveUnload: 112
    -
    - -
    neutral: 162
    -
    - -
    none: 189
    -
    - -
    nothing: 23
    -
    - -
    nukeLaunch: 125
    -
    - -
    nukePaint: 126
    -
    - -
    nukeTrack: 129
    -
    - -
    nukeTrain: 124
    -
    - -
    nukeUnit: 127
    -
    - -
    nukeWait: 123
    -
    - -
    openDoor: 168
    -
    - -
    patrol: 152
    -
    - -
    pickup4: 96
    -
    - -
    pickupBunker: 95
    -
    - -
    pickupIdle: 93
    -
    - -
    pickupTransport: 94
    -
    - -
    placeAddOn: 36
    -
    - -
    placeBuilding: 30
    -
    - -
    placeProtossBuilding: 31
    -
    - -
    placeSpiderMine: 132
    -
    - -
    playerGaurd: 3
    -
    - -
    powerupIdle: 97
    -
    - -
    queenHoldPosition: 108
    -
    - -
    rallyPointTile: 40
    -
    - -
    rallyPointUnit: 39
    -
    - -
    reaver: 58
    -
    - -
    reaverAttack: 59
    -
    - -
    reaverCarrierMove: 51
    -
    - -
    reaverFight: 61
    -
    - -
    reaverHoldPosition: 62
    -
    - -
    reaverMoveToAttack: 60
    -
    - -
    rechargeShieldsBattery: 67
    -
    - -
    rechargeShieldsUnit: 66
    -
    - -
    repair: 34
    -
    - -
    rescuePassive: 161
    -
    - -
    researchTech: 75
    -
    - -
    resetCollision: 150
    -
    - -
    resetHarvestCollision: 151
    -
    - -
    returnGas: 84
    -
    - -
    returnMinerals: 90
    -
    - -
    revealTrap: 171
    -
    - -
    rightClickAction: 133
    -
    - -
    scanner: 140
    -
    - -
    scarabAttack: 65
    -
    - -
    scarabSelfDestructing: 165
    -
    - -
    shieldBattery: 68
    -
    - -
    sieging: 98
    -
    - -
    spawningLarva: 78
    -
    - -
    spreadCreep: 102
    -
    - -
    stayInRange: 21
    -
    - -
    stop: 1
    -
    - -
    stopReaver: 7
    -
    - -
    stoppingCreepGrowth: 103
    -
    - -
    suicideHoldPosition: 136
    -
    - -
    suicideTile: 135
    -
    - -
    suicideUnit: 134
    -
    - -
    teleport: 138
    -
    - -
    towerAttack: 19
    -
    - -
    towerGaurd: 18
    -
    - -
    train: 38
    -
    - -
    trainFighter: 63
    -
    - -
    turretAttack: 22
    -
    - -
    turretGaurd: 4
    -
    - -
    unburrowing: 118
    -
    - -
    unload: 111
    -
    - -
    unsieging: 99
    -
    - -
    unused24: 24
    -
    - -
    unusedNothing: 16
    -
    - -
    unusedPowerup: 17
    -
    - -
    upgrade: 76
    -
    - -
    vultureMine: 20
    -
    - -
    waitForGas: 82
    -
    - -
    waitForMinerals: 86
    -
    - -
    warpIn: 174
    -
    - -
    watchTarget: 100
    -
    - -
    zergBirth: 41
    -
    - -
    zergBuildingMorph: 43
    -
    - -
    zergUnitMorph: 42
    -
    - -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/host/enums/upgrades.html b/docs/host/enums/upgrades.html deleted file mode 100644 index 36f4154c..00000000 --- a/docs/host/enums/upgrades.html +++ /dev/null @@ -1,461 +0,0 @@ -upgrades | titan-reactor-runtime/host
    -
    - -
    -
    -
    -
    - -

    Enumeration upgradesInternal

    -
    -
    -
    - -
    -
    -

    Enumeration Members

    -
    - -
    adrenalGlands: 28
    -
    - -
    anabolicSynthesis: 53
    -
    - -
    antennae: 25
    -
    - -
    apialSensors: 41
    -
    - -
    apolloReactor: 22
    -
    - -
    argusJewel: 47
    -
    - -
    argusTalisman: 49
    -
    - -
    burstLasers: 18
    -
    - -
    caduceusReactor: 51
    -
    - -
    carrierCapacity: 43
    -
    - -
    charonBooster: 54
    -
    - -
    chitinousPlating: 52
    -
    - -
    colossusReactor: 23
    -
    - -
    gameteMeiosis: 31
    -
    - -
    graviticBoosters: 39
    -
    - -
    graviticDrive: 37
    -
    - -
    graviticThrusters: 42
    -
    - -
    groovedSpines: 30
    -
    - -
    ionThrusters: 17
    -
    - -
    khaydarinAmulet: 40
    -
    - -
    khaydarinCore: 44
    -
    - -
    legEnhancements: 34
    -
    - -
    metabolicBoost: 27
    -
    - -
    metasynapticNode: 32
    -
    - -
    moebiusReactor: 21
    -
    - -
    muscularAugments: 29
    -
    - -
    ocularImplants: 20
    -
    - -
    pneumatizedCarapace: 26
    -
    - -
    protossAirWeapons: 14
    -
    - -
    protossArmor: 5
    -
    - -
    protossGroundWeapons: 13
    -
    - -
    protossPlasmaShields: 15
    -
    - -
    protossPlating: 6
    -
    - -
    reaverCapacity: 36
    -
    - -
    scarabDamage: 35
    -
    - -
    sensorArray: 38
    -
    - -
    singularityCharge: 33
    -
    - -
    terranInfantryArmor: 0
    -
    - -
    terranInfantryWeapons: 7
    -
    - -
    terranShipPlating: 2
    -
    - -
    terranShipWeapons: 9
    -
    - -
    terranVehiclePlating: 1
    -
    - -
    terranVehicleWeapons: 8
    -
    - -
    titanReactor: 19
    -
    - -
    u238Shells: 16
    -
    - -
    unk45: 45
    -
    - -
    unk46: 46
    -
    - -
    unk48: 48
    -
    - -
    unk50: 50
    -
    - -
    ventralSacs: 24
    -
    - -
    zergCarapace: 3
    -
    - -
    zergFlyerAttacks: 12
    -
    - -
    zergFlyerCarapace: 4
    -
    - -
    zergMeleeAttacks: 10
    -
    - -
    zergMissileAttacks: 11
    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/host/functions/generateUIIcons.html b/docs/host/functions/createGameLoopComposer.html similarity index 62% rename from docs/host/functions/generateUIIcons.html rename to docs/host/functions/createGameLoopComposer.html index da5f2949..99fb8305 100644 --- a/docs/host/functions/generateUIIcons.html +++ b/docs/host/functions/createGameLoopComposer.html @@ -1,4 +1,4 @@ -generateUIIcons | titan-reactor-runtime/host
    +createGameLoopComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    Function generateUIIcons

    +
  • @titan-reactor-runtime/host
  • +
  • createGameLoopComposer
  • +

    Function createGameLoopComposer

      - +
    • Internal

      Parameters

      -

      Returns Promise<{
          cmdIcons: ArrayBuffer[];
          gameIcons: {
              energy: Blob;
              minerals: Blob;
              protoss: Blob;
              terran: Blob;
              vespeneProtoss: Blob;
              vespeneTerran: Blob;
              vespeneZerg: Blob;
              zerg: Blob;
          };
          raceInsetIcons: {
              protoss: Blob;
              terran: Blob;
              zerg: Blob;
          };
          workerIcons: {
              apm: ArrayBuffer | SharedArrayBuffer;
              protoss: ArrayBuffer | SharedArrayBuffer;
              terran: ArrayBuffer | SharedArrayBuffer;
              zerg: ArrayBuffer | SharedArrayBuffer;
          };
      }>

      +
      events: TypeEmitter<WorldEvents>
    +

    Returns {
        api: {
            delta: number;
            elapsed: number;
        };
        delta: number;
        onUpdate(val) => void;
        start() => void;
        stop() => void;
    }

    +
      +
    • +
      api: {
          delta: number;
          elapsed: number;
      }
      +
        +
      • +
        Readonly delta: number
      • +
      • +
        Readonly elapsed: number
    • +
    • +
      Readonly delta: number
    • +
    • +
      onUpdate:function
      +
        + +
      • +
        +

        Parameters

        +
          +
        • +
          val: ((delta, elapsed) => void)
          +
            +
          • +
              +
            • (delta, elapsed): void
            • +
            • +
              +

              Parameters

              +
                +
              • +
                delta: number
              • +
              • +
                elapsed: number
              +

              Returns void

        +

        Returns void

    • +
    • +
      start:function
      +
    • +
    • +
      stop:function
      +
    +
  • Defined in build/api-types/host/index.d.ts:3051
  • Generated using TypeDoc

    diff --git a/docs/host/functions/createInputComposer.html b/docs/host/functions/createInputComposer.html index 834c54f0..76c1a6ba 100644 --- a/docs/host/functions/createInputComposer.html +++ b/docs/host/functions/createInputComposer.html @@ -1,4 +1,4 @@ -createInputComposer | titan-reactor-runtime/host
    +createInputComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -25,82 +25,54 @@

    Parameters

  • world: World
  • -
    __namedParameters: {
        api: {
            followedUnits: Readonly<{
                clear() => void;
                getCentralPosition() => undefined | null | Vector3;
                getUnits() => Unit[];
                hasUnits() => boolean;
                setUnits(units) => void;
            }>;
            getPlayerColor: ((id) => Color);
            getPlayers: (() => {
                color: string;
                id: number;
                name: string;
                race: string;
            }[]);
            pxToWorld: PxToWorld;
            scene: BaseScene;
            selectedUnits: Readonly<{
                clear() => void;
                getUnits() => Unit[];
                hasUnits() => boolean;
                setUnits(units) => void;
            }>;
            getOriginalColors() => readonly string[];
            getOriginalNames() => readonly PlayerName[];
            setPlayerColors(colors) => void;
            setPlayerNames(players) => void;
            toggleFogOfWarByPlayerId(playerId) => void;
        };
        followedUnits: IterableSet<Unit>;
        getPlayerColor: ((playerId) => Color);
        images: ImageEntities;
        playerStartLocations: Vector3[];
        players: Players;
        pxToWorld: PxToWorld;
        pxToWorldInverse: PxToWorld;
        scene: BaseScene;
        selectedUnits: IterableSet<Unit>;
        simpleIndex: Record<string, ImageBase[]>;
        sprites: SpriteEntities;
        startLocations: Vector3[];
        terrain: Terrain;
        terrainExtra: {
            creep: Creep;
            heightMaps: {
                displaceCanvas: HTMLCanvasElement;
                displacementImage: ImageData;
                singleChannel: Uint8ClampedArray;
                texture: Texture;
            };
            minimapTex: DataTexture;
            dispose() => void;
        };
        units: UnitEntities;
        onFrame(delta, elapsed, viewport, direction?) => void;
        resetImageCache() => void;
    }
    +
    __namedParameters: {
        api: {
            createUnitQuadTree: ((size) => SimpleQuadtree<UnitStruct>);
            followedUnits: IterableSet<Unit>;
            getFollowedUnitsCenterPosition: (() => any);
            imageQuadtree: SimpleQuadtree<ImageBase>;
            initialStartLocation: Vector3;
            players: Players;
            pxToWorld: PxToWorld;
            pxToWorldFlat: PxToWorld;
            scene: BaseScene;
            selectedUnits: IterableSet<Unit>;
            startLocations: Vector3[];
            unitQuadtree: SimpleQuadtree<UnitStruct>;
            units: IterableMap<number, Unit>;
            toggleFogOfWarByPlayerId(playerId) => void;
        };
        followedUnits: IterableSet<Unit>;
        imageQuadrants: SimpleQuadtree<ImageBase>;
        images: ImageEntities;
        pxToWorld: PxToWorld;
        pxToWorldFlat: PxToWorld;
        pxToWorldInverse: PxToWorld;
        scene: BaseScene;
        selectedUnits: IterableSet<Unit>;
        sprites: SpriteEntities;
        startLocations: Vector3[];
        terrain: Terrain;
        terrainExtra: {
            creep: Creep;
            heightMaps: {
                displaceCanvas: HTMLCanvasElement;
                displacementImage: ImageData;
                singleChannel: Uint8ClampedArray;
                texture: Texture;
            };
            minimapTex: DataTexture;
            dispose() => void;
        };
        unitQuadrants: SimpleQuadtree<UnitStruct>;
        units: UnitEntities;
        onFrame(delta, elapsed, renderMode3D) => void;
        resetImageCache() => void;
    }
    • -
      api: {
          followedUnits: Readonly<{
              clear() => void;
              getCentralPosition() => undefined | null | Vector3;
              getUnits() => Unit[];
              hasUnits() => boolean;
              setUnits(units) => void;
          }>;
          getPlayerColor: ((id) => Color);
          getPlayers: (() => {
              color: string;
              id: number;
              name: string;
              race: string;
          }[]);
          pxToWorld: PxToWorld;
          scene: BaseScene;
          selectedUnits: Readonly<{
              clear() => void;
              getUnits() => Unit[];
              hasUnits() => boolean;
              setUnits(units) => void;
          }>;
          getOriginalColors() => readonly string[];
          getOriginalNames() => readonly PlayerName[];
          setPlayerColors(colors) => void;
          setPlayerNames(players) => void;
          toggleFogOfWarByPlayerId(playerId) => void;
      }
      +
      api: {
          createUnitQuadTree: ((size) => SimpleQuadtree<UnitStruct>);
          followedUnits: IterableSet<Unit>;
          getFollowedUnitsCenterPosition: (() => any);
          imageQuadtree: SimpleQuadtree<ImageBase>;
          initialStartLocation: Vector3;
          players: Players;
          pxToWorld: PxToWorld;
          pxToWorldFlat: PxToWorld;
          scene: BaseScene;
          selectedUnits: IterableSet<Unit>;
          startLocations: Vector3[];
          unitQuadtree: SimpleQuadtree<UnitStruct>;
          units: IterableMap<number, Unit>;
          toggleFogOfWarByPlayerId(playerId) => void;
      }
      • -
        followedUnits: Readonly<{
            clear() => void;
            getCentralPosition() => undefined | null | Vector3;
            getUnits() => Unit[];
            hasUnits() => boolean;
            setUnits(units) => void;
        }>
      • -
      • -
        getPlayerColor: ((id) => Color)
        +
        createUnitQuadTree: ((size) => SimpleQuadtree<UnitStruct>)
      • +
        size: number
  • +

    Returns SimpleQuadtree<UnitStruct>

    +
  • +
    followedUnits: IterableSet<Unit>
  • -
    getPlayers: (() => {
        color: string;
        id: number;
        name: string;
        race: string;
    }[])
    +
    getFollowedUnitsCenterPosition: (() => any)
      • -
      • (): {
            color: string;
            id: number;
            name: string;
            race: string;
        }[]
      • +
      • (): any
      • -

        Returns {
            color: string;
            id: number;
            name: string;
            race: string;
        }[]

  • +

    Returns any

    +
  • +
    imageQuadtree: SimpleQuadtree<ImageBase>
  • +
  • +
    initialStartLocation: Vector3
  • +
  • +
    Readonly players: Players
  • pxToWorld: PxToWorld
  • -
    scene: BaseScene
  • +
    pxToWorldFlat: PxToWorld
  • -
    selectedUnits: Readonly<{
        clear() => void;
        getUnits() => Unit[];
        hasUnits() => boolean;
        setUnits(units) => void;
    }>
  • +
    scene: BaseScene
  • -
    getOriginalColors:function
    -
  • +
    selectedUnits: IterableSet<Unit>
  • -
    getOriginalNames:function
    -
  • +
    startLocations: Vector3[]
  • -
    setPlayerColors:function
    -
  • +
    unitQuadtree: SimpleQuadtree<UnitStruct>
  • -
    setPlayerNames:function
    -
  • +
    Readonly units: IterableMap<number, Unit>
  • toggleFogOfWarByPlayerId:function
      @@ -113,39 +85,24 @@

      Parameters

      playerId: number
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:655
  • followedUnits: IterableSet<Unit>
  • -
    getPlayerColor: ((playerId) => Color)
    -
      -
    • -
        -
      • (playerId): Color
      • -
      • -
        -

        Parameters

        -
          -
        • -
          playerId: number
        -

        Returns Color

  • +
    imageQuadrants: SimpleQuadtree<ImageBase>
  • images: ImageEntities
  • -
    playerStartLocations: Vector3[]
  • -
  • -
    players: Players
  • -
  • pxToWorld: PxToWorld
  • +
    pxToWorldFlat: PxToWorld
  • +
  • pxToWorldInverse: PxToWorld
  • scene: BaseScene
  • selectedUnits: IterableSet<Unit>
  • -
    simpleIndex: Record<string, ImageBase[]>
  • -
  • sprites: SpriteEntities
  • startLocations: Vector3[]
  • @@ -176,13 +133,15 @@
    dispose

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:645
  • +
  • +
    unitQuadrants: SimpleQuadtree<UnitStruct>
  • units: UnitEntities
  • onFrame:function
      - +
    • Parameters

      @@ -192,12 +151,10 @@
      delta: elapsed: number
    • -
      viewport: boolean | GameViewPort
    • -
    • -
      Optional direction: number
    +
    renderMode3D: boolean
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:651
  • resetImageCache:function
  • +
  • Defined in build/api-types/host/index.d.ts:652
  • Returns {
        api: {
            mouse: Pick<MouseInput, "mouseScrollY" | "screenDrag" | "lookAt" | "move" | "modifiers" | "clientX" | "clientY" | "clicked">;
            getHoveredUnit() => undefined | Unit;
        };
        dispose: (() => void);
        keyboard: ArrowKeyInput;
        mouse: MouseInput;
        unitSelectionBox: {
            camera: Camera;
            enabled: boolean;
            isActive: boolean;
            status: UnitSelectionStatus;
            getHoveredUnit() => undefined | Unit;
            update() => void;
        };
        reset() => void;
        update(delta, elapsed, __namedParameters, overlay) => void;
    }

    +
  • Defined in build/api-types/host/index.d.ts:169
  • dispose: (() => void)
  • +
  • Defined in build/api-types/host/index.d.ts:163
  • update:function
  • +
  • Defined in build/api-types/host/index.d.ts:162
  • reset:function
  • +
  • Defined in build/api-types/host/index.d.ts:165
  • update:function
      @@ -281,25 +238,28 @@
      delta: elapsed: number
    • -
      __namedParameters: {
          api: {
              secondViewport: GameViewPort;
              viewport: GameViewPort;
          };
          aspect: number;
          numActiveViewports: number;
          primaryCamera: undefined | DirectionalCamera;
          primaryRenderMode3D: boolean;
          primaryViewport: undefined | GameViewPort;
          sceneController: null | SceneController;
          viewports: GameViewPort[];
          activate(newController, firstRunData?) => Promise<void>;
          activeViewports() => Generator<GameViewPort, void, unknown>;
          changeRenderMode(renderMode3D?) => void;
          deactivate() => void;
          doShakeCalculation(explosionType, damageType, spritePos) => void;
          generatePrevData() => null | {
              position: Vector3;
              target: Vector3;
          };
          update(delta) => void;
      }
      +
      __namedParameters: {
          api: {
              secondViewport: GameViewPort;
              viewport: GameViewPort;
              viewports: GameViewPort[];
          };
          aspect: number;
          primaryCamera: PerspectiveCamera | OrthographicCamera;
          primaryRenderMode3D: boolean;
          primaryViewport: GameViewPort;
          sceneController: null | SceneController;
          viewports: GameViewPort[];
          activate(newController) => Promise<void>;
          changeRenderMode(renderMode3D?) => void;
          deactivate() => void;
          doShakeCalculation(explosionType, damageType, spritePos) => void;
          generatePrevData() => {
              position: Vector3;
              target: Vector3;
          };
          update(delta) => void;
      }
    • -
      Readonly numActiveViewports: number
    • +
      aspect: number
    • -
      Readonly primaryCamera: undefined | DirectionalCamera
    • +
      Readonly primaryCamera: PerspectiveCamera | OrthographicCamera
    • Readonly primaryRenderMode3D: boolean
    • -
      Readonly primaryViewport: undefined | GameViewPort
    • +
      Readonly primaryViewport: GameViewPort
      +

      Primary viewport is necessary because audio will require a camera position, and depth of field will only apply in one viewport for performance.

      +
      +
    • Readonly sceneController: null | SceneController
    • @@ -307,26 +267,22 @@
      Readonly
      activate:function
        - +
      • +

        Activates a scene controller plugin. +Runs events on the previous scene controller if it exists. +Resets all viewports.

        +

        Parameters

        • -
          newController: undefined | null | SceneController
        • -
        • -
          Optional firstRunData: any
        -

        Returns Promise<void>

    • -
    • -
      activeViewports:function
      -
        - -
      • -

        Returns Generator<GameViewPort, void, unknown>

      +

      Returns Promise<void>

      +
  • +
  • Defined in build/api-types/host/index.d.ts:2682
  • changeRenderMode:function
      @@ -339,7 +295,7 @@

      Parameters

      Optional renderMode3D: boolean

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:2691
  • deactivate:function
  • +
  • Defined in build/api-types/host/index.d.ts:2672
  • doShakeCalculation:function

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:2696
  • generatePrevData:function
      - +
    • -

      Returns null | {
          position: Vector3;
          target: Vector3;
      }

  • +
  • Defined in build/api-types/host/index.d.ts:2692
  • update:function
      @@ -385,15 +346,15 @@

      Parameters

      delta: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:2670
  • overlay: OverlayComposer
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:167
  • +
  • Defined in build/api-types/host/index.d.ts:154
  • Generated using TypeDoc

    diff --git a/docs/host/functions/createMutationVariable.html b/docs/host/functions/createMutationVariable.html index a6aa2b95..fcc02fa5 100644 --- a/docs/host/functions/createMutationVariable.html +++ b/docs/host/functions/createMutationVariable.html @@ -1,4 +1,4 @@ -createMutationVariable | titan-reactor-runtime/host
    +createMutationVariable | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
      - +
    • Internal

      Parameters

      • -
        operate: ((operation) => void)
        -
          -
        • -
            -
          • (operation): void
          • -
          • -
            -

            Parameters

            -
            -

            Returns void

      • +
        operate: OperationRequest
      • getValue: ((path) => unknown)
          @@ -48,21 +37,21 @@

          Parameters

        • path: string[]

      Returns unknown

    -

    Returns ((path) => ((value?) => unknown) & {
        dec: (() => void);
        decCycle: (() => void);
        get: (() => unknown);
        inc: (() => void);
        incCycle: (() => void);
        max: (() => void);
        min: (() => void);
        reset: (() => void);
        set: ((value) => void);
        toggle: (() => void);
    })

    +

    Returns ((path) => ((value?) => unknown) & {
        $dec: (() => void);
        $decCycle: (() => void);
        $inc: (() => void);
        $incCycle: (() => void);
        $max: (() => void);
        $min: (() => void);
        $reset: (() => void);
        $set: ((value) => void);
        $toggle: (() => void);
        dec: (() => void);
        decCycle: (() => void);
        get: (() => unknown);
        inc: (() => void);
        incCycle: (() => void);
        max: (() => void);
        min: (() => void);
        reset: (() => void);
        set: ((value) => void);
        toggle: (() => void);
    })

      • -
      • (path): ((value?) => unknown) & {
            dec: (() => void);
            decCycle: (() => void);
            get: (() => unknown);
            inc: (() => void);
            incCycle: (() => void);
            max: (() => void);
            min: (() => void);
            reset: (() => void);
            set: ((value) => void);
            toggle: (() => void);
        }
      • +
      • (path): ((value?) => unknown) & {
            $dec: (() => void);
            $decCycle: (() => void);
            $inc: (() => void);
            $incCycle: (() => void);
            $max: (() => void);
            $min: (() => void);
            $reset: (() => void);
            $set: ((value) => void);
            $toggle: (() => void);
            dec: (() => void);
            decCycle: (() => void);
            get: (() => unknown);
            inc: (() => void);
            incCycle: (() => void);
            max: (() => void);
            min: (() => void);
            reset: (() => void);
            set: ((value) => void);
            toggle: (() => void);
        }
      • Parameters

        • path: string[]
        -

        Returns ((value?) => unknown) & {
            dec: (() => void);
            decCycle: (() => void);
            get: (() => unknown);
            inc: (() => void);
            incCycle: (() => void);
            max: (() => void);
            min: (() => void);
            reset: (() => void);
            set: ((value) => void);
            toggle: (() => void);
        }

    +

    Returns ((value?) => unknown) & {
        $dec: (() => void);
        $decCycle: (() => void);
        $inc: (() => void);
        $incCycle: (() => void);
        $max: (() => void);
        $min: (() => void);
        $reset: (() => void);
        $set: ((value) => void);
        $toggle: (() => void);
        dec: (() => void);
        decCycle: (() => void);
        get: (() => unknown);
        inc: (() => void);
        incCycle: (() => void);
        max: (() => void);
        min: (() => void);
        reset: (() => void);
        set: ((value) => void);
        toggle: (() => void);
    }

    +
  • Defined in build/api-types/host/index.d.ts:2489
  • Generated using TypeDoc

    diff --git a/docs/host/functions/createOpenBWComposer.html b/docs/host/functions/createOpenBWComposer.html index 4266e6b1..a4e6818c 100644 --- a/docs/host/functions/createOpenBWComposer.html +++ b/docs/host/functions/createOpenBWComposer.html @@ -1,4 +1,4 @@ -createOpenBWComposer | titan-reactor-runtime/host
    +createOpenBWComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
      - +
    • Internal

      Parameters

      @@ -25,27 +25,30 @@

      Parameters

    • world: World
    • -
      scene: Pick<{
          api: {
              followedUnits: Readonly<{
                  clear() => void;
                  getCentralPosition() => undefined | null | Vector3;
                  getUnits() => Unit[];
                  hasUnits() => boolean;
                  setUnits(units) => void;
              }>;
              getPlayerColor: ((id) => Color);
              getPlayers: (() => {
                  color: string;
                  id: number;
                  name: string;
                  race: string;
              }[]);
              pxToWorld: PxToWorld;
              scene: BaseScene;
              selectedUnits: Readonly<{
                  clear() => void;
                  getUnits() => Unit[];
                  hasUnits() => boolean;
                  setUnits(units) => void;
              }>;
              getOriginalColors() => readonly string[];
              getOriginalNames() => readonly PlayerName[];
              setPlayerColors(colors) => void;
              setPlayerNames(players) => void;
              toggleFogOfWarByPlayerId(playerId) => void;
          };
          followedUnits: IterableSet<Unit>;
          getPlayerColor: ((playerId) => Color);
          images: ImageEntities;
          playerStartLocations: Vector3[];
          players: Players;
          pxToWorld: PxToWorld;
          pxToWorldInverse: PxToWorld;
          scene: BaseScene;
          selectedUnits: IterableSet<Unit>;
          simpleIndex: Record<string, ImageBase[]>;
          sprites: SpriteEntities;
          startLocations: Vector3[];
          terrain: Terrain;
          terrainExtra: {
              creep: Creep;
              heightMaps: {
                  displaceCanvas: HTMLCanvasElement;
                  displacementImage: ImageData;
                  singleChannel: Uint8ClampedArray;
                  texture: Texture;
              };
              minimapTex: DataTexture;
              dispose() => void;
          };
          units: UnitEntities;
          onFrame(delta, elapsed, viewport, direction?) => void;
          resetImageCache() => void;
      }, "pxToWorld" | "terrainExtra">
    • +
      scene: Pick<{
          api: {
              createUnitQuadTree: ((size) => SimpleQuadtree<UnitStruct>);
              followedUnits: IterableSet<Unit>;
              getFollowedUnitsCenterPosition: (() => any);
              imageQuadtree: SimpleQuadtree<ImageBase>;
              initialStartLocation: Vector3;
              players: Players;
              pxToWorld: PxToWorld;
              pxToWorldFlat: PxToWorld;
              scene: BaseScene;
              selectedUnits: IterableSet<Unit>;
              startLocations: Vector3[];
              unitQuadtree: SimpleQuadtree<UnitStruct>;
              units: IterableMap<number, Unit>;
              toggleFogOfWarByPlayerId(playerId) => void;
          };
          followedUnits: IterableSet<Unit>;
          imageQuadrants: SimpleQuadtree<ImageBase>;
          images: ImageEntities;
          pxToWorld: PxToWorld;
          pxToWorldFlat: PxToWorld;
          pxToWorldInverse: PxToWorld;
          scene: BaseScene;
          selectedUnits: IterableSet<Unit>;
          sprites: SpriteEntities;
          startLocations: Vector3[];
          terrain: Terrain;
          terrainExtra: {
              creep: Creep;
              heightMaps: {
                  displaceCanvas: HTMLCanvasElement;
                  displacementImage: ImageData;
                  singleChannel: Uint8ClampedArray;
                  texture: Texture;
              };
              minimapTex: DataTexture;
              dispose() => void;
          };
          unitQuadrants: SimpleQuadtree<UnitStruct>;
          units: UnitEntities;
          onFrame(delta, elapsed, renderMode3D) => void;
          resetImageCache() => void;
      }, "pxToWorld" | "terrainExtra">
    • -
      viewInput: {
          api: {
              secondViewport: GameViewPort;
              viewport: GameViewPort;
          };
          aspect: number;
          numActiveViewports: number;
          primaryCamera: undefined | DirectionalCamera;
          primaryRenderMode3D: boolean;
          primaryViewport: undefined | GameViewPort;
          sceneController: null | SceneController;
          viewports: GameViewPort[];
          activate(newController, firstRunData?) => Promise<void>;
          activeViewports() => Generator<GameViewPort, void, unknown>;
          changeRenderMode(renderMode3D?) => void;
          deactivate() => void;
          doShakeCalculation(explosionType, damageType, spritePos) => void;
          generatePrevData() => null | {
              position: Vector3;
              target: Vector3;
          };
          update(delta) => void;
      }
      +
      viewInput: {
          api: {
              secondViewport: GameViewPort;
              viewport: GameViewPort;
              viewports: GameViewPort[];
          };
          aspect: number;
          primaryCamera: PerspectiveCamera | OrthographicCamera;
          primaryRenderMode3D: boolean;
          primaryViewport: GameViewPort;
          sceneController: null | SceneController;
          viewports: GameViewPort[];
          activate(newController) => Promise<void>;
          changeRenderMode(renderMode3D?) => void;
          deactivate() => void;
          doShakeCalculation(explosionType, damageType, spritePos) => void;
          generatePrevData() => {
              position: Vector3;
              target: Vector3;
          };
          update(delta) => void;
      }
    • -
      Readonly numActiveViewports: number
    • +
      aspect: number
    • -
      Readonly primaryCamera: undefined | DirectionalCamera
    • +
      Readonly primaryCamera: PerspectiveCamera | OrthographicCamera
    • Readonly primaryRenderMode3D: boolean
    • -
      Readonly primaryViewport: undefined | GameViewPort
    • +
      Readonly primaryViewport: GameViewPort
      +

      Primary viewport is necessary because audio will require a camera position, and depth of field will only apply in one viewport for performance.

      +
      +
    • Readonly sceneController: null | SceneController
    • @@ -53,26 +56,22 @@
      Readonly
      activate:function
        - +
      • +

        Activates a scene controller plugin. +Runs events on the previous scene controller if it exists. +Resets all viewports.

        +

        Parameters

        • -
          newController: undefined | null | SceneController
        • -
        • -
          Optional firstRunData: any
        -

        Returns Promise<void>

    • -
    • -
      activeViewports:function
      -
        - -
      • -

        Returns Generator<GameViewPort, void, unknown>

    +

    Returns Promise<void>

    +
    +
  • Defined in build/api-types/host/index.d.ts:2682
  • changeRenderMode:function
      @@ -85,7 +84,7 @@

      Parameters

      Optional renderMode3D: boolean
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2691
  • deactivate:function
  • +
  • Defined in build/api-types/host/index.d.ts:2672
  • doShakeCalculation:function

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:2696
  • generatePrevData:function
      - +
    • -

      Returns null | {
          position: Vector3;
          target: Vector3;
      }

  • +
  • Defined in build/api-types/host/index.d.ts:2692
  • update:function
      @@ -131,8 +135,8 @@

      Parameters

      delta: number

    Returns void

  • -

    Returns {
        _refs: {
            gtapi_getCurrentFrame: (() => number);
            gtapi_playSound: ((typeId, volumeOrX?, y?, unitTypeId?) => void);
        };
        api: {
            gameSpeed: number;
            gotoFrame: ((frame) => void);
            skipBackward: ((gameSeconds?) => number);
            skipForward: ((gameSeconds?) => number);
            speedDown: (() => number);
            speedUp: (() => number);
            togglePause: ((setPaused?) => boolean);
            getCurrentFrame() => number;
            playSound(typeId, volumeOrX?, y?, unitTypeId?) => void;
            setGameSpeed(value) => void;
        };
        completedUpgrades: number[][];
        currentFrame: number;
        previousBwFrame: number;
        precompile() => void;
        update(elapsed, frame) => boolean;
    }

    +
  • Defined in build/api-types/host/index.d.ts:2670
  • +

    Returns {
        _refs: {
            gtapi_getCurrentFrame: (() => number);
            gtapi_playSound: ((typeId, volumeOrX?, y?, unitTypeId?) => void);
        };
        api: {
            frame: number;
            openBW: {
                gameSpeed: number;
                gotoFrame: ((frame) => void);
                iterators: OpenBWIterators;
                mapTiles: SimpleBufferView<Uint8Array>;
                skipBackward: ((gameSeconds?) => number);
                skipForward: ((gameSeconds?) => number);
                speedDown: (() => number);
                speedUp: (() => number);
                togglePause: ((setPaused?) => boolean);
                getOriginal() => OpenBW;
                setGameSpeed(value) => void;
            };
            playSound(typeId, volumeOrX?, y?, unitTypeId?) => void;
        };
        completedUpgrades: number[][];
        currentFrame: number;
        previousBwFrame: number;
        precompile() => void;
        update(elapsed, frame) => boolean;
    }

    • _refs: {
          gtapi_getCurrentFrame: (() => number);
          gtapi_playSound: ((typeId, volumeOrX?, y?, unitTypeId?) => void);
      }
      @@ -165,7 +169,12 @@
      Optional Optional unitTypeId: number

    Returns void

  • -
    api: {
        gameSpeed: number;
        gotoFrame: ((frame) => void);
        skipBackward: ((gameSeconds?) => number);
        skipForward: ((gameSeconds?) => number);
        speedDown: (() => number);
        speedUp: (() => number);
        togglePause: ((setPaused?) => boolean);
        getCurrentFrame() => number;
        playSound(typeId, volumeOrX?, y?, unitTypeId?) => void;
        setGameSpeed(value) => void;
    }
    +
    api: {
        frame: number;
        openBW: {
            gameSpeed: number;
            gotoFrame: ((frame) => void);
            iterators: OpenBWIterators;
            mapTiles: SimpleBufferView<Uint8Array>;
            skipBackward: ((gameSeconds?) => number);
            skipForward: ((gameSeconds?) => number);
            speedDown: (() => number);
            speedUp: (() => number);
            togglePause: ((setPaused?) => boolean);
            getOriginal() => OpenBW;
            setGameSpeed(value) => void;
        };
        playSound(typeId, volumeOrX?, y?, unitTypeId?) => void;
    }
    +
      +
    • +
      Readonly frame: number
    • +
    • +
      openBW: {
          gameSpeed: number;
          gotoFrame: ((frame) => void);
          iterators: OpenBWIterators;
          mapTiles: SimpleBufferView<Uint8Array>;
          skipBackward: ((gameSeconds?) => number);
          skipForward: ((gameSeconds?) => number);
          speedDown: (() => number);
          speedUp: (() => number);
          togglePause: ((setPaused?) => boolean);
          getOriginal() => OpenBW;
          setGameSpeed(value) => void;
      }
      • Readonly gameSpeed: number
      • @@ -174,7 +183,7 @@
        gotoFrame
        • -
        • (frame): void
        • +
        • (frame): void
        • Parameters

          @@ -183,11 +192,15 @@

          Parameters

          frame: number

        Returns void

  • +
    Readonly iterators: OpenBWIterators
  • +
  • +
    Readonly mapTiles: SimpleBufferView<Uint8Array>
  • +
  • skipBackward: ((gameSeconds?) => number)
      • -
      • (gameSeconds?): number
      • +
      • (gameSeconds?): number
      • Parameters

        @@ -200,7 +213,7 @@
        skipForward
        • -
        • (gameSeconds?): number
        • +
        • (gameSeconds?): number
        • Parameters

          @@ -213,7 +226,7 @@
          speedDown
          • -
          • (): number
          • +
          • (): number
          • Returns number

      • @@ -221,7 +234,7 @@
        speedUp
        • -
        • (): number
        • +
        • (): number
        • Returns number

    • @@ -229,7 +242,7 @@
      togglePause
      • -
      • (setPaused?): boolean
      • +
      • (setPaused?): boolean
      • Parameters

        @@ -238,13 +251,29 @@

        Parameters

        Optional setPaused: boolean

      Returns boolean

  • -
    getCurrentFrame:function
    +
    getOriginal:function
    +
  • +
  • +
    setGameSpeed:function
      - +
    • -

      Returns number

  • +
  • Defined in build/api-types/host/index.d.ts:3030
  • playSound:function
      @@ -263,20 +292,7 @@
      Optional Optional unitTypeId: number

    Returns void

  • -
  • -
    setGameSpeed:function
    -
  • +
  • Defined in build/api-types/host/index.d.ts:3034
  • completedUpgrades: number[][]
  • @@ -293,7 +309,7 @@
    precompileReturns void
  • +
  • Defined in build/api-types/host/index.d.ts:3010
  • update:function
      @@ -308,10 +324,10 @@
      elapsed: frame: number

    Returns boolean

  • +
  • Defined in build/api-types/host/index.d.ts:3011
  • +
  • Defined in build/api-types/host/index.d.ts:3003
  • Generated using TypeDoc

    diff --git a/docs/host/functions/createPostProcessingComposer.html b/docs/host/functions/createPostProcessingComposer.html index f0c7d8d5..83ad38af 100644 --- a/docs/host/functions/createPostProcessingComposer.html +++ b/docs/host/functions/createPostProcessingComposer.html @@ -1,4 +1,4 @@ -createPostProcessingComposer | titan-reactor-runtime/host
    +createPostProcessingComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
      - +
    • Internal

      Parameters

      @@ -25,82 +25,54 @@

      Parameters

    • world: World
    • -
      __namedParameters: {
          api: {
              followedUnits: Readonly<{
                  clear() => void;
                  getCentralPosition() => undefined | null | Vector3;
                  getUnits() => Unit[];
                  hasUnits() => boolean;
                  setUnits(units) => void;
              }>;
              getPlayerColor: ((id) => Color);
              getPlayers: (() => {
                  color: string;
                  id: number;
                  name: string;
                  race: string;
              }[]);
              pxToWorld: PxToWorld;
              scene: BaseScene;
              selectedUnits: Readonly<{
                  clear() => void;
                  getUnits() => Unit[];
                  hasUnits() => boolean;
                  setUnits(units) => void;
              }>;
              getOriginalColors() => readonly string[];
              getOriginalNames() => readonly PlayerName[];
              setPlayerColors(colors) => void;
              setPlayerNames(players) => void;
              toggleFogOfWarByPlayerId(playerId) => void;
          };
          followedUnits: IterableSet<Unit>;
          getPlayerColor: ((playerId) => Color);
          images: ImageEntities;
          playerStartLocations: Vector3[];
          players: Players;
          pxToWorld: PxToWorld;
          pxToWorldInverse: PxToWorld;
          scene: BaseScene;
          selectedUnits: IterableSet<Unit>;
          simpleIndex: Record<string, ImageBase[]>;
          sprites: SpriteEntities;
          startLocations: Vector3[];
          terrain: Terrain;
          terrainExtra: {
              creep: Creep;
              heightMaps: {
                  displaceCanvas: HTMLCanvasElement;
                  displacementImage: ImageData;
                  singleChannel: Uint8ClampedArray;
                  texture: Texture;
              };
              minimapTex: DataTexture;
              dispose() => void;
          };
          units: UnitEntities;
          onFrame(delta, elapsed, viewport, direction?) => void;
          resetImageCache() => void;
      }
      +
      __namedParameters: {
          api: {
              createUnitQuadTree: ((size) => SimpleQuadtree<UnitStruct>);
              followedUnits: IterableSet<Unit>;
              getFollowedUnitsCenterPosition: (() => any);
              imageQuadtree: SimpleQuadtree<ImageBase>;
              initialStartLocation: Vector3;
              players: Players;
              pxToWorld: PxToWorld;
              pxToWorldFlat: PxToWorld;
              scene: BaseScene;
              selectedUnits: IterableSet<Unit>;
              startLocations: Vector3[];
              unitQuadtree: SimpleQuadtree<UnitStruct>;
              units: IterableMap<number, Unit>;
              toggleFogOfWarByPlayerId(playerId) => void;
          };
          followedUnits: IterableSet<Unit>;
          imageQuadrants: SimpleQuadtree<ImageBase>;
          images: ImageEntities;
          pxToWorld: PxToWorld;
          pxToWorldFlat: PxToWorld;
          pxToWorldInverse: PxToWorld;
          scene: BaseScene;
          selectedUnits: IterableSet<Unit>;
          sprites: SpriteEntities;
          startLocations: Vector3[];
          terrain: Terrain;
          terrainExtra: {
              creep: Creep;
              heightMaps: {
                  displaceCanvas: HTMLCanvasElement;
                  displacementImage: ImageData;
                  singleChannel: Uint8ClampedArray;
                  texture: Texture;
              };
              minimapTex: DataTexture;
              dispose() => void;
          };
          unitQuadrants: SimpleQuadtree<UnitStruct>;
          units: UnitEntities;
          onFrame(delta, elapsed, renderMode3D) => void;
          resetImageCache() => void;
      }
      • -
        api: {
            followedUnits: Readonly<{
                clear() => void;
                getCentralPosition() => undefined | null | Vector3;
                getUnits() => Unit[];
                hasUnits() => boolean;
                setUnits(units) => void;
            }>;
            getPlayerColor: ((id) => Color);
            getPlayers: (() => {
                color: string;
                id: number;
                name: string;
                race: string;
            }[]);
            pxToWorld: PxToWorld;
            scene: BaseScene;
            selectedUnits: Readonly<{
                clear() => void;
                getUnits() => Unit[];
                hasUnits() => boolean;
                setUnits(units) => void;
            }>;
            getOriginalColors() => readonly string[];
            getOriginalNames() => readonly PlayerName[];
            setPlayerColors(colors) => void;
            setPlayerNames(players) => void;
            toggleFogOfWarByPlayerId(playerId) => void;
        }
        +
        api: {
            createUnitQuadTree: ((size) => SimpleQuadtree<UnitStruct>);
            followedUnits: IterableSet<Unit>;
            getFollowedUnitsCenterPosition: (() => any);
            imageQuadtree: SimpleQuadtree<ImageBase>;
            initialStartLocation: Vector3;
            players: Players;
            pxToWorld: PxToWorld;
            pxToWorldFlat: PxToWorld;
            scene: BaseScene;
            selectedUnits: IterableSet<Unit>;
            startLocations: Vector3[];
            unitQuadtree: SimpleQuadtree<UnitStruct>;
            units: IterableMap<number, Unit>;
            toggleFogOfWarByPlayerId(playerId) => void;
        }
        • -
          followedUnits: Readonly<{
              clear() => void;
              getCentralPosition() => undefined | null | Vector3;
              getUnits() => Unit[];
              hasUnits() => boolean;
              setUnits(units) => void;
          }>
        • -
        • -
          getPlayerColor: ((id) => Color)
          +
          createUnitQuadTree: ((size) => SimpleQuadtree<UnitStruct>)
        • +
          size: number
    +

    Returns SimpleQuadtree<UnitStruct>

    +
  • +
    followedUnits: IterableSet<Unit>
  • -
    getPlayers: (() => {
        color: string;
        id: number;
        name: string;
        race: string;
    }[])
    +
    getFollowedUnitsCenterPosition: (() => any)
      • -
      • (): {
            color: string;
            id: number;
            name: string;
            race: string;
        }[]
      • +
      • (): any
      • -

        Returns {
            color: string;
            id: number;
            name: string;
            race: string;
        }[]

  • +

    Returns any

    +
  • +
    imageQuadtree: SimpleQuadtree<ImageBase>
  • +
  • +
    initialStartLocation: Vector3
  • +
  • +
    Readonly players: Players
  • pxToWorld: PxToWorld
  • -
    scene: BaseScene
  • +
    pxToWorldFlat: PxToWorld
  • -
    selectedUnits: Readonly<{
        clear() => void;
        getUnits() => Unit[];
        hasUnits() => boolean;
        setUnits(units) => void;
    }>
  • +
    scene: BaseScene
  • -
    getOriginalColors:function
    -
  • +
    selectedUnits: IterableSet<Unit>
  • -
    getOriginalNames:function
    -
  • +
    startLocations: Vector3[]
  • -
    setPlayerColors:function
    -
  • +
    unitQuadtree: SimpleQuadtree<UnitStruct>
  • -
    setPlayerNames:function
    -
  • +
    Readonly units: IterableMap<number, Unit>
  • toggleFogOfWarByPlayerId:function
      @@ -113,39 +85,24 @@

      Parameters

      playerId: number
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:655
  • followedUnits: IterableSet<Unit>
  • -
    getPlayerColor: ((playerId) => Color)
    -
      -
    • -
        -
      • (playerId): Color
      • -
      • -
        -

        Parameters

        -
          -
        • -
          playerId: number
        -

        Returns Color

  • +
    imageQuadrants: SimpleQuadtree<ImageBase>
  • images: ImageEntities
  • -
    playerStartLocations: Vector3[]
  • -
  • -
    players: Players
  • -
  • pxToWorld: PxToWorld
  • +
    pxToWorldFlat: PxToWorld
  • +
  • pxToWorldInverse: PxToWorld
  • scene: BaseScene
  • selectedUnits: IterableSet<Unit>
  • -
    simpleIndex: Record<string, ImageBase[]>
  • -
  • sprites: SpriteEntities
  • startLocations: Vector3[]
  • @@ -176,13 +133,15 @@
    dispose

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:645
  • +
  • +
    unitQuadrants: SimpleQuadtree<UnitStruct>
  • units: UnitEntities
  • onFrame:function
      - +
    • Parameters

      @@ -192,12 +151,10 @@
      delta: elapsed: number
    • -
      viewport: boolean | GameViewPort
    • -
    • -
      Optional direction: number
    +
    renderMode3D: boolean
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:651
  • resetImageCache:function
  • +
  • Defined in build/api-types/host/index.d.ts:652
  • -
    viewports: {
        api: {
            secondViewport: GameViewPort;
            viewport: GameViewPort;
        };
        aspect: number;
        numActiveViewports: number;
        primaryCamera: undefined | DirectionalCamera;
        primaryRenderMode3D: boolean;
        primaryViewport: undefined | GameViewPort;
        sceneController: null | SceneController;
        viewports: GameViewPort[];
        activate(newController, firstRunData?) => Promise<void>;
        activeViewports() => Generator<GameViewPort, void, unknown>;
        changeRenderMode(renderMode3D?) => void;
        deactivate() => void;
        doShakeCalculation(explosionType, damageType, spritePos) => void;
        generatePrevData() => null | {
            position: Vector3;
            target: Vector3;
        };
        update(delta) => void;
    }
    +
    viewportsComposer: {
        api: {
            secondViewport: GameViewPort;
            viewport: GameViewPort;
            viewports: GameViewPort[];
        };
        aspect: number;
        primaryCamera: PerspectiveCamera | OrthographicCamera;
        primaryRenderMode3D: boolean;
        primaryViewport: GameViewPort;
        sceneController: null | SceneController;
        viewports: GameViewPort[];
        activate(newController) => Promise<void>;
        changeRenderMode(renderMode3D?) => void;
        deactivate() => void;
        doShakeCalculation(explosionType, damageType, spritePos) => void;
        generatePrevData() => {
            position: Vector3;
            target: Vector3;
        };
        update(delta) => void;
    }
  • -
    Readonly numActiveViewports: number
  • +
    aspect: number
  • -
    Readonly primaryCamera: undefined | DirectionalCamera
  • +
    Readonly primaryCamera: PerspectiveCamera | OrthographicCamera
  • Readonly primaryRenderMode3D: boolean
  • -
    Readonly primaryViewport: undefined | GameViewPort
  • +
    Readonly primaryViewport: GameViewPort
    +

    Primary viewport is necessary because audio will require a camera position, and depth of field will only apply in one viewport for performance.

    +
    +
  • Readonly sceneController: null | SceneController
  • @@ -233,26 +193,22 @@
    Readonly
    activate:function
      - +
    • +

      Activates a scene controller plugin. +Runs events on the previous scene controller if it exists. +Resets all viewports.

      +

      Parameters

      • -
        newController: undefined | null | SceneController
      • -
      • -
        Optional firstRunData: any
      -

      Returns Promise<void>

  • -
  • -
    activeViewports:function
    -
      - -
    • -

      Returns Generator<GameViewPort, void, unknown>

    +

    Returns Promise<void>

    +
  • +
  • Defined in build/api-types/host/index.d.ts:2682
  • changeRenderMode:function
      @@ -265,7 +221,7 @@

      Parameters

      Optional renderMode3D: boolean

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:2691
  • deactivate:function
  • +
  • Defined in build/api-types/host/index.d.ts:2672
  • doShakeCalculation:function

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:2696
  • generatePrevData:function
      - +
    • -

      Returns null | {
          position: Vector3;
          target: Vector3;
      }

  • +
  • Defined in build/api-types/host/index.d.ts:2692
  • update:function
      @@ -311,7 +272,7 @@

      Parameters

      delta: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:2670
  • assets: Assets
  • Returns {
        api: {
            changeRenderMode(renderMode3D?) => void;
        };
        overlayCamera: PerspectiveCamera;
        overlayScene: Scene;
        precompile(camera) => void;
        render(delta, elapsed) => void;
        startTransition(fn) => void;
    }

    @@ -331,7 +292,7 @@

    Parameters

    Optional renderMode3D: boolean

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2968
  • Readonly overlayCamera: PerspectiveCamera
  • @@ -348,7 +309,7 @@

    Parameters

    camera: PerspectiveCamera | OrthographicCamera
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2966
  • render:function
      @@ -363,7 +324,7 @@
      delta: elapsed: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:2973
  • startTransition:function
      @@ -382,10 +343,10 @@
      fn: Returns void
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:2970
  • +
  • Defined in build/api-types/host/index.d.ts:2965
  • Generated using TypeDoc

    diff --git a/docs/host/functions/createSandboxApi.html b/docs/host/functions/createSandboxApi.html index f479ad33..a60be81b 100644 --- a/docs/host/functions/createSandboxApi.html +++ b/docs/host/functions/createSandboxApi.html @@ -1,4 +1,4 @@ -createSandboxApi | titan-reactor-runtime/host
    +createSandboxApi | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -50,7 +50,7 @@
    x:
    y: number

    Returns null | UnitsBufferView

    +
  • Defined in build/api-types/host/index.d.ts:3070
  • killUnit:function
      @@ -63,7 +63,7 @@

      Parameters

      unitOrId: number | UnitStruct
  • Returns undefined | number

    +
  • Defined in build/api-types/host/index.d.ts:3071
  • orderUnitAttackMove:function
      @@ -82,7 +82,7 @@
      Optional Optional y: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3073
  • orderUnitAttackUnit:function
      @@ -101,7 +101,7 @@
      Optional Optional y: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3074
  • orderUnitBuild:function
      @@ -120,7 +120,7 @@
      x:
      y: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3076
  • orderUnitMove:function
      @@ -137,7 +137,7 @@
      Optional Optional y: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3075
  • orderUnitRightClick:function
      @@ -156,7 +156,7 @@
      Optional Optional y: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3078
  • orderUnitTrain:function
      @@ -171,7 +171,7 @@
      unitOrId: unitType: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3077
  • removeUnit:function
      @@ -184,10 +184,10 @@

      Parameters

      unitOrId: number | UnitStruct

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3072
  • +
  • Defined in build/api-types/host/index.d.ts:3068
  • Generated using TypeDoc

    diff --git a/docs/host/functions/createSceneComposer.html b/docs/host/functions/createSceneComposer.html index b3a1ad80..f9df52d7 100644 --- a/docs/host/functions/createSceneComposer.html +++ b/docs/host/functions/createSceneComposer.html @@ -1,4 +1,4 @@ -createSceneComposer | titan-reactor-runtime/host
    +createSceneComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
      - +
    • Internal

      Parameters

      @@ -26,10 +26,10 @@

      Parameters

      world: World
    • assets: Assets
    -

    Returns Promise<{
        api: {
            followedUnits: Readonly<{
                clear() => void;
                getCentralPosition() => undefined | null | Vector3;
                getUnits() => Unit[];
                hasUnits() => boolean;
                setUnits(units) => void;
            }>;
            getPlayerColor: ((id) => Color);
            getPlayers: (() => {
                color: string;
                id: number;
                name: string;
                race: string;
            }[]);
            pxToWorld: PxToWorld;
            scene: BaseScene;
            selectedUnits: Readonly<{
                clear() => void;
                getUnits() => Unit[];
                hasUnits() => boolean;
                setUnits(units) => void;
            }>;
            getOriginalColors() => readonly string[];
            getOriginalNames() => readonly PlayerName[];
            setPlayerColors(colors) => void;
            setPlayerNames(players) => void;
            toggleFogOfWarByPlayerId(playerId) => void;
        };
        followedUnits: IterableSet<Unit>;
        getPlayerColor: ((playerId) => Color);
        images: ImageEntities;
        playerStartLocations: Vector3[];
        players: Players;
        pxToWorld: PxToWorld;
        pxToWorldInverse: PxToWorld;
        scene: BaseScene;
        selectedUnits: IterableSet<Unit>;
        simpleIndex: Record<string, ImageBase[]>;
        sprites: SpriteEntities;
        startLocations: Vector3[];
        terrain: Terrain;
        terrainExtra: {
            creep: Creep;
            heightMaps: {
                displaceCanvas: HTMLCanvasElement;
                displacementImage: ImageData;
                singleChannel: Uint8ClampedArray;
                texture: Texture;
            };
            minimapTex: DataTexture;
            dispose() => void;
        };
        units: UnitEntities;
        onFrame(delta, elapsed, viewport, direction?) => void;
        resetImageCache() => void;
    }>

    +

    Returns Promise<{
        api: {
            createUnitQuadTree: ((size) => SimpleQuadtree<UnitStruct>);
            followedUnits: IterableSet<Unit>;
            getFollowedUnitsCenterPosition: (() => any);
            imageQuadtree: SimpleQuadtree<ImageBase>;
            initialStartLocation: Vector3;
            players: Players;
            pxToWorld: PxToWorld;
            pxToWorldFlat: PxToWorld;
            scene: BaseScene;
            selectedUnits: IterableSet<Unit>;
            startLocations: Vector3[];
            unitQuadtree: SimpleQuadtree<UnitStruct>;
            units: IterableMap<number, Unit>;
            toggleFogOfWarByPlayerId(playerId) => void;
        };
        followedUnits: IterableSet<Unit>;
        imageQuadrants: SimpleQuadtree<ImageBase>;
        images: ImageEntities;
        pxToWorld: PxToWorld;
        pxToWorldFlat: PxToWorld;
        pxToWorldInverse: PxToWorld;
        scene: BaseScene;
        selectedUnits: IterableSet<Unit>;
        sprites: SpriteEntities;
        startLocations: Vector3[];
        terrain: Terrain;
        terrainExtra: {
            creep: Creep;
            heightMaps: {
                displaceCanvas: HTMLCanvasElement;
                displacementImage: ImageData;
                singleChannel: Uint8ClampedArray;
                texture: Texture;
            };
            minimapTex: DataTexture;
            dispose() => void;
        };
        unitQuadrants: SimpleQuadtree<UnitStruct>;
        units: UnitEntities;
        onFrame(delta, elapsed, renderMode3D) => void;
        resetImageCache() => void;
    }>

    +
  • Defined in build/api-types/host/index.d.ts:626
  • Generated using TypeDoc

    diff --git a/docs/host/functions/createSettingsSessionStore.html b/docs/host/functions/createSettingsSessionStore.html index 395a2dd6..0f5173a4 100644 --- a/docs/host/functions/createSettingsSessionStore.html +++ b/docs/host/functions/createSettingsSessionStore.html @@ -1,4 +1,4 @@ -createSettingsSessionStore | titan-reactor-runtime/host
    +createSettingsSessionStore | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
      - +
    • Internal

      Parameters

      -

      Returns {
          createVariable: ((path) => ((value?) => unknown) & {
              dec: (() => void);
              decCycle: (() => void);
              get: (() => unknown);
              inc: (() => void);
              incCycle: (() => void);
              max: (() => void);
              min: (() => void);
              reset: (() => void);
              set: ((value) => void);
              toggle: (() => void);
          });
          dispose: (() => void);
          getState: (() => {
              audio: {
                  global: number;
                  music: number;
                  playIntroSounds: boolean;
                  sound: number;
              };
              input: {
                  cameraShakeStrength: number;
                  cursorVisible: boolean;
                  dampingFactor: number;
                  movementSpeed: number;
                  rotateSpeed: number;
                  sceneController: string;
                  unitSelection: boolean;
                  zoomLevels: [number, number, number];
              };
              minimap: {
                  drawCamera: boolean;
                  enabled: boolean;
                  interactive: boolean;
                  mode: "2d" | "3d";
                  opacity: number;
                  position: [number, number];
                  rotation: [number, number, number];
                  scale: number;
                  softEdges: boolean;
              };
              postprocessing: {
                  anisotropy: number;
                  antialias: number;
                  bloom: number;
                  brightness: number;
                  contrast: number;
                  fogOfWar: number;
              };
              postprocessing3d: {
                  anisotropy: number;
                  antialias: number;
                  bloom: number;
                  brightness: number;
                  contrast: number;
                  depthBlurQuality: number;
                  depthBokehScale: number;
                  depthFocalLength: number;
                  depthFocalRange: number;
                  envMap: number;
                  fogOfWar: number;
                  shadowQuality: number;
                  sunlightColor: string;
                  sunlightDirection: [number, number, number];
                  sunlightIntensity: number;
                  toneMapping: number;
              };
              session: {
                  audioListenerDistance: number;
                  sandbox: boolean;
                  type: "replay" | "live" | "map";
              };
          });
          getValue: ((path) => unknown);
          merge: ((rhs) => void);
          operate: ((action, transformPath?) => void);
          setValue: ((path, value) => void);
          sourceOfTruth: SourceOfTruth<{
              audio: {
                  global: number;
                  music: number;
                  playIntroSounds: boolean;
                  sound: number;
              };
              input: {
                  cameraShakeStrength: number;
                  cursorVisible: boolean;
                  dampingFactor: number;
                  movementSpeed: number;
                  rotateSpeed: number;
                  sceneController: string;
                  unitSelection: boolean;
                  zoomLevels: [number, number, number];
              };
              minimap: {
                  drawCamera: boolean;
                  enabled: boolean;
                  interactive: boolean;
                  mode: "2d" | "3d";
                  opacity: number;
                  position: [number, number];
                  rotation: [number, number, number];
                  scale: number;
                  softEdges: boolean;
              };
              postprocessing: {
                  anisotropy: number;
                  antialias: number;
                  bloom: number;
                  brightness: number;
                  contrast: number;
                  fogOfWar: number;
              };
              postprocessing3d: {
                  anisotropy: number;
                  antialias: number;
                  bloom: number;
                  brightness: number;
                  contrast: number;
                  depthBlurQuality: number;
                  depthBokehScale: number;
                  depthFocalLength: number;
                  depthFocalRange: number;
                  envMap: number;
                  fogOfWar: number;
                  shadowQuality: number;
                  sunlightColor: string;
                  sunlightDirection: [number, number, number];
                  sunlightIntensity: number;
                  toneMapping: number;
              };
              session: {
                  audioListenerDistance: number;
                  sandbox: boolean;
                  type: "replay" | "live" | "map";
              };
          }>;
          vars: SessionVariables;
      }

      +

      Returns {
          createVariable: ((path) => ((value?) => unknown) & {
              $dec: (() => void);
              $decCycle: (() => void);
              $inc: (() => void);
              $incCycle: (() => void);
              $max: (() => void);
              $min: (() => void);
              $reset: (() => void);
              $set: ((value) => void);
              $toggle: (() => void);
              dec: (() => void);
              decCycle: (() => void);
              get: (() => unknown);
              inc: (() => void);
              incCycle: (() => void);
              max: (() => void);
              min: (() => void);
              reset: (() => void);
              set: ((value) => void);
              toggle: (() => void);
          });
          dispose: (() => void);
          getState: (() => {
              audio: {
                  global: number;
                  music: number;
                  playIntroSounds: boolean;
                  sound: number;
              };
              input: {
                  cameraShakeStrength: number;
                  cursorVisible: boolean;
                  dampingFactor: number;
                  movementSpeed: number;
                  rotateSpeed: number;
                  sceneController: string;
                  unitSelection: boolean;
                  vrController: string;
                  zoomLevels: [number, number, number];
              };
              minimap: {
                  drawCamera: boolean;
                  enabled: boolean;
                  interactive: boolean;
                  mode: "2d" | "3d";
                  opacity: number;
                  position: [number, number];
                  rotation: [number, number, number];
                  scale: number;
                  softEdges: boolean;
              };
              postprocessing: {
                  anisotropy: number;
                  antialias: number;
                  bloom: number;
                  brightness: number;
                  contrast: number;
                  fogOfWar: number;
              };
              postprocessing3d: {
                  anisotropy: number;
                  antialias: number;
                  bloom: number;
                  brightness: number;
                  contrast: number;
                  depthBlurQuality: number;
                  depthBokehScale: number;
                  depthFocalLength: number;
                  depthFocalRange: number;
                  envMap: number;
                  fogOfWar: number;
                  shadowQuality: number;
                  sunlightColor: string;
                  sunlightDirection: [number, number, number];
                  sunlightIntensity: number;
                  toneMapping: number;
              };
              session: {
                  audioListenerDistance: number;
                  sandbox: boolean;
                  type: "replay" | "map";
              };
          });
          getValue: ((path) => unknown);
          merge: ((rhs) => void);
          operate: ((action, transformPath?, silentUpdate?) => void);
          setValue: ((path, value, silentUpdate?) => void);
          sourceOfTruth: SourceOfTruth<{
              audio: {
                  global: number;
                  music: number;
                  playIntroSounds: boolean;
                  sound: number;
              };
              input: {
                  cameraShakeStrength: number;
                  cursorVisible: boolean;
                  dampingFactor: number;
                  movementSpeed: number;
                  rotateSpeed: number;
                  sceneController: string;
                  unitSelection: boolean;
                  vrController: string;
                  zoomLevels: [number, number, number];
              };
              minimap: {
                  drawCamera: boolean;
                  enabled: boolean;
                  interactive: boolean;
                  mode: "2d" | "3d";
                  opacity: number;
                  position: [number, number];
                  rotation: [number, number, number];
                  scale: number;
                  softEdges: boolean;
              };
              postprocessing: {
                  anisotropy: number;
                  antialias: number;
                  bloom: number;
                  brightness: number;
                  contrast: number;
                  fogOfWar: number;
              };
              postprocessing3d: {
                  anisotropy: number;
                  antialias: number;
                  bloom: number;
                  brightness: number;
                  contrast: number;
                  depthBlurQuality: number;
                  depthBokehScale: number;
                  depthFocalLength: number;
                  depthFocalRange: number;
                  envMap: number;
                  fogOfWar: number;
                  shadowQuality: number;
                  sunlightColor: string;
                  sunlightDirection: [number, number, number];
                  sunlightIntensity: number;
                  toneMapping: number;
              };
              session: {
                  audioListenerDistance: number;
                  sandbox: boolean;
                  type: "replay" | "map";
              };
          }>;
          vars: SessionVariables;
      }

      • -
        createVariable: ((path) => ((value?) => unknown) & {
            dec: (() => void);
            decCycle: (() => void);
            get: (() => unknown);
            inc: (() => void);
            incCycle: (() => void);
            max: (() => void);
            min: (() => void);
            reset: (() => void);
            set: ((value) => void);
            toggle: (() => void);
        })
        +
        createVariable: ((path) => ((value?) => unknown) & {
            $dec: (() => void);
            $decCycle: (() => void);
            $inc: (() => void);
            $incCycle: (() => void);
            $max: (() => void);
            $min: (() => void);
            $reset: (() => void);
            $set: ((value) => void);
            $toggle: (() => void);
            dec: (() => void);
            decCycle: (() => void);
            get: (() => unknown);
            inc: (() => void);
            incCycle: (() => void);
            max: (() => void);
            min: (() => void);
            reset: (() => void);
            set: ((value) => void);
            toggle: (() => void);
        })
          • -
          • (path): ((value?) => unknown) & {
                dec: (() => void);
                decCycle: (() => void);
                get: (() => unknown);
                inc: (() => void);
                incCycle: (() => void);
                max: (() => void);
                min: (() => void);
                reset: (() => void);
                set: ((value) => void);
                toggle: (() => void);
            }
          • +
          • (path): ((value?) => unknown) & {
                $dec: (() => void);
                $decCycle: (() => void);
                $inc: (() => void);
                $incCycle: (() => void);
                $max: (() => void);
                $min: (() => void);
                $reset: (() => void);
                $set: ((value) => void);
                $toggle: (() => void);
                dec: (() => void);
                decCycle: (() => void);
                get: (() => unknown);
                inc: (() => void);
                incCycle: (() => void);
                max: (() => void);
                min: (() => void);
                reset: (() => void);
                set: ((value) => void);
                toggle: (() => void);
            }
          • Parameters

            • path: string[]
            -

            Returns ((value?) => unknown) & {
                dec: (() => void);
                decCycle: (() => void);
                get: (() => unknown);
                inc: (() => void);
                incCycle: (() => void);
                max: (() => void);
                min: (() => void);
                reset: (() => void);
                set: ((value) => void);
                toggle: (() => void);
            }

      • +

        Returns ((value?) => unknown) & {
            $dec: (() => void);
            $decCycle: (() => void);
            $inc: (() => void);
            $incCycle: (() => void);
            $max: (() => void);
            $min: (() => void);
            $reset: (() => void);
            $set: ((value) => void);
            $toggle: (() => void);
            dec: (() => void);
            decCycle: (() => void);
            get: (() => unknown);
            inc: (() => void);
            incCycle: (() => void);
            max: (() => void);
            min: (() => void);
            reset: (() => void);
            set: ((value) => void);
            toggle: (() => void);
        }

  • dispose: (() => void)
      @@ -48,13 +48,13 @@
      dispose

      Returns void

  • -
    getState: (() => {
        audio: {
            global: number;
            music: number;
            playIntroSounds: boolean;
            sound: number;
        };
        input: {
            cameraShakeStrength: number;
            cursorVisible: boolean;
            dampingFactor: number;
            movementSpeed: number;
            rotateSpeed: number;
            sceneController: string;
            unitSelection: boolean;
            zoomLevels: [number, number, number];
        };
        minimap: {
            drawCamera: boolean;
            enabled: boolean;
            interactive: boolean;
            mode: "2d" | "3d";
            opacity: number;
            position: [number, number];
            rotation: [number, number, number];
            scale: number;
            softEdges: boolean;
        };
        postprocessing: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            fogOfWar: number;
        };
        postprocessing3d: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            depthBlurQuality: number;
            depthBokehScale: number;
            depthFocalLength: number;
            depthFocalRange: number;
            envMap: number;
            fogOfWar: number;
            shadowQuality: number;
            sunlightColor: string;
            sunlightDirection: [number, number, number];
            sunlightIntensity: number;
            toneMapping: number;
        };
        session: {
            audioListenerDistance: number;
            sandbox: boolean;
            type: "replay" | "live" | "map";
        };
    })
    +
    getState: (() => {
        audio: {
            global: number;
            music: number;
            playIntroSounds: boolean;
            sound: number;
        };
        input: {
            cameraShakeStrength: number;
            cursorVisible: boolean;
            dampingFactor: number;
            movementSpeed: number;
            rotateSpeed: number;
            sceneController: string;
            unitSelection: boolean;
            vrController: string;
            zoomLevels: [number, number, number];
        };
        minimap: {
            drawCamera: boolean;
            enabled: boolean;
            interactive: boolean;
            mode: "2d" | "3d";
            opacity: number;
            position: [number, number];
            rotation: [number, number, number];
            scale: number;
            softEdges: boolean;
        };
        postprocessing: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            fogOfWar: number;
        };
        postprocessing3d: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            depthBlurQuality: number;
            depthBokehScale: number;
            depthFocalLength: number;
            depthFocalRange: number;
            envMap: number;
            fogOfWar: number;
            shadowQuality: number;
            sunlightColor: string;
            sunlightDirection: [number, number, number];
            sunlightIntensity: number;
            toneMapping: number;
        };
        session: {
            audioListenerDistance: number;
            sandbox: boolean;
            type: "replay" | "map";
        };
    })
      • -
      • (): {
            audio: {
                global: number;
                music: number;
                playIntroSounds: boolean;
                sound: number;
            };
            input: {
                cameraShakeStrength: number;
                cursorVisible: boolean;
                dampingFactor: number;
                movementSpeed: number;
                rotateSpeed: number;
                sceneController: string;
                unitSelection: boolean;
                zoomLevels: [number, number, number];
            };
            minimap: {
                drawCamera: boolean;
                enabled: boolean;
                interactive: boolean;
                mode: "2d" | "3d";
                opacity: number;
                position: [number, number];
                rotation: [number, number, number];
                scale: number;
                softEdges: boolean;
            };
            postprocessing: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                fogOfWar: number;
            };
            postprocessing3d: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                depthBlurQuality: number;
                depthBokehScale: number;
                depthFocalLength: number;
                depthFocalRange: number;
                envMap: number;
                fogOfWar: number;
                shadowQuality: number;
                sunlightColor: string;
                sunlightDirection: [number, number, number];
                sunlightIntensity: number;
                toneMapping: number;
            };
            session: {
                audioListenerDistance: number;
                sandbox: boolean;
                type: "replay" | "live" | "map";
            };
        }
      • +
      • (): {
            audio: {
                global: number;
                music: number;
                playIntroSounds: boolean;
                sound: number;
            };
            input: {
                cameraShakeStrength: number;
                cursorVisible: boolean;
                dampingFactor: number;
                movementSpeed: number;
                rotateSpeed: number;
                sceneController: string;
                unitSelection: boolean;
                vrController: string;
                zoomLevels: [number, number, number];
            };
            minimap: {
                drawCamera: boolean;
                enabled: boolean;
                interactive: boolean;
                mode: "2d" | "3d";
                opacity: number;
                position: [number, number];
                rotation: [number, number, number];
                scale: number;
                softEdges: boolean;
            };
            postprocessing: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                fogOfWar: number;
            };
            postprocessing3d: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                depthBlurQuality: number;
                depthBokehScale: number;
                depthFocalLength: number;
                depthFocalRange: number;
                envMap: number;
                fogOfWar: number;
                shadowQuality: number;
                sunlightColor: string;
                sunlightDirection: [number, number, number];
                sunlightIntensity: number;
                toneMapping: number;
            };
            session: {
                audioListenerDistance: number;
                sandbox: boolean;
                type: "replay" | "map";
            };
        }
      • -

        Returns {
            audio: {
                global: number;
                music: number;
                playIntroSounds: boolean;
                sound: number;
            };
            input: {
                cameraShakeStrength: number;
                cursorVisible: boolean;
                dampingFactor: number;
                movementSpeed: number;
                rotateSpeed: number;
                sceneController: string;
                unitSelection: boolean;
                zoomLevels: [number, number, number];
            };
            minimap: {
                drawCamera: boolean;
                enabled: boolean;
                interactive: boolean;
                mode: "2d" | "3d";
                opacity: number;
                position: [number, number];
                rotation: [number, number, number];
                scale: number;
                softEdges: boolean;
            };
            postprocessing: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                fogOfWar: number;
            };
            postprocessing3d: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                depthBlurQuality: number;
                depthBokehScale: number;
                depthFocalLength: number;
                depthFocalRange: number;
                envMap: number;
                fogOfWar: number;
                shadowQuality: number;
                sunlightColor: string;
                sunlightDirection: [number, number, number];
                sunlightIntensity: number;
                toneMapping: number;
            };
            session: {
                audioListenerDistance: number;
                sandbox: boolean;
                type: "replay" | "live" | "map";
            };
        }

        +

        Returns {
            audio: {
                global: number;
                music: number;
                playIntroSounds: boolean;
                sound: number;
            };
            input: {
                cameraShakeStrength: number;
                cursorVisible: boolean;
                dampingFactor: number;
                movementSpeed: number;
                rotateSpeed: number;
                sceneController: string;
                unitSelection: boolean;
                vrController: string;
                zoomLevels: [number, number, number];
            };
            minimap: {
                drawCamera: boolean;
                enabled: boolean;
                interactive: boolean;
                mode: "2d" | "3d";
                opacity: number;
                position: [number, number];
                rotation: [number, number, number];
                scale: number;
                softEdges: boolean;
            };
            postprocessing: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                fogOfWar: number;
            };
            postprocessing3d: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                depthBlurQuality: number;
                depthBokehScale: number;
                depthFocalLength: number;
                depthFocalRange: number;
                envMap: number;
                fogOfWar: number;
                shadowQuality: number;
                sunlightColor: string;
                sunlightDirection: [number, number, number];
                sunlightIntensity: number;
                toneMapping: number;
            };
            session: {
                audioListenerDistance: number;
                sandbox: boolean;
                type: "replay" | "map";
            };
        }

        • audio: {
              global: number;
              music: number;
              playIntroSounds: boolean;
              sound: number;
          }
          @@ -68,7 +68,7 @@
          playIntroSounds
          sound: number
      • -
        input: {
            cameraShakeStrength: number;
            cursorVisible: boolean;
            dampingFactor: number;
            movementSpeed: number;
            rotateSpeed: number;
            sceneController: string;
            unitSelection: boolean;
            zoomLevels: [number, number, number];
        }
        +
        input: {
            cameraShakeStrength: number;
            cursorVisible: boolean;
            dampingFactor: number;
            movementSpeed: number;
            rotateSpeed: number;
            sceneController: string;
            unitSelection: boolean;
            vrController: string;
            zoomLevels: [number, number, number];
        }
        • cameraShakeStrength: number
        • @@ -85,6 +85,8 @@
          sceneController
          unitSelection: boolean
        • +
          vrController: string
        • +
        • zoomLevels: [number, number, number]
      • minimap: {
            drawCamera: boolean;
            enabled: boolean;
            interactive: boolean;
            mode: "2d" | "3d";
            opacity: number;
            position: [number, number];
            rotation: [number, number, number];
            scale: number;
            softEdges: boolean;
        }
        @@ -158,14 +160,14 @@
        sunlightIntensity
        toneMapping: number
    • -
      session: {
          audioListenerDistance: number;
          sandbox: boolean;
          type: "replay" | "live" | "map";
      }
      +
      session: {
          audioListenerDistance: number;
          sandbox: boolean;
          type: "replay" | "map";
      }
      • audioListenerDistance: number
      • sandbox: boolean
      • -
        type: "replay" | "live" | "map"
  • +
    type: "replay" | "map"
  • getValue: ((path) => unknown)
      @@ -190,7 +192,7 @@
      mergeParameters
      • -
        rhs: {
            audio?: {
                global?: number;
                music?: number;
                playIntroSounds?: boolean;
                sound?: number;
            };
            input?: {
                cameraShakeStrength?: number;
                cursorVisible?: boolean;
                dampingFactor?: number;
                movementSpeed?: number;
                rotateSpeed?: number;
                sceneController?: string;
                unitSelection?: boolean;
                zoomLevels?: [number?, number?, number?];
            };
            minimap?: {
                drawCamera?: boolean;
                enabled?: boolean;
                interactive?: boolean;
                mode?: "2d" | "3d";
                opacity?: number;
                position?: [number?, number?];
                rotation?: [number?, number?, number?];
                scale?: number;
                softEdges?: boolean;
            };
            postprocessing?: {
                anisotropy?: number;
                antialias?: number;
                bloom?: number;
                brightness?: number;
                contrast?: number;
                fogOfWar?: number;
            };
            postprocessing3d?: {
                anisotropy?: number;
                antialias?: number;
                bloom?: number;
                brightness?: number;
                contrast?: number;
                depthBlurQuality?: number;
                depthBokehScale?: number;
                depthFocalLength?: number;
                depthFocalRange?: number;
                envMap?: number;
                fogOfWar?: number;
                shadowQuality?: number;
                sunlightColor?: string;
                sunlightDirection?: [number?, number?, number?];
                sunlightIntensity?: number;
                toneMapping?: number;
            };
            session?: {
                audioListenerDistance?: number;
                sandbox?: boolean;
                type?: "replay" | "live" | "map";
            };
        }
        +
        rhs: {
            audio?: {
                global?: number;
                music?: number;
                playIntroSounds?: boolean;
                sound?: number;
            };
            input?: {
                cameraShakeStrength?: number;
                cursorVisible?: boolean;
                dampingFactor?: number;
                movementSpeed?: number;
                rotateSpeed?: number;
                sceneController?: string;
                unitSelection?: boolean;
                vrController?: string;
                zoomLevels?: [number?, number?, number?];
            };
            minimap?: {
                drawCamera?: boolean;
                enabled?: boolean;
                interactive?: boolean;
                mode?: "2d" | "3d";
                opacity?: number;
                position?: [number?, number?];
                rotation?: [number?, number?, number?];
                scale?: number;
                softEdges?: boolean;
            };
            postprocessing?: {
                anisotropy?: number;
                antialias?: number;
                bloom?: number;
                brightness?: number;
                contrast?: number;
                fogOfWar?: number;
            };
            postprocessing3d?: {
                anisotropy?: number;
                antialias?: number;
                bloom?: number;
                brightness?: number;
                contrast?: number;
                depthBlurQuality?: number;
                depthBokehScale?: number;
                depthFocalLength?: number;
                depthFocalRange?: number;
                envMap?: number;
                fogOfWar?: number;
                shadowQuality?: number;
                sunlightColor?: string;
                sunlightDirection?: [number?, number?, number?];
                sunlightIntensity?: number;
                toneMapping?: number;
            };
            session?: {
                audioListenerDistance?: number;
                sandbox?: boolean;
                type?: "replay" | "map";
            };
        }
        • Optional audio?: {
              global?: number;
              music?: number;
              playIntroSounds?: boolean;
              sound?: number;
          }
          @@ -204,7 +206,7 @@
          Optional
          Optional sound?: number
      • -
        Optional input?: {
            cameraShakeStrength?: number;
            cursorVisible?: boolean;
            dampingFactor?: number;
            movementSpeed?: number;
            rotateSpeed?: number;
            sceneController?: string;
            unitSelection?: boolean;
            zoomLevels?: [number?, number?, number?];
        }
        +
        Optional input?: {
            cameraShakeStrength?: number;
            cursorVisible?: boolean;
            dampingFactor?: number;
            movementSpeed?: number;
            rotateSpeed?: number;
            sceneController?: string;
            unitSelection?: boolean;
            vrController?: string;
            zoomLevels?: [number?, number?, number?];
        }
        • Optional cameraShakeStrength?: number
        • @@ -221,6 +223,8 @@
          Optional
          Optional unitSelection?: boolean
        • +
          Optional vrController?: string
        • +
        • Optional zoomLevels?: [number?, number?, number?]
      • Optional minimap?: {
            drawCamera?: boolean;
            enabled?: boolean;
            interactive?: boolean;
            mode?: "2d" | "3d";
            opacity?: number;
            position?: [number?, number?];
            rotation?: [number?, number?, number?];
            scale?: number;
            softEdges?: boolean;
        }
        @@ -294,21 +298,21 @@
        Optional
        Optional toneMapping?: number
    • -
      Optional session?: {
          audioListenerDistance?: number;
          sandbox?: boolean;
          type?: "replay" | "live" | "map";
      }
      +
      Optional session?: {
          audioListenerDistance?: number;
          sandbox?: boolean;
          type?: "replay" | "map";
      }
      • Optional audioListenerDistance?: number
      • Optional sandbox?: boolean
      • -
        Optional type?: "replay" | "live" | "map"
  • +
    Optional type?: "replay" | "map"

    Returns void

  • -
    operate: ((action, transformPath?) => void)
    +
    operate: ((action, transformPath?, silentUpdate?) => void)
      • -
      • (action, transformPath?): void
      • +
      • (action, transformPath?, silentUpdate?): void
      • Parameters

        @@ -327,14 +331,16 @@

        Parameters

        • path: string[]
        -

        Returns string[]

  • +

    Returns string[]

    +
  • +
    Optional silentUpdate: boolean
  • Returns void

  • -
    setValue: ((path, value) => void)
    +
    setValue: ((path, value, silentUpdate?) => void)
      • -
      • (path, value): void
      • +
      • (path, value, silentUpdate?): void
      • Parameters

        @@ -342,15 +348,17 @@

        Parameters

      • path: string[]
      • -
        value: unknown
      +
      value: unknown
    • +
    • +
      Optional silentUpdate: boolean

    Returns void

  • -
    sourceOfTruth: SourceOfTruth<{
        audio: {
            global: number;
            music: number;
            playIntroSounds: boolean;
            sound: number;
        };
        input: {
            cameraShakeStrength: number;
            cursorVisible: boolean;
            dampingFactor: number;
            movementSpeed: number;
            rotateSpeed: number;
            sceneController: string;
            unitSelection: boolean;
            zoomLevels: [number, number, number];
        };
        minimap: {
            drawCamera: boolean;
            enabled: boolean;
            interactive: boolean;
            mode: "2d" | "3d";
            opacity: number;
            position: [number, number];
            rotation: [number, number, number];
            scale: number;
            softEdges: boolean;
        };
        postprocessing: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            fogOfWar: number;
        };
        postprocessing3d: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            depthBlurQuality: number;
            depthBokehScale: number;
            depthFocalLength: number;
            depthFocalRange: number;
            envMap: number;
            fogOfWar: number;
            shadowQuality: number;
            sunlightColor: string;
            sunlightDirection: [number, number, number];
            sunlightIntensity: number;
            toneMapping: number;
        };
        session: {
            audioListenerDistance: number;
            sandbox: boolean;
            type: "replay" | "live" | "map";
        };
    }>
  • +
    sourceOfTruth: SourceOfTruth<{
        audio: {
            global: number;
            music: number;
            playIntroSounds: boolean;
            sound: number;
        };
        input: {
            cameraShakeStrength: number;
            cursorVisible: boolean;
            dampingFactor: number;
            movementSpeed: number;
            rotateSpeed: number;
            sceneController: string;
            unitSelection: boolean;
            vrController: string;
            zoomLevels: [number, number, number];
        };
        minimap: {
            drawCamera: boolean;
            enabled: boolean;
            interactive: boolean;
            mode: "2d" | "3d";
            opacity: number;
            position: [number, number];
            rotation: [number, number, number];
            scale: number;
            softEdges: boolean;
        };
        postprocessing: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            fogOfWar: number;
        };
        postprocessing3d: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            depthBlurQuality: number;
            depthBokehScale: number;
            depthFocalLength: number;
            depthFocalRange: number;
            envMap: number;
            fogOfWar: number;
            shadowQuality: number;
            sunlightColor: string;
            sunlightDirection: [number, number, number];
            sunlightIntensity: number;
            toneMapping: number;
        };
        session: {
            audioListenerDistance: number;
            sandbox: boolean;
            type: "replay" | "map";
        };
    }>
  • vars: SessionVariables
  • +
  • Defined in build/api-types/host/index.d.ts:2116
  • Generated using TypeDoc

    diff --git a/docs/host/functions/createSurfaceComposer.html b/docs/host/functions/createSurfaceComposer.html index efef5b7d..aac8d6eb 100644 --- a/docs/host/functions/createSurfaceComposer.html +++ b/docs/host/functions/createSurfaceComposer.html @@ -1,4 +1,4 @@ -createSurfaceComposer | titan-reactor-runtime/host
    +createSurfaceComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
      - +
    • Internal

      Parameters

      -

      Returns {
          api: {
              togglePointerLock: ((val) => void);
              isPointerLockLost() => boolean;
          };
          gameSurface: GameSurface;
          resize: ((immediate?) => void);
      }

      +
      map: Chk
    • +
    • +
      events: TypeEmitter<WorldEvents>
    +

    Returns {
        api: {
            surface: undefined | GameSurface;
        };
        gameSurface: GameSurface;
        resize: ((immediate?) => void);
        mount() => void;
    }

    • -
      api: {
          togglePointerLock: ((val) => void);
          isPointerLockLost() => boolean;
      }
      +
      api: {
          surface: undefined | GameSurface;
      }
      • -
        togglePointerLock: ((val) => void)
        -
          -
        • -
            -
          • (val): void
          • -
          • -
            -

            Parameters

            -
              -
            • -
              val: boolean
            -

            Returns void

      • -
      • -
        isPointerLockLost:function
        -
    • +
      Readonly surface: undefined | GameSurface
  • gameSurface: GameSurface
  • @@ -57,17 +40,25 @@
    resize
    • -
    • (immediate?): void
    • +
    • (immediate?): void
    • Parameters

      • Optional immediate: boolean
      -

      Returns void

  • +

    Returns void

    +
  • +
    mount:function
    +
  • +
  • Defined in build/api-types/host/index.d.ts:2712
  • Generated using TypeDoc

    diff --git a/docs/host/functions/createViewControllerComposer.html b/docs/host/functions/createViewControllerComposer.html index 691849ba..51dd745c 100644 --- a/docs/host/functions/createViewControllerComposer.html +++ b/docs/host/functions/createViewControllerComposer.html @@ -1,4 +1,4 @@ -createViewControllerComposer | titan-reactor-runtime/host
    +createViewControllerComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
      - +
    • Internal

      Parameters

      @@ -25,32 +25,13 @@

      Parameters

    • world: World
    • -
      __namedParameters: {
          api: {
              togglePointerLock: ((val) => void);
              isPointerLockLost() => boolean;
          };
          gameSurface: GameSurface;
          resize: ((immediate?) => void);
      }
      +
      __namedParameters: {
          api: {
              surface: undefined | GameSurface;
          };
          gameSurface: GameSurface;
          resize: ((immediate?) => void);
          mount() => void;
      }
      • -
        api: {
            togglePointerLock: ((val) => void);
            isPointerLockLost() => boolean;
        }
        +
        api: {
            surface: undefined | GameSurface;
        }
        • -
          togglePointerLock: ((val) => void)
          -
            -
          • -
              -
            • (val): void
            • -
            • -
              -

              Parameters

              -
                -
              • -
                val: boolean
              -

              Returns void

        • -
        • -
          isPointerLockLost:function
          -
      • +
        Readonly surface: undefined | GameSurface
    • gameSurface: GameSurface
    • @@ -65,26 +46,39 @@

      Parameters

      • Optional immediate: boolean
    -

    Returns void

    -

    Returns {
        api: {
            secondViewport: GameViewPort;
            viewport: GameViewPort;
        };
        aspect: number;
        numActiveViewports: number;
        primaryCamera: undefined | DirectionalCamera;
        primaryRenderMode3D: boolean;
        primaryViewport: undefined | GameViewPort;
        sceneController: null | SceneController;
        viewports: GameViewPort[];
        activate(newController, firstRunData?) => Promise<void>;
        activeViewports() => Generator<GameViewPort, void, unknown>;
        changeRenderMode(renderMode3D?) => void;
        deactivate() => void;
        doShakeCalculation(explosionType, damageType, spritePos) => void;
        generatePrevData() => null | {
            position: Vector3;
            target: Vector3;
        };
        update(delta) => void;
    }

    +

    Returns void

    +
  • +
    mount:function
    +
  • +
  • +
    initialStartLocation: Vector3
  • +

    Returns {
        api: {
            secondViewport: GameViewPort;
            viewport: GameViewPort;
            viewports: GameViewPort[];
        };
        aspect: number;
        primaryCamera: PerspectiveCamera | OrthographicCamera;
        primaryRenderMode3D: boolean;
        primaryViewport: GameViewPort;
        sceneController: null | SceneController;
        viewports: GameViewPort[];
        activate(newController) => Promise<void>;
        changeRenderMode(renderMode3D?) => void;
        deactivate() => void;
        doShakeCalculation(explosionType, damageType, spritePos) => void;
        generatePrevData() => {
            position: Vector3;
            target: Vector3;
        };
        update(delta) => void;
    }

  • -
    Readonly numActiveViewports: number
  • +
    aspect: number
  • -
    Readonly primaryCamera: undefined | DirectionalCamera
  • +
    Readonly primaryCamera: PerspectiveCamera | OrthographicCamera
  • Readonly primaryRenderMode3D: boolean
  • -
    Readonly primaryViewport: undefined | GameViewPort
  • +
    Readonly primaryViewport: GameViewPort
    +

    Primary viewport is necessary because audio will require a camera position, and depth of field will only apply in one viewport for performance.

    +
    +
  • Readonly sceneController: null | SceneController
  • @@ -92,26 +86,22 @@
    Readonly
    activate:function
      - +
    • +

      Activates a scene controller plugin. +Runs events on the previous scene controller if it exists. +Resets all viewports.

      +

      Parameters

      • -
        newController: undefined | null | SceneController
      • -
      • -
        Optional firstRunData: any
      -

      Returns Promise<void>

  • -
  • -
    activeViewports:function
    -
      - -
    • -

      Returns Generator<GameViewPort, void, unknown>

    +

    Returns Promise<void>

    +
  • +
  • Defined in build/api-types/host/index.d.ts:2682
  • changeRenderMode:function
      @@ -124,7 +114,7 @@

      Parameters

      Optional renderMode3D: boolean

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:2691
  • deactivate:function
  • +
  • Defined in build/api-types/host/index.d.ts:2672
  • doShakeCalculation:function

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:2696
  • generatePrevData:function
      - +
    • -

      Returns null | {
          position: Vector3;
          target: Vector3;
      }

  • +
  • Defined in build/api-types/host/index.d.ts:2692
  • update:function
      @@ -170,10 +165,10 @@

      Parameters

      delta: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:2670
  • +
  • Defined in build/api-types/host/index.d.ts:2664
  • Generated using TypeDoc

    diff --git a/docs/host/functions/deletedImageIterator.html b/docs/host/functions/deletedImageIterator.html new file mode 100644 index 00000000..d2f39b4a --- /dev/null +++ b/docs/host/functions/deletedImageIterator.html @@ -0,0 +1,73 @@ +deletedImageIterator | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Function deletedImageIterator

    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/functions/deletedSpritesIterator.html b/docs/host/functions/deletedSpritesIterator.html new file mode 100644 index 00000000..43daa301 --- /dev/null +++ b/docs/host/functions/deletedSpritesIterator.html @@ -0,0 +1,73 @@ +deletedSpritesIterator | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Function deletedSpritesIterator

    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/functions/destroyedUnitsIterator.html b/docs/host/functions/destroyedUnitsIterator.html new file mode 100644 index 00000000..4016ef44 --- /dev/null +++ b/docs/host/functions/destroyedUnitsIterator.html @@ -0,0 +1,73 @@ +destroyedUnitsIterator | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Function destroyedUnitsIterator

    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/functions/getTerrainY-1.html b/docs/host/functions/getTerrainY-1.html index ca7da12f..d58369b8 100644 --- a/docs/host/functions/getTerrainY-1.html +++ b/docs/host/functions/getTerrainY-1.html @@ -1,4 +1,4 @@ -getTerrainY | titan-reactor-runtime/host
    +getTerrainY | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -55,7 +55,7 @@
    worldY: Returns number
    +
  • Defined in build/api-types/host/index.d.ts:1866
  • Generated using TypeDoc

    diff --git a/docs/host/functions/initializeAssets.html b/docs/host/functions/initializeAssets.html index 39276779..60c79199 100644 --- a/docs/host/functions/initializeAssets.html +++ b/docs/host/functions/initializeAssets.html @@ -1,4 +1,4 @@ -initializeAssets | titan-reactor-runtime/host
    +initializeAssets | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
      - +
    • Internal -
      -

      Parameters

      -
        -
      • -
        directories: {
            assets: string;
            starcraft: string;
        }
        -
          -
        • -
          assets: string
        • -
        • -
          starcraft: string
      -

      Returns Promise<{
          arrowIconsGPU: LegacyGRP;
          atlases: {
              diffuse: CompressedTexture;
              frames: {
                  h: number;
                  w: number;
                  x: number;
                  xoff: number;
                  y: number;
                  yoff: number;
              }[];
              hdLayers: {
                  emissive: undefined | CompressedTexture;
              };
              imageIndex: number;
              isHD: boolean;
              isHD2: boolean;
              spriteHeight: number;
              spriteWidth: number;
              teammask: undefined | CompressedTexture;
              textureHeight: number;
              textureWidth: number;
              unitTileScale: UnitTileScale;
              uvPos: {
                  flippedPos: BufferAttribute;
                  flippedUv: BufferAttribute;
                  pos: BufferAttribute;
                  uv: BufferAttribute;
              }[];
              uvPosDataTex: DataArrayTexture;
              dispose() => void;
          }[];
          dragIconsGPU: LegacyGRP;
          hoverIconsGPU: LegacyGRP;
          minimapConsole: {
              clock: CompressedTexture;
              square: CompressedTexture;
          };
          refId: ((id) => number);
          remaining: number;
          resetAssetCache: (() => void);
          selectionCircles: {
              diffuse: CompressedTexture;
              frames: {
                  h: number;
                  w: number;
                  x: number;
                  xoff: number;
                  y: number;
                  yoff: number;
              }[];
              hdLayers: {
                  emissive: undefined | CompressedTexture;
              };
              imageIndex: number;
              isHD: boolean;
              isHD2: boolean;
              spriteHeight: number;
              spriteWidth: number;
              teammask: undefined | CompressedTexture;
              textureHeight: number;
              textureWidth: number;
              unitTileScale: UnitTileScale;
              uvPos: {
                  flippedPos: BufferAttribute;
                  flippedUv: BufferAttribute;
                  pos: BufferAttribute;
                  uv: BufferAttribute;
              }[];
              uvPosDataTex: DataArrayTexture;
              dispose() => void;
          }[];
          skyBox: CubeTexture;
          getImageAtlas(imageId) => undefined | {
              diffuse: CompressedTexture;
              frames: {
                  h: number;
                  w: number;
                  x: number;
                  xoff: number;
                  y: number;
                  yoff: number;
              }[];
              hdLayers: {
                  emissive: undefined | CompressedTexture;
              };
              imageIndex: number;
              isHD: boolean;
              isHD2: boolean;
              spriteHeight: number;
              spriteWidth: number;
              teammask: undefined | CompressedTexture;
              textureHeight: number;
              textureWidth: number;
              unitTileScale: UnitTileScale;
              uvPos: {
                  flippedPos: BufferAttribute;
                  flippedUv: BufferAttribute;
                  pos: BufferAttribute;
                  uv: BufferAttribute;
              }[];
              uvPosDataTex: DataArrayTexture;
              dispose() => void;
          };
          hasImageAtlas(imageId) => boolean;
          loadImageAtlas(imageId, bwDat) => undefined | {
              diffuse: CompressedTexture;
              frames: {
                  h: number;
                  w: number;
                  x: number;
                  xoff: number;
                  y: number;
                  yoff: number;
              }[];
              hdLayers: {
                  emissive: undefined | CompressedTexture;
              };
              imageIndex: number;
              isHD: boolean;
              isHD2: boolean;
              spriteHeight: number;
              spriteWidth: number;
              teammask: undefined | CompressedTexture;
              textureHeight: number;
              textureWidth: number;
              unitTileScale: UnitTileScale;
              uvPos: {
                  flippedPos: BufferAttribute;
                  flippedUv: BufferAttribute;
                  pos: BufferAttribute;
                  uv: BufferAttribute;
              }[];
              uvPosDataTex: DataArrayTexture;
              dispose() => void;
          };
          loadImageAtlasAsync(imageId, bwDat) => Promise<void>;
      }>

      +

      Returns Promise<{
          arrowIconsGPU: LegacyGRP;
          closeCascStorage: (() => Promise<void>);
          dragIconsGPU: LegacyGRP;
          hoverIconsGPU: LegacyGRP;
          loader: ImageLoaderManager;
          minimapConsole: {
              clock: CompressedTexture;
              square: CompressedTexture;
          };
          openCascStorage: ((url?) => Promise<boolean>);
          readCascFile: ((filepath) => Promise<Buffer>);
          refId: ((id) => number);
          resetImagesCache: (() => void);
          selectionCircles: {
              diffuse: CompressedTexture;
              frames: {
                  h: number;
                  w: number;
                  x: number;
                  xoff: number;
                  y: number;
                  yoff: number;
              }[];
              hdLayers: {
                  emissive: undefined | CompressedTexture;
              };
              imageIndex: number;
              isHD: boolean;
              isHD2: boolean;
              spriteHeight: number;
              spriteWidth: number;
              teammask: undefined | CompressedTexture;
              textureHeight: number;
              textureWidth: number;
              unitTileScale: UnitTileScale;
              uvPos: {
                  flippedPos: BufferAttribute;
                  flippedUv: BufferAttribute;
                  pos: BufferAttribute;
                  uv: BufferAttribute;
              }[];
              uvPosDataTex: DataArrayTexture;
              dispose() => void;
          }[];
          skyBox: CubeTexture;
      }>

    +
  • Defined in build/api-types/host/index.d.ts:686
  • Generated using TypeDoc

    diff --git a/docs/host/functions/isImage3d.html b/docs/host/functions/isImage3d.html index 97566556..76f4cd21 100644 --- a/docs/host/functions/isImage3d.html +++ b/docs/host/functions/isImage3d.html @@ -1,4 +1,4 @@ -isImage3d | titan-reactor-runtime/host
    +isImage3d | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -23,11 +23,11 @@

    Function isImage3d

    Parameters

    • -
      image: Object3D<Event>
    +
    image: Object3D<Object3DEventMap>

    Returns image is Image3D

    +
  • Defined in build/api-types/host/index.d.ts:1400
  • Generated using TypeDoc

    diff --git a/docs/host/functions/isImageHd.html b/docs/host/functions/isImageHd.html index 31baf974..96fc7015 100644 --- a/docs/host/functions/isImageHd.html +++ b/docs/host/functions/isImageHd.html @@ -1,4 +1,4 @@ -isImageHd | titan-reactor-runtime/host
    +isImageHd | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -23,11 +23,11 @@

    Function isImageHd

    Parameters

    • -
      image: Object3D<Event>
    +
    image: Object3D<Object3DEventMap>

    Returns image is ImageHD

    +
  • Defined in build/api-types/host/index.d.ts:1306
  • Generated using TypeDoc

    diff --git a/docs/host/functions/killedUnitIterator.html b/docs/host/functions/killedUnitIterator.html new file mode 100644 index 00000000..5a399d26 --- /dev/null +++ b/docs/host/functions/killedUnitIterator.html @@ -0,0 +1,73 @@ +killedUnitIterator | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Function killedUnitIterator

    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/functions/loadAnimAtlas.html b/docs/host/functions/loadAnimAtlas.html index c1b25024..b9daf308 100644 --- a/docs/host/functions/loadAnimAtlas.html +++ b/docs/host/functions/loadAnimAtlas.html @@ -1,4 +1,4 @@ -loadAnimAtlas | titan-reactor-runtime/host
    +loadAnimAtlas | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/index.html b/docs/host/index.html index a406b1c0..24636378 100644 --- a/docs/host/index.html +++ b/docs/host/index.html @@ -1,4 +1,4 @@ -titan-reactor-runtime/host
    +@titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    titan-reactor-runtime/host

    +

    @titan-reactor-runtime/host


    Titan Reactor

    An OpenBW 2.5D map and replay viewer.

    Written in TypeScript with Three.JS.
    +
    Visit www.blacksheepwall.tv for more

    @@ -29,7 +30,7 @@
    Written in TypeScript with Three.JS.

    - + YouTube Channel Subscribers

    @@ -41,30 +42,30 @@
    Written in TypeScript with Three.JS.

    -

    Roadmap

      -
    • Priority Roadmap
    • -
    • Long Term Roadmap
    • -
    • Changelog
    • +

      About

      This is Titan Reactor the WebGL renderer + plugin system. It consists of three primary parts in order to function:

      +
        +
      • Titan Reactor - main app that loads replays & maps and creates sessions for viewing. Can be served statically.
      • +
      • Cascbridge - an asset server that reads from your Starcraft install and serves it to Titan Reactor locally
      • +
      • UI Runtime - the part of the application the runs in the iframe for UI plugins. Can be served statically.
      • +
      • Plugins - the plugins that can be served statically.

      Requirements

      • A purchased copy of Starcraft Remastered.
      -

      Downloads

      Developing Plugins

      -

      Replay Data Privacy

      Replay data is not shared or transmitted by Titan Reactor. Plugins may only access your replay data by granting explicit permission.

      -

      Development Installation

      Code Architecture WIKI

      -

      _Using node 16, yarn 1.22, python 3.10.7 + VS (for node-gyp builds)

      +

      Development Installation / Quick Start

      Using node 18+, yarn 1.x

      +

      Clone this repo. The development branch is dev and main is used for releases.

      +

      In this repo:

      git lfs install

      git lfs fetch

      yarn install

      -

      and then

      -

      yarn dev or yarn dist

      +

      Now we want to run Titan Reactor, the ui runtime, the plugins, and cascbridge:

      +

      In your terminal run yarn web , in another terminal run yarn runtime, in the plugins repo npm run serve and run cascbridge.

      The OpenBW wasm files are included (via git lfs). If you wish to build them yourself visit the openbw fork repository.

      -

      Legal

      Titan Reactor is made available via the GPLv3 license. The documentation and functionality provided by Titan Reactor may only be utilized with assets provided by ownership of Starcraft. Starcraft® - Copyright © 1998 Blizzard Entertainment, Inc. All rights reserved. Starcraft and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries. Titan Reactor and any of its maintainers are in no way associated with or endorsed by Blizzard Entertainment®

      +

      Code Architecture WIKI

      +

      Legal

      The documentation and functionality provided by Titan Reactor may only be utilized with assets provided by ownership of Starcraft. Starcraft® - Copyright © 1998 Blizzard Entertainment, Inc. All rights reserved. Starcraft and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries. Titan Reactor and any of its maintainers are in no way associated with or endorsed by Blizzard Entertainment®

    Generated using TypeDoc

    diff --git a/docs/host/interfaces/BasePlayer.html b/docs/host/interfaces/BasePlayer.html index 257da1b9..d3328936 100644 --- a/docs/host/interfaces/BasePlayer.html +++ b/docs/host/interfaces/BasePlayer.html @@ -1,4 +1,4 @@ -BasePlayer | titan-reactor-runtime/host
    +BasePlayer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • BasePlayer
    +
  • Defined in build/api-types/host/index.d.ts:228
  • @@ -39,22 +39,22 @@

    Properties

    color: string
    +
  • Defined in build/api-types/host/index.d.ts:231
  • id: number
    +
  • Defined in build/api-types/host/index.d.ts:229
  • name: string
    +
  • Defined in build/api-types/host/index.d.ts:230
  • race: string
    +
  • Defined in build/api-types/host/index.d.ts:232
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/BwDAT.html b/docs/host/interfaces/BwDAT.html index 9ac731b9..c863395d 100644 --- a/docs/host/interfaces/BwDAT.html +++ b/docs/host/interfaces/BwDAT.html @@ -1,4 +1,4 @@ -BwDAT | titan-reactor-runtime/host
    +BwDAT | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • BwDAT
    +
  • Defined in build/api-types/host/index.d.ts:956
  • @@ -46,57 +46,57 @@

    Properties

    grps: GrpSprite[]
    +
  • Defined in build/api-types/host/index.d.ts:967
  • images: ImageDAT[]
    +
  • Defined in build/api-types/host/index.d.ts:963
  • +
  • Defined in build/api-types/host/index.d.ts:957
  • los: LoDAT[]
    +
  • Defined in build/api-types/host/index.d.ts:964
  • orders: OrderDAT[]
    +
  • Defined in build/api-types/host/index.d.ts:961
  • sounds: SoundDAT[]
    +
  • Defined in build/api-types/host/index.d.ts:958
  • sprites: SpriteDAT[]
    +
  • Defined in build/api-types/host/index.d.ts:965
  • tech: TechDataDAT[]
    +
  • Defined in build/api-types/host/index.d.ts:959
  • units: UnitDAT[]
    +
  • Defined in build/api-types/host/index.d.ts:962
  • upgrades: UpgradeDAT[]
    +
  • Defined in build/api-types/host/index.d.ts:960
  • weapons: WeaponDAT[]
    +
  • Defined in build/api-types/host/index.d.ts:966
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/EmscriptenHeap.html b/docs/host/interfaces/EmscriptenHeap.html index 6ac861c3..93e0ed17 100644 --- a/docs/host/interfaces/EmscriptenHeap.html +++ b/docs/host/interfaces/EmscriptenHeap.html @@ -1,4 +1,4 @@ -EmscriptenHeap | titan-reactor-runtime/host
    +EmscriptenHeap | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    +
  • Defined in build/api-types/host/index.d.ts:359
  • @@ -46,37 +46,37 @@

    Properties

    ALLOC_NORMAL: number
    +
  • Defined in build/api-types/host/index.d.ts:368
  • HEAP16: Int16Array
    +
  • Defined in build/api-types/host/index.d.ts:362
  • HEAP32: Int32Array
    +
  • Defined in build/api-types/host/index.d.ts:364
  • HEAP8: Int8Array
    +
  • Defined in build/api-types/host/index.d.ts:360
  • HEAPU16: Uint16Array
    +
  • Defined in build/api-types/host/index.d.ts:363
  • HEAPU32: Uint32Array
    +
  • Defined in build/api-types/host/index.d.ts:365
  • HEAPU8: Uint8Array
    +
  • Defined in build/api-types/host/index.d.ts:361
  • _free: ((buffer) => void)
    @@ -94,7 +94,7 @@

    Parameters

    buffer: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:367
  • allocate: ((buffer, flags) => number)
    @@ -114,7 +114,7 @@
    buffer: flags: number

    Returns number

    +
  • Defined in build/api-types/host/index.d.ts:366
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/EmscriptenPreamble.html b/docs/host/interfaces/EmscriptenPreamble.html index 9c41d23e..cd273014 100644 --- a/docs/host/interfaces/EmscriptenPreamble.html +++ b/docs/host/interfaces/EmscriptenPreamble.html @@ -1,4 +1,4 @@ -EmscriptenPreamble | titan-reactor-runtime/host
    +EmscriptenPreamble | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -24,7 +24,7 @@

    Hierarchy

    +
  • Defined in build/api-types/host/index.d.ts:333
  • @@ -68,43 +68,43 @@
    +
  • Defined in build/api-types/host/index.d.ts:368
  • HEAP16: Int16Array
    +
  • Defined in build/api-types/host/index.d.ts:362
  • HEAP32: Int32Array
    +
  • Defined in build/api-types/host/index.d.ts:364
  • HEAP8: Int8Array
    +
  • Defined in build/api-types/host/index.d.ts:360
  • HEAPU16: Uint16Array
    +
  • Defined in build/api-types/host/index.d.ts:363
  • HEAPU32: Uint32Array
    +
  • Defined in build/api-types/host/index.d.ts:365
  • HEAPU8: Uint8Array
    +
  • Defined in build/api-types/host/index.d.ts:361
  • UTF8ToString: ((ptr) => undefined | string)
    @@ -122,7 +122,7 @@

    Parameters

    ptr: number

    Returns undefined | string

    +
  • Defined in build/api-types/host/index.d.ts:334
  • _free: ((buffer) => void)
    @@ -141,7 +141,7 @@
    buffer: Returns void
    +
  • Defined in build/api-types/host/index.d.ts:367
  • allocate: ((buffer, flags) => number)
    @@ -162,7 +162,7 @@
    flags: Returns number
    +
  • Defined in build/api-types/host/index.d.ts:366
  • Methods

    @@ -177,7 +177,7 @@

    Parameters

    ptr: number

    Returns undefined | string

    +
  • Defined in build/api-types/host/index.d.ts:340
    • @@ -190,7 +190,7 @@

      Parameters

      ptr: number

    Returns undefined | string

    +
  • Defined in build/api-types/host/index.d.ts:336
    • @@ -203,7 +203,7 @@

      Parameters

      ptr: number

    Returns undefined | string

    +
  • Defined in build/api-types/host/index.d.ts:338
    • @@ -227,7 +227,7 @@
      Optional async: boolean

    Returns unknown

    +
  • Defined in build/api-types/host/index.d.ts:345
    • @@ -249,7 +249,7 @@
      Optional async: boolean

    Returns unknown

    +
  • Defined in build/api-types/host/index.d.ts:348
  • Returns number

    +
  • Defined in build/api-types/host/index.d.ts:352
    • @@ -281,7 +281,7 @@
      dontAddNull: length: number

    Returns number[]

    +
  • Defined in build/api-types/host/index.d.ts:341
    • @@ -294,7 +294,7 @@

      Parameters

      array: number[]

    Returns string

    +
  • Defined in build/api-types/host/index.d.ts:342
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:351
  • +
  • Defined in build/api-types/host/index.d.ts:353
    • @@ -336,7 +336,7 @@
      outPtr: maxBytesToWrite: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:337
    • @@ -353,7 +353,7 @@
      outPtr: maxBytesToWrite: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:339
    • @@ -370,7 +370,7 @@
      outPtr: maxBytesToWrite: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:335
    • @@ -385,7 +385,7 @@
      array: buffer: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:343
    • @@ -402,7 +402,7 @@
      buffer: dontAddNull: boolean

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:344
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/FieldDefinition.html b/docs/host/interfaces/FieldDefinition.html index ae6f45a0..1563f540 100644 --- a/docs/host/interfaces/FieldDefinition.html +++ b/docs/host/interfaces/FieldDefinition.html @@ -1,4 +1,4 @@ -FieldDefinition | titan-reactor-runtime/host
    +FieldDefinition | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -25,7 +25,7 @@

    Hierarchy

    • FieldDefinition
    +
  • Defined in build/api-types/host/index.d.ts:87
  • @@ -49,22 +49,22 @@

    Properties

    folder?: string
    +
  • Defined in build/api-types/host/index.d.ts:93
  • label?: string
    +
  • Defined in build/api-types/host/index.d.ts:94
  • max?: number
    +
  • Defined in build/api-types/host/index.d.ts:98
  • min?: number
    +
  • Defined in build/api-types/host/index.d.ts:97
  • onChange?: ((value, path, context) => void)
    @@ -86,17 +86,17 @@
    path: context: any

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:92
  • options?: string[] | Record<string, string>
    +
  • Defined in build/api-types/host/index.d.ts:99
  • step?: number
    +
  • Defined in build/api-types/host/index.d.ts:96
  • type?: string
    @@ -104,12 +104,12 @@
    +
  • Defined in build/api-types/host/index.d.ts:91
  • value: T
    +
  • Defined in build/api-types/host/index.d.ts:95
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/FlingyDAT.html b/docs/host/interfaces/FlingyDAT.html index cac67bca..d66ea70c 100644 --- a/docs/host/interfaces/FlingyDAT.html +++ b/docs/host/interfaces/FlingyDAT.html @@ -1,4 +1,4 @@ -FlingyDAT | titan-reactor-runtime/host
    +FlingyDAT | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • FlingyDAT
    +
  • Defined in build/api-types/host/index.d.ts:1228
  • @@ -40,27 +40,27 @@

    Properties

    acceleration: number
    +
  • Defined in build/api-types/host/index.d.ts:1231
  • haltDistance: number
    +
  • Defined in build/api-types/host/index.d.ts:1232
  • speed: number
    +
  • Defined in build/api-types/host/index.d.ts:1230
  • sprite: SpriteDAT
    +
  • Defined in build/api-types/host/index.d.ts:1229
  • turnRadius: number
    +
  • Defined in build/api-types/host/index.d.ts:1233
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/FlingyStruct.html b/docs/host/interfaces/FlingyStruct.html index 1c904c3b..53564731 100644 --- a/docs/host/interfaces/FlingyStruct.html +++ b/docs/host/interfaces/FlingyStruct.html @@ -1,4 +1,4 @@ -FlingyStruct | titan-reactor-runtime/host
    +FlingyStruct | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Properties

    +
    + +
    currentSpeed: number
    +
    + +
    currentVelocityDirection: number
    direction: number
    +
  • Defined in build/api-types/host/index.d.ts:1685
  • hp: number
    +
  • Defined in build/api-types/host/index.d.ts:615
  • moveTargetX: number
    +
  • Defined in build/api-types/host/index.d.ts:1687
  • moveTargetY: number
    +
  • Defined in build/api-types/host/index.d.ts:1688
  • movementFlags: number
    +
  • Defined in build/api-types/host/index.d.ts:1693
  • nextMovementWaypointX: number
    +
  • Defined in build/api-types/host/index.d.ts:1689
  • nextMovementWaypointY: number
    +
  • Defined in build/api-types/host/index.d.ts:1690
  • nextTargetWaypointX: number
    +
  • Defined in build/api-types/host/index.d.ts:1691
  • nextTargetWaypointY: number
    +
  • Defined in build/api-types/host/index.d.ts:1692
  • +
    + +
    spriteAddr: number
    spriteIndex: number
    +
  • Defined in build/api-types/host/index.d.ts:619
  • x: number
    +
  • Defined in build/api-types/host/index.d.ts:1683
  • y: number
    +
  • Defined in build/api-types/host/index.d.ts:1684
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -86,133 +87,103 @@

    Properties

    assets: Assets
    -
    - -
    followedUnits: Readonly<{
        clear() => void;
        getCentralPosition() => undefined | null | Vector3;
        getUnits() => Unit[];
        hasUnits() => boolean;
        setUnits(units) => void;
    }>
    +
  • Defined in build/api-types/host/index.d.ts:112
  • +
    + +
    createUnitQuadTree: ((size) => SimpleQuadtree<UnitStruct>)

    Type declaration

    +

    Returns SimpleQuadtree<UnitStruct>

    +
    + +
    delta: number
    +
    + +
    elapsed: number
    +
    + +
    followedUnits: IterableSet<Unit>
    -
    - -
    gameSpeed: number
    +
    + +
    frame: number
    -
    - -
    getMouseMinimapUV: (() => undefined | Vector2)
    +
  • Defined in build/api-types/host/index.d.ts:3033
  • +
    + +
    getCommands: (() => CommandsStream)

    Type declaration

      • -
      • (): undefined | Vector2
      • +
      • (): CommandsStream
      • -

        Returns undefined | Vector2

    -
    - -
    getPlayerColor: ((id) => Color)
    +
  • Defined in build/api-types/host/index.d.ts:111
  • +
    + +
    getFollowedUnitsCenterPosition: (() => any)

    Type declaration

      • -
      • (id): Color
      • +
      • (): any
      • -
        -

        Parameters

        -
          -
        • -
          id: number
        -

        Returns Color

    -
    - -
    getPlayers: (() => {
        color: string;
        id: number;
        name: string;
        race: string;
    }[])
    +
  • Defined in build/api-types/host/index.d.ts:665
  • +
    + +
    getMouseMinimapUV: (() => any)

    Type declaration

      • -
      • (): {
            color: string;
            id: number;
            name: string;
            race: string;
        }[]
      • +
      • (): any
      • -

        Returns {
            color: string;
            id: number;
            name: string;
            race: string;
        }[]

    -
    - -
    gotoFrame: ((frame) => void)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (frame): void
      • -
      • -
        -

        Parameters

        -
          -
        • -
          frame: number
        -

        Returns void

    +
    + +
    imageQuadtree: SimpleQuadtree<ImageBase>
    +
  • Defined in build/api-types/host/index.d.ts:659
  • +
    + +
    initialStartLocation: Vector3
    isMouseInsideMinimap: (() => boolean)
    @@ -226,24 +197,270 @@

    Type declaration

    Returns boolean

    +
  • Defined in build/api-types/host/index.d.ts:129
  • -
    map: default
    +
  • Defined in build/api-types/host/index.d.ts:109
  • mouse: Pick<MouseInput, "mouseScrollY" | "screenDrag" | "lookAt" | "move" | "modifiers" | "clientX" | "clientY" | "clicked">
    +
  • Defined in build/api-types/host/index.d.ts:170
  • +
    + +
    openBW: {
        gameSpeed: number;
        gotoFrame: ((frame) => void);
        iterators: OpenBWIterators;
        mapTiles: SimpleBufferView<Uint8Array>;
        skipBackward: ((gameSeconds?) => number);
        skipForward: ((gameSeconds?) => number);
        speedDown: (() => number);
        speedUp: (() => number);
        togglePause: ((setPaused?) => boolean);
        getOriginal() => OpenBW;
        setGameSpeed(value) => void;
    }
    +
    +

    Type declaration

    +
      +
    • +
      Readonly gameSpeed: number
    • +
    • +
      gotoFrame: ((frame) => void)
      +
        +
      • +
          +
        • (frame): void
        • +
        • +
          +

          Parameters

          +
            +
          • +
            frame: number
          +

          Returns void

    • +
    • +
      Readonly iterators: OpenBWIterators
    • +
    • +
      Readonly mapTiles: SimpleBufferView<Uint8Array>
    • +
    • +
      skipBackward: ((gameSeconds?) => number)
      +
        +
      • +
          +
        • (gameSeconds?): number
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Optional gameSeconds: number
          +

          Returns number

    • +
    • +
      skipForward: ((gameSeconds?) => number)
      +
        +
      • +
          +
        • (gameSeconds?): number
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Optional gameSeconds: number
          +

          Returns number

    • +
    • +
      speedDown: (() => number)
      +
        +
      • +
          +
        • (): number
        • +
        • +

          Returns number

    • +
    • +
      speedUp: (() => number)
      +
        +
      • +
          +
        • (): number
        • +
        • +

          Returns number

    • +
    • +
      togglePause: ((setPaused?) => boolean)
      +
        +
      • +
          +
        • (setPaused?): boolean
        • +
        • +
          +

          Parameters

          +
            +
          • +
            Optional setPaused: boolean
          +

          Returns boolean

    • +
    • +
      getOriginal:function
      +
    • +
    • +
      setGameSpeed:function
      +
        + +
      • +

        Sets the game speed clamped to REPLAY_MIN_SPEED and REPLAY_MAX_SPEED

        +
        +
        +

        Parameters

        +
          +
        • +
          value: number
        +

        Returns void

        +
    +
    + +
    players: Players
    pxToWorld: PxToWorld
    +
  • Defined in build/api-types/host/index.d.ts:656
  • +
    + +
    pxToWorldFlat: PxToWorld
    +
    + +
    replay?: {
        chk: any;
        header: {
            ancillary: {
                activePlayerCount: number;
                alliesEnabled: number;
                campaignId: number;
                cheatsEnabled: number;
                commandByte: number;
                computerPlayerCount: number;
                createInitialUnits: number;
                fogOfWarEnabled: number;
                gameFlags: number;
                gameSpeed: number;
                gameState: number;
                mapHeight: number;
                mapWidth: number;
                playerBytes: Buffer;
                playerName: Buffer;
                replayAutoSave: number;
                resourceType: number;
                restrictionFlags: number;
                slotCount: number;
                startingGas: number;
                startingMinerals: number;
                teamsEnabled: number;
                tileset: number;
                tournamentMode: number;
                unk1: number;
                unk2: number;
                unk3: number;
                unk4: number;
                unk5: number;
                unk6: number;
                unk7: number;
                useFixedPositions: number;
                useStandardUnitStats: number;
                victoryCondition: number;
                victoryConditionValue: number;
            };
            frameCount: number;
            gameName: string;
            gameSubtype: number;
            gameType: number;
            isBroodwar: number;
            mapName: string;
            players: ReplayPlayer[];
            randomSeed: number;
        };
        limits: {
            bullets: number;
            fogSprites: number;
            images: number;
            orders: number;
            sprites: number;
            thingies: number;
            units: number;
        };
        rawCmds: any;
        rawHeader: any;
        stormPlayerToGamePlayer: number[];
        version: number;
    }
    +
    +

    Type declaration

    +
      +
    • +
      chk: any
    • +
    • +
      header: {
          ancillary: {
              activePlayerCount: number;
              alliesEnabled: number;
              campaignId: number;
              cheatsEnabled: number;
              commandByte: number;
              computerPlayerCount: number;
              createInitialUnits: number;
              fogOfWarEnabled: number;
              gameFlags: number;
              gameSpeed: number;
              gameState: number;
              mapHeight: number;
              mapWidth: number;
              playerBytes: Buffer;
              playerName: Buffer;
              replayAutoSave: number;
              resourceType: number;
              restrictionFlags: number;
              slotCount: number;
              startingGas: number;
              startingMinerals: number;
              teamsEnabled: number;
              tileset: number;
              tournamentMode: number;
              unk1: number;
              unk2: number;
              unk3: number;
              unk4: number;
              unk5: number;
              unk6: number;
              unk7: number;
              useFixedPositions: number;
              useStandardUnitStats: number;
              victoryCondition: number;
              victoryConditionValue: number;
          };
          frameCount: number;
          gameName: string;
          gameSubtype: number;
          gameType: number;
          isBroodwar: number;
          mapName: string;
          players: ReplayPlayer[];
          randomSeed: number;
      }
      +
        +
      • +
        ancillary: {
            activePlayerCount: number;
            alliesEnabled: number;
            campaignId: number;
            cheatsEnabled: number;
            commandByte: number;
            computerPlayerCount: number;
            createInitialUnits: number;
            fogOfWarEnabled: number;
            gameFlags: number;
            gameSpeed: number;
            gameState: number;
            mapHeight: number;
            mapWidth: number;
            playerBytes: Buffer;
            playerName: Buffer;
            replayAutoSave: number;
            resourceType: number;
            restrictionFlags: number;
            slotCount: number;
            startingGas: number;
            startingMinerals: number;
            teamsEnabled: number;
            tileset: number;
            tournamentMode: number;
            unk1: number;
            unk2: number;
            unk3: number;
            unk4: number;
            unk5: number;
            unk6: number;
            unk7: number;
            useFixedPositions: number;
            useStandardUnitStats: number;
            victoryCondition: number;
            victoryConditionValue: number;
        }
        +
          +
        • +
          activePlayerCount: number
        • +
        • +
          alliesEnabled: number
        • +
        • +
          campaignId: number
        • +
        • +
          cheatsEnabled: number
        • +
        • +
          commandByte: number
        • +
        • +
          computerPlayerCount: number
        • +
        • +
          createInitialUnits: number
        • +
        • +
          fogOfWarEnabled: number
        • +
        • +
          gameFlags: number
        • +
        • +
          gameSpeed: number
        • +
        • +
          gameState: number
        • +
        • +
          mapHeight: number
        • +
        • +
          mapWidth: number
        • +
        • +
          playerBytes: Buffer
        • +
        • +
          playerName: Buffer
        • +
        • +
          replayAutoSave: number
        • +
        • +
          resourceType: number
        • +
        • +
          restrictionFlags: number
        • +
        • +
          slotCount: number
        • +
        • +
          startingGas: number
        • +
        • +
          startingMinerals: number
        • +
        • +
          teamsEnabled: number
        • +
        • +
          tileset: number
        • +
        • +
          tournamentMode: number
        • +
        • +
          unk1: number
        • +
        • +
          unk2: number
        • +
        • +
          unk3: number
        • +
        • +
          unk4: number
        • +
        • +
          unk5: number
        • +
        • +
          unk6: number
        • +
        • +
          unk7: number
        • +
        • +
          useFixedPositions: number
        • +
        • +
          useStandardUnitStats: number
        • +
        • +
          victoryCondition: number
        • +
        • +
          victoryConditionValue: number
      • +
      • +
        frameCount: number
      • +
      • +
        gameName: string
      • +
      • +
        gameSubtype: number
      • +
      • +
        gameType: number
      • +
      • +
        isBroodwar: number
      • +
      • +
        mapName: string
      • +
      • +
        players: ReplayPlayer[]
      • +
      • +
        randomSeed: number
    • +
    • +
      limits: {
          bullets: number;
          fogSprites: number;
          images: number;
          orders: number;
          sprites: number;
          thingies: number;
          units: number;
      }
      +
        +
      • +
        bullets: number
      • +
      • +
        fogSprites: number
      • +
      • +
        images: number
      • +
      • +
        orders: number
      • +
      • +
        sprites: number
      • +
      • +
        thingies: number
      • +
      • +
        units: number
    • +
    • +
      rawCmds: any
    • +
    • +
      rawHeader: any
    • +
    • +
      stormPlayerToGamePlayer: number[]
    • +
    • +
      version: number
    sandboxApi: {
        useWorldCoordinates: boolean;
        createUnit(unitTypeId, playerId, x, y) => null | UnitsBufferView;
        killUnit(unitOrId) => undefined | number;
        orderUnitAttackMove(unitOrId, targetUnitOrId?, x?, y?) => void;
        orderUnitAttackUnit(unitOrId, targetUnitOrId, x?, y?) => void;
        orderUnitBuild(unitOrId, unitType, x, y) => void;
        orderUnitMove(unitOrId, x?, y?) => void;
        orderUnitRightClick(unitOrId, targetUnitOrId, x?, y?) => void;
        orderUnitTrain(unitOrId, unitType) => void;
        removeUnit(unitOrId) => void;
    }
    @@ -255,7 +472,7 @@
    useWorldCoordinates
    createUnit:function
      - +
    • Parameters

      @@ -270,11 +487,11 @@
      x:
      y: number

    Returns null | UnitsBufferView

    +
  • Defined in build/api-types/host/index.d.ts:3070
  • killUnit:function
      - +
    • Parameters

      @@ -283,11 +500,11 @@

      Parameters

      unitOrId: number | UnitStruct

    Returns undefined | number

  • +
  • Defined in build/api-types/host/index.d.ts:3071
  • orderUnitAttackMove:function
      - +
    • Parameters

      @@ -302,11 +519,11 @@
      Optional Optional y: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3073
  • orderUnitAttackUnit:function
      - +
    • Parameters

      @@ -321,11 +538,11 @@
      Optional Optional y: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3074
  • orderUnitBuild:function
      - +
    • Parameters

      @@ -340,11 +557,11 @@
      x:
      y: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3076
  • orderUnitMove:function
      - +
    • Parameters

      @@ -357,11 +574,11 @@
      Optional Optional y: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3075
  • orderUnitRightClick:function
      - +
    • Parameters

      @@ -376,11 +593,11 @@
      Optional Optional y: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3078
  • orderUnitTrain:function
      - +
    • Parameters

      @@ -391,11 +608,11 @@
      unitOrId: unitType: number

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:3077
  • removeUnit:function
      - +
    • Parameters

      @@ -404,177 +621,63 @@

      Parameters

      unitOrId: number | UnitStruct

    Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:114
  • scene: BaseScene
    +
  • Defined in build/api-types/host/index.d.ts:661
  • secondViewport: GameViewPort
    +
  • Defined in build/api-types/host/index.d.ts:2667
  • -
    selectedUnits: Readonly<{
        clear() => void;
        getUnits() => Unit[];
        hasUnits() => boolean;
        setUnits(units) => void;
    }>
    -
    -

    Type declaration

    -
    -
    - -
    skipBackward: ((gameSeconds?) => number)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (gameSeconds?): number
      • -
      • -
        -

        Parameters

        -
          -
        • -
          Optional gameSeconds: number
        -

        Returns number

    -
    - -
    skipForward: ((gameSeconds?) => number)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (gameSeconds?): number
      • -
      • -
        -

        Parameters

        -
          -
        • -
          Optional gameSeconds: number
        -

        Returns number

    -
    - -
    speedDown: (() => number)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): number
      • -
      • -

        Returns number

    -
    - -
    speedUp: (() => number)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): number
      • -
      • -

        Returns number

    -
    - -
    togglePause: ((setPaused?) => boolean)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (setPaused?): boolean
      • -
      • -
        -

        Parameters

        -
          -
        • -
          Optional setPaused: boolean
        -

        Returns boolean

    -
    - -
    togglePointerLock: ((val) => void)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (val): void
      • -
      • -
        -

        Parameters

        -
          -
        • -
          val: boolean
        -

        Returns void

    +
  • Defined in build/api-types/host/index.d.ts:666
  • +
    + +
    startLocations: Vector3[]
    +
    + +
    surface: undefined | GameSurface
    +
    + +
    unitQuadtree: SimpleQuadtree<UnitStruct>
    +
    + +
    units: IterableMap<number, Unit>
    viewport: GameViewPort
    +
  • Defined in build/api-types/host/index.d.ts:2666
  • +
    + +
    viewports: GameViewPort[]

    Methods

    @@ -590,7 +693,7 @@
    Optional Returns void
    +
  • Defined in build/api-types/host/index.d.ts:2968
  • -
    - -
    +
  • Defined in build/api-types/host/index.d.ts:113
  • -
    - -
    -
    - -
    -
    - -
    +
  • Defined in build/api-types/host/index.d.ts:169
  • +
  • Defined in build/api-types/host/index.d.ts:3034
  • -
    - -
    -
    - -
      - -
    • -
      -

      Parameters

      -
        -
      • -
        colors: string[]
      -

      Returns void

    -
    - -
    +
  • Defined in build/api-types/host/index.d.ts:115
    • @@ -726,7 +751,7 @@

      Parameters

      message: string

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:116
  • +
  • Defined in build/api-types/host/index.d.ts:655
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/GltfAtlas.html b/docs/host/interfaces/GltfAtlas.html index b9d1fdf6..56086fd2 100644 --- a/docs/host/interfaces/GltfAtlas.html +++ b/docs/host/interfaces/GltfAtlas.html @@ -1,4 +1,4 @@ -GltfAtlas | titan-reactor-runtime/host
    +GltfAtlas | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    • GltfAtlas
    +
  • Defined in build/api-types/host/index.d.ts:1447
  • @@ -60,18 +60,18 @@

    Properties

    animations: AnimationClip[]
    +
  • Defined in build/api-types/host/index.d.ts:1451
  • diffuse: CompressedTexture
    +
  • Defined in build/api-types/host/index.d.ts:814
  • fixedFrames: number[]
    +
  • Defined in build/api-types/host/index.d.ts:1452
  • frames: {
        h: number;
        w: number;
        x: number;
        xoff: number;
        y: number;
        yoff: number;
    }[]
    @@ -92,7 +92,7 @@
    y:
    yoff: number
    +
  • Defined in build/api-types/host/index.d.ts:816
  • hdLayers: {
        emissive: undefined | CompressedTexture;
    }
    @@ -103,76 +103,76 @@

    Type declaration

    emissive: undefined | CompressedTexture
    +
  • Defined in build/api-types/host/index.d.ts:837
  • imageIndex: number
    +
  • Defined in build/api-types/host/index.d.ts:815
  • isGLTF: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1448
  • isHD: boolean
    +
  • Defined in build/api-types/host/index.d.ts:812
  • isHD2: boolean
    +
  • Defined in build/api-types/host/index.d.ts:813
  • -
    mesh: Mesh<BufferGeometry, MeshStandardMaterial> | SkinnedMesh<BufferGeometry, MeshStandardMaterial>
    +
  • Defined in build/api-types/host/index.d.ts:1450
  • -
    model: Object3D<Event>
    +
  • Defined in build/api-types/host/index.d.ts:1449
  • spriteHeight: number
    +
  • Defined in build/api-types/host/index.d.ts:834
  • spriteWidth: number
    +
  • Defined in build/api-types/host/index.d.ts:833
  • teammask: undefined | CompressedTexture
    +
  • Defined in build/api-types/host/index.d.ts:836
  • textureHeight: number
    +
  • Defined in build/api-types/host/index.d.ts:832
  • textureWidth: number
    +
  • Defined in build/api-types/host/index.d.ts:831
  • unitTileScale: UnitTileScale
    +
  • Defined in build/api-types/host/index.d.ts:835
  • uvPos: {
        flippedPos: BufferAttribute;
        flippedUv: BufferAttribute;
        pos: BufferAttribute;
        uv: BufferAttribute;
    }[]
    @@ -189,13 +189,13 @@
    posuv: BufferAttribute
    +
  • Defined in build/api-types/host/index.d.ts:824
  • uvPosDataTex: DataArrayTexture
    +
  • Defined in build/api-types/host/index.d.ts:830
  • Methods

    @@ -206,7 +206,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:840
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/IScriptDATType.html b/docs/host/interfaces/IScriptDATType.html index 0a8a329c..b243d07b 100644 --- a/docs/host/interfaces/IScriptDATType.html +++ b/docs/host/interfaces/IScriptDATType.html @@ -1,4 +1,4 @@ -IScriptDATType | titan-reactor-runtime/host
    +IScriptDATType | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • IScriptDATType
    +
  • Defined in build/api-types/host/index.d.ts:973
  • @@ -37,12 +37,12 @@

    Properties

    animations: Record<number, IScriptAnimation>
    +
  • Defined in build/api-types/host/index.d.ts:975
  • iscripts: Record<number, IScriptProgram>
    +
  • Defined in build/api-types/host/index.d.ts:974
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/IScriptProgram.html b/docs/host/interfaces/IScriptProgram.html index e05fa4ce..5618dce5 100644 --- a/docs/host/interfaces/IScriptProgram.html +++ b/docs/host/interfaces/IScriptProgram.html @@ -1,4 +1,4 @@ -IScriptProgram | titan-reactor-runtime/host
    +IScriptProgram | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • IScriptProgram
    +
  • Defined in build/api-types/host/index.d.ts:981
  • @@ -39,22 +39,22 @@

    Properties

    id: number
    +
  • Defined in build/api-types/host/index.d.ts:982
  • offset: number
    +
  • Defined in build/api-types/host/index.d.ts:984
  • offsets: number[]
    +
  • Defined in build/api-types/host/index.d.ts:985
  • type: number
    +
  • Defined in build/api-types/host/index.d.ts:983
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/IScriptStateStruct.html b/docs/host/interfaces/IScriptStateStruct.html index 9cb5d12e..b6d4b170 100644 --- a/docs/host/interfaces/IScriptStateStruct.html +++ b/docs/host/interfaces/IScriptStateStruct.html @@ -1,4 +1,4 @@ -IScriptStateStruct | titan-reactor-runtime/host
    +IScriptStateStruct | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -24,7 +24,7 @@

    Implemented by

    +
  • Defined in build/api-types/host/index.d.ts:2065
  • @@ -43,22 +43,22 @@

    Properties

    animation: number
    +
  • Defined in build/api-types/host/index.d.ts:2068
  • programCounter: number
    +
  • Defined in build/api-types/host/index.d.ts:2066
  • returnAddress: number
    +
  • Defined in build/api-types/host/index.d.ts:2067
  • wait: number
    +
  • Defined in build/api-types/host/index.d.ts:2069
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/ImageBase.html b/docs/host/interfaces/ImageBase.html index b2842900..e2aeacc0 100644 --- a/docs/host/interfaces/ImageBase.html +++ b/docs/host/interfaces/ImageBase.html @@ -1,4 +1,4 @@ -ImageBase | titan-reactor-runtime/host
    +ImageBase | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -27,7 +27,7 @@

    Implemented by

  • Image3D
  • ImageHD
  • +
  • Defined in build/api-types/host/index.d.ts:1287
  • @@ -134,7 +134,7 @@

    Properties

    _zOff: number
    +
  • Defined in build/api-types/host/index.d.ts:1293
  • animations: AnimationClip[]
    @@ -145,7 +145,7 @@

    Default Value

    []

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:204
  • atlas?: {
        diffuse: CompressedTexture;
        frames: {
            h: number;
            w: number;
            x: number;
            xoff: number;
            y: number;
            yoff: number;
        }[];
        hdLayers: {
            emissive: undefined | CompressedTexture;
        };
        imageIndex: number;
        isHD: boolean;
        isHD2: boolean;
        spriteHeight: number;
        spriteWidth: number;
        teammask: undefined | CompressedTexture;
        textureHeight: number;
        textureWidth: number;
        unitTileScale: UnitTileScale;
        uvPos: {
            flippedPos: BufferAttribute;
            flippedUv: BufferAttribute;
            pos: BufferAttribute;
            uv: BufferAttribute;
        }[];
        uvPosDataTex: DataArrayTexture;
        dispose() => void;
    }
    @@ -190,9 +190,9 @@
    dispose

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1288
  • castShadow: boolean
    @@ -203,10 +203,10 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:176
  • -
    children: Object3D<Event>[]
    +
    children: Object3D<Object3DEventMap>[]

    Array with object's children.

    @@ -216,7 +216,7 @@

    Default Value

    []

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:83
  • customDepthMaterial?: Material
    @@ -229,7 +229,7 @@

    Default Value

    undefined

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:220
  • customDistanceMaterial?: Material
    @@ -240,17 +240,17 @@

    Default Value

    undefined

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:226
  • +
  • Defined in build/api-types/host/index.d.ts:1292
  • frame: number
    +
  • Defined in build/api-types/host/index.d.ts:1294
  • frustumCulled: boolean
    @@ -262,7 +262,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:189
  • id: number
    @@ -273,22 +273,22 @@

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, .

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:47
  • isImage3d: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1290
  • isImageHd: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1289
  • isInstanced?: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1291
  • isObject3D: true
    @@ -301,7 +301,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:40
  • layers: Layers
    @@ -314,7 +314,7 @@

    Default Value

    new THREE.Layers()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:164
  • matrix: Matrix4
    @@ -325,7 +325,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:129
  • matrixAutoUpdate: boolean
    @@ -337,7 +337,7 @@

    Default Value

    Inherited from Object3D.matrixAutoUpdate

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:138
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:143
  • matrixWorld: Matrix4
    @@ -350,7 +350,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:136
  • matrixWorldAutoUpdate: boolean
    @@ -362,7 +362,7 @@

    Default Value

    Inherited from Object3D.matrixWorldAutoUpdate

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:145
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:150
  • matrixWorldNeedsUpdate: boolean
    @@ -373,7 +373,7 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:156
  • modelViewMatrix: Matrix4
    @@ -382,7 +382,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:118
  • name: string
    @@ -395,7 +395,7 @@

    Default Value

    ""

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:60
  • normalMatrix: Matrix3
    @@ -404,7 +404,7 @@

    Default Value

    new THREE.Matrix3()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:123
  • onAfterRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -427,11 +427,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -440,7 +440,7 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:257
  • onBeforeRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -463,11 +463,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -476,10 +476,10 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:238
  • -
    parent: null | Object3D<Event>
    +
    parent: null | Object3D<Object3DEventMap>

    Object's parent in the scene graph.

    @@ -489,7 +489,7 @@

    Default Value

    null

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:75
  • position: Vector3
    @@ -500,7 +500,7 @@

    Default Value

    new THREE.Vector3() - that is (0, 0,

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:95
  • quaternion: Quaternion
    @@ -511,7 +511,7 @@

    Default Value

    new THREE.Quaternion() - that is (0,

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:107
  • receiveShadow: boolean
    @@ -522,7 +522,7 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:182
  • renderOrder: number
    @@ -536,7 +536,7 @@

    Default Value

    0

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:198
  • rotation: Euler
    @@ -547,7 +547,7 @@

    Default Value

    new THREE.Euler() - that is (0, 0, 0

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:101
  • scale: Vector3
    @@ -558,7 +558,7 @@

    Default Value

    new THREE.Vector3( 1, 1, 1 )

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:113
  • setFrame: ((frame, flip) => void)
    @@ -578,7 +578,7 @@
    frame: flip: boolean

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1299
  • setModifiers: ((modifier, modifierData1, modifierData2) => void)
    @@ -600,7 +600,7 @@
    modifierData1: modifierData2: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1295
  • setTeamColor: ((color) => void)
    @@ -615,10 +615,10 @@

    Type declaration

    Parameters

    • -
      color: undefined | Color
    +
    color: any

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1296
  • type: string
    @@ -631,12 +631,12 @@

    Default Value

    Object3D

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:68
  • unitTileScale: UnitTileScale
    +
  • Defined in build/api-types/host/index.d.ts:1300
  • up: Vector3
    @@ -647,7 +647,7 @@

    Default Value

    Inherited from Object3D.up

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:84
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:89
  • userData: {
        [key: string]: any;
    }
    @@ -665,7 +665,7 @@

    Default

    {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:211
  • uuid: string
    @@ -676,7 +676,7 @@

    Remarks

    This gets automatically assigned and shouldn't be edited.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:53
  • visible: boolean
    @@ -687,7 +687,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:170
  • Methods

    @@ -701,7 +701,7 @@
    • -
      Rest ...object: Object3D<Event>[]
      +
      Rest ...object: Object3D<Object3DEventMap>[]

    Returns ImageBase

    @@ -714,7 +714,7 @@

    See

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:419
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -736,7 +736,7 @@
      type:
  • -
    listener: EventListener<Event, T, ImageBase>
    +
    listener: EventListener<Object3DEventMap[T], T, ImageBase>

    The function that gets called when the event is fired.

  • @@ -744,7 +744,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:52
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, ImageBase>
    +

    Returns void

    • @@ -762,7 +780,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:289
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:295
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:445
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:437
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:566
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:574
    • - +
    • Fire an event type.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends keyof Object3DEventMap

      Parameters

      • -
        event: Event
        +
        event: BaseEvent<T> & Object3DEventMap[T]

        The event that gets fired.

      @@ -879,11 +902,11 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:84
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching id.

      @@ -895,7 +918,7 @@
      id:

      Unique number of the object instance. Expects a Integer

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, ..., incrementing by one for each new object.

    @@ -903,11 +926,11 @@

    See

    id

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:453
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching name.

      @@ -919,17 +942,17 @@
      name:

      String to match to the children's Object3D.name property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that for most objects the name is an empty string by default

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:461
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -947,15 +970,15 @@
      value:

      value of the given property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:470
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -973,11 +996,11 @@
      value:

      Value of the given property.

    -

    Returns Object3D<Event>[]

    +

    Returns Object3D<Object3DEventMap>[]

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:478
    • @@ -997,7 +1020,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:502
    • @@ -1017,7 +1040,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:484
    • @@ -1037,7 +1060,7 @@

      Returns Quaterni

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:490
    • @@ -1057,7 +1080,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:496
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1079,7 +1102,7 @@
      type:
  • -
    listener: EventListener<Event, T, ImageBase>
    +
    listener: EventListener<Object3DEventMap[T], T, ImageBase>

    The function that gets called when the event is fired.

  • @@ -1087,7 +1110,25 @@

    Returns boolean +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:63
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, ImageBase>
    +

    Returns boolean

    • @@ -1107,7 +1148,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:388
    • @@ -1129,7 +1170,7 @@

      Remarks

      This method does not support objects having non-uniformly-sca

      +
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:401
  • Rotates the object to face a point in world space.

    @@ -1158,7 +1199,7 @@

    Remarks

    This method does not support objects having non-uniformly-sca

  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:409
    • @@ -1173,7 +1214,7 @@

      Parameters

      raycaster: Raycaster
    • -
      intersects: Intersection<Object3D<Event>>[]
      +
      intersects: Intersection<Object3D<Object3DEventMap>>[]

    Returns void

    @@ -1185,7 +1226,7 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:512
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:427
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1229,7 +1270,7 @@
      type:
  • -
    listener: EventListener<Event, T, ImageBase>
    +
    listener: EventListener<Object3DEventMap[T], T, ImageBase>

    The listener function that gets removed.

  • @@ -1237,7 +1278,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:74
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, ImageBase>
    +

    Returns void

  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:432
    • @@ -1276,7 +1335,7 @@

      Remarks

      The axis is assumed to be normalized.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:329
    • @@ -1303,7 +1362,7 @@

      Remarks

      The axis is assumed to be normalized

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:338
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:344
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:350
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:356
    • @@ -1367,7 +1426,7 @@

      Parameters

      val: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:1297
    • @@ -1392,7 +1451,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:302
    • @@ -1412,7 +1471,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:308
    • @@ -1434,7 +1493,7 @@

      Remarks

      Note that this assumes that the upper 3x3 of m is a pure rota

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:315
    • @@ -1454,7 +1513,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:321
    • @@ -1483,7 +1542,7 @@

      Returns any

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:560
    • @@ -1510,7 +1569,7 @@

      Remarks

      The axis is assumed to be normalized.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:364
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:370
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:376
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:382
    • @@ -1595,7 +1654,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1603,7 +1662,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:519
    • @@ -1628,7 +1687,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1636,7 +1695,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:534
    • @@ -1661,7 +1720,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1669,7 +1728,7 @@

    Remarks

    Descendants of invisible objects are not traversed.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:527
  • +
  • Defined in build/api-types/host/index.d.ts:840
  • Optional force: boolean
  • Returns ImageBase

    +
  • Defined in build/api-types/host/index.d.ts:1298
    • @@ -1736,7 +1795,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:539
    • @@ -1758,7 +1817,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:547
    • @@ -1783,7 +1842,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:554
    • @@ -1803,7 +1862,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:394
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/ImageDAT.html b/docs/host/interfaces/ImageDAT.html index c2853791..01eee95d 100644 --- a/docs/host/interfaces/ImageDAT.html +++ b/docs/host/interfaces/ImageDAT.html @@ -1,4 +1,4 @@ -ImageDAT | titan-reactor-runtime/host
    +ImageDAT | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • ImageDAT
    +
  • Defined in build/api-types/host/index.d.ts:923
  • @@ -52,87 +52,87 @@

    Properties

    attackOverlay: number
    +
  • Defined in build/api-types/host/index.d.ts:936
  • clickable: number
    +
  • Defined in build/api-types/host/index.d.ts:929
  • damageOverlay: number
    +
  • Defined in build/api-types/host/index.d.ts:937
  • drawFunction: number
    +
  • Defined in build/api-types/host/index.d.ts:932
  • drawIfCloaked: number
    +
  • Defined in build/api-types/host/index.d.ts:931
  • gfxTurns: number
    +
  • Defined in build/api-types/host/index.d.ts:928
  • grp: number
    +
  • Defined in build/api-types/host/index.d.ts:927
  • grpFile: string
    +
  • Defined in build/api-types/host/index.d.ts:925
  • index: number
    +
  • Defined in build/api-types/host/index.d.ts:924
  • iscript: number
    +
  • Defined in build/api-types/host/index.d.ts:934
  • landingDustOverlay: number
    +
  • Defined in build/api-types/host/index.d.ts:939
  • liftOffDustOverlay: number
    +
  • Defined in build/api-types/host/index.d.ts:940
  • name: string
    +
  • Defined in build/api-types/host/index.d.ts:926
  • remapping: number
    +
  • Defined in build/api-types/host/index.d.ts:933
  • shieldOverlay: number
    +
  • Defined in build/api-types/host/index.d.ts:935
  • specialOverlay: number
    +
  • Defined in build/api-types/host/index.d.ts:938
  • useFullIscript: number
    +
  • Defined in build/api-types/host/index.d.ts:930
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/ImageStruct.html b/docs/host/interfaces/ImageStruct.html index 81ff4093..643624f3 100644 --- a/docs/host/interfaces/ImageStruct.html +++ b/docs/host/interfaces/ImageStruct.html @@ -1,4 +1,4 @@ -ImageStruct | titan-reactor-runtime/host
    +ImageStruct | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -24,7 +24,7 @@

    Implemented by

    +
  • Defined in build/api-types/host/index.d.ts:2030
  • @@ -50,57 +50,57 @@

    Properties

    flags: number
    +
  • Defined in build/api-types/host/index.d.ts:2033
  • frameIndex: number
    +
  • Defined in build/api-types/host/index.d.ts:2034
  • frameIndexBase: number
    +
  • Defined in build/api-types/host/index.d.ts:2036
  • frameIndexOffset: number
    +
  • Defined in build/api-types/host/index.d.ts:2035
  • index: number
    +
  • Defined in build/api-types/host/index.d.ts:2031
  • modifier: number
    +
  • Defined in build/api-types/host/index.d.ts:2039
  • modifierData1: number
    +
  • Defined in build/api-types/host/index.d.ts:2040
  • modifierData2: number
    +
  • Defined in build/api-types/host/index.d.ts:2041
  • typeId: number
    +
  • Defined in build/api-types/host/index.d.ts:2032
  • x: number
    +
  • Defined in build/api-types/host/index.d.ts:2037
  • y: number
    +
  • Defined in build/api-types/host/index.d.ts:2038
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/MinimapDimensions.html b/docs/host/interfaces/MinimapDimensions.html index 776f1f81..f4c94f4b 100644 --- a/docs/host/interfaces/MinimapDimensions.html +++ b/docs/host/interfaces/MinimapDimensions.html @@ -1,4 +1,4 @@ -MinimapDimensions | titan-reactor-runtime/host
    +MinimapDimensions | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • MinimapDimensions
    +
  • Defined in build/api-types/host/index.d.ts:2454
  • @@ -38,17 +38,17 @@

    Properties

    matrix: number[]
    +
  • Defined in build/api-types/host/index.d.ts:2455
  • minimapHeight: number
    +
  • Defined in build/api-types/host/index.d.ts:2457
  • minimapWidth: number
    +
  • Defined in build/api-types/host/index.d.ts:2456
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/NativePlugin.html b/docs/host/interfaces/NativePlugin.html index b6585c0a..e5259b1c 100644 --- a/docs/host/interfaces/NativePlugin.html +++ b/docs/host/interfaces/NativePlugin.html @@ -1,4 +1,4 @@ -NativePlugin | titan-reactor-runtime/host
    +NativePlugin | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • NativePlugin
    +
  • Defined in build/api-types/host/index.d.ts:18
  • @@ -30,23 +30,21 @@

    Methods

    -
    id: string
    @@ -65,20 +63,7 @@
    -
    - -
    init?: (() => void)
    -
    -

    Type declaration

    -
      -
    • -
        -
      • (): void
      • -
      • -

        Returns void

    +
  • Defined in build/api-types/host/index.d.ts:22
  • isSceneController: boolean
    @@ -86,7 +71,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:30
  • name: string
    @@ -94,20 +79,9 @@
    +
  • Defined in build/api-types/host/index.d.ts:26
  • Methods

    -
    - -
    +
  • Defined in build/api-types/host/index.d.ts:37
  • +
    + +
    +
  • Defined in build/api-types/host/index.d.ts:57
  • -
    - -
      - -
    • -

      When a scene is entered and nearly initialized.

      -
      -
      -

      Parameters

      -
        -
      • -
        prevData: any
      -

      Returns Promise<unknown>

      -
    -
    - -
      - -
    • -

      When a scene has exited. Dispose resources here.

      -
      -
      -

      Parameters

      -
        -
      • -
        currentData: any
      -

      Returns any

      -
    +
  • Defined in build/api-types/host/index.d.ts:49
  • +
  • Defined in build/api-types/host/index.d.ts:65
  • +
  • Defined in build/api-types/host/index.d.ts:81
  • +
  • Defined in build/api-types/host/index.d.ts:61
  • +
  • Defined in build/api-types/host/index.d.ts:77
  • +
  • Defined in build/api-types/host/index.d.ts:73
  • +
    + +
      + +
    • +

      Called before render, every render tick

      +
      +
      +

      Parameters

      +
        +
      • +
        delta: number
      • +
      • +
        elapsed: number
      +

      Returns void

      +
    +
  • Defined in build/api-types/host/index.d.ts:53
  • +
  • Defined in build/api-types/host/index.d.ts:41
  • +
  • Defined in build/api-types/host/index.d.ts:45
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/OpenBWWasm.html b/docs/host/interfaces/OpenBWWasm.html index 4aaab77f..6dbc74e1 100644 --- a/docs/host/interfaces/OpenBWWasm.html +++ b/docs/host/interfaces/OpenBWWasm.html @@ -1,4 +1,4 @@ -OpenBWWasm | titan-reactor-runtime/host
    +OpenBWWasm | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    +
  • Defined in build/api-types/host/index.d.ts:368
  • HEAP16: Int16Array
    +
  • Defined in build/api-types/host/index.d.ts:362
  • HEAP32: Int32Array
    +
  • Defined in build/api-types/host/index.d.ts:364
  • HEAP8: Int8Array
    +
  • Defined in build/api-types/host/index.d.ts:360
  • HEAPU16: Uint16Array
    +
  • Defined in build/api-types/host/index.d.ts:363
  • HEAPU32: Uint32Array
    +
  • Defined in build/api-types/host/index.d.ts:365
  • HEAPU8: Uint8Array
    +
  • Defined in build/api-types/host/index.d.ts:361
  • UTF8ToString: ((ptr) => undefined | string)
    @@ -141,7 +143,7 @@
    ptr: Returns undefined | string
    +
  • Defined in build/api-types/host/index.d.ts:334
  • _counts: ((index) => number)
    @@ -159,7 +161,7 @@

    Parameters

    index: number

    Returns number

    +
  • Defined in build/api-types/host/index.d.ts:296
  • _create_unit: ((unitId, playerId, x, y) => number)
    @@ -183,7 +185,7 @@
    x:
    y: number

    Returns number

    +
  • Defined in build/api-types/host/index.d.ts:295
  • _free: ((buffer) => void)
    @@ -202,7 +204,7 @@
    buffer: Returns void
    +
  • Defined in build/api-types/host/index.d.ts:367
  • _generate_frame: (() => void)
    @@ -215,7 +217,7 @@

    Type declaration

  • Returns void

  • +
  • Defined in build/api-types/host/index.d.ts:301
  • _get_buffer: ((index) => number)
    @@ -233,7 +235,7 @@

    Parameters

    index: number

    Returns number

    +
  • Defined in build/api-types/host/index.d.ts:297
  • _load_map: ((buffer, length) => void)
    @@ -253,7 +255,7 @@
    buffer: length: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:289
  • _load_replay: ((buffer, length) => void)
    @@ -273,7 +275,7 @@
    buffer: length: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:288
  • _load_replay_with_height_map: ((replayBuffer, replayLength, buffer, length, width, height) => void)
    @@ -301,7 +303,7 @@
    width: height: number

    Returns void

    +
  • Defined in build/api-types/host/index.d.ts:291
  • _next_frame: (() => number)
    @@ -314,20 +316,33 @@

    Type declaration

  • Returns number

  • -
    - -
    _next_no_replay: (() => number)
    +
  • Defined in build/api-types/host/index.d.ts:292
  • +
    + +
    _next_replay_step: (() => number)

    Type declaration

      • -
      • (): number
      • +
      • (): number
      • Returns number

    +
  • Defined in build/api-types/host/index.d.ts:294
  • +
    + +
    _next_step: (() => number)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (): number
      • +
      • +

        Returns number

    _replay_get_value: ((index) => number)
    @@ -336,7 +351,7 @@

    Type declaration

      • -
      • (index): number
      • +
      • (index): number
      • Parameters

        @@ -345,7 +360,7 @@

        Parameters

        index: number

      Returns number

    +
  • Defined in build/api-types/host/index.d.ts:298
  • _replay_set_value: ((index, value) => void)
    @@ -354,7 +369,7 @@

    Type declaration

      • -
      • (index, value): void
      • +
      • (index, value): void
      • Parameters

        @@ -365,7 +380,7 @@
        index: value: number

      Returns void

    +
  • Defined in build/api-types/host/index.d.ts:299
  • _reset: (() => void)
    @@ -374,11 +389,11 @@

    Type declaration

      • -
      • (): void
      • +
      • (): void
      • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:287
  • _set_player_visibility: ((playerId) => void)
    @@ -387,7 +402,7 @@

    Type declaration

      • -
      • (playerId): void
      • +
      • (playerId): void
      • Parameters

        @@ -396,7 +411,7 @@

        Parameters

        playerId: number

      Returns void

    +
  • Defined in build/api-types/host/index.d.ts:300
  • _upload_height_map: ((buffer, length, width, height) => void)
    @@ -405,7 +420,7 @@

    Type declaration

      • -
      • (buffer, length, width, height): void
      • +
      • (buffer, length, width, height): void
      • Parameters

        @@ -420,7 +435,7 @@
        width: height: number

      Returns void

    +
  • Defined in build/api-types/host/index.d.ts:290
  • allocate: ((buffer, flags) => number)
    @@ -429,7 +444,7 @@

    Type declaration

      • -
      • (buffer, flags): number
      • +
      • (buffer, flags): number
      • Parameters

        @@ -441,7 +456,7 @@
        flags: Returns number
    +
  • Defined in build/api-types/host/index.d.ts:366
  • callMain: (() => void)
    @@ -450,11 +465,11 @@

    Type declaration

      • -
      • (): void
      • +
      • (): void
      • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:324
  • getExceptionMessage: ((e) => string)
    @@ -463,7 +478,7 @@

    Type declaration

      • -
      • (e): string
      • +
      • (e): string
      • Parameters

        @@ -472,7 +487,7 @@

        Parameters

        e: unknown

      Returns string

    +
  • Defined in build/api-types/host/index.d.ts:325
  • get_util_funcs: (() => {
        dump_unit: ((unitAddr) => {
            buildQueue?: number[];
            id: number;
            loaded?: number[];
            remainingTrainTime?: number;
            research?: {
                id: number;
                time: number;
            };
            resourceAmount?: number;
            upgrade?: {
                id: number;
                level: number;
                time: number;
            };
        });
        get_sounds: (() => SoundStruct[]);
        issue_command: ((unitId, command, targetId, x, y, extra) => boolean);
        kill_unit: ((unitId) => number);
        remove_unit: ((unitId) => number);
    })
    @@ -481,7 +496,7 @@

    Type declaration

      • -
      • (): {
            dump_unit: ((unitAddr) => {
                buildQueue?: number[];
                id: number;
                loaded?: number[];
                remainingTrainTime?: number;
                research?: {
                    id: number;
                    time: number;
                };
                resourceAmount?: number;
                upgrade?: {
                    id: number;
                    level: number;
                    time: number;
                };
            });
            get_sounds: (() => SoundStruct[]);
            issue_command: ((unitId, command, targetId, x, y, extra) => boolean);
            kill_unit: ((unitId) => number);
            remove_unit: ((unitId) => number);
        }
      • +
      • (): {
            dump_unit: ((unitAddr) => {
                buildQueue?: number[];
                id: number;
                loaded?: number[];
                remainingTrainTime?: number;
                research?: {
                    id: number;
                    time: number;
                };
                resourceAmount?: number;
                upgrade?: {
                    id: number;
                    level: number;
                    time: number;
                };
            });
            get_sounds: (() => SoundStruct[]);
            issue_command: ((unitId, command, targetId, x, y, extra) => boolean);
            kill_unit: ((unitId) => number);
            remove_unit: ((unitId) => number);
        }
      • Returns {
            dump_unit: ((unitAddr) => {
                buildQueue?: number[];
                id: number;
                loaded?: number[];
                remainingTrainTime?: number;
                research?: {
                    id: number;
                    time: number;
                };
                resourceAmount?: number;
                upgrade?: {
                    id: number;
                    level: number;
                    time: number;
                };
            });
            get_sounds: (() => SoundStruct[]);
            issue_command: ((unitId, command, targetId, x, y, extra) => boolean);
            kill_unit: ((unitId) => number);
            remove_unit: ((unitId) => number);
        }

          @@ -490,7 +505,7 @@
          dump_unit
          • -
          • (unitAddr): {
                buildQueue?: number[];
                id: number;
                loaded?: number[];
                remainingTrainTime?: number;
                research?: {
                    id: number;
                    time: number;
                };
                resourceAmount?: number;
                upgrade?: {
                    id: number;
                    level: number;
                    time: number;
                };
            }
          • +
          • (unitAddr): {
                buildQueue?: number[];
                id: number;
                loaded?: number[];
                remainingTrainTime?: number;
                research?: {
                    id: number;
                    time: number;
                };
                resourceAmount?: number;
                upgrade?: {
                    id: number;
                    level: number;
                    time: number;
                };
            }
          • Parameters

            @@ -530,7 +545,7 @@
            get_sounds
        • @@ -538,7 +553,7 @@
          issue_command
          • -
          • (unitId, command, targetId, x, y, extra): boolean
          • +
          • (unitId, command, targetId, x, y, extra): boolean
          • Parameters

            @@ -561,7 +576,7 @@
            kill_unit
            • -
            • (unitId): number
            • +
            • (unitId): number
            • Parameters

              @@ -574,7 +589,7 @@
              remove_unit
              • -
              • (unitId): number
              • +
              • (unitId): number
              • Parameters

                @@ -583,7 +598,27 @@

                Parameters

                unitId: number
            • Returns number

    +
  • Defined in build/api-types/host/index.d.ts:302
  • +
    + +
    setupCallback: ((key, callback) => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (key, callback): void
      • +
      • +
        +

        Parameters

        +
          +
        • +
          key: keyof Callbacks
        • +
        • +
          callback: undefined | ((ptr) => string) | (() => void) | (() => void) | ((index) => number) | ((index, dst, offset, size) => void) | (() => void) | ((ptr) => number) | (() => void)
        +

        Returns void

    setupCallbacks: ((callbacks) => void)
    @@ -592,7 +627,7 @@

    Type declaration

      • -
      • (callbacks): void
      • +
      • (callbacks): void
      • Parameters

        @@ -601,7 +636,7 @@

        Parameters

        callbacks: Callbacks

      Returns void

    +
  • Defined in build/api-types/host/index.d.ts:326
  • Methods

    @@ -617,7 +652,7 @@
    ptr: Returns undefined | string
    +
  • Defined in build/api-types/host/index.d.ts:340
  • +
  • Defined in build/api-types/host/index.d.ts:336
  • +
  • Defined in build/api-types/host/index.d.ts:338
  • +
  • Defined in build/api-types/host/index.d.ts:345
  • +
  • Defined in build/api-types/host/index.d.ts:348
  • +
  • Defined in build/api-types/host/index.d.ts:352
  • +
  • Defined in build/api-types/host/index.d.ts:341
  • +
  • Defined in build/api-types/host/index.d.ts:342
  • +
  • Defined in build/api-types/host/index.d.ts:351
  • +
  • Defined in build/api-types/host/index.d.ts:353
  • +
  • Defined in build/api-types/host/index.d.ts:337
  • +
  • Defined in build/api-types/host/index.d.ts:339
  • +
  • Defined in build/api-types/host/index.d.ts:335
  • +
  • Defined in build/api-types/host/index.d.ts:343
  • +
  • Defined in build/api-types/host/index.d.ts:344
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/Operation.html b/docs/host/interfaces/Operation.html index 1c2733e9..c145eb04 100644 --- a/docs/host/interfaces/Operation.html +++ b/docs/host/interfaces/Operation.html @@ -1,4 +1,4 @@ -Operation | titan-reactor-runtime/host
    +Operation | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • Operation
    +
  • Defined in build/api-types/host/index.d.ts:2567
  • @@ -38,17 +38,17 @@

    Properties

    operator: Operator
    +
  • Defined in build/api-types/host/index.d.ts:2568
  • path: string[]
    +
  • Defined in build/api-types/host/index.d.ts:2569
  • value?: any
    +
  • Defined in build/api-types/host/index.d.ts:2570
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/OrderDAT.html b/docs/host/interfaces/OrderDAT.html index 16487f51..4ff5be73 100644 --- a/docs/host/interfaces/OrderDAT.html +++ b/docs/host/interfaces/OrderDAT.html @@ -1,4 +1,4 @@ -OrderDAT | titan-reactor-runtime/host
    +OrderDAT | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • OrderDAT
    +
  • Defined in build/api-types/host/index.d.ts:1053
  • @@ -36,7 +36,7 @@

    Properties

    name: string
    +
  • Defined in build/api-types/host/index.d.ts:1054
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/Player.html b/docs/host/interfaces/Player.html index 83b03fe7..8a1ecd78 100644 --- a/docs/host/interfaces/Player.html +++ b/docs/host/interfaces/Player.html @@ -1,4 +1,4 @@ -Player | titan-reactor-runtime/host
    +Player | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • Player
    +
  • Defined in build/api-types/host/index.d.ts:209
  • @@ -41,32 +41,32 @@

    Properties

    color: Color
    +
  • Defined in build/api-types/host/index.d.ts:213
  • id: number
    +
  • Defined in build/api-types/host/index.d.ts:210
  • name: string
    +
  • Defined in build/api-types/host/index.d.ts:211
  • race: string
    +
  • Defined in build/api-types/host/index.d.ts:212
  • -
    startLocation?: StartLocation
    +
  • Defined in build/api-types/host/index.d.ts:215
  • vision: boolean
    +
  • Defined in build/api-types/host/index.d.ts:214
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/PluginPackage.html b/docs/host/interfaces/PluginPackage.html index 5a37c781..9fe1e401 100644 --- a/docs/host/interfaces/PluginPackage.html +++ b/docs/host/interfaces/PluginPackage.html @@ -1,4 +1,4 @@ -PluginPackage | titan-reactor-runtime/host
    +PluginPackage | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -54,42 +54,42 @@
    Optional
    Optional username?: string
    +
  • Defined in build/api-types/host/index.d.ts:2871
  • config?: PluginConfig
    +
  • Defined in build/api-types/host/index.d.ts:2884
  • description?: string
    +
  • Defined in build/api-types/host/index.d.ts:2877
  • +
    + +
    devDependencies?: Record<string, string>
    id: string
    +
  • Defined in build/api-types/host/index.d.ts:2869
  • keywords?: string[]
    +
  • Defined in build/api-types/host/index.d.ts:2876
  • name: string
    +
  • Defined in build/api-types/host/index.d.ts:2868
  • peerDependencies?: Record<string, string>
    -
    - -
    permissions?: string[]
    +
  • Defined in build/api-types/host/index.d.ts:2882
  • repository?: string | {
        type?: string;
        url?: string;
    }
    @@ -101,12 +101,12 @@
    Optional
    Optional url?: string
    +
  • Defined in build/api-types/host/index.d.ts:2878
  • version: string
    +
  • Defined in build/api-types/host/index.d.ts:2870
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/PxToWorld.html b/docs/host/interfaces/PxToWorld.html index 09bbf9da..82054281 100644 --- a/docs/host/interfaces/PxToWorld.html +++ b/docs/host/interfaces/PxToWorld.html @@ -1,4 +1,4 @@ -PxToWorld | titan-reactor-runtime/host
    +PxToWorld | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • PxToWorld
    +
  • Defined in build/api-types/host/index.d.ts:1941
  • @@ -52,7 +52,7 @@

    Parameters

    v: number

    Returns number

    +
  • Defined in build/api-types/host/index.d.ts:1942
  • xy: ((x, y, out) => Vector2)
    @@ -74,7 +74,7 @@
    y:
    out: Vector2

    Returns Vector2

    +
  • Defined in build/api-types/host/index.d.ts:1944
  • xyz: ((x, y, out) => Vector3)
    @@ -96,7 +96,7 @@
    y:
    out: Vector3

    Returns Vector3

    +
  • Defined in build/api-types/host/index.d.ts:1945
  • y: ((v) => number)
    @@ -114,7 +114,7 @@

    Parameters

    v: number

    Returns number

    +
  • Defined in build/api-types/host/index.d.ts:1943
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/MacrosDTO.html b/docs/host/interfaces/SCAssetData.html similarity index 82% rename from docs/host/interfaces/MacrosDTO.html rename to docs/host/interfaces/SCAssetData.html index 62283ff0..9fc793a8 100644 --- a/docs/host/interfaces/MacrosDTO.html +++ b/docs/host/interfaces/SCAssetData.html @@ -1,4 +1,4 @@ -MacrosDTO | titan-reactor-runtime/host
    +SCAssetData | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    Interface MacrosDTOInternal

    +
  • @titan-reactor-runtime/host
  • +
  • SCAssetData
  • +

    Interface SCAssetDataInternal

    Hierarchy

      -
    • MacrosDTO
    @@ -28,21 +28,21 @@

    Properties

    -
    - -
    macros: MacroDTO[]
    +
  • Defined in build/api-types/host/index.d.ts:887
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • SettingsV6
    +
  • Defined in build/api-types/host/index.d.ts:1521
  • @@ -29,15 +29,13 @@

    Properties

    -
    - -
    directories: {
        assets: string;
        maps: string;
        plugins: string;
        replays: string;
        starcraft: string;
    }
    -
    -

    Type declaration

    -
      -
    • -
      assets: string
    • -
    • -
      maps: string
    • -
    • -
      plugins: string
    • -
    • -
      replays: string
    • -
    • -
      starcraft: string
    +
  • Defined in build/api-types/host/index.d.ts:1529
  • -
    graphics: {
        cursorSize: number;
        pixelRatio: number;
        preload: boolean;
        useHD2: "auto" | "ignore" | "force";
    }
    +
    graphics: {
        cursorSize: number;
        pixelRatio: number;
        preloadMapSprites: boolean;
        use3D: boolean;
        useHD: boolean;
    }

    Type declaration

      @@ -89,14 +69,16 @@
      cursorSize
      pixelRatio: number
    • -
      preload: boolean
    • +
      preloadMapSprites: boolean
    • -
      useHD2: "auto" | "ignore" | "force"
    +
  • Defined in build/api-types/host/index.d.ts:1535
  • -
    input: {
        cameraShakeStrength: number;
        cursorVisible: boolean;
        dampingFactor: number;
        movementSpeed: number;
        rotateSpeed: number;
        sceneController: string;
        unitSelection: boolean;
        zoomLevels: [number, number, number];
    }
    +
    input: {
        cameraShakeStrength: number;
        cursorVisible: boolean;
        dampingFactor: number;
        movementSpeed: number;
        rotateSpeed: number;
        sceneController: string;
        unitSelection: boolean;
        vrController: string;
        zoomLevels: [number, number, number];
    }

    Type declaration

      @@ -115,19 +97,16 @@
      sceneController
      unitSelection: boolean
    • +
      vrController: string
    • +
    • zoomLevels: [number, number, number]
    +
  • Defined in build/api-types/host/index.d.ts:1553
  • language: string
    -
    - -
    macros: MacrosDTO
    +
  • Defined in build/api-types/host/index.d.ts:1523
  • minimap: {
        drawCamera: boolean;
        enabled: boolean;
        interactive: boolean;
        mode: "2d" | "3d";
        opacity: number;
        position: [number, number];
        rotation: [number, number, number];
        scale: number;
        softEdges: boolean;
    }
    @@ -153,21 +132,7 @@
    scale
    softEdges: boolean
    -
    - -
    plugins: {
        developmentDirectory?: string;
        enabled: string[];
        serverPort: number;
    }
    -
    -

    Type declaration

    -
      -
    • -
      Optional developmentDirectory?: string
    • -
    • -
      enabled: string[]
    • -
    • -
      serverPort: number
    +
  • Defined in build/api-types/host/index.d.ts:1542
  • postprocessing: {
        anisotropy: number;
        antialias: number;
        bloom: number;
        brightness: number;
        contrast: number;
        fogOfWar: number;
    }
    @@ -187,7 +152,7 @@
    contrast
    fogOfWar: number
    +
  • Defined in build/api-types/host/index.d.ts:1580
  • postprocessing3d: {
        anisotropy: number;
        antialias: number;
        bloom: number;
        brightness: number;
        contrast: number;
        depthBlurQuality: number;
        depthBokehScale: number;
        depthFocalLength: number;
        depthFocalRange: number;
        envMap: number;
        fogOfWar: number;
        shadowQuality: number;
        sunlightColor: string;
        sunlightDirection: [number, number, number];
        sunlightIntensity: number;
        toneMapping: number;
    }
    @@ -227,10 +192,26 @@
    sunlightIntensity
    toneMapping: number
    +
  • Defined in build/api-types/host/index.d.ts:1588
  • +
    + +
    replayQueue: {
        alwaysClearReplayQueue: boolean;
        autoplay: boolean;
        goToHomeBetweenReplays: boolean;
        show: boolean;
    }
    +
    +

    Type declaration

    +
      +
    • +
      alwaysClearReplayQueue: boolean
    • +
    • +
      autoplay: boolean
    • +
    • +
      goToHomeBetweenReplays: boolean
    • +
    • +
      show: boolean
    -
    session: {
        audioListenerDistance: number;
        sandbox: boolean;
        type: "replay" | "live" | "map";
    }
    +
    session: {
        audioListenerDistance: number;
        sandbox: boolean;
        type: "replay" | "map";
    }

    Type declaration

      @@ -239,12 +220,12 @@
      audioListenerDistance
      sandbox: boolean
    • -
      type: "replay" | "live" | "map"
    +
  • Defined in build/api-types/host/index.d.ts:1524
  • -
    utilities: {
        alertDesynced: boolean;
        alertDesyncedThreshold: number;
        debugMode: boolean;
        detectMeleeObservers: boolean;
        detectMeleeObserversThreshold: number;
        logLevel: LogLevel;
        sanityCheckReplayCommands: boolean;
    }
    +
    utilities: {
        alertDesynced: boolean;
        alertDesyncedThreshold: number;
        cacheLocally: boolean;
        debugMode: boolean;
        detectMeleeObservers: boolean;
        detectMeleeObserversThreshold: number;
        logLevel: LogLevel;
        sanityCheckReplayCommands: boolean;
    }

    Type declaration

      @@ -253,6 +234,8 @@
      alertDesynced
      alertDesyncedThreshold: number
    • +
      cacheLocally: boolean
    • +
    • debugMode: boolean
    • detectMeleeObservers: boolean
    • @@ -263,12 +246,12 @@
      logLevel
      sanityCheckReplayCommands: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1564
  • version: 6
    +
  • Defined in build/api-types/host/index.d.ts:1522
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/SoundDAT.html b/docs/host/interfaces/SoundDAT.html index b170701a..08f77c07 100644 --- a/docs/host/interfaces/SoundDAT.html +++ b/docs/host/interfaces/SoundDAT.html @@ -1,4 +1,4 @@ -SoundDAT | titan-reactor-runtime/host
    +SoundDAT | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • SoundDAT
    +
  • Defined in build/api-types/host/index.d.ts:1003
  • @@ -40,27 +40,27 @@

    Properties

    file: string
    +
  • Defined in build/api-types/host/index.d.ts:1004
  • flags: number
    +
  • Defined in build/api-types/host/index.d.ts:1006
  • minVolume: number
    +
  • Defined in build/api-types/host/index.d.ts:1008
  • priority: number
    +
  • Defined in build/api-types/host/index.d.ts:1005
  • race: number
    +
  • Defined in build/api-types/host/index.d.ts:1007
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/SoundStruct.html b/docs/host/interfaces/SoundStruct.html index c1c9281c..1d58b0c9 100644 --- a/docs/host/interfaces/SoundStruct.html +++ b/docs/host/interfaces/SoundStruct.html @@ -1,4 +1,4 @@ -SoundStruct | titan-reactor-runtime/host
    +SoundStruct | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • SoundStruct
    +
  • Defined in build/api-types/host/index.d.ts:377
  • @@ -41,32 +41,32 @@

    Properties

    pan?: number
    +
  • Defined in build/api-types/host/index.d.ts:383
  • typeId: number
    +
  • Defined in build/api-types/host/index.d.ts:378
  • unitTypeId: null | number
    +
  • Defined in build/api-types/host/index.d.ts:379
  • volume?: number
    +
  • Defined in build/api-types/host/index.d.ts:382
  • x: number
    +
  • Defined in build/api-types/host/index.d.ts:380
  • y: number
    +
  • Defined in build/api-types/host/index.d.ts:381
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/SpriteDAT.html b/docs/host/interfaces/SpriteDAT.html index 1289d44c..e3d5ae7b 100644 --- a/docs/host/interfaces/SpriteDAT.html +++ b/docs/host/interfaces/SpriteDAT.html @@ -1,4 +1,4 @@ -SpriteDAT | titan-reactor-runtime/host
    +SpriteDAT | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • SpriteDAT
    +
  • Defined in build/api-types/host/index.d.ts:1180
  • @@ -42,22 +42,22 @@

    Properties

    healthBar: number
    +
  • Defined in build/api-types/host/index.d.ts:1184
  • image: ImageDAT
    +
  • Defined in build/api-types/host/index.d.ts:1181
  • index: number
    +
  • Defined in build/api-types/host/index.d.ts:1183
  • name: string
    +
  • Defined in build/api-types/host/index.d.ts:1182
  • selectionCircle: {
        index: number;
        size: number;
    }
    @@ -69,17 +69,17 @@
    index
    size: number
    +
  • Defined in build/api-types/host/index.d.ts:1186
  • selectionCircleOffset: number
    +
  • Defined in build/api-types/host/index.d.ts:1190
  • visible: number
    +
  • Defined in build/api-types/host/index.d.ts:1185
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/SpriteStruct.html b/docs/host/interfaces/SpriteStruct.html index bebaa308..0a273002 100644 --- a/docs/host/interfaces/SpriteStruct.html +++ b/docs/host/interfaces/SpriteStruct.html @@ -1,4 +1,4 @@ -SpriteStruct | titan-reactor-runtime/host
    +SpriteStruct | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -24,7 +24,7 @@

    Implemented by

    +
  • Defined in build/api-types/host/index.d.ts:1974
  • @@ -47,42 +47,42 @@

    Properties

    elevation: number
    +
  • Defined in build/api-types/host/index.d.ts:1978
  • flags: number
    +
  • Defined in build/api-types/host/index.d.ts:1979
  • index: number
    +
  • Defined in build/api-types/host/index.d.ts:1975
  • mainImageIndex: number
    +
  • Defined in build/api-types/host/index.d.ts:1982
  • owner: number
    +
  • Defined in build/api-types/host/index.d.ts:1976
  • typeId: number
    +
  • Defined in build/api-types/host/index.d.ts:1977
  • x: number
    +
  • Defined in build/api-types/host/index.d.ts:1980
  • y: number
    +
  • Defined in build/api-types/host/index.d.ts:1981
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/SpriteType.html b/docs/host/interfaces/SpriteType.html index d3b35e67..e4c8043e 100644 --- a/docs/host/interfaces/SpriteType.html +++ b/docs/host/interfaces/SpriteType.html @@ -1,4 +1,4 @@ -SpriteType | titan-reactor-runtime/host
    +SpriteType | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    • SpriteType
    +
  • Defined in build/api-types/host/index.d.ts:1717
  • @@ -123,7 +123,7 @@

    Default Value

    []

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:204
  • castShadow: boolean
    @@ -134,10 +134,10 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:176
  • -
    children: Object3D<Event>[]
    +
    children: Object3D<Object3DEventMap>[]

    Array with object's children.

    @@ -147,7 +147,7 @@

    Default Value

    []

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:83
  • customDepthMaterial?: Material
    @@ -160,7 +160,7 @@

    Default Value

    undefined

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:220
  • customDistanceMaterial?: Material
    @@ -171,7 +171,7 @@

    Default Value

    undefined

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:226
  • frustumCulled: boolean
    @@ -183,7 +183,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:189
  • id: number
    @@ -194,7 +194,7 @@

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, .

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:47
  • isGroup: true
    @@ -220,7 +220,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:40
  • layers: Layers
    @@ -233,7 +233,7 @@

    Default Value

    new THREE.Layers()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:164
  • matrix: Matrix4
    @@ -244,7 +244,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:129
  • matrixAutoUpdate: boolean
    @@ -256,7 +256,7 @@

    Default Value

    Inherited from Group.matrixAutoUpdate

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:138
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:143
  • matrixWorld: Matrix4
    @@ -269,7 +269,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:136
  • matrixWorldAutoUpdate: boolean
    @@ -281,7 +281,7 @@

    Default Value

    Inherited from Group.matrixWorldAutoUpdate

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:145
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:150
  • matrixWorldNeedsUpdate: boolean
    @@ -292,7 +292,7 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:156
  • modelViewMatrix: Matrix4
    @@ -301,7 +301,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:118
  • name: string
    @@ -314,7 +314,7 @@

    Default Value

    ""

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:60
  • normalMatrix: Matrix3
    @@ -323,7 +323,7 @@

    Default Value

    new THREE.Matrix3()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:123
  • onAfterRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -346,11 +346,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -359,7 +359,7 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:257
  • onBeforeRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -382,11 +382,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -395,10 +395,10 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:238
  • -
    parent: null | Object3D<Event>
    +
    parent: null | Object3D<Object3DEventMap>

    Object's parent in the scene graph.

    @@ -408,7 +408,7 @@

    Default Value

    null

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:75
  • position: Vector3
    @@ -419,7 +419,7 @@

    Default Value

    new THREE.Vector3() - that is (0, 0,

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:95
  • quaternion: Quaternion
    @@ -430,7 +430,7 @@

    Default Value

    new THREE.Quaternion() - that is (0,

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:107
  • receiveShadow: boolean
    @@ -441,7 +441,7 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:182
  • renderOrder: number
    @@ -455,7 +455,7 @@

    Default Value

    0

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:198
  • rotation: Euler
    @@ -466,7 +466,7 @@

    Default Value

    new THREE.Euler() - that is (0, 0, 0

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:101
  • scale: Vector3
    @@ -477,7 +477,7 @@

    Default Value

    new THREE.Vector3( 1, 1, 1 )

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:113
  • type: string
    @@ -497,7 +497,7 @@

    Default Value

    Inherited from Group.up

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:84
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:89
  • userData: {
        isNew: boolean;
        mainImage: ImageBase;
        typeId: number;
    }
    @@ -512,7 +512,7 @@
    mainImagetypeId: number
    +
  • Defined in build/api-types/host/index.d.ts:1718
  • uuid: string
    @@ -523,7 +523,7 @@

    Remarks

    This gets automatically assigned and shouldn't be edited.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:53
  • visible: boolean
    @@ -534,7 +534,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:170
  • Methods

    @@ -548,7 +548,7 @@
    • -
      Rest ...object: Object3D<Event>[]
      +
      Rest ...object: Object3D<Object3DEventMap>[]

    Returns SpriteType

    @@ -561,7 +561,7 @@

    See

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:419
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -583,7 +583,7 @@
      type:
  • -
    listener: EventListener<Event, T, SpriteType>
    +
    listener: EventListener<Object3DEventMap[T], T, SpriteType>

    The function that gets called when the event is fired.

  • @@ -591,7 +591,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:52
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, SpriteType>
    +

    Returns void

    • @@ -609,7 +627,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:289
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:295
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:445
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:437
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:566
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:574
    • - +
    • Fire an event type.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends keyof Object3DEventMap

      Parameters

      • -
        event: Event
        +
        event: BaseEvent<T> & Object3DEventMap[T]

        The event that gets fired.

      @@ -726,11 +749,11 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:84
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching id.

      @@ -742,7 +765,7 @@
      id:

      Unique number of the object instance. Expects a Integer

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, ..., incrementing by one for each new object.

    @@ -750,11 +773,11 @@

    See

    id

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:453
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching name.

      @@ -766,17 +789,17 @@
      name:

      String to match to the children's Object3D.name property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that for most objects the name is an empty string by default

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:461
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -794,15 +817,15 @@
      value:

      value of the given property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:470
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -820,11 +843,11 @@
      value:

      Value of the given property.

    -

    Returns Object3D<Event>[]

    +

    Returns Object3D<Object3DEventMap>[]

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:478
    • @@ -844,7 +867,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:502
    • @@ -864,7 +887,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:484
    • @@ -884,7 +907,7 @@

      Returns Quaterni

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:490
    • @@ -904,7 +927,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:496
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -926,7 +949,7 @@
      type:
  • -
    listener: EventListener<Event, T, SpriteType>
    +
    listener: EventListener<Object3DEventMap[T], T, SpriteType>

    The function that gets called when the event is fired.

  • @@ -934,7 +957,25 @@

    Returns boolean +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:63
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, SpriteType>
    +

    Returns boolean

    • @@ -954,7 +995,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:388
    • @@ -976,7 +1017,7 @@

      Remarks

      This method does not support objects having non-uniformly-sca

      +
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:401
  • Rotates the object to face a point in world space.

    @@ -1005,7 +1046,7 @@

    Remarks

    This method does not support objects having non-uniformly-sca

  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:409
    • @@ -1020,7 +1061,7 @@

      Parameters

      raycaster: Raycaster
    • -
      intersects: Intersection<Object3D<Event>>[]
      +
      intersects: Intersection<Object3D<Object3DEventMap>>[]

    Returns void

    @@ -1032,7 +1073,7 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:512
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:427
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1076,7 +1117,7 @@
      type:
  • -
    listener: EventListener<Event, T, SpriteType>
    +
    listener: EventListener<Object3DEventMap[T], T, SpriteType>

    The listener function that gets removed.

  • @@ -1084,7 +1125,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:74
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
      +
    • +
      type: T
    • +
    • +
      listener: EventListener<{}, T, SpriteType>
    +

    Returns void

  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:432
    • @@ -1123,7 +1182,7 @@

      Remarks

      The axis is assumed to be normalized.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:329
    • @@ -1150,7 +1209,7 @@

      Remarks

      The axis is assumed to be normalized

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:338
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:344
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:350
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:356
    • @@ -1226,7 +1285,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:302
    • @@ -1246,7 +1305,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:308
    • @@ -1268,7 +1327,7 @@

      Remarks

      Note that this assumes that the upper 3x3 of m is a pure rota

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:315
    • @@ -1288,7 +1347,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:321
    • @@ -1317,7 +1376,7 @@

      Returns any

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:560
    • @@ -1344,7 +1403,7 @@

      Remarks

      The axis is assumed to be normalized.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:364
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:370
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:376
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:382
    • @@ -1429,7 +1488,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1437,7 +1496,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:519
    • @@ -1462,7 +1521,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1470,7 +1529,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:534
    • @@ -1495,7 +1554,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1503,7 +1562,7 @@

    Remarks

    Descendants of invisible objects are not traversed.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:527
    • @@ -1515,7 +1574,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:539
    • @@ -1537,7 +1596,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:547
    • @@ -1562,7 +1621,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:554
    • @@ -1582,7 +1641,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:394
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/TechDataDAT.html b/docs/host/interfaces/TechDataDAT.html index a0e70791..9d2461f4 100644 --- a/docs/host/interfaces/TechDataDAT.html +++ b/docs/host/interfaces/TechDataDAT.html @@ -1,4 +1,4 @@ -TechDataDAT | titan-reactor-runtime/host
    +TechDataDAT | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • TechDataDAT
    +
  • Defined in build/api-types/host/index.d.ts:1016
  • @@ -45,52 +45,52 @@

    Properties

    energyRequired: number
    +
  • Defined in build/api-types/host/index.d.ts:1020
  • icon: number
    +
  • Defined in build/api-types/host/index.d.ts:1023
  • mineralCost: number
    +
  • Defined in build/api-types/host/index.d.ts:1017
  • name: string
    +
  • Defined in build/api-types/host/index.d.ts:1024
  • race: number
    +
  • Defined in build/api-types/host/index.d.ts:1025
  • researchRequirements: number
    +
  • Defined in build/api-types/host/index.d.ts:1021
  • researchTime: number
    +
  • Defined in build/api-types/host/index.d.ts:1019
  • researched: number
    +
  • Defined in build/api-types/host/index.d.ts:1026
  • useRequirements: number
    +
  • Defined in build/api-types/host/index.d.ts:1022
  • vespeneCost: number
    +
  • Defined in build/api-types/host/index.d.ts:1018
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/TerrainQuartile.html b/docs/host/interfaces/TerrainQuartile.html index 57de1d9f..93748f89 100644 --- a/docs/host/interfaces/TerrainQuartile.html +++ b/docs/host/interfaces/TerrainQuartile.html @@ -1,4 +1,4 @@ -TerrainQuartile | titan-reactor-runtime/host
    +TerrainQuartile | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    • TerrainQuartile
    +
  • Defined in build/api-types/host/index.d.ts:1855
  • @@ -129,7 +129,7 @@

    Default Value

    []

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:204
  • castShadow: boolean
    @@ -140,10 +140,10 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:176
  • -
    children: Object3D<Event>[]
    +
    children: Object3D<Object3DEventMap>[]

    Array with object's children.

    @@ -153,7 +153,7 @@

    Default Value

    []

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:83
  • customDepthMaterial?: Material
    @@ -166,7 +166,7 @@

    Default Value

    undefined

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:220
  • customDistanceMaterial?: Material
    @@ -177,7 +177,7 @@

    Default Value

    undefined

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:226
  • frustumCulled: boolean
    @@ -189,10 +189,10 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:189
  • -
    geometry: BufferGeometry
    +
    geometry: BufferGeometry<NormalBufferAttributes>

    An instance of THREE.BufferGeometry | BufferGeometry (or derived classes), defining the object's structure.

    @@ -201,7 +201,7 @@

    Default Value

    {@
    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:51
  • id: number
    @@ -212,7 +212,7 @@

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, .

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:47
  • isMesh: true
    @@ -225,7 +225,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:39
  • isObject3D: true
    @@ -238,7 +238,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:40
  • layers: Layers
    @@ -251,7 +251,7 @@

    Default Value

    new THREE.Layers()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:164
  • material: MeshBasicMaterial | MeshStandardMaterial
    @@ -263,7 +263,7 @@

    Default Value

    {@
    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:57
  • matrix: Matrix4
    @@ -274,7 +274,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:129
  • matrixAutoUpdate: boolean
    @@ -286,7 +286,7 @@

    Default Value

    Inherited from Mesh.matrixAutoUpdate

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:138
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:143
  • matrixWorld: Matrix4
    @@ -299,7 +299,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:136
  • matrixWorldAutoUpdate: boolean
    @@ -311,7 +311,7 @@

    Default Value

    Inherited from Mesh.matrixWorldAutoUpdate

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:145
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:150
  • matrixWorldNeedsUpdate: boolean
    @@ -322,7 +322,7 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:156
  • modelViewMatrix: Matrix4
    @@ -331,7 +331,7 @@

    Default Value

    new THREE.Matrix4()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:118
  • morphTargetDictionary?: {
        [key: string]: number;
    }
    @@ -347,7 +347,7 @@

    Default Value

    undefined, but rebuilt by

    Inherited from Mesh.morphTargetDictionary

      -
    • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:71
    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:70
  • morphTargetInfluences?: number[]
    @@ -358,7 +358,7 @@

    Default Value

    undefined, but reset to a blank array

    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:63
  • name: string
    @@ -371,7 +371,7 @@

    Default Value

    ""

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:60
  • normalMatrix: Matrix3
    @@ -380,7 +380,7 @@

    Default Value

    new THREE.Matrix3()

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:123
  • onAfterRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -403,11 +403,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -416,7 +416,7 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:257
  • onBeforeRender: ((renderer, scene, camera, geometry, material, group) => void)
    @@ -439,11 +439,11 @@
    scene: camera: Camera
  • -
    geometry: BufferGeometry
  • +
    geometry: BufferGeometry<NormalBufferAttributes>
  • material: Material
  • -
    group: Group
  • +
    group: Group<Object3DEventMap>

    Returns void

    Remarks

    This function is called with the following parameters: renderer, scene, camera, geometry, material, group.

    @@ -452,10 +452,10 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:238
  • -
    parent: null | Object3D<Event>
    +
    parent: null | Object3D<Object3DEventMap>

    Object's parent in the scene graph.

    @@ -465,7 +465,7 @@

    Default Value

    null

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:75
  • position: Vector3
    @@ -476,7 +476,7 @@

    Default Value

    new THREE.Vector3() - that is (0, 0,

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:95
  • quaternion: Quaternion
    @@ -487,7 +487,7 @@

    Default Value

    new THREE.Quaternion() - that is (0,

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:107
  • receiveShadow: boolean
    @@ -498,7 +498,7 @@

    Default Value

    false

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:182
  • renderOrder: number
    @@ -512,7 +512,7 @@

    Default Value

    0

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:198
  • rotation: Euler
    @@ -523,7 +523,7 @@

    Default Value

    new THREE.Euler() - that is (0, 0, 0

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:101
  • scale: Vector3
    @@ -534,7 +534,7 @@

    Default Value

    new THREE.Vector3( 1, 1, 1 )

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:113
  • type: string
    @@ -543,7 +543,7 @@

    Default Value

    Mesh

    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:45
  • up: Vector3
    @@ -554,7 +554,7 @@

    Default Value

    Inherited from Mesh.up

      -
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:84
    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:89
  • userData: {
        basicMaterial: MeshBasicMaterial;
        qx: number;
        qy: number;
        standardMaterial: MeshStandardMaterial;
    }
    @@ -571,7 +571,7 @@
    qy
    standardMaterial: MeshStandardMaterial
    +
  • Defined in build/api-types/host/index.d.ts:1856
  • uuid: string
    @@ -582,7 +582,7 @@

    Remarks

    This gets automatically assigned and shouldn't be edited.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:53
  • visible: boolean
    @@ -593,7 +593,7 @@

    Default Value

    true

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:170
  • Methods

    @@ -607,7 +607,7 @@
    • -
      Rest ...object: Object3D<Event>[]
      +
      Rest ...object: Object3D<Object3DEventMap>[]

    Returns TerrainQuartile

    @@ -620,7 +620,7 @@

    See

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:419
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -642,7 +642,7 @@
      type:
  • -
    listener: EventListener<Event, T, TerrainQuartile>
    +
    listener: EventListener<Object3DEventMap[T], T, TerrainQuartile>

    The function that gets called when the event is fired.

  • @@ -650,7 +650,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:52
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns void

    • @@ -668,7 +686,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:289
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:295
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:445
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:437
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:566
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:574
    • - +
    • Fire an event type.

      +
      +

      Type Parameters

      +
        +
      • +

        T extends keyof Object3DEventMap

      Parameters

      • -
        event: Event
        +
        event: BaseEvent<T> & Object3DEventMap[T]

        The event that gets fired.

      @@ -785,11 +808,11 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:84
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching id.

      @@ -801,7 +824,7 @@
      id:

      Unique number of the object instance. Expects a Integer

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that ids are assigned in chronological order: 1, 2, 3, ..., incrementing by one for each new object.

    @@ -809,11 +832,11 @@

    See

    id

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:453
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a matching name.

      @@ -825,17 +848,17 @@
      name:

      String to match to the children's Object3D.name property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    Remarks

    Note that for most objects the name is an empty string by default

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:461
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -853,15 +876,15 @@
      value:

      value of the given property.

    -

    Returns undefined | Object3D<Event>

    +

    Returns undefined | Object3D<Object3DEventMap>

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:470
    • - +
    • Searches through an object and its children, starting with the object itself, and returns the first with a property that matches the value given.

      @@ -879,11 +902,11 @@
      value:

      Value of the given property.

    -

    Returns Object3D<Event>[]

    +

    Returns Object3D<Object3DEventMap>[]

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:478
    • @@ -907,7 +930,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:84
    • @@ -927,7 +950,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:502
    • @@ -947,7 +970,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:484
    • @@ -967,7 +990,7 @@

      Returns Quaterni

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:490
    • @@ -987,7 +1010,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:496
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1009,7 +1032,7 @@
      type:
  • -
    listener: EventListener<Event, T, TerrainQuartile>
    +
    listener: EventListener<Object3DEventMap[T], T, TerrainQuartile>

    The function that gets called when the event is fired.

  • @@ -1017,7 +1040,25 @@

    Returns boolean +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:63
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns boolean

    • @@ -1037,7 +1078,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:388
    • @@ -1059,7 +1100,7 @@

      Remarks

      This method does not support objects having non-uniformly-sca

      +
    • Defined in node_modules/@types/three/src/core/Object3D.d.ts:401
  • Rotates the object to face a point in world space.

    @@ -1088,7 +1129,7 @@

    Remarks

    This method does not support objects having non-uniformly-sca

  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:409
    • @@ -1103,7 +1144,7 @@

      Parameters

      raycaster: Raycaster
    • -
      intersects: Intersection<Object3D<Event>>[]
      +
      intersects: Intersection<Object3D<Object3DEventMap>>[]

    Returns void

    @@ -1115,7 +1156,7 @@

    Default Value

    () => {}

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:512
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:427
  • +

    T extends keyof Object3DEventMap

    Parameters

      @@ -1159,7 +1200,7 @@
      type:
  • -
    listener: EventListener<Event, T, TerrainQuartile>
    +
    listener: EventListener<Object3DEventMap[T], T, TerrainQuartile>

    The listener function that gets removed.

  • @@ -1167,7 +1208,25 @@

    Returns void +
  • Defined in node_modules/@types/three/src/core/EventDispatcher.d.ts:74
  • + +
  • +
    +

    Type Parameters

    +
      +
    • +

      T extends string

    +
    +

    Parameters

    +
    +

    Returns void

  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:432
    • @@ -1206,7 +1265,7 @@

      Remarks

      The axis is assumed to be normalized.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:329
    • @@ -1233,7 +1292,7 @@

      Remarks

      The axis is assumed to be normalized

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:338
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:344
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:350
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:356
    • @@ -1309,7 +1368,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:302
    • @@ -1329,7 +1388,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:308
    • @@ -1351,7 +1410,7 @@

      Remarks

      Note that this assumes that the upper 3x3 of m is a pure rota

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:315
    • @@ -1371,7 +1430,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:321
    • @@ -1400,7 +1459,7 @@

      Returns any

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:560
    • @@ -1427,7 +1486,7 @@

      Remarks

      The axis is assumed to be normalized.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:364
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:370
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:376
  • +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:382
    • @@ -1512,7 +1571,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1520,7 +1579,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:519
    • @@ -1545,7 +1604,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1553,7 +1612,7 @@

    Remarks

    Note: Modifying the scene graph inside the callback is discou

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:534
    • @@ -1578,7 +1637,7 @@
      callback: Parameters
      • -
        object: Object3D<Event>
      +
      object: Object3D<Object3DEventMap>

    Returns any

    Returns void

    @@ -1586,7 +1645,7 @@

    Remarks

    Descendants of invisible objects are not traversed.

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:527
    • @@ -1598,7 +1657,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:539
    • @@ -1620,7 +1679,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:547
  • +
  • Defined in node_modules/@types/three/src/objects/Mesh.d.ts:76
    • @@ -1659,7 +1718,7 @@

      Returns void

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:554
    • @@ -1679,7 +1738,7 @@

      Returns Vector3<

    +
  • Defined in node_modules/@types/three/src/core/Object3D.d.ts:394
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/ThingyStruct.html b/docs/host/interfaces/ThingyStruct.html index 60e19e40..1c0be1fd 100644 --- a/docs/host/interfaces/ThingyStruct.html +++ b/docs/host/interfaces/ThingyStruct.html @@ -1,4 +1,4 @@ -ThingyStruct | titan-reactor-runtime/host
    +ThingyStruct | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -26,7 +26,7 @@

    Implemented by

    +
  • Defined in build/api-types/host/index.d.ts:614
  • @@ -35,6 +35,7 @@

    Properties

    @@ -43,13 +44,18 @@

    Properties

    hp: number
    +
  • Defined in build/api-types/host/index.d.ts:615
  • +
    + +
    spriteAddr: number
    spriteIndex: number
    +
  • Defined in build/api-types/host/index.d.ts:619
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/Unit.html b/docs/host/interfaces/Unit.html index a58d9f0e..918cd9f8 100644 --- a/docs/host/interfaces/Unit.html +++ b/docs/host/interfaces/Unit.html @@ -1,4 +1,4 @@ -Unit | titan-reactor-runtime/host
    +Unit | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Properties

    +
    + +
    airWeaponCooldown: number
    +
    + +
    currentSpeed: number
    +
    + +
    currentVelocityDirection: number
    direction: number
    +
  • Defined in build/api-types/host/index.d.ts:1685
  • energy: number
    +
  • Defined in build/api-types/host/index.d.ts:1658
  • extras: {
        dat: UnitDAT;
        recievingDamage: number;
        selected?: boolean;
    }
    @@ -91,165 +116,188 @@
    recievingDamage
    Optional selected?: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1644
  • +
    + +
    groundWeaponCooldown: number
    hp: number
    +
  • Defined in build/api-types/host/index.d.ts:615
  • id: number
    +
  • Defined in build/api-types/host/index.d.ts:1655
  • +
    + +
    isAttacking: boolean
    kills: number
    +
  • Defined in build/api-types/host/index.d.ts:1664
  • moveTargetX: number
    +
  • Defined in build/api-types/host/index.d.ts:1687
  • moveTargetY: number
    +
  • Defined in build/api-types/host/index.d.ts:1688
  • movementFlags: number
    +
  • Defined in build/api-types/host/index.d.ts:1693
  • nextMovementWaypointX: number
    +
  • Defined in build/api-types/host/index.d.ts:1689
  • nextMovementWaypointY: number
    +
  • Defined in build/api-types/host/index.d.ts:1690
  • nextTargetWaypointX: number
    +
  • Defined in build/api-types/host/index.d.ts:1691
  • nextTargetWaypointY: number
    +
  • Defined in build/api-types/host/index.d.ts:1692
  • order: null | number
    +
  • Defined in build/api-types/host/index.d.ts:1663
  • orderTargetAddr: number
    +
  • Defined in build/api-types/host/index.d.ts:1665
  • orderTargetUnit: number
    +
  • Defined in build/api-types/host/index.d.ts:1668
  • orderTargetX: number
    +
  • Defined in build/api-types/host/index.d.ts:1666
  • orderTargetY: number
    +
  • Defined in build/api-types/host/index.d.ts:1667
  • owner: number
    +
  • Defined in build/api-types/host/index.d.ts:1657
  • remainingBuildTime: number
    +
  • Defined in build/api-types/host/index.d.ts:1661
  • resourceAmount: number
    +
  • Defined in build/api-types/host/index.d.ts:1662
  • shields: number
    +
  • Defined in build/api-types/host/index.d.ts:1659
  • +
    + +
    spellCooldown: number
    +
    + +
    spriteAddr: number
    spriteIndex: number
    +
  • Defined in build/api-types/host/index.d.ts:619
  • statusFlags: number
    +
  • Defined in build/api-types/host/index.d.ts:1660
  • subunit: null | UnitStruct
    +
  • Defined in build/api-types/host/index.d.ts:1675
  • subunitId: null | number
    +
  • Defined in build/api-types/host/index.d.ts:1676
  • typeId: number
    +
  • Defined in build/api-types/host/index.d.ts:1656
  • x: number
    +
  • Defined in build/api-types/host/index.d.ts:1683
  • y: number
    +
  • Defined in build/api-types/host/index.d.ts:1684
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -22,7 +22,7 @@

    Hierarchy

    +
  • Defined in build/api-types/host/index.d.ts:1070
  • @@ -85,242 +85,242 @@

    Properties

    addonHorizontal: number
    +
  • Defined in build/api-types/host/index.d.ts:1100
  • addonVertical: number
    +
  • Defined in build/api-types/host/index.d.ts:1101
  • airWeapon: number
    +
  • Defined in build/api-types/host/index.d.ts:1083
  • armor: number
    +
  • Defined in build/api-types/host/index.d.ts:1087
  • armorUpgrade: number
    +
  • Defined in build/api-types/host/index.d.ts:1085
  • buildScore: number
    +
  • Defined in build/api-types/host/index.d.ts:1116
  • buildTime: number
    +
  • Defined in build/api-types/host/index.d.ts:1109
  • constructionImage: number
    +
  • Defined in build/api-types/host/index.d.ts:1076
  • destroyScore: number
    +
  • Defined in build/api-types/host/index.d.ts:1117
  • direction: number
    +
  • Defined in build/api-types/host/index.d.ts:1077
  • elevationLevel: number
    +
  • Defined in build/api-types/host/index.d.ts:1081
  • flingy: any
    +
  • Defined in build/api-types/host/index.d.ts:1072
  • groundWeapon: number
    +
  • Defined in build/api-types/host/index.d.ts:1082
  • hp: number
    +
  • Defined in build/api-types/host/index.d.ts:1080
  • index: number
    +
  • Defined in build/api-types/host/index.d.ts:1071
  • infestation: number[]
    +
  • Defined in build/api-types/host/index.d.ts:1075
  • mineralCost: number
    +
  • Defined in build/api-types/host/index.d.ts:1107
  • pissSound: number[]
    +
  • Defined in build/api-types/host/index.d.ts:1091
  • pissSoundEnd: number
    +
  • Defined in build/api-types/host/index.d.ts:1097
  • pissSoundStart: number
    +
  • Defined in build/api-types/host/index.d.ts:1096
  • placementHeight: number
    +
  • Defined in build/api-types/host/index.d.ts:1099
  • placementWidth: number
    +
  • Defined in build/api-types/host/index.d.ts:1098
  • portrait: number
    +
  • Defined in build/api-types/host/index.d.ts:1106
  • readySound: number
    +
  • Defined in build/api-types/host/index.d.ts:1088
  • requirements: number
    +
  • Defined in build/api-types/host/index.d.ts:1110
  • shields: number
    +
  • Defined in build/api-types/host/index.d.ts:1079
  • shieldsEnabled: boolean
    +
  • Defined in build/api-types/host/index.d.ts:1078
  • sightRange: number
    +
  • Defined in build/api-types/host/index.d.ts:1084
  • spaceProvided: number
    +
  • Defined in build/api-types/host/index.d.ts:1115
  • spaceRequired: number
    +
  • Defined in build/api-types/host/index.d.ts:1114
  • starEditAvailabilityFlags: number
    +
  • Defined in build/api-types/host/index.d.ts:1118
  • starEditGroupFlags: number
    +
  • Defined in build/api-types/host/index.d.ts:1111
  • subUnit1: number
    +
  • Defined in build/api-types/host/index.d.ts:1073
  • subUnit2: number
    +
  • Defined in build/api-types/host/index.d.ts:1074
  • supplyProvided: number
    +
  • Defined in build/api-types/host/index.d.ts:1112
  • supplyRequired: number
    +
  • Defined in build/api-types/host/index.d.ts:1113
  • unitSize: number
    +
  • Defined in build/api-types/host/index.d.ts:1086
  • unitSizeDown: number
    +
  • Defined in build/api-types/host/index.d.ts:1105
  • unitSizeLeft: number
    +
  • Defined in build/api-types/host/index.d.ts:1102
  • unitSizeRight: number
    +
  • Defined in build/api-types/host/index.d.ts:1104
  • unitSizeUp: number
    +
  • Defined in build/api-types/host/index.d.ts:1103
  • vespeneCost: number
    +
  • Defined in build/api-types/host/index.d.ts:1108
  • whatSound: number[]
    +
  • Defined in build/api-types/host/index.d.ts:1089
  • whatSoundEnd: number
    +
  • Defined in build/api-types/host/index.d.ts:1093
  • whatSoundStart: number
    +
  • Defined in build/api-types/host/index.d.ts:1092
  • yesSound: number[]
    +
  • Defined in build/api-types/host/index.d.ts:1090
  • yesSoundEnd: number
    +
  • Defined in build/api-types/host/index.d.ts:1095
  • yesSoundStart: number
    +
  • Defined in build/api-types/host/index.d.ts:1094
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/UnitStruct.html b/docs/host/interfaces/UnitStruct.html index 65959302..18a68470 100644 --- a/docs/host/interfaces/UnitStruct.html +++ b/docs/host/interfaces/UnitStruct.html @@ -1,4 +1,4 @@ -UnitStruct | titan-reactor-runtime/host
    +UnitStruct | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Properties

    +
    + +
    airWeaponCooldown: number
    +
    + +
    currentSpeed: number
    +
    + +
    currentVelocityDirection: number
    direction: number
    +
  • Defined in build/api-types/host/index.d.ts:1685
  • energy: number
    +
  • Defined in build/api-types/host/index.d.ts:1658
  • +
    + +
    groundWeaponCooldown: number
    hp: number
    +
  • Defined in build/api-types/host/index.d.ts:615
  • id: number
    +
  • Defined in build/api-types/host/index.d.ts:1655
  • kills: number
    +
  • Defined in build/api-types/host/index.d.ts:1664
  • moveTargetX: number
    +
  • Defined in build/api-types/host/index.d.ts:1687
  • moveTargetY: number
    +
  • Defined in build/api-types/host/index.d.ts:1688
  • movementFlags: number
    +
  • Defined in build/api-types/host/index.d.ts:1693
  • nextMovementWaypointX: number
    +
  • Defined in build/api-types/host/index.d.ts:1689
  • nextMovementWaypointY: number
    +
  • Defined in build/api-types/host/index.d.ts:1690
  • nextTargetWaypointX: number
    +
  • Defined in build/api-types/host/index.d.ts:1691
  • nextTargetWaypointY: number
    +
  • Defined in build/api-types/host/index.d.ts:1692
  • order: null | number
    +
  • Defined in build/api-types/host/index.d.ts:1663
  • orderTargetAddr: number
    +
  • Defined in build/api-types/host/index.d.ts:1665
  • orderTargetUnit: number
    +
  • Defined in build/api-types/host/index.d.ts:1668
  • orderTargetX: number
    +
  • Defined in build/api-types/host/index.d.ts:1666
  • orderTargetY: number
    +
  • Defined in build/api-types/host/index.d.ts:1667
  • owner: number
    +
  • Defined in build/api-types/host/index.d.ts:1657
  • remainingBuildTime: number
    +
  • Defined in build/api-types/host/index.d.ts:1661
  • resourceAmount: number
    +
  • Defined in build/api-types/host/index.d.ts:1662
  • shields: number
    +
  • Defined in build/api-types/host/index.d.ts:1659
  • +
    + +
    spellCooldown: number
    +
    + +
    spriteAddr: number
    spriteIndex: number
    +
  • Defined in build/api-types/host/index.d.ts:619
  • statusFlags: number
    +
  • Defined in build/api-types/host/index.d.ts:1660
  • subunit: null | UnitStruct
    +
  • Defined in build/api-types/host/index.d.ts:1675
  • subunitId: null | number
    +
  • Defined in build/api-types/host/index.d.ts:1676
  • typeId: number
    +
  • Defined in build/api-types/host/index.d.ts:1656
  • x: number
    +
  • Defined in build/api-types/host/index.d.ts:1683
  • y: number
    +
  • Defined in build/api-types/host/index.d.ts:1684
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • UpgradeDAT
    +
  • Defined in build/api-types/host/index.d.ts:1034
  • @@ -46,57 +46,57 @@

    Properties

    icon: number
    +
  • Defined in build/api-types/host/index.d.ts:1042
  • maxRepeats: number
    +
  • Defined in build/api-types/host/index.d.ts:1044
  • mineralCostBase: number
    +
  • Defined in build/api-types/host/index.d.ts:1035
  • mineralCostFactor: number
    +
  • Defined in build/api-types/host/index.d.ts:1036
  • name: string
    +
  • Defined in build/api-types/host/index.d.ts:1043
  • race: number
    +
  • Defined in build/api-types/host/index.d.ts:1045
  • requirements: number
    +
  • Defined in build/api-types/host/index.d.ts:1041
  • researchTimeBase: number
    +
  • Defined in build/api-types/host/index.d.ts:1039
  • researchTimeFactor: number
    +
  • Defined in build/api-types/host/index.d.ts:1040
  • vespeneCostBase: number
    +
  • Defined in build/api-types/host/index.d.ts:1038
  • vespeneCostFactor: number
    +
  • Defined in build/api-types/host/index.d.ts:1037
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/WeaponDAT.html b/docs/host/interfaces/WeaponDAT.html index c04db7ab..3572a03e 100644 --- a/docs/host/interfaces/WeaponDAT.html +++ b/docs/host/interfaces/WeaponDAT.html @@ -1,4 +1,4 @@ -WeaponDAT | titan-reactor-runtime/host
    +WeaponDAT | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • WeaponDAT
    +
  • Defined in build/api-types/host/index.d.ts:1198
  • @@ -57,112 +57,112 @@

    Properties

    attackAngle: number
    +
  • Defined in build/api-types/host/index.d.ts:1217
  • damageAmount: number
    +
  • Defined in build/api-types/host/index.d.ts:1213
  • damageBonus: number
    +
  • Defined in build/api-types/host/index.d.ts:1214
  • damageFactor: number
    +
  • Defined in build/api-types/host/index.d.ts:1216
  • damageType: number
    +
  • Defined in build/api-types/host/index.d.ts:1206
  • damageUpgrade: number
    +
  • Defined in build/api-types/host/index.d.ts:1205
  • explosionType: number
    +
  • Defined in build/api-types/host/index.d.ts:1209
  • flingy: FlingyDAT
    +
  • Defined in build/api-types/host/index.d.ts:1201
  • forwardOffset: number
    +
  • Defined in build/api-types/host/index.d.ts:1219
  • index: number
    +
  • Defined in build/api-types/host/index.d.ts:1199
  • innerSplashRange: number
    +
  • Defined in build/api-types/host/index.d.ts:1210
  • launchSpin: number
    +
  • Defined in build/api-types/host/index.d.ts:1218
  • lifetime: number
    +
  • Defined in build/api-types/host/index.d.ts:1208
  • maxRange: number
    +
  • Defined in build/api-types/host/index.d.ts:1204
  • mediumSplashRange: number
    +
  • Defined in build/api-types/host/index.d.ts:1211
  • minRange: number
    +
  • Defined in build/api-types/host/index.d.ts:1203
  • name: string
    +
  • Defined in build/api-types/host/index.d.ts:1200
  • outerSplashRange: number
    +
  • Defined in build/api-types/host/index.d.ts:1212
  • targetFlags: number
    +
  • Defined in build/api-types/host/index.d.ts:1202
  • upwardOffset: number
    +
  • Defined in build/api-types/host/index.d.ts:1220
  • weaponBehavior: number
    +
  • Defined in build/api-types/host/index.d.ts:1207
  • weaponCooldown: number
    +
  • Defined in build/api-types/host/index.d.ts:1215
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/World.html b/docs/host/interfaces/World.html index 7c96df94..0e7c8c40 100644 --- a/docs/host/interfaces/World.html +++ b/docs/host/interfaces/World.html @@ -1,4 +1,4 @@ -World | titan-reactor-runtime/host
    +World | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • World
    +
  • Defined in build/api-types/host/index.d.ts:177
  • @@ -46,63 +46,63 @@

    Methods

    Properties

    -
    commands: CommandsStream
    +
  • Defined in build/api-types/host/index.d.ts:180
  • +
  • Defined in build/api-types/host/index.d.ts:186
  • fogOfWar: FogOfWar
    +
  • Defined in build/api-types/host/index.d.ts:181
  • fogOfWarEffect: FogOfWarEffect
    +
  • Defined in build/api-types/host/index.d.ts:182
  • janitor: Janitor
    +
  • Defined in build/api-types/host/index.d.ts:185
  • -
    map: default
    +
  • Defined in build/api-types/host/index.d.ts:178
  • openBW: OpenBW
    +
  • Defined in build/api-types/host/index.d.ts:183
  • -
    players: BasePlayer[]
    +
  • Defined in build/api-types/host/index.d.ts:179
  • -
    settings: {
        createVariable: ((path) => ((value?) => unknown) & {
            dec: (() => void);
            decCycle: (() => void);
            get: (() => unknown);
            inc: (() => void);
            incCycle: (() => void);
            max: (() => void);
            min: (() => void);
            reset: (() => void);
            set: ((value) => void);
            toggle: (() => void);
        });
        dispose: (() => void);
        getState: (() => {
            audio: {
                global: number;
                music: number;
                playIntroSounds: boolean;
                sound: number;
            };
            input: {
                cameraShakeStrength: number;
                cursorVisible: boolean;
                dampingFactor: number;
                movementSpeed: number;
                rotateSpeed: number;
                sceneController: string;
                unitSelection: boolean;
                zoomLevels: [number, number, number];
            };
            minimap: {
                drawCamera: boolean;
                enabled: boolean;
                interactive: boolean;
                mode: "2d" | "3d";
                opacity: number;
                position: [number, number];
                rotation: [number, number, number];
                scale: number;
                softEdges: boolean;
            };
            postprocessing: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                fogOfWar: number;
            };
            postprocessing3d: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                depthBlurQuality: number;
                depthBokehScale: number;
                depthFocalLength: number;
                depthFocalRange: number;
                envMap: number;
                fogOfWar: number;
                shadowQuality: number;
                sunlightColor: string;
                sunlightDirection: [number, number, number];
                sunlightIntensity: number;
                toneMapping: number;
            };
            session: {
                audioListenerDistance: number;
                sandbox: boolean;
                type: "replay" | "live" | "map";
            };
        });
        getValue: ((path) => unknown);
        merge: ((rhs) => void);
        operate: ((action, transformPath?) => void);
        setValue: ((path, value) => void);
        sourceOfTruth: SourceOfTruth<{
            audio: {
                global: number;
                music: number;
                playIntroSounds: boolean;
                sound: number;
            };
            input: {
                cameraShakeStrength: number;
                cursorVisible: boolean;
                dampingFactor: number;
                movementSpeed: number;
                rotateSpeed: number;
                sceneController: string;
                unitSelection: boolean;
                zoomLevels: [number, number, number];
            };
            minimap: {
                drawCamera: boolean;
                enabled: boolean;
                interactive: boolean;
                mode: "2d" | "3d";
                opacity: number;
                position: [number, number];
                rotation: [number, number, number];
                scale: number;
                softEdges: boolean;
            };
            postprocessing: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                fogOfWar: number;
            };
            postprocessing3d: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                depthBlurQuality: number;
                depthBokehScale: number;
                depthFocalLength: number;
                depthFocalRange: number;
                envMap: number;
                fogOfWar: number;
                shadowQuality: number;
                sunlightColor: string;
                sunlightDirection: [number, number, number];
                sunlightIntensity: number;
                toneMapping: number;
            };
            session: {
                audioListenerDistance: number;
                sandbox: boolean;
                type: "replay" | "live" | "map";
            };
        }>;
        vars: SessionVariables;
    }
    +
    settings: {
        createVariable: ((path) => ((value?) => unknown) & {
            $dec: (() => void);
            $decCycle: (() => void);
            $inc: (() => void);
            $incCycle: (() => void);
            $max: (() => void);
            $min: (() => void);
            $reset: (() => void);
            $set: ((value) => void);
            $toggle: (() => void);
            dec: (() => void);
            decCycle: (() => void);
            get: (() => unknown);
            inc: (() => void);
            incCycle: (() => void);
            max: (() => void);
            min: (() => void);
            reset: (() => void);
            set: ((value) => void);
            toggle: (() => void);
        });
        dispose: (() => void);
        getState: (() => {
            audio: {
                global: number;
                music: number;
                playIntroSounds: boolean;
                sound: number;
            };
            input: {
                cameraShakeStrength: number;
                cursorVisible: boolean;
                dampingFactor: number;
                movementSpeed: number;
                rotateSpeed: number;
                sceneController: string;
                unitSelection: boolean;
                vrController: string;
                zoomLevels: [number, number, number];
            };
            minimap: {
                drawCamera: boolean;
                enabled: boolean;
                interactive: boolean;
                mode: "2d" | "3d";
                opacity: number;
                position: [number, number];
                rotation: [number, number, number];
                scale: number;
                softEdges: boolean;
            };
            postprocessing: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                fogOfWar: number;
            };
            postprocessing3d: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                depthBlurQuality: number;
                depthBokehScale: number;
                depthFocalLength: number;
                depthFocalRange: number;
                envMap: number;
                fogOfWar: number;
                shadowQuality: number;
                sunlightColor: string;
                sunlightDirection: [number, number, number];
                sunlightIntensity: number;
                toneMapping: number;
            };
            session: {
                audioListenerDistance: number;
                sandbox: boolean;
                type: "replay" | "map";
            };
        });
        getValue: ((path) => unknown);
        merge: ((rhs) => void);
        operate: ((action, transformPath?, silentUpdate?) => void);
        setValue: ((path, value, silentUpdate?) => void);
        sourceOfTruth: SourceOfTruth<{
            audio: {
                global: number;
                music: number;
                playIntroSounds: boolean;
                sound: number;
            };
            input: {
                cameraShakeStrength: number;
                cursorVisible: boolean;
                dampingFactor: number;
                movementSpeed: number;
                rotateSpeed: number;
                sceneController: string;
                unitSelection: boolean;
                vrController: string;
                zoomLevels: [number, number, number];
            };
            minimap: {
                drawCamera: boolean;
                enabled: boolean;
                interactive: boolean;
                mode: "2d" | "3d";
                opacity: number;
                position: [number, number];
                rotation: [number, number, number];
                scale: number;
                softEdges: boolean;
            };
            postprocessing: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                fogOfWar: number;
            };
            postprocessing3d: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                depthBlurQuality: number;
                depthBokehScale: number;
                depthFocalLength: number;
                depthFocalRange: number;
                envMap: number;
                fogOfWar: number;
                shadowQuality: number;
                sunlightColor: string;
                sunlightDirection: [number, number, number];
                sunlightIntensity: number;
                toneMapping: number;
            };
            session: {
                audioListenerDistance: number;
                sandbox: boolean;
                type: "replay" | "map";
            };
        }>;
        vars: SessionVariables;
    }

    Type declaration

    • -
      createVariable: ((path) => ((value?) => unknown) & {
          dec: (() => void);
          decCycle: (() => void);
          get: (() => unknown);
          inc: (() => void);
          incCycle: (() => void);
          max: (() => void);
          min: (() => void);
          reset: (() => void);
          set: ((value) => void);
          toggle: (() => void);
      })
      +
      createVariable: ((path) => ((value?) => unknown) & {
          $dec: (() => void);
          $decCycle: (() => void);
          $inc: (() => void);
          $incCycle: (() => void);
          $max: (() => void);
          $min: (() => void);
          $reset: (() => void);
          $set: ((value) => void);
          $toggle: (() => void);
          dec: (() => void);
          decCycle: (() => void);
          get: (() => unknown);
          inc: (() => void);
          incCycle: (() => void);
          max: (() => void);
          min: (() => void);
          reset: (() => void);
          set: ((value) => void);
          toggle: (() => void);
      })
        • -
        • (path): ((value?) => unknown) & {
              dec: (() => void);
              decCycle: (() => void);
              get: (() => unknown);
              inc: (() => void);
              incCycle: (() => void);
              max: (() => void);
              min: (() => void);
              reset: (() => void);
              set: ((value) => void);
              toggle: (() => void);
          }
        • +
        • (path): ((value?) => unknown) & {
              $dec: (() => void);
              $decCycle: (() => void);
              $inc: (() => void);
              $incCycle: (() => void);
              $max: (() => void);
              $min: (() => void);
              $reset: (() => void);
              $set: ((value) => void);
              $toggle: (() => void);
              dec: (() => void);
              decCycle: (() => void);
              get: (() => unknown);
              inc: (() => void);
              incCycle: (() => void);
              max: (() => void);
              min: (() => void);
              reset: (() => void);
              set: ((value) => void);
              toggle: (() => void);
          }
        • Parameters

          • path: string[]
          -

          Returns ((value?) => unknown) & {
              dec: (() => void);
              decCycle: (() => void);
              get: (() => unknown);
              inc: (() => void);
              incCycle: (() => void);
              max: (() => void);
              min: (() => void);
              reset: (() => void);
              set: ((value) => void);
              toggle: (() => void);
          }

    • +

      Returns ((value?) => unknown) & {
          $dec: (() => void);
          $decCycle: (() => void);
          $inc: (() => void);
          $incCycle: (() => void);
          $max: (() => void);
          $min: (() => void);
          $reset: (() => void);
          $set: ((value) => void);
          $toggle: (() => void);
          dec: (() => void);
          decCycle: (() => void);
          get: (() => unknown);
          inc: (() => void);
          incCycle: (() => void);
          max: (() => void);
          min: (() => void);
          reset: (() => void);
          set: ((value) => void);
          toggle: (() => void);
      }

  • dispose: (() => void)
      @@ -112,13 +112,13 @@
      dispose

      Returns void

  • -
    getState: (() => {
        audio: {
            global: number;
            music: number;
            playIntroSounds: boolean;
            sound: number;
        };
        input: {
            cameraShakeStrength: number;
            cursorVisible: boolean;
            dampingFactor: number;
            movementSpeed: number;
            rotateSpeed: number;
            sceneController: string;
            unitSelection: boolean;
            zoomLevels: [number, number, number];
        };
        minimap: {
            drawCamera: boolean;
            enabled: boolean;
            interactive: boolean;
            mode: "2d" | "3d";
            opacity: number;
            position: [number, number];
            rotation: [number, number, number];
            scale: number;
            softEdges: boolean;
        };
        postprocessing: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            fogOfWar: number;
        };
        postprocessing3d: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            depthBlurQuality: number;
            depthBokehScale: number;
            depthFocalLength: number;
            depthFocalRange: number;
            envMap: number;
            fogOfWar: number;
            shadowQuality: number;
            sunlightColor: string;
            sunlightDirection: [number, number, number];
            sunlightIntensity: number;
            toneMapping: number;
        };
        session: {
            audioListenerDistance: number;
            sandbox: boolean;
            type: "replay" | "live" | "map";
        };
    })
    +
    getState: (() => {
        audio: {
            global: number;
            music: number;
            playIntroSounds: boolean;
            sound: number;
        };
        input: {
            cameraShakeStrength: number;
            cursorVisible: boolean;
            dampingFactor: number;
            movementSpeed: number;
            rotateSpeed: number;
            sceneController: string;
            unitSelection: boolean;
            vrController: string;
            zoomLevels: [number, number, number];
        };
        minimap: {
            drawCamera: boolean;
            enabled: boolean;
            interactive: boolean;
            mode: "2d" | "3d";
            opacity: number;
            position: [number, number];
            rotation: [number, number, number];
            scale: number;
            softEdges: boolean;
        };
        postprocessing: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            fogOfWar: number;
        };
        postprocessing3d: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            depthBlurQuality: number;
            depthBokehScale: number;
            depthFocalLength: number;
            depthFocalRange: number;
            envMap: number;
            fogOfWar: number;
            shadowQuality: number;
            sunlightColor: string;
            sunlightDirection: [number, number, number];
            sunlightIntensity: number;
            toneMapping: number;
        };
        session: {
            audioListenerDistance: number;
            sandbox: boolean;
            type: "replay" | "map";
        };
    })
      • -
      • (): {
            audio: {
                global: number;
                music: number;
                playIntroSounds: boolean;
                sound: number;
            };
            input: {
                cameraShakeStrength: number;
                cursorVisible: boolean;
                dampingFactor: number;
                movementSpeed: number;
                rotateSpeed: number;
                sceneController: string;
                unitSelection: boolean;
                zoomLevels: [number, number, number];
            };
            minimap: {
                drawCamera: boolean;
                enabled: boolean;
                interactive: boolean;
                mode: "2d" | "3d";
                opacity: number;
                position: [number, number];
                rotation: [number, number, number];
                scale: number;
                softEdges: boolean;
            };
            postprocessing: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                fogOfWar: number;
            };
            postprocessing3d: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                depthBlurQuality: number;
                depthBokehScale: number;
                depthFocalLength: number;
                depthFocalRange: number;
                envMap: number;
                fogOfWar: number;
                shadowQuality: number;
                sunlightColor: string;
                sunlightDirection: [number, number, number];
                sunlightIntensity: number;
                toneMapping: number;
            };
            session: {
                audioListenerDistance: number;
                sandbox: boolean;
                type: "replay" | "live" | "map";
            };
        }
      • +
      • (): {
            audio: {
                global: number;
                music: number;
                playIntroSounds: boolean;
                sound: number;
            };
            input: {
                cameraShakeStrength: number;
                cursorVisible: boolean;
                dampingFactor: number;
                movementSpeed: number;
                rotateSpeed: number;
                sceneController: string;
                unitSelection: boolean;
                vrController: string;
                zoomLevels: [number, number, number];
            };
            minimap: {
                drawCamera: boolean;
                enabled: boolean;
                interactive: boolean;
                mode: "2d" | "3d";
                opacity: number;
                position: [number, number];
                rotation: [number, number, number];
                scale: number;
                softEdges: boolean;
            };
            postprocessing: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                fogOfWar: number;
            };
            postprocessing3d: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                depthBlurQuality: number;
                depthBokehScale: number;
                depthFocalLength: number;
                depthFocalRange: number;
                envMap: number;
                fogOfWar: number;
                shadowQuality: number;
                sunlightColor: string;
                sunlightDirection: [number, number, number];
                sunlightIntensity: number;
                toneMapping: number;
            };
            session: {
                audioListenerDistance: number;
                sandbox: boolean;
                type: "replay" | "map";
            };
        }
      • -

        Returns {
            audio: {
                global: number;
                music: number;
                playIntroSounds: boolean;
                sound: number;
            };
            input: {
                cameraShakeStrength: number;
                cursorVisible: boolean;
                dampingFactor: number;
                movementSpeed: number;
                rotateSpeed: number;
                sceneController: string;
                unitSelection: boolean;
                zoomLevels: [number, number, number];
            };
            minimap: {
                drawCamera: boolean;
                enabled: boolean;
                interactive: boolean;
                mode: "2d" | "3d";
                opacity: number;
                position: [number, number];
                rotation: [number, number, number];
                scale: number;
                softEdges: boolean;
            };
            postprocessing: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                fogOfWar: number;
            };
            postprocessing3d: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                depthBlurQuality: number;
                depthBokehScale: number;
                depthFocalLength: number;
                depthFocalRange: number;
                envMap: number;
                fogOfWar: number;
                shadowQuality: number;
                sunlightColor: string;
                sunlightDirection: [number, number, number];
                sunlightIntensity: number;
                toneMapping: number;
            };
            session: {
                audioListenerDistance: number;
                sandbox: boolean;
                type: "replay" | "live" | "map";
            };
        }

        +

        Returns {
            audio: {
                global: number;
                music: number;
                playIntroSounds: boolean;
                sound: number;
            };
            input: {
                cameraShakeStrength: number;
                cursorVisible: boolean;
                dampingFactor: number;
                movementSpeed: number;
                rotateSpeed: number;
                sceneController: string;
                unitSelection: boolean;
                vrController: string;
                zoomLevels: [number, number, number];
            };
            minimap: {
                drawCamera: boolean;
                enabled: boolean;
                interactive: boolean;
                mode: "2d" | "3d";
                opacity: number;
                position: [number, number];
                rotation: [number, number, number];
                scale: number;
                softEdges: boolean;
            };
            postprocessing: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                fogOfWar: number;
            };
            postprocessing3d: {
                anisotropy: number;
                antialias: number;
                bloom: number;
                brightness: number;
                contrast: number;
                depthBlurQuality: number;
                depthBokehScale: number;
                depthFocalLength: number;
                depthFocalRange: number;
                envMap: number;
                fogOfWar: number;
                shadowQuality: number;
                sunlightColor: string;
                sunlightDirection: [number, number, number];
                sunlightIntensity: number;
                toneMapping: number;
            };
            session: {
                audioListenerDistance: number;
                sandbox: boolean;
                type: "replay" | "map";
            };
        }

        • audio: {
              global: number;
              music: number;
              playIntroSounds: boolean;
              sound: number;
          }
          @@ -132,7 +132,7 @@
          playIntroSounds
          sound: number
      • -
        input: {
            cameraShakeStrength: number;
            cursorVisible: boolean;
            dampingFactor: number;
            movementSpeed: number;
            rotateSpeed: number;
            sceneController: string;
            unitSelection: boolean;
            zoomLevels: [number, number, number];
        }
        +
        input: {
            cameraShakeStrength: number;
            cursorVisible: boolean;
            dampingFactor: number;
            movementSpeed: number;
            rotateSpeed: number;
            sceneController: string;
            unitSelection: boolean;
            vrController: string;
            zoomLevels: [number, number, number];
        }
        • cameraShakeStrength: number
        • @@ -149,6 +149,8 @@
          sceneController
          unitSelection: boolean
        • +
          vrController: string
        • +
        • zoomLevels: [number, number, number]
      • minimap: {
            drawCamera: boolean;
            enabled: boolean;
            interactive: boolean;
            mode: "2d" | "3d";
            opacity: number;
            position: [number, number];
            rotation: [number, number, number];
            scale: number;
            softEdges: boolean;
        }
        @@ -222,14 +224,14 @@
        sunlightIntensity
        toneMapping: number
    • -
      session: {
          audioListenerDistance: number;
          sandbox: boolean;
          type: "replay" | "live" | "map";
      }
      +
      session: {
          audioListenerDistance: number;
          sandbox: boolean;
          type: "replay" | "map";
      }
      • audioListenerDistance: number
      • sandbox: boolean
      • -
        type: "replay" | "live" | "map"
  • +
    type: "replay" | "map"
  • getValue: ((path) => unknown)
      @@ -254,7 +256,7 @@
      mergeParameters
      • -
        rhs: {
            audio?: {
                global?: number;
                music?: number;
                playIntroSounds?: boolean;
                sound?: number;
            };
            input?: {
                cameraShakeStrength?: number;
                cursorVisible?: boolean;
                dampingFactor?: number;
                movementSpeed?: number;
                rotateSpeed?: number;
                sceneController?: string;
                unitSelection?: boolean;
                zoomLevels?: [number?, number?, number?];
            };
            minimap?: {
                drawCamera?: boolean;
                enabled?: boolean;
                interactive?: boolean;
                mode?: "2d" | "3d";
                opacity?: number;
                position?: [number?, number?];
                rotation?: [number?, number?, number?];
                scale?: number;
                softEdges?: boolean;
            };
            postprocessing?: {
                anisotropy?: number;
                antialias?: number;
                bloom?: number;
                brightness?: number;
                contrast?: number;
                fogOfWar?: number;
            };
            postprocessing3d?: {
                anisotropy?: number;
                antialias?: number;
                bloom?: number;
                brightness?: number;
                contrast?: number;
                depthBlurQuality?: number;
                depthBokehScale?: number;
                depthFocalLength?: number;
                depthFocalRange?: number;
                envMap?: number;
                fogOfWar?: number;
                shadowQuality?: number;
                sunlightColor?: string;
                sunlightDirection?: [number?, number?, number?];
                sunlightIntensity?: number;
                toneMapping?: number;
            };
            session?: {
                audioListenerDistance?: number;
                sandbox?: boolean;
                type?: "replay" | "live" | "map";
            };
        }
        +
        rhs: {
            audio?: {
                global?: number;
                music?: number;
                playIntroSounds?: boolean;
                sound?: number;
            };
            input?: {
                cameraShakeStrength?: number;
                cursorVisible?: boolean;
                dampingFactor?: number;
                movementSpeed?: number;
                rotateSpeed?: number;
                sceneController?: string;
                unitSelection?: boolean;
                vrController?: string;
                zoomLevels?: [number?, number?, number?];
            };
            minimap?: {
                drawCamera?: boolean;
                enabled?: boolean;
                interactive?: boolean;
                mode?: "2d" | "3d";
                opacity?: number;
                position?: [number?, number?];
                rotation?: [number?, number?, number?];
                scale?: number;
                softEdges?: boolean;
            };
            postprocessing?: {
                anisotropy?: number;
                antialias?: number;
                bloom?: number;
                brightness?: number;
                contrast?: number;
                fogOfWar?: number;
            };
            postprocessing3d?: {
                anisotropy?: number;
                antialias?: number;
                bloom?: number;
                brightness?: number;
                contrast?: number;
                depthBlurQuality?: number;
                depthBokehScale?: number;
                depthFocalLength?: number;
                depthFocalRange?: number;
                envMap?: number;
                fogOfWar?: number;
                shadowQuality?: number;
                sunlightColor?: string;
                sunlightDirection?: [number?, number?, number?];
                sunlightIntensity?: number;
                toneMapping?: number;
            };
            session?: {
                audioListenerDistance?: number;
                sandbox?: boolean;
                type?: "replay" | "map";
            };
        }
        • Optional audio?: {
              global?: number;
              music?: number;
              playIntroSounds?: boolean;
              sound?: number;
          }
          @@ -268,7 +270,7 @@
          Optional
          Optional sound?: number
      • -
        Optional input?: {
            cameraShakeStrength?: number;
            cursorVisible?: boolean;
            dampingFactor?: number;
            movementSpeed?: number;
            rotateSpeed?: number;
            sceneController?: string;
            unitSelection?: boolean;
            zoomLevels?: [number?, number?, number?];
        }
        +
        Optional input?: {
            cameraShakeStrength?: number;
            cursorVisible?: boolean;
            dampingFactor?: number;
            movementSpeed?: number;
            rotateSpeed?: number;
            sceneController?: string;
            unitSelection?: boolean;
            vrController?: string;
            zoomLevels?: [number?, number?, number?];
        }
        • Optional cameraShakeStrength?: number
        • @@ -285,6 +287,8 @@
          Optional
          Optional unitSelection?: boolean
        • +
          Optional vrController?: string
        • +
        • Optional zoomLevels?: [number?, number?, number?]
      • Optional minimap?: {
            drawCamera?: boolean;
            enabled?: boolean;
            interactive?: boolean;
            mode?: "2d" | "3d";
            opacity?: number;
            position?: [number?, number?];
            rotation?: [number?, number?, number?];
            scale?: number;
            softEdges?: boolean;
        }
        @@ -358,21 +362,21 @@
        Optional
        Optional toneMapping?: number
    • -
      Optional session?: {
          audioListenerDistance?: number;
          sandbox?: boolean;
          type?: "replay" | "live" | "map";
      }
      +
      Optional session?: {
          audioListenerDistance?: number;
          sandbox?: boolean;
          type?: "replay" | "map";
      }
      • Optional audioListenerDistance?: number
      • Optional sandbox?: boolean
      • -
        Optional type?: "replay" | "live" | "map"
  • +
    Optional type?: "replay" | "map"

    Returns void

  • -
    operate: ((action, transformPath?) => void)
    +
    operate: ((action, transformPath?, silentUpdate?) => void)
      • -
      • (action, transformPath?): void
      • +
      • (action, transformPath?, silentUpdate?): void
      • Parameters

        @@ -391,14 +395,16 @@

        Parameters

        • path: string[]
        -

        Returns string[]

  • +

    Returns string[]

    +
  • +
    Optional silentUpdate: boolean
  • Returns void

  • -
    setValue: ((path, value) => void)
    +
    setValue: ((path, value, silentUpdate?) => void)
      • -
      • (path, value): void
      • +
      • (path, value, silentUpdate?): void
      • Parameters

        @@ -406,14 +412,16 @@

        Parameters

      • path: string[]
      • -
        value: unknown
      +
      value: unknown
    • +
    • +
      Optional silentUpdate: boolean

    Returns void

  • -
    sourceOfTruth: SourceOfTruth<{
        audio: {
            global: number;
            music: number;
            playIntroSounds: boolean;
            sound: number;
        };
        input: {
            cameraShakeStrength: number;
            cursorVisible: boolean;
            dampingFactor: number;
            movementSpeed: number;
            rotateSpeed: number;
            sceneController: string;
            unitSelection: boolean;
            zoomLevels: [number, number, number];
        };
        minimap: {
            drawCamera: boolean;
            enabled: boolean;
            interactive: boolean;
            mode: "2d" | "3d";
            opacity: number;
            position: [number, number];
            rotation: [number, number, number];
            scale: number;
            softEdges: boolean;
        };
        postprocessing: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            fogOfWar: number;
        };
        postprocessing3d: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            depthBlurQuality: number;
            depthBokehScale: number;
            depthFocalLength: number;
            depthFocalRange: number;
            envMap: number;
            fogOfWar: number;
            shadowQuality: number;
            sunlightColor: string;
            sunlightDirection: [number, number, number];
            sunlightIntensity: number;
            toneMapping: number;
        };
        session: {
            audioListenerDistance: number;
            sandbox: boolean;
            type: "replay" | "live" | "map";
        };
    }>
  • +
    sourceOfTruth: SourceOfTruth<{
        audio: {
            global: number;
            music: number;
            playIntroSounds: boolean;
            sound: number;
        };
        input: {
            cameraShakeStrength: number;
            cursorVisible: boolean;
            dampingFactor: number;
            movementSpeed: number;
            rotateSpeed: number;
            sceneController: string;
            unitSelection: boolean;
            vrController: string;
            zoomLevels: [number, number, number];
        };
        minimap: {
            drawCamera: boolean;
            enabled: boolean;
            interactive: boolean;
            mode: "2d" | "3d";
            opacity: number;
            position: [number, number];
            rotation: [number, number, number];
            scale: number;
            softEdges: boolean;
        };
        postprocessing: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            fogOfWar: number;
        };
        postprocessing3d: {
            anisotropy: number;
            antialias: number;
            bloom: number;
            brightness: number;
            contrast: number;
            depthBlurQuality: number;
            depthBokehScale: number;
            depthFocalLength: number;
            depthFocalRange: number;
            envMap: number;
            fogOfWar: number;
            shadowQuality: number;
            sunlightColor: string;
            sunlightDirection: [number, number, number];
            sunlightIntensity: number;
            toneMapping: number;
        };
        session: {
            audioListenerDistance: number;
            sandbox: boolean;
            type: "replay" | "map";
        };
    }>
  • vars: SessionVariables
  • +
  • Defined in build/api-types/host/index.d.ts:184
  • Methods

    @@ -423,7 +431,7 @@
    +
  • Defined in build/api-types/host/index.d.ts:187
  • Generated using TypeDoc

    diff --git a/docs/host/interfaces/WorldEvents.html b/docs/host/interfaces/WorldEvents.html index 568d97a7..0694f3ad 100644 --- a/docs/host/interfaces/WorldEvents.html +++ b/docs/host/interfaces/WorldEvents.html @@ -1,4 +1,4 @@ -WorldEvents | titan-reactor-runtime/host
    +WorldEvents | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    @@ -20,7 +20,7 @@

    Hierarchy

    • WorldEvents
    +
  • Defined in build/api-types/host/index.d.ts:2352
  • @@ -44,14 +44,18 @@

    Properties

    minimap-leave mouse-click plugin-configuration-changed +pre-run:complete +pre-run:frame resize scene-controller-enter scene-controller-exit selected-units-changed settings-changed +unit-completed unit-created unit-destroyed unit-killed +unit-updated units-cleared world-end world-start @@ -62,22 +66,22 @@

    Properties

    box-selection-enabled: boolean
    +
  • Defined in build/api-types/host/index.d.ts:2388
  • box-selection-end: Unit[]
    +
  • Defined in build/api-types/host/index.d.ts:2387
  • box-selection-move: undefined
    +
  • Defined in build/api-types/host/index.d.ts:2386
  • box-selection-start: undefined
    +
  • Defined in build/api-types/host/index.d.ts:2385
  • completed-tech: {
        owner: number;
        typeId: number;
    }
    @@ -89,7 +93,7 @@
    owner
    typeId: number
    +
  • Defined in build/api-types/host/index.d.ts:2365
  • completed-upgrade: {
        level: number;
        owner: number;
        typeId: number;
    }
    @@ -103,65 +107,65 @@
    owner
    typeId: number
    +
  • Defined in build/api-types/host/index.d.ts:2360
  • dispose: undefined
    +
  • Defined in build/api-types/host/index.d.ts:2393
  • followed-units-changed: Unit[]
    +
  • Defined in build/api-types/host/index.d.ts:2358
  • frame-reset: number
    +
  • Defined in build/api-types/host/index.d.ts:2369
  • image-created: ImageBase
    +
  • Defined in build/api-types/host/index.d.ts:2374
  • image-destroyed: ImageBase
    +
  • Defined in build/api-types/host/index.d.ts:2372
  • image-updated: ImageBase
    +
  • Defined in build/api-types/host/index.d.ts:2373
  • minimap-enter: undefined
    +
  • Defined in build/api-types/host/index.d.ts:2370
  • minimap-leave: undefined
    +
  • Defined in build/api-types/host/index.d.ts:2371
  • mouse-click: MouseEventDTO
    +
  • Defined in build/api-types/host/index.d.ts:2394
  • -
    plugin-configuration-changed: {
        rhs: {
            audio?: { global?: number | undefined; music?: number | undefined; sound?: number | undefined; playIntroSounds?: boolean | undefined; };
            input?: { sceneController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; cameraShakeStrength?: number | undefined; zoomLevels?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; unitSelection?: boolean | undefined; cursorVisible?: boolean | undefined; };
            minimap?: { mode?: "2d" | "3d" | undefined; position?: [(number | undefined)?, (number | undefined)?] | undefined; rotation?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; scale?: number | undefined; enabled?: boolean | undefined; opacity?: number | undefined; softEdges?: boolean | undefined; interactive?: boolean | undefined; drawCamera?: boolean | undefined; };
            postprocessing?: { anisotropy?: number | undefined; antialias?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; fogOfWar?: number | undefined; };
            postprocessing3d?: { anisotropy?: number | undefined; antialias?: number | undefined; toneMapping?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; depthFocalLength?: number | undefined; depthBokehScale?: number | undefined; depthBlurQuality?: number | undefined; depthFocalRange?: number | undefined; fogOfWar?: number | undefined; envMap?: number | undefined; sunlightDirection?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; sunlightColor?: string | undefined; sunlightIntensity?: number | undefined; shadowQuality?: number | undefined; };
            session?: { type?: "replay" | "live" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; };
        };
        settings: SessionSettingsData;
    }
    +
    plugin-configuration-changed: {
        rhs: {
            audio?: { global?: number | undefined; music?: number | undefined; sound?: number | undefined; playIntroSounds?: boolean | undefined; };
            input?: { sceneController?: string | undefined; vrController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; cameraShakeStrength?: number | undefined; zoomLevels?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; unitSelection?: boolean | undefined; cursorVisible?: boolean | undefined; };
            minimap?: { mode?: "2d" | "3d" | undefined; position?: [(number | undefined)?, (number | undefined)?] | undefined; rotation?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; scale?: number | undefined; enabled?: boolean | undefined; opacity?: number | undefined; softEdges?: boolean | undefined; interactive?: boolean | undefined; drawCamera?: boolean | undefined; };
            postprocessing?: { anisotropy?: number | undefined; antialias?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; fogOfWar?: number | undefined; };
            postprocessing3d?: { anisotropy?: number | undefined; antialias?: number | undefined; toneMapping?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; depthFocalLength?: number | undefined; depthBokehScale?: number | undefined; depthBlurQuality?: number | undefined; depthFocalRange?: number | undefined; fogOfWar?: number | undefined; envMap?: number | undefined; sunlightDirection?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; sunlightColor?: string | undefined; sunlightIntensity?: number | undefined; shadowQuality?: number | undefined; };
            session?: { type?: "replay" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; };
        };
        settings: SessionSettingsData;
    }

    Type declaration

    • -
      rhs: {
          audio?: { global?: number | undefined; music?: number | undefined; sound?: number | undefined; playIntroSounds?: boolean | undefined; };
          input?: { sceneController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; cameraShakeStrength?: number | undefined; zoomLevels?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; unitSelection?: boolean | undefined; cursorVisible?: boolean | undefined; };
          minimap?: { mode?: "2d" | "3d" | undefined; position?: [(number | undefined)?, (number | undefined)?] | undefined; rotation?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; scale?: number | undefined; enabled?: boolean | undefined; opacity?: number | undefined; softEdges?: boolean | undefined; interactive?: boolean | undefined; drawCamera?: boolean | undefined; };
          postprocessing?: { anisotropy?: number | undefined; antialias?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; fogOfWar?: number | undefined; };
          postprocessing3d?: { anisotropy?: number | undefined; antialias?: number | undefined; toneMapping?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; depthFocalLength?: number | undefined; depthBokehScale?: number | undefined; depthBlurQuality?: number | undefined; depthFocalRange?: number | undefined; fogOfWar?: number | undefined; envMap?: number | undefined; sunlightDirection?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; sunlightColor?: string | undefined; sunlightIntensity?: number | undefined; shadowQuality?: number | undefined; };
          session?: { type?: "replay" | "live" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; };
      }
      +
      rhs: {
          audio?: { global?: number | undefined; music?: number | undefined; sound?: number | undefined; playIntroSounds?: boolean | undefined; };
          input?: { sceneController?: string | undefined; vrController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; cameraShakeStrength?: number | undefined; zoomLevels?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; unitSelection?: boolean | undefined; cursorVisible?: boolean | undefined; };
          minimap?: { mode?: "2d" | "3d" | undefined; position?: [(number | undefined)?, (number | undefined)?] | undefined; rotation?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; scale?: number | undefined; enabled?: boolean | undefined; opacity?: number | undefined; softEdges?: boolean | undefined; interactive?: boolean | undefined; drawCamera?: boolean | undefined; };
          postprocessing?: { anisotropy?: number | undefined; antialias?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; fogOfWar?: number | undefined; };
          postprocessing3d?: { anisotropy?: number | undefined; antialias?: number | undefined; toneMapping?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; depthFocalLength?: number | undefined; depthBokehScale?: number | undefined; depthBlurQuality?: number | undefined; depthFocalRange?: number | undefined; fogOfWar?: number | undefined; envMap?: number | undefined; sunlightDirection?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; sunlightColor?: string | undefined; sunlightIntensity?: number | undefined; shadowQuality?: number | undefined; };
          session?: { type?: "replay" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; };
      }
      • Optional audio?: { global?: number | undefined; music?: number | undefined; sound?: number | undefined; playIntroSounds?: boolean | undefined; }
      • -
        Optional input?: { sceneController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; cameraShakeStrength?: number | undefined; zoomLevels?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; unitSelection?: boolean | undefined; cursorVisible?: boolean | undefined; }
      • +
        Optional input?: { sceneController?: string | undefined; vrController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; cameraShakeStrength?: number | undefined; zoomLevels?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; unitSelection?: boolean | undefined; cursorVisible?: boolean | undefined; }
      • Optional minimap?: { mode?: "2d" | "3d" | undefined; position?: [(number | undefined)?, (number | undefined)?] | undefined; rotation?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; scale?: number | undefined; enabled?: boolean | undefined; opacity?: number | undefined; softEdges?: boolean | undefined; interactive?: boolean | undefined; drawCamera?: boolean | undefined; }
      • @@ -169,44 +173,61 @@
        Optional
        Optional postprocessing3d?: { anisotropy?: number | undefined; antialias?: number | undefined; toneMapping?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; depthFocalLength?: number | undefined; depthBokehScale?: number | undefined; depthBlurQuality?: number | undefined; depthFocalRange?: number | undefined; fogOfWar?: number | undefined; envMap?: number | undefined; sunlightDirection?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; sunlightColor?: string | undefined; sunlightIntensity?: number | undefined; shadowQuality?: number | undefined; }
      • -
        Optional session?: { type?: "replay" | "live" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; }
    • +
      Optional session?: { type?: "replay" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; }
  • settings: SessionSettingsData
  • +
  • Defined in build/api-types/host/index.d.ts:2380
  • +
    + +
    pre-run:complete: void
    +
    + +
    pre-run:frame: {
        commands: unknown[];
        frame: number;
    }
    +
    +

    Type declaration

    +
      +
    • +
      commands: unknown[]
    • +
    • +
      frame: number
    resize: GameSurface
    +
  • Defined in build/api-types/host/index.d.ts:2384
  • scene-controller-enter: string
    +
  • Defined in build/api-types/host/index.d.ts:2390
  • scene-controller-exit: string
    +
  • Defined in build/api-types/host/index.d.ts:2389
  • selected-units-changed: Unit[]
    +
  • Defined in build/api-types/host/index.d.ts:2359
  • -
    settings-changed: {
        rhs: {
            audio?: { global?: number | undefined; music?: number | undefined; sound?: number | undefined; playIntroSounds?: boolean | undefined; };
            input?: { sceneController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; cameraShakeStrength?: number | undefined; zoomLevels?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; unitSelection?: boolean | undefined; cursorVisible?: boolean | undefined; };
            minimap?: { mode?: "2d" | "3d" | undefined; position?: [(number | undefined)?, (number | undefined)?] | undefined; rotation?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; scale?: number | undefined; enabled?: boolean | undefined; opacity?: number | undefined; softEdges?: boolean | undefined; interactive?: boolean | undefined; drawCamera?: boolean | undefined; };
            postprocessing?: { anisotropy?: number | undefined; antialias?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; fogOfWar?: number | undefined; };
            postprocessing3d?: { anisotropy?: number | undefined; antialias?: number | undefined; toneMapping?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; depthFocalLength?: number | undefined; depthBokehScale?: number | undefined; depthBlurQuality?: number | undefined; depthFocalRange?: number | undefined; fogOfWar?: number | undefined; envMap?: number | undefined; sunlightDirection?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; sunlightColor?: string | undefined; sunlightIntensity?: number | undefined; shadowQuality?: number | undefined; };
            session?: { type?: "replay" | "live" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; };
        };
        settings: SessionSettingsData;
    }
    +
    settings-changed: {
        rhs: {
            audio?: { global?: number | undefined; music?: number | undefined; sound?: number | undefined; playIntroSounds?: boolean | undefined; };
            input?: { sceneController?: string | undefined; vrController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; cameraShakeStrength?: number | undefined; zoomLevels?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; unitSelection?: boolean | undefined; cursorVisible?: boolean | undefined; };
            minimap?: { mode?: "2d" | "3d" | undefined; position?: [(number | undefined)?, (number | undefined)?] | undefined; rotation?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; scale?: number | undefined; enabled?: boolean | undefined; opacity?: number | undefined; softEdges?: boolean | undefined; interactive?: boolean | undefined; drawCamera?: boolean | undefined; };
            postprocessing?: { anisotropy?: number | undefined; antialias?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; fogOfWar?: number | undefined; };
            postprocessing3d?: { anisotropy?: number | undefined; antialias?: number | undefined; toneMapping?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; depthFocalLength?: number | undefined; depthBokehScale?: number | undefined; depthBlurQuality?: number | undefined; depthFocalRange?: number | undefined; fogOfWar?: number | undefined; envMap?: number | undefined; sunlightDirection?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; sunlightColor?: string | undefined; sunlightIntensity?: number | undefined; shadowQuality?: number | undefined; };
            session?: { type?: "replay" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; };
        };
        settings: SessionSettingsData;
    }

    Type declaration

    • -
      rhs: {
          audio?: { global?: number | undefined; music?: number | undefined; sound?: number | undefined; playIntroSounds?: boolean | undefined; };
          input?: { sceneController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; cameraShakeStrength?: number | undefined; zoomLevels?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; unitSelection?: boolean | undefined; cursorVisible?: boolean | undefined; };
          minimap?: { mode?: "2d" | "3d" | undefined; position?: [(number | undefined)?, (number | undefined)?] | undefined; rotation?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; scale?: number | undefined; enabled?: boolean | undefined; opacity?: number | undefined; softEdges?: boolean | undefined; interactive?: boolean | undefined; drawCamera?: boolean | undefined; };
          postprocessing?: { anisotropy?: number | undefined; antialias?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; fogOfWar?: number | undefined; };
          postprocessing3d?: { anisotropy?: number | undefined; antialias?: number | undefined; toneMapping?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; depthFocalLength?: number | undefined; depthBokehScale?: number | undefined; depthBlurQuality?: number | undefined; depthFocalRange?: number | undefined; fogOfWar?: number | undefined; envMap?: number | undefined; sunlightDirection?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; sunlightColor?: string | undefined; sunlightIntensity?: number | undefined; shadowQuality?: number | undefined; };
          session?: { type?: "replay" | "live" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; };
      }
      +
      rhs: {
          audio?: { global?: number | undefined; music?: number | undefined; sound?: number | undefined; playIntroSounds?: boolean | undefined; };
          input?: { sceneController?: string | undefined; vrController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; cameraShakeStrength?: number | undefined; zoomLevels?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; unitSelection?: boolean | undefined; cursorVisible?: boolean | undefined; };
          minimap?: { mode?: "2d" | "3d" | undefined; position?: [(number | undefined)?, (number | undefined)?] | undefined; rotation?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; scale?: number | undefined; enabled?: boolean | undefined; opacity?: number | undefined; softEdges?: boolean | undefined; interactive?: boolean | undefined; drawCamera?: boolean | undefined; };
          postprocessing?: { anisotropy?: number | undefined; antialias?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; fogOfWar?: number | undefined; };
          postprocessing3d?: { anisotropy?: number | undefined; antialias?: number | undefined; toneMapping?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; depthFocalLength?: number | undefined; depthBokehScale?: number | undefined; depthBlurQuality?: number | undefined; depthFocalRange?: number | undefined; fogOfWar?: number | undefined; envMap?: number | undefined; sunlightDirection?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; sunlightColor?: string | undefined; sunlightIntensity?: number | undefined; shadowQuality?: number | undefined; };
          session?: { type?: "replay" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; };
      }
      • Optional audio?: { global?: number | undefined; music?: number | undefined; sound?: number | undefined; playIntroSounds?: boolean | undefined; }
      • -
        Optional input?: { sceneController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; cameraShakeStrength?: number | undefined; zoomLevels?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; unitSelection?: boolean | undefined; cursorVisible?: boolean | undefined; }
      • +
        Optional input?: { sceneController?: string | undefined; vrController?: string | undefined; dampingFactor?: number | undefined; movementSpeed?: number | undefined; rotateSpeed?: number | undefined; cameraShakeStrength?: number | undefined; zoomLevels?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; unitSelection?: boolean | undefined; cursorVisible?: boolean | undefined; }
      • Optional minimap?: { mode?: "2d" | "3d" | undefined; position?: [(number | undefined)?, (number | undefined)?] | undefined; rotation?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; scale?: number | undefined; enabled?: boolean | undefined; opacity?: number | undefined; softEdges?: boolean | undefined; interactive?: boolean | undefined; drawCamera?: boolean | undefined; }
      • @@ -214,41 +235,51 @@
        Optional
        Optional postprocessing3d?: { anisotropy?: number | undefined; antialias?: number | undefined; toneMapping?: number | undefined; bloom?: number | undefined; brightness?: number | undefined; contrast?: number | undefined; depthFocalLength?: number | undefined; depthBokehScale?: number | undefined; depthBlurQuality?: number | undefined; depthFocalRange?: number | undefined; fogOfWar?: number | undefined; envMap?: number | undefined; sunlightDirection?: [(number | undefined)?, (number | undefined)?, (number | undefined)?] | undefined; sunlightColor?: string | undefined; sunlightIntensity?: number | undefined; shadowQuality?: number | undefined; }
      • -
        Optional session?: { type?: "replay" | "live" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; }
    • +
      Optional session?: { type?: "replay" | "map" | undefined; sandbox?: boolean | undefined; audioListenerDistance?: number | undefined; }
  • settings: SessionSettingsData
  • +
  • Defined in build/api-types/host/index.d.ts:2376
  • +
    + +
    unit-completed: Unit
    unit-created: Unit
    +
  • Defined in build/api-types/host/index.d.ts:2354
  • unit-destroyed: Unit
    +
  • Defined in build/api-types/host/index.d.ts:2357
  • unit-killed: Unit
    +
  • Defined in build/api-types/host/index.d.ts:2355
  • +
    + +
    unit-updated: Unit
    units-cleared: undefined
    +
  • Defined in build/api-types/host/index.d.ts:2375
  • world-end: undefined
    +
  • Defined in build/api-types/host/index.d.ts:2392
  • world-start: undefined
    +
  • Defined in build/api-types/host/index.d.ts:2391
  • Generated using TypeDoc

    diff --git a/docs/host/modules.html b/docs/host/modules.html index f28ff6c2..00af8e7b 100644 --- a/docs/host/modules.html +++ b/docs/host/modules.html @@ -1,4 +1,4 @@ -titan-reactor-runtime/host
    +@titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    titan-reactor-runtime/host

    +

    @titan-reactor-runtime/host

    Index

    Enumerations

    -

    Classes

    Interfaces

    @@ -90,13 +94,6 @@

    Interfaces

    ImageBase ImageDAT ImageStruct -Injectables -MacroAction -MacroActionConfigurationError -MacroCondition -MacroDTO -MacroTriggerDTO -MacrosDTO MinimapDimensions NativePlugin OpenBWWasm @@ -105,6 +102,7 @@

    Interfaces

    Player PluginPackage PxToWorld +SCAssetData SettingsV6 SoundDAT SoundStruct @@ -127,9 +125,11 @@

    Type Aliases

    Variables

    -

    Functions

    -
    @@ -204,29 +211,29 @@

    Member Visibility

    Theme

    Generated using TypeDoc

    diff --git a/docs/host/types/AnimAtlas.html b/docs/host/types/AnimAtlas.html index efd55305..0ce979e0 100644 --- a/docs/host/types/AnimAtlas.html +++ b/docs/host/types/AnimAtlas.html @@ -1,4 +1,4 @@ -AnimAtlas | titan-reactor-runtime/host
    +AnimAtlas | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/AnimFrame.html b/docs/host/types/AnimFrame.html index 0d8ef03a..3e7b20c2 100644 --- a/docs/host/types/AnimFrame.html +++ b/docs/host/types/AnimFrame.html @@ -1,4 +1,4 @@ -AnimFrame | titan-reactor-runtime/host
    +AnimFrame | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    AnimFrame: {
        h: number;
        w: number;
        x: number;
        xoff: number;
        y: number;
        yoff: number;
    }
    @@ -33,7 +33,7 @@
    y:
    yoff: number
    +
  • Defined in build/api-types/host/index.d.ts:1250
  • Generated using TypeDoc

    diff --git a/docs/host/types/Assets.html b/docs/host/types/Assets.html index d482a033..f0e20794 100644 --- a/docs/host/types/Assets.html +++ b/docs/host/types/Assets.html @@ -1,4 +1,4 @@ -Assets | titan-reactor-runtime/host
    +Assets | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -
    Assets: Awaited<ReturnType<typeof initializeAssets>> & {
        bwDat: BwDAT;
        envMap?: Texture;
        wireframeIcons?: Blob[];
    } & Partial<Awaited<ReturnType<typeof generateUIIcons>>>
    +
    Assets: Awaited<ReturnType<typeof initializeAssets>> & {
        bwDat: BwDAT;
        envMap?: Texture;
        wireframeIcons?: Blob[];
    }

    Most game assets excepting sprites / images.

    @@ -29,7 +29,7 @@
    Optional Optional wireframeIcons?: Blob[]
    +
  • Defined in build/api-types/host/index.d.ts:677
  • Generated using TypeDoc

    diff --git a/docs/host/types/TargetType.html b/docs/host/types/CacheDBStoreName.html similarity index 87% rename from docs/host/types/TargetType.html rename to docs/host/types/CacheDBStoreName.html index 9fdaec53..d24ba9f0 100644 --- a/docs/host/types/TargetType.html +++ b/docs/host/types/CacheDBStoreName.html @@ -1,4 +1,4 @@ -TargetType | titan-reactor-runtime/host
    +CacheDBStoreName | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    Type alias TargetTypeInternal

    -
    TargetType: ":app" | ":plugin" | ":function" | ":macro"
    +
  • @titan-reactor-runtime/host
  • +
  • CacheDBStoreName
  • +

    Type alias CacheDBStoreNameInternal

    +
    CacheDBStoreName: "general-casc-cache" | "image-cache"
    +
  • Defined in build/api-types/host/index.d.ts:881
  • Generated using TypeDoc

    diff --git a/docs/host/types/Callbacks.html b/docs/host/types/Callbacks.html index c21aca21..49901b94 100644 --- a/docs/host/types/Callbacks.html +++ b/docs/host/types/Callbacks.html @@ -1,4 +1,4 @@ -Callbacks | titan-reactor-runtime/host
    +Callbacks | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -
    Callbacks: {
        js_fatal_error?: ((ptr) => string);
        js_file_index?: ((ptr) => number);
        js_file_size?: ((index) => number);
        js_load_done?: (() => void);
        js_post_main_loop?: (() => void);
        js_pre_main_loop?: (() => void);
        js_read_data?: ((index, dst, offset, size) => void);
    }
    +
    Callbacks: {
        js_fatal_error?: ((ptr) => string);
        js_file_index?: ((ptr) => number);
        js_file_size?: ((index) => number);
        js_load_done?: (() => void);
        js_on_replay_frame?: (() => void);
        js_post_main_loop?: (() => void);
        js_pre_main_loop?: (() => void);
        js_read_data?: ((index, dst, offset, size) => void);
    }

    Type declaration

      @@ -67,11 +67,19 @@
      Optional

      Returns void

  • +
    Optional js_on_replay_frame?: (() => void)
    +
      +
    • +
        +
      • (): void
      • +
      • +

        Returns void

  • +
  • Optional js_post_main_loop?: (() => void)
      • -
      • (): void
      • +
      • (): void
      • Returns void

  • @@ -79,7 +87,7 @@
    Optional
    • -
    • (): void
    • +
    • (): void
    • Returns void

  • @@ -87,7 +95,7 @@
    Optional
    • -
    • (index, dst, offset, size): void
    • +
    • (index, dst, offset, size): void
    • Parameters

      @@ -103,7 +111,7 @@
      size: Returns void
  • +
  • Defined in build/api-types/host/index.d.ts:389
  • Generated using TypeDoc

    diff --git a/docs/host/types/DeepPartial.html b/docs/host/types/DeepPartial.html index 2e0def12..698a248f 100644 --- a/docs/host/types/DeepPartial.html +++ b/docs/host/types/DeepPartial.html @@ -1,4 +1,4 @@ -DeepPartial | titan-reactor-runtime/host
    +DeepPartial | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    DeepPartial<T>: T extends object
        ? {
            [P in keyof T]?: DeepPartial<T[P]>
        }
        : T
    @@ -23,7 +23,7 @@

    Type Parameters

    T

    +
  • Defined in build/api-types/host/index.d.ts:2409
  • Generated using TypeDoc

    diff --git a/docs/host/types/TargetedPath.html b/docs/host/types/GameLoopComposer.html similarity index 85% rename from docs/host/types/TargetedPath.html rename to docs/host/types/GameLoopComposer.html index b4554a45..a61d6f23 100644 --- a/docs/host/types/TargetedPath.html +++ b/docs/host/types/GameLoopComposer.html @@ -1,4 +1,4 @@ -TargetedPath | titan-reactor-runtime/host
    +GameLoopComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    Type alias TargetedPath<T>Internal

    -
    TargetedPath<T>: [T, ...string[]]
    -
    -

    Type Parameters

    -
    +
  • @titan-reactor-runtime/host
  • +
  • GameLoopComposer
  • +

    Type alias GameLoopComposerInternal

    +
    GameLoopComposer: ReturnType<typeof createGameLoopComposer>
    +
  • Defined in build/api-types/host/index.d.ts:3046
  • Generated using TypeDoc

    diff --git a/docs/host/types/GameLoopComposerApi.html b/docs/host/types/GameLoopComposerApi.html new file mode 100644 index 00000000..7d86072a --- /dev/null +++ b/docs/host/types/GameLoopComposerApi.html @@ -0,0 +1,64 @@ +GameLoopComposerApi | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Type alias GameLoopComposerApiInternal

    +
    GameLoopComposerApi: GameLoopComposer["api"]
    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/types/GeometryOptions.html b/docs/host/types/GeometryOptions.html index 2de054d1..36400448 100644 --- a/docs/host/types/GeometryOptions.html +++ b/docs/host/types/GeometryOptions.html @@ -1,4 +1,4 @@ -GeometryOptions | titan-reactor-runtime/host
    +GeometryOptions | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    GeometryOptions: {
        blendNonWalkableBase: boolean;
        bumpScale: number;
        detailsMix: number;
        drawMode: {
            value: number;
        };
        elevationLevels: number[];
        firstBlurPassKernelSize: number;
        ignoreLevels: number[];
        maxTerrainHeight: number;
        normalizeLevels: boolean;
        processWater: boolean;
        renderFirstPass: boolean;
        renderSecondPass: boolean;
        tesselation: number;
        texPxPerTile: number;
    }
    @@ -58,7 +58,7 @@
    tesselationtexPxPerTile: number
    +
  • Defined in build/api-types/host/index.d.ts:1880
  • Generated using TypeDoc

    diff --git a/docs/host/types/GetTerrainY.html b/docs/host/types/GetTerrainY.html index f46dba2f..8fbb56f2 100644 --- a/docs/host/types/GetTerrainY.html +++ b/docs/host/types/GetTerrainY.html @@ -1,4 +1,4 @@ -GetTerrainY | titan-reactor-runtime/host
    +GetTerrainY | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/GrpSprite.html b/docs/host/types/GrpSprite.html index 5661f4ce..fa6eac56 100644 --- a/docs/host/types/GrpSprite.html +++ b/docs/host/types/GrpSprite.html @@ -1,4 +1,4 @@ -GrpSprite | titan-reactor-runtime/host
    +GrpSprite | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    GrpSprite: {
        frames: AnimFrame[];
        h: number;
        maxFrameH: number;
        maxFramew: number;
        w: number;
    }
    @@ -31,7 +31,7 @@
    maxFrameww: number
    +
  • Defined in build/api-types/host/index.d.ts:1239
  • Generated using TypeDoc

    diff --git a/docs/host/types/IScriptAnimation.html b/docs/host/types/IScriptAnimation.html index b6b7a9ec..f57b4557 100644 --- a/docs/host/types/IScriptAnimation.html +++ b/docs/host/types/IScriptAnimation.html @@ -1,4 +1,4 @@ -IScriptAnimation | titan-reactor-runtime/host
    +IScriptAnimation | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/IScriptOperations.html b/docs/host/types/IScriptOperations.html index 3ec715c7..8f9bcaa7 100644 --- a/docs/host/types/IScriptOperations.html +++ b/docs/host/types/IScriptOperations.html @@ -1,4 +1,4 @@ -IScriptOperations | titan-reactor-runtime/host
    +IScriptOperations | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    IScriptOperations: [string, number[]]
    +
  • Defined in build/api-types/host/index.d.ts:996
  • Generated using TypeDoc

    diff --git a/docs/host/types/InputsComposer.html b/docs/host/types/InputsComposer.html index 73fa6f5a..939c3ddc 100644 --- a/docs/host/types/InputsComposer.html +++ b/docs/host/types/InputsComposer.html @@ -1,4 +1,4 @@ -InputsComposer | titan-reactor-runtime/host
    +InputsComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/InputsComposerApi.html b/docs/host/types/InputsComposerApi.html index e3aabcf0..93160573 100644 --- a/docs/host/types/InputsComposerApi.html +++ b/docs/host/types/InputsComposerApi.html @@ -1,4 +1,4 @@ -InputsComposerApi | titan-reactor-runtime/host
    +InputsComposerApi | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/DirectionalCamera.html b/docs/host/types/Listener.html similarity index 80% rename from docs/host/types/DirectionalCamera.html rename to docs/host/types/Listener.html index fc6a0a96..9dbbb075 100644 --- a/docs/host/types/DirectionalCamera.html +++ b/docs/host/types/Listener.html @@ -1,4 +1,4 @@ -DirectionalCamera | titan-reactor-runtime/host
    +Listener | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    Type alias DirectionalCameraInternal

    -
    DirectionalCamera: (PerspectiveCamera | OrthographicCamera) & {
        userData: {
            direction: number;
            prevDirection: number;
        };
    }
    +
  • @titan-reactor-runtime/host
  • +
  • Listener
  • +

    Type alias Listener<T>

    +
    Listener<T>: {
        fn: ((v) => any);
        priority: number;
    }
    +
    +

    Type Parameters

    +
      +
    • +

      T

    Type declaration

    • -
      userData: {
          direction: number;
          prevDirection: number;
      }
      +
      fn: ((v) => any)
        +
      • +
          +
        • (v): any
        • +
        • +
          +

          Parameters

          +
            +
          • +
            v: T
          +

          Returns any

    • -
      direction: number
    • -
    • -
      prevDirection: number
    +
    priority: number
    +
  • Defined in build/api-types/host/index.d.ts:2344
  • Generated using TypeDoc

    diff --git a/docs/host/types/LoDAT.html b/docs/host/types/LoDAT.html index 77ef43f4..6cabff2b 100644 --- a/docs/host/types/LoDAT.html +++ b/docs/host/types/LoDAT.html @@ -1,4 +1,4 @@ -LoDAT | titan-reactor-runtime/host
    +LoDAT | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/LogLevel.html b/docs/host/types/LogLevel.html index 21145d88..1c378634 100644 --- a/docs/host/types/LogLevel.html +++ b/docs/host/types/LogLevel.html @@ -1,4 +1,4 @@ -LogLevel | titan-reactor-runtime/host
    +LogLevel | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    LogLevel: "info" | "warn" | "error" | "debug"
    +
  • Defined in build/api-types/host/index.d.ts:1611
  • Generated using TypeDoc

    diff --git a/docs/host/types/MouseEventDTO.html b/docs/host/types/MouseEventDTO.html index 4a28f26c..deb8f6b4 100644 --- a/docs/host/types/MouseEventDTO.html +++ b/docs/host/types/MouseEventDTO.html @@ -1,4 +1,4 @@ -MouseEventDTO | titan-reactor-runtime/host
    +MouseEventDTO | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    MouseEventDTO: {
        altKey: boolean;
        button: number;
        ctrlKey: boolean;
        shiftKey: boolean;
    }
    @@ -29,7 +29,7 @@
    ctrlKeyshiftKey: boolean
    +
  • Defined in build/api-types/host/index.d.ts:2463
  • Generated using TypeDoc

    diff --git a/docs/host/types/MutationVariable.html b/docs/host/types/MutationVariable.html index 08cd5328..33b3a59a 100644 --- a/docs/host/types/MutationVariable.html +++ b/docs/host/types/MutationVariable.html @@ -1,4 +1,4 @@ -MutationVariable | titan-reactor-runtime/host
    +MutationVariable | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    MutationVariable: ReturnType<ReturnType<typeof createMutationVariable>>
    +
  • Defined in build/api-types/host/index.d.ts:2484
  • Generated using TypeDoc

    diff --git a/docs/host/types/OpenBwComposer.html b/docs/host/types/OpenBwComposer.html index d4cc43fb..8a79b2ba 100644 --- a/docs/host/types/OpenBwComposer.html +++ b/docs/host/types/OpenBwComposer.html @@ -1,4 +1,4 @@ -OpenBwComposer | titan-reactor-runtime/host
    +OpenBwComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/OpenBwComposerApi.html b/docs/host/types/OpenBwComposerApi.html index d5b65bdd..8b9279c9 100644 --- a/docs/host/types/OpenBwComposerApi.html +++ b/docs/host/types/OpenBwComposerApi.html @@ -1,4 +1,4 @@ -OpenBwComposerApi | titan-reactor-runtime/host
    +OpenBwComposerApi | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/OperationRequest.html b/docs/host/types/OperationRequest.html new file mode 100644 index 00000000..1dc44a09 --- /dev/null +++ b/docs/host/types/OperationRequest.html @@ -0,0 +1,92 @@ +OperationRequest | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Type alias OperationRequest

    +
    OperationRequest: ((action, transformPath?, silentUpdate?) => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (action, transformPath?, silentUpdate?): void
      • +
      • Internal +
        +

        Parameters

        +
          +
        • +
          action: Operation
        • +
        • +
          Optional transformPath: ((path) => string[])
          +
            +
          • +
              +
            • (path): string[]
            • +
            • +
              +

              Parameters

              +
                +
              • +
                path: string[]
              +

              Returns string[]

        • +
        • +
          Optional silentUpdate: boolean
        +

        Returns void

        +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/types/OverlayComposer.html b/docs/host/types/OverlayComposer.html index 15c38cc7..4fc32a25 100644 --- a/docs/host/types/OverlayComposer.html +++ b/docs/host/types/OverlayComposer.html @@ -1,4 +1,4 @@ -OverlayComposer | titan-reactor-runtime/host
    +OverlayComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -
    OverlayComposer: {
        api: {
            getMouseMinimapUV: (() => Vector2 | undefined);
            isMouseInsideMinimap: (() => boolean);
        };
        insideMinimap: boolean;
        minimapUv: Vector2 | undefined;
        onFrame(completedUpgrades) => void;
        update(delta) => void;
    }
    +
    OverlayComposer: {
        api: {
            getMouseMinimapUV: (() => Vector2 | undefined);
            isMouseInsideMinimap: (() => boolean);
        };
        insideMinimap: boolean;
        minimapUv: Vector2 | undefined;
        onFrame() => void;
        update(delta) => void;
    }

    Type declaration

  • update:function
      @@ -67,10 +62,10 @@

      Parameters

      delta: number
  • Returns void

    +
  • Defined in build/api-types/host/index.d.ts:134
  • +
  • Defined in build/api-types/host/index.d.ts:127
  • Generated using TypeDoc

    diff --git a/docs/host/types/OverlayComposerApi.html b/docs/host/types/OverlayComposerApi.html index c469b909..0f46cae4 100644 --- a/docs/host/types/OverlayComposerApi.html +++ b/docs/host/types/OverlayComposerApi.html @@ -1,4 +1,4 @@ -OverlayComposerApi | titan-reactor-runtime/host
    +OverlayComposerApi | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/Palettes.html b/docs/host/types/Palettes.html index bd04ed9a..84bc383a 100644 --- a/docs/host/types/Palettes.html +++ b/docs/host/types/Palettes.html @@ -1,4 +1,4 @@ -Palettes | titan-reactor-runtime/host
    +Palettes | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    Palettes: Uint8Array[] & {
        dark?: Buffer;
        light?: Buffer;
    }
    @@ -25,7 +25,7 @@
    Optional Optional light?: Buffer
    +
  • Defined in build/api-types/host/index.d.ts:946
  • Generated using TypeDoc

    diff --git a/docs/host/types/PlayerName.html b/docs/host/types/PlayerName.html index f3814406..9796dc71 100644 --- a/docs/host/types/PlayerName.html +++ b/docs/host/types/PlayerName.html @@ -1,4 +1,4 @@ -PlayerName | titan-reactor-runtime/host
    +PlayerName | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/PluginConfig.html b/docs/host/types/PluginConfig.html index 09b6b7c1..6031b0e7 100644 --- a/docs/host/types/PluginConfig.html +++ b/docs/host/types/PluginConfig.html @@ -1,4 +1,4 @@ -PluginConfig | titan-reactor-runtime/host
    +PluginConfig | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/PluginSessionContext.html b/docs/host/types/PluginSessionContext.html new file mode 100644 index 00000000..950a17be --- /dev/null +++ b/docs/host/types/PluginSessionContext.html @@ -0,0 +1,75 @@ +PluginSessionContext | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Type alias PluginSessionContextInternal

    +
    PluginSessionContext: {
        customEvents: TypeEmitter<unknown>;
        events: TypeEmitter<WorldEvents>;
        game: GameTimeApi;
        settings: SessionVariables;
    }
    +
    +

    Type declaration

    +
    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/types/PostProcessingComposer.html b/docs/host/types/PostProcessingComposer.html index b9684cbc..6a99f5a6 100644 --- a/docs/host/types/PostProcessingComposer.html +++ b/docs/host/types/PostProcessingComposer.html @@ -1,4 +1,4 @@ -PostProcessingComposer | titan-reactor-runtime/host
    +PostProcessingComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    PostProcessingComposer: ReturnType<typeof createPostProcessingComposer>
    +
  • Defined in build/api-types/host/index.d.ts:2960
  • Generated using TypeDoc

    diff --git a/docs/host/types/PostProcessingComposerApi.html b/docs/host/types/PostProcessingComposerApi.html index f08f5a95..700a98bc 100644 --- a/docs/host/types/PostProcessingComposerApi.html +++ b/docs/host/types/PostProcessingComposerApi.html @@ -1,4 +1,4 @@ -PostProcessingComposerApi | titan-reactor-runtime/host
    +PostProcessingComposerApi | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/StartLocation.html b/docs/host/types/PrevSceneData.html similarity index 83% rename from docs/host/types/StartLocation.html rename to docs/host/types/PrevSceneData.html index 5f9f7fcc..ef0e5311 100644 --- a/docs/host/types/StartLocation.html +++ b/docs/host/types/PrevSceneData.html @@ -1,4 +1,4 @@ -StartLocation | titan-reactor-runtime/host
    +PrevSceneData | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    -

    Type alias StartLocationInternal

    -
    StartLocation: {
        player: number;
        unitId: number;
        x: number;
        y: number;
    }
    +
  • @titan-reactor-runtime/host
  • +
  • PrevSceneData
  • +

    Type alias PrevSceneData

    +
    PrevSceneData: {
        data?: any;
        position: Vector3;
        target: Vector3;
    }

    Type declaration

    • -
      player: number
    • +
      Optional data?: any
    • -
      unitId: number
    • +
      position: Vector3
    • -
      x: number
    • -
    • -
      y: number
    +
    target: Vector3
    +
  • Defined in build/api-types/host/index.d.ts:2842
  • Generated using TypeDoc

    diff --git a/docs/host/types/ReadFile.html b/docs/host/types/ReadFile.html index a3866ef5..c6edabf7 100644 --- a/docs/host/types/ReadFile.html +++ b/docs/host/types/ReadFile.html @@ -1,4 +1,4 @@ -ReadFile | titan-reactor-runtime/host
    +ReadFile | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    ReadFile: ((filename) => Promise<Buffer>)
    @@ -31,7 +31,7 @@
    filename: Returns Promise<Buffer>
    +
  • Defined in build/api-types/host/index.d.ts:2103
  • Generated using TypeDoc

    diff --git a/docs/host/types/ResourceLoaderStatus.html b/docs/host/types/ResourceLoaderStatus.html new file mode 100644 index 00000000..47ff130c --- /dev/null +++ b/docs/host/types/ResourceLoaderStatus.html @@ -0,0 +1,64 @@ +ResourceLoaderStatus | @titan-reactor-runtime/host
    +
    + +
    +
    +
    +
    + +

    Type alias ResourceLoaderStatusInternal

    +
    ResourceLoaderStatus: "loading" | "loaded" | "error" | "idle" | "cancelled"
    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/host/types/SceneComposer.html b/docs/host/types/SceneComposer.html index 197a05af..21b06123 100644 --- a/docs/host/types/SceneComposer.html +++ b/docs/host/types/SceneComposer.html @@ -1,4 +1,4 @@ -SceneComposer | titan-reactor-runtime/host
    +SceneComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    SceneComposer: Awaited<ReturnType<typeof createSceneComposer>>
    +
  • Defined in build/api-types/host/index.d.ts:2606
  • Generated using TypeDoc

    diff --git a/docs/host/types/SceneComposerApi.html b/docs/host/types/SceneComposerApi.html index c47a1c3a..9588f4a7 100644 --- a/docs/host/types/SceneComposerApi.html +++ b/docs/host/types/SceneComposerApi.html @@ -1,4 +1,4 @@ -SceneComposerApi | titan-reactor-runtime/host
    +SceneComposerApi | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/SessionSettingsData.html b/docs/host/types/SessionSettingsData.html index f2d3941b..acdeb0d0 100644 --- a/docs/host/types/SessionSettingsData.html +++ b/docs/host/types/SessionSettingsData.html @@ -1,4 +1,4 @@ -SessionSettingsData | titan-reactor-runtime/host
    +SessionSettingsData | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    SessionSettingsData: Pick<Settings, "audio" | "input" | "minimap" | "postprocessing" | "postprocessing3d" | "session">
    +
  • Defined in build/api-types/host/index.d.ts:2405
  • Generated using TypeDoc

    diff --git a/docs/host/types/SessionVariables.html b/docs/host/types/SessionVariables.html index 97d4d3b2..c5f8e463 100644 --- a/docs/host/types/SessionVariables.html +++ b/docs/host/types/SessionVariables.html @@ -1,4 +1,4 @@ -SessionVariables | titan-reactor-runtime/host
    +SessionVariables | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    +

    Type alias SessionVariables

    SessionVariables: {
        [K in keyof SessionSettingsData]: {
            [T in keyof SessionSettingsData[K]]: MutationVariable
        }
    }
    +
  • Defined in build/api-types/host/index.d.ts:2475
  • Generated using TypeDoc

    diff --git a/docs/host/types/SetGetType.html b/docs/host/types/SetGetType.html index d2a5fe0e..c7783feb 100644 --- a/docs/host/types/SetGetType.html +++ b/docs/host/types/SetGetType.html @@ -1,4 +1,4 @@ -SetGetType | titan-reactor-runtime/host
    +SetGetType | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    SetGetType: "i8" | "i16" | "i32" | "i64" | "float" | "double" | "i8*" | "i16*" | "i32*" | "i64*" | "float*" | "double*" | "*"
    +
  • Defined in build/api-types/host/index.d.ts:373
  • Generated using TypeDoc

    diff --git a/docs/host/types/Settings.html b/docs/host/types/Settings.html index 24bfdae4..99ca7aff 100644 --- a/docs/host/types/Settings.html +++ b/docs/host/types/Settings.html @@ -1,4 +1,4 @@ -Settings | titan-reactor-runtime/host
    +Settings | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/SettingsSessionStore.html b/docs/host/types/SettingsSessionStore.html index 0330f51a..aa5b5c70 100644 --- a/docs/host/types/SettingsSessionStore.html +++ b/docs/host/types/SettingsSessionStore.html @@ -1,4 +1,4 @@ -SettingsSessionStore | titan-reactor-runtime/host
    +SettingsSessionStore | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/SurfaceComposer.html b/docs/host/types/SurfaceComposer.html index ca1bd1d8..115b480a 100644 --- a/docs/host/types/SurfaceComposer.html +++ b/docs/host/types/SurfaceComposer.html @@ -1,4 +1,4 @@ -SurfaceComposer | titan-reactor-runtime/host
    +SurfaceComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/SurfaceComposerApi.html b/docs/host/types/SurfaceComposerApi.html index b6164a41..bd0f2f90 100644 --- a/docs/host/types/SurfaceComposerApi.html +++ b/docs/host/types/SurfaceComposerApi.html @@ -1,4 +1,4 @@ -SurfaceComposerApi | titan-reactor-runtime/host
    +SurfaceComposerApi | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/types/ViewControllerComposer.html b/docs/host/types/ViewControllerComposer.html index e5613c97..d5697e76 100644 --- a/docs/host/types/ViewControllerComposer.html +++ b/docs/host/types/ViewControllerComposer.html @@ -1,4 +1,4 @@ -ViewControllerComposer | titan-reactor-runtime/host
    +ViewControllerComposer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host
    ViewControllerComposer: ReturnType<typeof createViewControllerComposer>
    +
  • Defined in build/api-types/host/index.d.ts:2651
  • Generated using TypeDoc

    diff --git a/docs/host/types/ViewControllerComposerApi.html b/docs/host/types/ViewControllerComposerApi.html index dfedcbaf..7cf2f0f4 100644 --- a/docs/host/types/ViewControllerComposerApi.html +++ b/docs/host/types/ViewControllerComposerApi.html @@ -1,4 +1,4 @@ -ViewControllerComposerApi | titan-reactor-runtime/host
    +ViewControllerComposerApi | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/variables/mixer.html b/docs/host/variables/mixer-1.html similarity index 89% rename from docs/host/variables/mixer.html rename to docs/host/variables/mixer-1.html index fdf53139..db17a4d0 100644 --- a/docs/host/variables/mixer.html +++ b/docs/host/variables/mixer-1.html @@ -1,4 +1,4 @@ -mixer | titan-reactor-runtime/host
    +mixer | @titan-reactor-runtime/host
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/host

    Generated using TypeDoc

    diff --git a/docs/host/variables/music-1.html b/docs/host/variables/music-1.html new file mode 100644 index 00000000..ebeb2c64 --- /dev/null +++ b/docs/host/variables/music-1.html @@ -0,0 +1,64 @@ +music | @titan-reactor-runtime/host
    +
    + +
    + +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/ui/assets/navigation.js b/docs/ui/assets/navigation.js index b8b6b371..023f966c 100644 --- a/docs/ui/assets/navigation.js +++ b/docs/ui/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAACpWYX5ObNhTFv4uf02x306Rt3hyDt8z43xjcPHQyHgWubc0KwQiRhGby3SOwDRKIK/LKOecnIeR7Jf/3fSbhm5y9nx04lRFlEMaEwezVLCfyoh4DL9PiwRBfX2TKlOOF8mT2/q8fr1rGCs4krp73uy4fM1IUUDy0kpl+fNLzO0YqEAE/ZUNAp2GEeqLePBrGbwKW/fDVSFIuQZxIrMKNYkaf3r7ToosszTMOXFrjrYohvDLNIamnaWV0MgZZUmCJByeqfDTjVlLPg+IY5edqbFVa1Y0IpShj+4vpBgwUhLGgef0NoyoHK8q0TIDtRHYWJMVgNwsKS8kZxhbpLmKAtfoUKck9mgIv1CcprKSBC0NuRQJibE53EQPsWHmmfA2SeEQSK8a0uGE7Er+oxUBYN4cbFUoiYQ1FgfN0GwbdQ66qy5wna5KHMhN25sDlRl6LFkK7GjBQmJU8GfuSdxEF5ILK0f3ZqiiiKiSkeyBJhS360IZBI4gv9cYZm5mmo5iLo8DoBgw0WnpdRffWWgIeZ6kaarQ8WXwuLPJanYxCclW9ktGv38kY5CMQ1b/GGK2KIeaqds2l6sUdQqr3Lx5aoZf+/e8/H98+9QhLVYnBRmgEJ0EdBORwAs1TV9YDyHdESEpYH6BJLsqzyK+/tz6jFVyEW1eq35mYHf4K6usTedscROMfLM/A4CKuMmOjXCnNQ1dyp86WUsJgCvfnznxT8xcZP9HzgKFpLk5dwJaUDT7S/bk7X1f2Ybp+6syWXKoGb9+qhugihTFwaBpg4PVBuubkWFvtjTPeXwecQ3AMo3nkH/1//U109IK1vwmD7SY8Lv6Zb559bZJfiKDkM6vrkytkjvoGGXC7OS7387U/YZi7dTp8t996h0WkZjYB35mnDxAu9r6/+YWlMgPTBzpsgig8hv7KX0STBjID0wf6uN2vvF94IcOPDEN6P50OeFV+e0TCzW3Xlm0EJLjPWH2P2ZTpZ/28dyp53FTNB8Nggt79oYGOIrbF1WMkFF9K/mKLNQIWzPgXEDKIjcqv5TUdwZxVOVHtAQ7BKKlnQWFyKSjwhFUR1du9DjMsOKw+KNVjjoDuMgJpbsqE0f8Hdbkj9T0IjmUksZyHOpZhQEBZDvwgmA1xk5BwTkQB/VbVATQZg4jsW7UEGV+sjFZFEGUBvWNdB7hreHyVmX9ZGfmriAPUfW4krRRHtN8YzbitNfYR/TuiQbDdD+0AbBE1xxSUdVN2qgthO4X1OGOHsQFMZEkZmwddE9UacND4Ri8nbHPlCYFBLK//wI2tj+Fx4XiC7x3N4UDJikF4AZBjpNaAgL5mgiWDG07H0fUB5tNPcE604kcWAAA=" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAACpWYUZObNhSF/4uf025306Rt3rwGb5mxsQdw8tDJeBRxbTMLghGiWbfT/14BNiAhrsibh3POJyHgXsl//bsQ8CYWnxYHlogoSSGkJIXFu0VBxEVeBlZl5YMi/nwRWSodrwmLF59+/+9dx/AycoZNTmLgPYGmpCyhfBiIKuHxaYKxJUz+xlE3D0pkMbxB7DyvCL2AgaboGGkDZ0KvL8F+DOkkLL9PyRW4x075GNBrGCGAMq84nVxkVcdI9SN1ltEYcROw7PN3JZkwAfxEqAw3ihp9+vBxEF3lWZEzYMIY71QM4VRZAXE9TSOjlzHIOoE0duCUSF+SMyNJ86C4NGHn69SqdKodEQpeUfONDQ0YyAspT4r6GUbXAowo1TIDtuf5mZMMg90sKKz+bqcW6S5igK18FBkpnCQDVspHUhpJIxeG3HH5oUzN6S5igH1anRO2BUEcIogRo1rssD2hr3IxENbNYUeFggjYQlnivKENgwZQyDq1ZPGWFKHIuZk5cmHIcLWUdUdMLt5ARzF5xeKp53gXUUDBEzH5dnYqiriWArIASHzFlnxsw6AR0Et981MzG+go5mIpL0MDBposvLaSe2ssHqN5JoeaLE4Gnw2L3FYvo5BC1q548un3Mgb5AkR2rylGp2KIpaxcSyE7cY8Q8v7Lh07Q0r/88dvjhyeNsJZ1GEyERrAS6s9tPIHmqi3bbKGc5+aj9w2T0HUbzwEo9oSLhKQ6aiDZKC+8aL9fndEJNsKtx9VrSNT9QgvS9Zm8XQG88Y+We2SwETe58uK1lOaiLbmXe3ohYDSF+3Vrvukgq5ydkvOIMdBsHHXvWnekajQnk8fKrZiQWwHza62INpK5mbYgpIOOOFEQUmDgOTqkE2yEzyRNYjlg3LZanaPJNtrBO4bRMnKP7mfXj46Ot3X90Nv54XH159J/cQfz/JvwhHxL65poC6mjvkcG3PnHdbDcujOGuVvnw/fBzjmsIjmzGfjePH+AcBW4rv8DS6UG5g908L0oPIbuxl1FswZSA/MH+rILNs4P3JDiR4Yh2ifYA1vlp0ck3PwTYco2AhIM8rQ+OflV9m14ZD5VjDaV9UExqKCPvw5AR05NcXkZCdFLxV5NsUZAgmcQa54Ai9NrlAw7aY/QLDis3gh5dNi6FNBdRiDNOVhWln9GtbQn6R4El8oabtjv9CzFgIDyAtiBpybETULCBc/frmsQ9GLK9yqCqErQdlw94K7h8U2u/uum5FsRB8iD1kRaKpao3s/UuKmj6Yj2v6sJQivOAWCLOHDMQRnfp161IUwbGo0zta8ZwXgeV1TdM6qozoCD9E6vQEx9XgeEkAIV7V9jU+ujeGw4eb5H352Bw4IS1xTCC4CYInUGBPQ952k8Oiz0nKE+wnz9HxC+jFAKFwAA" \ No newline at end of file diff --git a/docs/ui/assets/search.js b/docs/ui/assets/search.js index 9f5c45e6..b0693470 100644 --- a/docs/ui/assets/search.js +++ b/docs/ui/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/ui/classes/ImageLoader.html b/docs/ui/classes/ImageLoader.html new file mode 100644 index 00000000..3a4f1f39 --- /dev/null +++ b/docs/ui/classes/ImageLoader.html @@ -0,0 +1,196 @@ +ImageLoader | @titan-reactor-runtime/ui
    +
    + +
    +
    +
    +
    + +

    Class ImageLoaderInternal

    +
    +

    Hierarchy

    +
      +
    • ImageLoader
    +
    +
    +
    + +
    +
    +

    Constructors

    +
    +
    +

    Properties

    +
    +
    +

    Constructors

    +
    + +
    +
    +

    Properties

    +
    + +
    atlas: null | {
        diffuse: CompressedTexture;
        frames: {
            h: number;
            w: number;
            x: number;
            xoff: number;
            y: number;
            yoff: number;
        }[];
        hdLayers: {
            emissive: undefined | CompressedTexture;
        };
        imageIndex: number;
        isHD: boolean;
        isHD2: boolean;
        spriteHeight: number;
        spriteWidth: number;
        teammask: undefined | CompressedTexture;
        textureHeight: number;
        textureWidth: number;
        unitTileScale: UnitTileScale;
        uvPos: {
            flippedPos: BufferAttribute;
            flippedUv: BufferAttribute;
            pos: BufferAttribute;
            uv: BufferAttribute;
        }[];
        uvPosDataTex: DataArrayTexture;
        dispose() => void;
    }
    +
    +

    Type declaration

    +
      +
    • +
      diffuse: CompressedTexture
    • +
    • +
      frames: {
          h: number;
          w: number;
          x: number;
          xoff: number;
          y: number;
          yoff: number;
      }[]
    • +
    • +
      hdLayers: {
          emissive: undefined | CompressedTexture;
      }
      +
        +
      • +
        emissive: undefined | CompressedTexture
    • +
    • +
      imageIndex: number
    • +
    • +
      isHD: boolean
    • +
    • +
      isHD2: boolean
    • +
    • +
      spriteHeight: number
    • +
    • +
      spriteWidth: number
    • +
    • +
      teammask: undefined | CompressedTexture
    • +
    • +
      textureHeight: number
    • +
    • +
      textureWidth: number
    • +
    • +
      unitTileScale: UnitTileScale
    • +
    • +
      uvPos: {
          flippedPos: BufferAttribute;
          flippedUv: BufferAttribute;
          pos: BufferAttribute;
          uv: BufferAttribute;
      }[]
    • +
    • +
      uvPosDataTex: DataArrayTexture
    • +
    • +
      dispose:function
      +
    +
    + +
    imageId: number
    +
    + +
    +
    + +
    onLoaded: (() => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (): void
      • +
      • +

        Returns void

    +
    + +
    priority: number
    +
    + +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/ui/classes/ImageLoaderManager.html b/docs/ui/classes/ImageLoaderManager.html new file mode 100644 index 00000000..ba496d70 --- /dev/null +++ b/docs/ui/classes/ImageLoaderManager.html @@ -0,0 +1,228 @@ +ImageLoaderManager | @titan-reactor-runtime/ui
    +
    + +
    +
    +
    +
    + +

    Class ImageLoaderManagerInternal

    +
    +

    Hierarchy

    +
      +
    • ImageLoaderManager
    +
    +
    +
    + +
    +
    +

    Constructors

    +
    + +
    +
    +

    Properties

    +
    + +
    #private: any
    +
    + +
    currentDownloads: number
    +
    + +
    imageLoaders: Map<number, ImageLoader>
    +
    + +
    maxDownloads: number
    +
    +

    Methods

    +
    + +
    +
    + +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        imageId: number
      +

      Returns boolean

    +
    + +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        imageId: number
      • +
      • +
        Optional useRefId: boolean
      +

      Returns null | {
          diffuse: CompressedTexture;
          frames: {
              h: number;
              w: number;
              x: number;
              xoff: number;
              y: number;
              yoff: number;
          }[];
          hdLayers: {
              emissive: undefined | CompressedTexture;
          };
          imageIndex: number;
          isHD: boolean;
          isHD2: boolean;
          spriteHeight: number;
          spriteWidth: number;
          teammask: undefined | CompressedTexture;
          textureHeight: number;
          textureWidth: number;
          unitTileScale: UnitTileScale;
          uvPos: {
              flippedPos: BufferAttribute;
              flippedUv: BufferAttribute;
              pos: BufferAttribute;
              uv: BufferAttribute;
          }[];
          uvPosDataTex: DataArrayTexture;
          dispose() => void;
      }

    +
    + +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        imageId: number
      • +
      • +
        Optional priority: number
      +

      Returns undefined | Promise<void>

    +
    + +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        imageId: number
      +

      Returns Promise<null | {
          diffuse: CompressedTexture;
          frames: {
              h: number;
              w: number;
              x: number;
              xoff: number;
              y: number;
              yoff: number;
          }[];
          hdLayers: {
              emissive: undefined | CompressedTexture;
          };
          imageIndex: number;
          isHD: boolean;
          isHD2: boolean;
          spriteHeight: number;
          spriteWidth: number;
          teammask: undefined | CompressedTexture;
          textureHeight: number;
          textureWidth: number;
          unitTileScale: UnitTileScale;
          uvPos: {
              flippedPos: BufferAttribute;
              flippedUv: BufferAttribute;
              pos: BufferAttribute;
              uv: BufferAttribute;
          }[];
          uvPosDataTex: DataArrayTexture;
          dispose() => void;
      }>

    +
    + +
      + +
    • +

      Returns Promise<void>

    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/ui/functions/generateUIIcons.html b/docs/ui/classes/IndexedDBCache.html similarity index 55% rename from docs/ui/functions/generateUIIcons.html rename to docs/ui/classes/IndexedDBCache.html index 5666e132..9a03316e 100644 --- a/docs/ui/functions/generateUIIcons.html +++ b/docs/ui/classes/IndexedDBCache.html @@ -1,4 +1,4 @@ -generateUIIcons | @titan-reactor-runtime/ui
    +IndexedDBCache | @titan-reactor-runtime/ui
    +
    +

    Hierarchy

    +
      +
    • IndexedDBCache
    +
    +
    +
    + +
    +
    +

    Constructors

    +
    +
    +

    Properties

    +
    +
    +

    Accessors

    +
    +
    +

    Methods

    +
    +
    +

    Constructors

    +
    + +
    +
    +

    Properties

    +
    + +
    #private: any
    +
    +

    Accessors

    +
    + +
      +
    • get enabled(): boolean
    • +
    • +

      Returns boolean

    • +
    • set enabled(value): void
    • +
    • +
      +

      Parameters

      +
        +
      • +
        value: boolean
      +

      Returns void

    +
    +

    Methods

    +
    +
      - -
    • Internal +
    • +
    • +

      Returns Promise<unknown>

    +
    + +
      + +
    • +
      +

      Parameters

      +
        +
      • +
        id: string
      +

      Returns Promise<unknown>

    +
    + +
      + +
    • Parameters

      -

      Returns Promise<{
          cmdIcons: ArrayBuffer[];
          gameIcons: {
              energy: Blob;
              minerals: Blob;
              protoss: Blob;
              terran: Blob;
              vespeneProtoss: Blob;
              vespeneTerran: Blob;
              vespeneZerg: Blob;
              zerg: Blob;
          };
          raceInsetIcons: {
              protoss: Blob;
              terran: Blob;
              zerg: Blob;
          };
          workerIcons: {
              apm: ArrayBuffer | SharedArrayBuffer;
              protoss: ArrayBuffer | SharedArrayBuffer;
              terran: ArrayBuffer | SharedArrayBuffer;
              zerg: ArrayBuffer | SharedArrayBuffer;
          };
      }>

      -
    +

    Returns Promise<null | Buffer>

    +
  • Defined in index.d.ts:963
  • +
    + +
      + +
    • +
      +

      Parameters

      +
      +

      Returns Promise<unknown>

    +

    Theme

    +
    +

    On This Page

    +
    +
    +
    +
      +
    • Preparing search index...
    • +
    • The search index is not available
    @titan-reactor-runtime/ui +
    +
    +
    +
    + +

    Class ResourceLoaderInternal

    +
    +

    Hierarchy

    +
      +
    • ResourceLoader
    +
    +
    +
    + +
    +
    +

    Constructors

    +
    +
    +

    Properties

    +
    +
    +

    Accessors

    +
    +
    +

    Methods

    +
    +
    +

    Constructors

    +
    + +
    +
    +

    Properties

    +
    + +
    #private: any
    +
    + +
    buffer: null | Buffer
    +
    + +
    +
    + +
    key: string
    +
    + +
    onStatusChange: ((status) => void)
    +
    +

    Type declaration

    +
    +
    + +
    url: string
    +
    +

    Accessors

    +
    + +
    +
    +

    Methods

    +
    + +
    +
    + +
      + +
    • +

      Returns Promise<null | Buffer>

    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/ui/classes/UnitDAT.html b/docs/ui/classes/UnitDAT.html index c7c9c1ff..47032591 100644 --- a/docs/ui/classes/UnitDAT.html +++ b/docs/ui/classes/UnitDAT.html @@ -30,8 +30,8 @@

    Implemented by

    +
  • Defined in index.d.ts:296
  • +
  • Defined in index.d.ts:360
  • @@ -144,7 +144,7 @@
    data: Returns UnitDAT
    +
  • Defined in index.d.ts:399
  • Properties

    @@ -152,474 +152,474 @@
    +
  • Defined in index.d.ts:334
  • addonVertical: number
    +
  • Defined in index.d.ts:335
  • airWeapon: number
    +
  • Defined in index.d.ts:317
  • animatedIdle: boolean
    +
  • Defined in index.d.ts:372
  • armor: number
    +
  • Defined in index.d.ts:321
  • armorUpgrade: number
    +
  • Defined in index.d.ts:319
  • battleReactions: boolean
    +
  • Defined in index.d.ts:391
  • buildScore: number
    +
  • Defined in index.d.ts:350
  • buildTime: number
    +
  • Defined in index.d.ts:343
  • burrowable: boolean
    +
  • Defined in index.d.ts:384
  • cloakable: boolean
    +
  • Defined in index.d.ts:373
  • constructionImage: number
    +
  • Defined in index.d.ts:310
  • destroyScore: number
    +
  • Defined in index.d.ts:351
  • direction: number
    +
  • Defined in index.d.ts:311
  • elevationLevel: number
    +
  • Defined in index.d.ts:315
  • flingy: any
    +
  • Defined in index.d.ts:306
  • fullAutoAttack: boolean
    +
  • Defined in index.d.ts:392
  • groundWeapon: number
    +
  • Defined in index.d.ts:316
  • hp: number
    +
  • Defined in index.d.ts:314
  • ignoreSupplyCheck: boolean
    +
  • Defined in index.d.ts:388
  • index: number
    +
  • Defined in index.d.ts:305
  • infestation: number[]
    +
  • Defined in index.d.ts:309
  • invincible: boolean
    +
  • Defined in index.d.ts:393
  • isAddon: boolean
    +
  • Defined in index.d.ts:365
  • isBuilding: boolean
    +
  • Defined in index.d.ts:364
  • isDetector: boolean
    +
  • Defined in index.d.ts:379
  • isFlyer: boolean
    +
  • Defined in index.d.ts:366
  • isFlyingBuilding: boolean
    +
  • Defined in index.d.ts:369
  • isHero: boolean
    +
  • Defined in index.d.ts:370
  • isMechanical: boolean
    +
  • Defined in index.d.ts:394
  • isOrganic: boolean
    +
  • Defined in index.d.ts:380
  • isProtoss: boolean
    +
  • Defined in index.d.ts:398
  • isResourceContainer: boolean
    +
  • Defined in index.d.ts:377
  • isResourceDepot: boolean
    +
  • Defined in index.d.ts:376
  • isResourceMiner: boolean
    +
  • Defined in index.d.ts:367
  • isRobotic: boolean
    +
  • Defined in index.d.ts:378
  • isSpellcaster: boolean
    +
  • Defined in index.d.ts:385
  • isTerran: boolean
    +
  • Defined in index.d.ts:397
  • isTurret: boolean
    +
  • Defined in index.d.ts:368
  • isZerg: boolean
    +
  • Defined in index.d.ts:396
  • mineralCost: number
    +
  • Defined in index.d.ts:341
  • name: string
    +
  • Defined in index.d.ts:363
  • permanentCloak: boolean
    +
  • Defined in index.d.ts:386
  • pickupItem: boolean
    +
  • Defined in index.d.ts:387
  • pissSound: number[]
    +
  • Defined in index.d.ts:325
  • pissSoundEnd: number
    +
  • Defined in index.d.ts:331
  • pissSoundStart: number
    +
  • Defined in index.d.ts:330
  • placementHeight: number
    +
  • Defined in index.d.ts:333
  • placementWidth: number
    +
  • Defined in index.d.ts:332
  • portrait: number
    +
  • Defined in index.d.ts:340
  • producesUnits: boolean
    +
  • Defined in index.d.ts:395
  • readySound: number
    +
  • Defined in index.d.ts:322
  • regenerates: boolean
    +
  • Defined in index.d.ts:371
  • requirements: number
    +
  • Defined in index.d.ts:344
  • requiresCreep: boolean
    +
  • Defined in index.d.ts:381
  • requiresPsi: boolean
    +
  • Defined in index.d.ts:383
  • shields: number
    +
  • Defined in index.d.ts:313
  • shieldsEnabled: boolean
    +
  • Defined in index.d.ts:312
  • sightRange: number
    +
  • Defined in index.d.ts:318
  • singleEntity: boolean
    +
  • Defined in index.d.ts:375
  • spaceProvided: number
    +
  • Defined in index.d.ts:349
  • spaceRequired: number
    +
  • Defined in index.d.ts:348
  • specialAbilityFlags: number
    +
  • Defined in index.d.ts:361
  • starEditAvailabilityFlags: number
    +
  • Defined in index.d.ts:352
  • starEditGroupFlags: number
    +
  • Defined in index.d.ts:362
  • subUnit1: number
    +
  • Defined in index.d.ts:307
  • subUnit2: number
    +
  • Defined in index.d.ts:308
  • supplyProvided: number
    +
  • Defined in index.d.ts:346
  • supplyRequired: number
    +
  • Defined in index.d.ts:347
  • twoUnitsInOneEgg: boolean
    +
  • Defined in index.d.ts:374
  • unitSize: number
    +
  • Defined in index.d.ts:320
  • unitSizeDown: number
    +
  • Defined in index.d.ts:339
  • unitSizeLeft: number
    +
  • Defined in index.d.ts:336
  • unitSizeRight: number
    +
  • Defined in index.d.ts:338
  • unitSizeUp: number
    +
  • Defined in index.d.ts:337
  • unusedFlag: boolean
    +
  • Defined in index.d.ts:382
  • useLargeOverlays: boolean
    +
  • Defined in index.d.ts:390
  • useMediumOverlays: boolean
    +
  • Defined in index.d.ts:389
  • vespeneCost: number
    +
  • Defined in index.d.ts:342
  • whatSound: number[]
    +
  • Defined in index.d.ts:323
  • whatSoundEnd: number
    +
  • Defined in index.d.ts:327
  • whatSoundStart: number
    +
  • Defined in index.d.ts:326
  • yesSound: number[]
    +
  • Defined in index.d.ts:324
  • yesSoundEnd: number
    +
  • Defined in index.d.ts:329
  • yesSoundStart: number
    +
  • Defined in index.d.ts:328
  • Generated using TypeDoc

    diff --git a/docs/ui/enums/UnitTileScale.html b/docs/ui/enums/UnitTileScale.html index 89c27e9d..5da61ac9 100644 --- a/docs/ui/enums/UnitTileScale.html +++ b/docs/ui/enums/UnitTileScale.html @@ -16,7 +16,7 @@
  • UnitTileScale
  • Enumeration UnitTileScaleInternal

    +
  • Defined in index.d.ts:699
  • @@ -34,17 +34,17 @@

    Enumeration Members

    HD: 4
    +
  • Defined in index.d.ts:702
  • HD2: 2
    +
  • Defined in index.d.ts:701
  • SD: 1
    +
  • Defined in index.d.ts:700
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/RollingNumber.html b/docs/ui/functions/RollingNumber.html index 1bac9d6c..1f00d626 100644 --- a/docs/ui/functions/RollingNumber.html +++ b/docs/ui/functions/RollingNumber.html @@ -36,7 +36,7 @@
    valueReturns Element
    +
  • Defined in index.d.ts:1258
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/_rc.html b/docs/ui/functions/_rc.html index a5873dbd..721ed85a 100644 --- a/docs/ui/functions/_rc.html +++ b/docs/ui/functions/_rc.html @@ -31,7 +31,7 @@
    JSXElement: Returns void
    +
  • Defined in index.d.ts:1306
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/chunk.html b/docs/ui/functions/chunk.html index 6c0e0eaa..7e186dcf 100644 --- a/docs/ui/functions/chunk.html +++ b/docs/ui/functions/chunk.html @@ -29,7 +29,7 @@
    n:

    Returns Int32Array[]

    +
  • Defined in index.d.ts:13
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/convertIcons.html b/docs/ui/functions/convertIcons.html deleted file mode 100644 index 0543dc44..00000000 --- a/docs/ui/functions/convertIcons.html +++ /dev/null @@ -1,117 +0,0 @@ -convertIcons | @titan-reactor-runtime/ui
    -
    - -
    -
    -
    -
    - -

    Function convertIcons

    -
    -
      - -
    • Internal -
      -

      Parameters

      -
        -
      • -
        __namedParameters: Required<Pick<Assets, "bwDat" | "gameIcons" | "cmdIcons" | "raceInsetIcons" | "workerIcons" | "wireframeIcons">>
      -

      Returns {
          cmdIcons: string[];
          gameIcons: {
              energy: string;
              minerals: string;
              protoss: string;
              terran: string;
              vespeneProtoss: string;
              vespeneTerran: string;
              vespeneZerg: string;
              zerg: string;
          };
          raceInsetIcons: {
              protoss: string;
              terran: string;
              zerg: string;
          };
          wireframeIcons: string[];
          workerIcons: {
              apm: string;
              protoss: string;
              terran: string;
              zerg: string;
          };
      }

      -
        -
      • -
        cmdIcons: string[]
      • -
      • -
        gameIcons: {
            energy: string;
            minerals: string;
            protoss: string;
            terran: string;
            vespeneProtoss: string;
            vespeneTerran: string;
            vespeneZerg: string;
            zerg: string;
        }
        -
          -
        • -
          energy: string
        • -
        • -
          minerals: string
        • -
        • -
          protoss: string
        • -
        • -
          terran: string
        • -
        • -
          vespeneProtoss: string
        • -
        • -
          vespeneTerran: string
        • -
        • -
          vespeneZerg: string
        • -
        • -
          zerg: string
      • -
      • -
        raceInsetIcons: {
            protoss: string;
            terran: string;
            zerg: string;
        }
        -
          -
        • -
          protoss: string
        • -
        • -
          terran: string
        • -
        • -
          zerg: string
      • -
      • -
        wireframeIcons: string[]
      • -
      • -
        workerIcons: {
            apm: string;
            protoss: string;
            terran: string;
            zerg: string;
        }
        -
          -
        • -
          apm: string
        • -
        • -
          protoss: string
        • -
        • -
          terran: string
        • -
        • -
          zerg: string
      -
    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/ui/functions/getFriendlyTime.html b/docs/ui/functions/getFriendlyTime.html index 25cf4bd8..3420ef7d 100644 --- a/docs/ui/functions/getFriendlyTime.html +++ b/docs/ui/functions/getFriendlyTime.html @@ -29,7 +29,7 @@
    frame: Returns string
    +
  • Defined in index.d.ts:659
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/getUnitIcon.html b/docs/ui/functions/getUnitIcon.html index 18b5a085..d867dd58 100644 --- a/docs/ui/functions/getUnitIcon.html +++ b/docs/ui/functions/getUnitIcon.html @@ -29,7 +29,7 @@
    unit: Returns any
    +
  • Defined in index.d.ts:625
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/initializeAssets.html b/docs/ui/functions/initializeAssets.html index b31265c8..70fd5395 100644 --- a/docs/ui/functions/initializeAssets.html +++ b/docs/ui/functions/initializeAssets.html @@ -17,22 +17,12 @@

    Function initializeAssets

      - +
    • Internal -
      -

      Parameters

      -
        -
      • -
        directories: {
            assets: string;
            starcraft: string;
        }
        -
          -
        • -
          assets: string
        • -
        • -
          starcraft: string
      -

      Returns Promise<{
          arrowIconsGPU: LegacyGRP;
          atlases: {
              diffuse: CompressedTexture;
              frames: {
                  h: number;
                  w: number;
                  x: number;
                  xoff: number;
                  y: number;
                  yoff: number;
              }[];
              hdLayers: {
                  emissive: undefined | CompressedTexture;
              };
              imageIndex: number;
              isHD: boolean;
              isHD2: boolean;
              spriteHeight: number;
              spriteWidth: number;
              teammask: undefined | CompressedTexture;
              textureHeight: number;
              textureWidth: number;
              unitTileScale: UnitTileScale;
              uvPos: {
                  flippedPos: BufferAttribute;
                  flippedUv: BufferAttribute;
                  pos: BufferAttribute;
                  uv: BufferAttribute;
              }[];
              uvPosDataTex: DataArrayTexture;
              dispose() => void;
          }[];
          dragIconsGPU: LegacyGRP;
          hoverIconsGPU: LegacyGRP;
          minimapConsole: {
              clock: CompressedTexture;
              square: CompressedTexture;
          };
          refId: ((id) => number);
          remaining: number;
          resetAssetCache: (() => void);
          selectionCircles: {
              diffuse: CompressedTexture;
              frames: {
                  h: number;
                  w: number;
                  x: number;
                  xoff: number;
                  y: number;
                  yoff: number;
              }[];
              hdLayers: {
                  emissive: undefined | CompressedTexture;
              };
              imageIndex: number;
              isHD: boolean;
              isHD2: boolean;
              spriteHeight: number;
              spriteWidth: number;
              teammask: undefined | CompressedTexture;
              textureHeight: number;
              textureWidth: number;
              unitTileScale: UnitTileScale;
              uvPos: {
                  flippedPos: BufferAttribute;
                  flippedUv: BufferAttribute;
                  pos: BufferAttribute;
                  uv: BufferAttribute;
              }[];
              uvPosDataTex: DataArrayTexture;
              dispose() => void;
          }[];
          skyBox: CubeTexture;
          getImageAtlas(imageId) => undefined | {
              diffuse: CompressedTexture;
              frames: {
                  h: number;
                  w: number;
                  x: number;
                  xoff: number;
                  y: number;
                  yoff: number;
              }[];
              hdLayers: {
                  emissive: undefined | CompressedTexture;
              };
              imageIndex: number;
              isHD: boolean;
              isHD2: boolean;
              spriteHeight: number;
              spriteWidth: number;
              teammask: undefined | CompressedTexture;
              textureHeight: number;
              textureWidth: number;
              unitTileScale: UnitTileScale;
              uvPos: {
                  flippedPos: BufferAttribute;
                  flippedUv: BufferAttribute;
                  pos: BufferAttribute;
                  uv: BufferAttribute;
              }[];
              uvPosDataTex: DataArrayTexture;
              dispose() => void;
          };
          hasImageAtlas(imageId) => boolean;
          loadImageAtlas(imageId, bwDat) => undefined | {
              diffuse: CompressedTexture;
              frames: {
                  h: number;
                  w: number;
                  x: number;
                  xoff: number;
                  y: number;
                  yoff: number;
              }[];
              hdLayers: {
                  emissive: undefined | CompressedTexture;
              };
              imageIndex: number;
              isHD: boolean;
              isHD2: boolean;
              spriteHeight: number;
              spriteWidth: number;
              teammask: undefined | CompressedTexture;
              textureHeight: number;
              textureWidth: number;
              unitTileScale: UnitTileScale;
              uvPos: {
                  flippedPos: BufferAttribute;
                  flippedUv: BufferAttribute;
                  pos: BufferAttribute;
                  uv: BufferAttribute;
              }[];
              uvPosDataTex: DataArrayTexture;
              dispose() => void;
          };
          loadImageAtlasAsync(imageId, bwDat) => Promise<void>;
      }>

      +

      Returns Promise<{
          arrowIconsGPU: LegacyGRP;
          closeCascStorage: (() => Promise<void>);
          dragIconsGPU: LegacyGRP;
          hoverIconsGPU: LegacyGRP;
          loader: ImageLoaderManager;
          minimapConsole: {
              clock: CompressedTexture;
              square: CompressedTexture;
          };
          openCascStorage: ((url?) => Promise<boolean>);
          readCascFile: ((filepath) => Promise<Buffer>);
          refId: ((id) => number);
          resetImagesCache: (() => void);
          selectionCircles: {
              diffuse: CompressedTexture;
              frames: {
                  h: number;
                  w: number;
                  x: number;
                  xoff: number;
                  y: number;
                  yoff: number;
              }[];
              hdLayers: {
                  emissive: undefined | CompressedTexture;
              };
              imageIndex: number;
              isHD: boolean;
              isHD2: boolean;
              spriteHeight: number;
              spriteWidth: number;
              teammask: undefined | CompressedTexture;
              textureHeight: number;
              textureWidth: number;
              unitTileScale: UnitTileScale;
              uvPos: {
                  flippedPos: BufferAttribute;
                  flippedUv: BufferAttribute;
                  pos: BufferAttribute;
                  uv: BufferAttribute;
              }[];
              uvPosDataTex: DataArrayTexture;
              dispose() => void;
          }[];
          skyBox: CubeTexture;
      }>

    +
  • Defined in index.d.ts:818
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/loadAnimAtlas.html b/docs/ui/functions/loadAnimAtlas.html index 8e193913..d6ff2e4c 100644 --- a/docs/ui/functions/loadAnimAtlas.html +++ b/docs/ui/functions/loadAnimAtlas.html @@ -68,10 +68,10 @@
    dispose

    Returns void

    +
  • Defined in index.d.ts:693
  • +
  • Defined in index.d.ts:664
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/openUrl.html b/docs/ui/functions/openUrl.html index 71e38b5e..64053451 100644 --- a/docs/ui/functions/openUrl.html +++ b/docs/ui/functions/openUrl.html @@ -27,7 +27,7 @@
    url: Returns void
    +
  • Defined in index.d.ts:710
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/parseReplay.html b/docs/ui/functions/parseReplay.html deleted file mode 100644 index 6d07b27b..00000000 --- a/docs/ui/functions/parseReplay.html +++ /dev/null @@ -1,73 +0,0 @@ -parseReplay | @titan-reactor-runtime/ui
    -
    - -
    -
    -
    -
    - -

    Function parseReplay

    -
    -
      - -
    • Internal -
      -

      Parameters

      -
        -
      • -
        buf: Buffer
      -

      Returns Promise<{
          chk: Buffer;
          header: {
              ancillary: {
                  activePlayerCount: number;
                  alliesEnabled: number;
                  campaignId: number;
                  cheatsEnabled: number;
                  commandByte: number;
                  computerPlayerCount: number;
                  createInitialUnits: number;
                  fogOfWarEnabled: number;
                  gameFlags: number;
                  gameSpeed: number;
                  gameState: number;
                  mapHeight: number;
                  mapWidth: number;
                  playerBytes: Buffer;
                  playerName: Buffer;
                  replayAutoSave: number;
                  resourceType: number;
                  restrictionFlags: number;
                  slotCount: number;
                  startingGas: number;
                  startingMinerals: number;
                  teamsEnabled: number;
                  tileset: number;
                  tournamentMode: number;
                  unk1: number;
                  unk2: number;
                  unk3: number;
                  unk4: number;
                  unk5: number;
                  unk6: number;
                  unk7: number;
                  useFixedPositions: number;
                  useStandardUnitStats: number;
                  victoryCondition: number;
                  victoryConditionValue: number;
              };
              frameCount: number;
              gameName: string;
              gameSubtype: number;
              gameType: number;
              isBroodwar: number;
              mapName: string;
              players: ReplayPlayer[];
              randomSeed: number;
          };
          limits: {
              bullets: number;
              fogSprites: number;
              images: number;
              orders: number;
              sprites: number;
              thingies: number;
              units: number;
          };
          rawCmds: Buffer;
          rawHeader: Buffer;
          stormPlayerToGamePlayer: number[];
          version: number;
      }>

      -
    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/ui/functions/proxyFetch.html b/docs/ui/functions/proxyFetch.html index f930031b..69c4049d 100644 --- a/docs/ui/functions/proxyFetch.html +++ b/docs/ui/functions/proxyFetch.html @@ -27,7 +27,7 @@
    url: Returns Promise<Response>
    +
  • Defined in index.d.ts:1301
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/useFrame.html b/docs/ui/functions/useFrame.html index 28089326..ff7399f6 100644 --- a/docs/ui/functions/useFrame.html +++ b/docs/ui/functions/useFrame.html @@ -24,7 +24,7 @@

    Function useFrame

    Returns undefined | number

    +
  • Defined in index.d.ts:491
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/useLocale.html b/docs/ui/functions/useLocale.html index 97f71d54..f75d8bf1 100644 --- a/docs/ui/functions/useLocale.html +++ b/docs/ui/functions/useLocale.html @@ -24,7 +24,7 @@

    Function useLocale

    Returns undefined | string

    +
  • Defined in index.d.ts:414
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/useMap.html b/docs/ui/functions/useMap.html index c15bb8b1..c6fd4ca5 100644 --- a/docs/ui/functions/useMap.html +++ b/docs/ui/functions/useMap.html @@ -24,7 +24,7 @@

    Function useMap

    Returns undefined | {
        description: string;
        height: number;
        tileset: number;
        tilesetName: string;
        title: string;
        width: number;
    }

    +
  • Defined in index.d.ts:476
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/useMessage.html b/docs/ui/functions/useMessage.html index 924582e7..cb3a54f5 100644 --- a/docs/ui/functions/useMessage.html +++ b/docs/ui/functions/useMessage.html @@ -42,7 +42,7 @@
    Optional Returns void
    +
  • Defined in index.d.ts:1270
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/usePlayer.html b/docs/ui/functions/usePlayer.html index d722c92d..d1f9e14e 100644 --- a/docs/ui/functions/usePlayer.html +++ b/docs/ui/functions/usePlayer.html @@ -17,25 +17,25 @@

    Function usePlayer

      - +
    • Returns a function that can be used to get player information.

      -

      Returns ((playerId) => undefined | ReplayPlayer)

      +

      Returns ((playerId) => undefined | ReplayPlayer)

        • -
        • (playerId): undefined | ReplayPlayer
        • +
        • (playerId): undefined | ReplayPlayer
        • Parameters

          • playerId: number
          -

          Returns undefined | ReplayPlayer

      +

      Returns undefined | ReplayPlayer

    +
  • Defined in index.d.ts:535
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/usePlayerFrame.html b/docs/ui/functions/usePlayerFrame.html index 02231e09..cbb6df88 100644 --- a/docs/ui/functions/usePlayerFrame.html +++ b/docs/ui/functions/usePlayerFrame.html @@ -35,7 +35,7 @@
    id: Returns PlayerInfo
    +
  • Defined in index.d.ts:507
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/usePlayers.html b/docs/ui/functions/usePlayers.html index 7c04564a..87474074 100644 --- a/docs/ui/functions/usePlayers.html +++ b/docs/ui/functions/usePlayers.html @@ -17,14 +17,14 @@

    Function usePlayers

    +
  • Defined in index.d.ts:499
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/usePluginConfig.html b/docs/ui/functions/usePluginConfig.html index 8889e0be..d94502d5 100644 --- a/docs/ui/functions/usePluginConfig.html +++ b/docs/ui/functions/usePluginConfig.html @@ -24,7 +24,7 @@

    Function usePluginConfig

    Returns object

    +
  • Defined in index.d.ts:1286
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/useProduction.html b/docs/ui/functions/useProduction.html index c86e74fb..a09e4dca 100644 --- a/docs/ui/functions/useProduction.html +++ b/docs/ui/functions/useProduction.html @@ -25,7 +25,7 @@

    Function useProduction

    Returns (((playerId) => (null | {
        count: number;
        icon: number;
        isUnit: boolean;
        progress: number;
        typeId: number;
    })[]) | ((playerId) => {
        icon: number;
        isUpgrade: boolean;
        level: number;
        progress: number;
        typeId: number;
    }[]) | ((playerId) => {
        icon: number;
        isResearch: boolean;
        progress: number;
        typeId: number;
    }[]))[]

    +
  • Defined in index.d.ts:634
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/useReplay.html b/docs/ui/functions/useReplay.html index 6cf78d26..ce7d1bdf 100644 --- a/docs/ui/functions/useReplay.html +++ b/docs/ui/functions/useReplay.html @@ -17,14 +17,14 @@

    Function useReplay

      - +
    • The replay header information.

      -

      Returns undefined | {
          ancillary: {
              activePlayerCount: number;
              alliesEnabled: number;
              campaignId: number;
              cheatsEnabled: number;
              commandByte: number;
              computerPlayerCount: number;
              createInitialUnits: number;
              fogOfWarEnabled: number;
              gameFlags: number;
              gameSpeed: number;
              gameState: number;
              mapHeight: number;
              mapWidth: number;
              playerBytes: Buffer;
              playerName: Buffer;
              replayAutoSave: number;
              resourceType: number;
              restrictionFlags: number;
              slotCount: number;
              startingGas: number;
              startingMinerals: number;
              teamsEnabled: number;
              tileset: number;
              tournamentMode: number;
              unk1: number;
              unk2: number;
              unk3: number;
              unk4: number;
              unk5: number;
              unk6: number;
              unk7: number;
              useFixedPositions: number;
              useStandardUnitStats: number;
              victoryCondition: number;
              victoryConditionValue: number;
          };
          frameCount: number;
          gameName: string;
          gameSubtype: number;
          gameType: number;
          isBroodwar: number;
          mapName: string;
          players: ReplayPlayer[];
          randomSeed: number;
      }

      +

      Returns undefined | {
          ancillary: {
              activePlayerCount: number;
              alliesEnabled: number;
              campaignId: number;
              cheatsEnabled: number;
              commandByte: number;
              computerPlayerCount: number;
              createInitialUnits: number;
              fogOfWarEnabled: number;
              gameFlags: number;
              gameSpeed: number;
              gameState: number;
              mapHeight: number;
              mapWidth: number;
              playerBytes: Buffer;
              playerName: Buffer;
              replayAutoSave: number;
              resourceType: number;
              restrictionFlags: number;
              slotCount: number;
              startingGas: number;
              startingMinerals: number;
              teamsEnabled: number;
              tileset: number;
              tournamentMode: number;
              unk1: number;
              unk2: number;
              unk3: number;
              unk4: number;
              unk5: number;
              unk6: number;
              unk7: number;
              useFixedPositions: number;
              useStandardUnitStats: number;
              victoryCondition: number;
              victoryConditionValue: number;
          };
          frameCount: number;
          gameName: string;
          gameSubtype: number;
          gameType: number;
          isBroodwar: number;
          mapName: string;
          players: ReplayPlayer[];
          randomSeed: number;
      }

    +
  • Defined in index.d.ts:422
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/useSelectedUnits.html b/docs/ui/functions/useSelectedUnits.html index c6a29816..75c57dee 100644 --- a/docs/ui/functions/useSelectedUnits.html +++ b/docs/ui/functions/useSelectedUnits.html @@ -17,14 +17,14 @@

    Function useSelectedUnits

      - +
    • Returns user selected units (if any).

      -

      Returns {
          direction?: number;
          energy?: number;
          extras: {
              dat: UnitDAT;
          };
          hp?: number;
          id?: number;
          kills?: number;
          moveTargetX?: number;
          moveTargetY?: number;
          movementFlags?: number;
          nextMovementWaypointX?: number;
          nextMovementWaypointY?: number;
          nextTargetWaypointX?: number;
          nextTargetWaypointY?: number;
          order?: null | number;
          orderTargetAddr?: number;
          orderTargetUnit?: number;
          orderTargetX?: number;
          orderTargetY?: number;
          owner?: number;
          remainingBuildTime?: number;
          resourceAmount?: number;
          shields?: number;
          spriteIndex?: number;
          statusFlags?: number;
          subunit?: null | {
              direction?: number;
              energy?: number;
              hp?: number;
              id?: number;
              kills?: number;
              moveTargetX?: number;
              moveTargetY?: number;
              movementFlags?: number;
              nextMovementWaypointX?: number;
              nextMovementWaypointY?: number;
              nextTargetWaypointX?: number;
              nextTargetWaypointY?: number;
              order?: null | number;
              orderTargetAddr?: number;
              orderTargetUnit?: number;
              orderTargetX?: number;
              orderTargetY?: number;
              owner?: number;
              remainingBuildTime?: number;
              resourceAmount?: number;
              shields?: number;
              spriteIndex?: number;
              statusFlags?: number;
              subunit?: any;
              subunitId?: null | number;
              typeId?: number;
              x?: number;
              y?: number;
          };
          subunitId?: null | number;
          typeId?: number;
          x?: number;
          y?: number;
      }[]

      +

      Returns {
          airWeaponCooldown?: number;
          currentSpeed?: number;
          currentVelocityDirection?: number;
          direction?: number;
          energy?: number;
          extras: {
              dat: UnitDAT;
          };
          groundWeaponCooldown?: number;
          hp?: number;
          id?: number;
          isAttacking?: boolean;
          kills?: number;
          moveTargetX?: number;
          moveTargetY?: number;
          movementFlags?: number;
          nextMovementWaypointX?: number;
          nextMovementWaypointY?: number;
          nextTargetWaypointX?: number;
          nextTargetWaypointY?: number;
          order?: null | number;
          orderTargetAddr?: number;
          orderTargetUnit?: number;
          orderTargetX?: number;
          orderTargetY?: number;
          owner?: number;
          remainingBuildTime?: number;
          resourceAmount?: number;
          shields?: number;
          spellCooldown?: number;
          spriteAddr?: number;
          spriteIndex?: number;
          statusFlags?: number;
          subunit?: null | {
              airWeaponCooldown?: number;
              currentSpeed?: number;
              currentVelocityDirection?: number;
              direction?: number;
              energy?: number;
              groundWeaponCooldown?: number;
              hp?: number;
              id?: number;
              kills?: number;
              moveTargetX?: number;
              moveTargetY?: number;
              movementFlags?: number;
              nextMovementWaypointX?: number;
              nextMovementWaypointY?: number;
              nextTargetWaypointX?: number;
              nextTargetWaypointY?: number;
              order?: null | number;
              orderTargetAddr?: number;
              orderTargetUnit?: number;
              orderTargetX?: number;
              orderTargetY?: number;
              owner?: number;
              remainingBuildTime?: number;
              resourceAmount?: number;
              shields?: number;
              spellCooldown?: number;
              spriteAddr?: number;
              spriteIndex?: number;
              statusFlags?: number;
              subunit?: any;
              subunitId?: null | number;
              typeId?: number;
              x?: number;
              y?: number;
          };
          subunitId?: null | number;
          typeId?: number;
          x?: number;
          y?: number;
      }[]

    +
  • Defined in index.d.ts:543
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/useSendMessage.html b/docs/ui/functions/useSendMessage.html index 7fe1e277..27811c34 100644 --- a/docs/ui/functions/useSendMessage.html +++ b/docs/ui/functions/useSendMessage.html @@ -35,7 +35,7 @@
    message: Returns void
    +
  • Defined in index.d.ts:1278
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/useStyleSheet.html b/docs/ui/functions/useStyleSheet.html index efcecc7c..b53270a3 100644 --- a/docs/ui/functions/useStyleSheet.html +++ b/docs/ui/functions/useStyleSheet.html @@ -31,7 +31,7 @@
    Optional Returns void
    +
  • Defined in index.d.ts:1294
  • Generated using TypeDoc

    diff --git a/docs/ui/functions/worldPartial.html b/docs/ui/functions/worldPartial.html index 81098196..bbe2cc48 100644 --- a/docs/ui/functions/worldPartial.html +++ b/docs/ui/functions/worldPartial.html @@ -17,22 +17,22 @@

    Function worldPartial

      - +
    • Internal

      Parameters

      -

      Returns {
          map: undefined | {
              description: string;
              height: number;
              tileset: number;
              tilesetName: string;
              title: string;
              width: number;
          };
          replay: undefined | {
              ancillary: {
                  activePlayerCount: number;
                  alliesEnabled: number;
                  campaignId: number;
                  cheatsEnabled: number;
                  commandByte: number;
                  computerPlayerCount: number;
                  createInitialUnits: number;
                  fogOfWarEnabled: number;
                  gameFlags: number;
                  gameSpeed: number;
                  gameState: number;
                  mapHeight: number;
                  mapWidth: number;
                  playerBytes: Buffer;
                  playerName: Buffer;
                  replayAutoSave: number;
                  resourceType: number;
                  restrictionFlags: number;
                  slotCount: number;
                  startingGas: number;
                  startingMinerals: number;
                  teamsEnabled: number;
                  tileset: number;
                  tournamentMode: number;
                  unk1: number;
                  unk2: number;
                  unk3: number;
                  unk4: number;
                  unk5: number;
                  unk6: number;
                  unk7: number;
                  useFixedPositions: number;
                  useStandardUnitStats: number;
                  victoryCondition: number;
                  victoryConditionValue: number;
              };
              frameCount: number;
              gameName: string;
              gameSubtype: number;
              gameType: number;
              isBroodwar: number;
              mapName: string;
              players: ReplayPlayer[];
              randomSeed: number;
          };
      }

      +

      Returns {
          map: undefined | {
              description: string;
              height: number;
              tileset: number;
              tilesetName: string;
              title: string;
              width: number;
          };
          replay: undefined | {
              ancillary: {
                  activePlayerCount: number;
                  alliesEnabled: number;
                  campaignId: number;
                  cheatsEnabled: number;
                  commandByte: number;
                  computerPlayerCount: number;
                  createInitialUnits: number;
                  fogOfWarEnabled: number;
                  gameFlags: number;
                  gameSpeed: number;
                  gameState: number;
                  mapHeight: number;
                  mapWidth: number;
                  playerBytes: Buffer;
                  playerName: Buffer;
                  replayAutoSave: number;
                  resourceType: number;
                  restrictionFlags: number;
                  slotCount: number;
                  startingGas: number;
                  startingMinerals: number;
                  teamsEnabled: number;
                  tileset: number;
                  tournamentMode: number;
                  unk1: number;
                  unk2: number;
                  unk3: number;
                  unk4: number;
                  unk5: number;
                  unk6: number;
                  unk7: number;
                  useFixedPositions: number;
                  useStandardUnitStats: number;
                  victoryCondition: number;
                  victoryConditionValue: number;
              };
              frameCount: number;
              gameName: string;
              gameSubtype: number;
              gameType: number;
              isBroodwar: number;
              mapName: string;
              players: ReplayPlayer[];
              randomSeed: number;
          };
      }

      • map: undefined | {
            description: string;
            height: number;
            tileset: number;
            tilesetName: string;
            title: string;
            width: number;
        }
      • -
        replay: undefined | {
            ancillary: {
                activePlayerCount: number;
                alliesEnabled: number;
                campaignId: number;
                cheatsEnabled: number;
                commandByte: number;
                computerPlayerCount: number;
                createInitialUnits: number;
                fogOfWarEnabled: number;
                gameFlags: number;
                gameSpeed: number;
                gameState: number;
                mapHeight: number;
                mapWidth: number;
                playerBytes: Buffer;
                playerName: Buffer;
                replayAutoSave: number;
                resourceType: number;
                restrictionFlags: number;
                slotCount: number;
                startingGas: number;
                startingMinerals: number;
                teamsEnabled: number;
                tileset: number;
                tournamentMode: number;
                unk1: number;
                unk2: number;
                unk3: number;
                unk4: number;
                unk5: number;
                unk6: number;
                unk7: number;
                useFixedPositions: number;
                useStandardUnitStats: number;
                victoryCondition: number;
                victoryConditionValue: number;
            };
            frameCount: number;
            gameName: string;
            gameSubtype: number;
            gameType: number;
            isBroodwar: number;
            mapName: string;
            players: ReplayPlayer[];
            randomSeed: number;
        }
      +
      replay: undefined | {
          ancillary: {
              activePlayerCount: number;
              alliesEnabled: number;
              campaignId: number;
              cheatsEnabled: number;
              commandByte: number;
              computerPlayerCount: number;
              createInitialUnits: number;
              fogOfWarEnabled: number;
              gameFlags: number;
              gameSpeed: number;
              gameState: number;
              mapHeight: number;
              mapWidth: number;
              playerBytes: Buffer;
              playerName: Buffer;
              replayAutoSave: number;
              resourceType: number;
              restrictionFlags: number;
              slotCount: number;
              startingGas: number;
              startingMinerals: number;
              teamsEnabled: number;
              tileset: number;
              tournamentMode: number;
              unk1: number;
              unk2: number;
              unk3: number;
              unk4: number;
              unk5: number;
              unk6: number;
              unk7: number;
              useFixedPositions: number;
              useStandardUnitStats: number;
              victoryCondition: number;
              victoryConditionValue: number;
          };
          frameCount: number;
          gameName: string;
          gameSubtype: number;
          gameType: number;
          isBroodwar: number;
          mapName: string;
          players: ReplayPlayer[];
          randomSeed: number;
      }
    +
  • Defined in index.d.ts:87
  • Generated using TypeDoc

    diff --git a/docs/ui/index.html b/docs/ui/index.html index b924b246..ce18e548 100644 --- a/docs/ui/index.html +++ b/docs/ui/index.html @@ -17,6 +17,7 @@

    @titan-reactor-runtime/ui

    Titan Reactor

    An OpenBW 2.5D map and replay viewer.

    Written in TypeScript with Three.JS.
    +
    Visit www.blacksheepwall.tv for more

    @@ -29,7 +30,7 @@
    Written in TypeScript with Three.JS.

    - + YouTube Channel Subscribers

    @@ -41,30 +42,30 @@
    Written in TypeScript with Three.JS.

    -

    Roadmap

      -
    • Priority Roadmap
    • -
    • Long Term Roadmap
    • -
    • Changelog
    • +

      About

      This is Titan Reactor the WebGL renderer + plugin system. It consists of three primary parts in order to function:

      +
        +
      • Titan Reactor - main app that loads replays & maps and creates sessions for viewing. Can be served statically.
      • +
      • Cascbridge - an asset server that reads from your Starcraft install and serves it to Titan Reactor locally
      • +
      • UI Runtime - the part of the application the runs in the iframe for UI plugins. Can be served statically.
      • +
      • Plugins - the plugins that can be served statically.

      Requirements

      • A purchased copy of Starcraft Remastered.
      -

      Downloads

      Developing Plugins

      -

      Replay Data Privacy

      Replay data is not shared or transmitted by Titan Reactor. Plugins may only access your replay data by granting explicit permission.

      -

      Development Installation

      Code Architecture WIKI

      -

      _Using node 16, yarn 1.22, python 3.10.7 + VS (for node-gyp builds)

      +

      Development Installation / Quick Start

      Using node 18+, yarn 1.x

      +

      Clone this repo. The development branch is dev and main is used for releases.

      +

      In this repo:

      git lfs install

      git lfs fetch

      yarn install

      -

      and then

      -

      yarn dev or yarn dist

      +

      Now we want to run Titan Reactor, the ui runtime, the plugins, and cascbridge:

      +

      In your terminal run yarn web , in another terminal run yarn runtime, in the plugins repo npm run serve and run cascbridge.

      The OpenBW wasm files are included (via git lfs). If you wish to build them yourself visit the openbw fork repository.

      -

      Legal

      Titan Reactor is made available via the GPLv3 license. The documentation and functionality provided by Titan Reactor may only be utilized with assets provided by ownership of Starcraft. Starcraft® - Copyright © 1998 Blizzard Entertainment, Inc. All rights reserved. Starcraft and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries. Titan Reactor and any of its maintainers are in no way associated with or endorsed by Blizzard Entertainment®

      +

      Code Architecture WIKI

      +

      Legal

      The documentation and functionality provided by Titan Reactor may only be utilized with assets provided by ownership of Starcraft. Starcraft® - Copyright © 1998 Blizzard Entertainment, Inc. All rights reserved. Starcraft and Blizzard Entertainment are trademarks or registered trademarks of Blizzard Entertainment, Inc. in the U.S. and/or other countries. Titan Reactor and any of its maintainers are in no way associated with or endorsed by Blizzard Entertainment®

    Generated using TypeDoc

    diff --git a/docs/ui/interfaces/BwDAT.html b/docs/ui/interfaces/BwDAT.html index 490d8068..d5e77cba 100644 --- a/docs/ui/interfaces/BwDAT.html +++ b/docs/ui/interfaces/BwDAT.html @@ -20,7 +20,7 @@

    Hierarchy

    • BwDAT
    +
  • Defined in index.d.ts:1044
  • @@ -46,57 +46,57 @@

    Properties

    grps: GrpSprite[]
    +
  • Defined in index.d.ts:1055
  • images: ImageDAT[]
    +
  • Defined in index.d.ts:1051
  • +
  • Defined in index.d.ts:1045
  • los: LoDAT[]
    +
  • Defined in index.d.ts:1052
  • orders: OrderDAT[]
    +
  • Defined in index.d.ts:1049
  • sounds: SoundDAT[]
    +
  • Defined in index.d.ts:1046
  • sprites: SpriteDAT[]
    +
  • Defined in index.d.ts:1053
  • tech: TechDataDAT[]
    +
  • Defined in index.d.ts:1047
  • units: UnitDAT[]
    +
  • Defined in index.d.ts:1050
  • upgrades: UpgradeDAT[]
    +
  • Defined in index.d.ts:1048
  • weapons: WeaponDAT[]
    +
  • Defined in index.d.ts:1054
  • Generated using TypeDoc

    diff --git a/docs/ui/interfaces/Component.html b/docs/ui/interfaces/Component.html index 196413c0..f87caa2f 100644 --- a/docs/ui/interfaces/Component.html +++ b/docs/ui/interfaces/Component.html @@ -20,7 +20,7 @@

    Hierarchy

    • Component
    +
  • Defined in index.d.ts:18
  • @@ -33,7 +33,6 @@

    Properties

    messageHandler order pluginId -screen snap
    @@ -42,37 +41,32 @@

    Properties

    JSXElement: FC<any>
    +
  • Defined in index.d.ts:23
  • id: number
    +
  • Defined in index.d.ts:20
  • messageHandler: EventTarget
    +
  • Defined in index.d.ts:22
  • order: undefined | number
    +
  • Defined in index.d.ts:21
  • pluginId: string
    -
    - -
    screen: string
    +
  • Defined in index.d.ts:19
  • snap: string
    +
  • Defined in index.d.ts:24
  • Generated using TypeDoc

    diff --git a/docs/ui/interfaces/DumpedUnit.html b/docs/ui/interfaces/DumpedUnit.html index 107d414a..480960af 100644 --- a/docs/ui/interfaces/DumpedUnit.html +++ b/docs/ui/interfaces/DumpedUnit.html @@ -26,7 +26,7 @@

    Hierarchy

    • DumpedUnit
    +
  • Defined in index.d.ts:200
  • @@ -34,12 +34,17 @@

    Properties

    +
    + +
    airWeaponCooldown?: number
    buildQueue?: number[]
    +
  • Defined in index.d.ts:216
  • +
    + +
    currentSpeed?: number
    +
    + +
    currentVelocityDirection?: number
    direction?: number
    +
  • Defined in index.d.ts:268
  • energy?: number
    +
  • Defined in index.d.ts:241
  • extras?: {
        dat: UnitDAT;
        recievingDamage: number;
        selected?: boolean;
    }
    @@ -102,25 +127,37 @@
    recievingDamageOptional selected?: boolean
    +
  • Defined in index.d.ts:227
  • +
    + +
    groundWeaponCooldown?: number
    hp?: number
    +
  • Defined in index.d.ts:283
  • id?: number
    +
  • Defined in index.d.ts:238
  • +
    + +
    isAttacking?: boolean
    kills?: number
    +
  • Defined in index.d.ts:247
  • loaded?: {
        hp: number;
        id: number;
        typeId: number;
    }[]
    @@ -134,96 +171,96 @@
    id
  • typeId: number
  • +
  • Defined in index.d.ts:211
  • moveTargetX?: number
    +
  • Defined in index.d.ts:270
  • moveTargetY?: number
    +
  • Defined in index.d.ts:271
  • movementFlags?: number
    +
  • Defined in index.d.ts:276
  • nextMovementWaypointX?: number
    +
  • Defined in index.d.ts:272
  • nextMovementWaypointY?: number
    +
  • Defined in index.d.ts:273
  • nextTargetWaypointX?: number
    +
  • Defined in index.d.ts:274
  • nextTargetWaypointY?: number
    +
  • Defined in index.d.ts:275
  • order?: null | number
    +
  • Defined in index.d.ts:246
  • orderTargetAddr?: number
    +
  • Defined in index.d.ts:248
  • orderTargetUnit?: number
    +
  • Defined in index.d.ts:251
  • orderTargetX?: number
    +
  • Defined in index.d.ts:249
  • orderTargetY?: number
    +
  • Defined in index.d.ts:250
  • owner?: number
    +
  • Defined in index.d.ts:240
  • remainingBuildTime?: number
    +
  • Defined in index.d.ts:244
  • remainingTrainTime?: number
    +
  • Defined in index.d.ts:201
  • research?: {
        id: number;
        time: number;
    }
    @@ -235,51 +272,63 @@
    id
  • time: number
  • +
  • Defined in index.d.ts:207
  • resourceAmount?: number
    +
  • Defined in index.d.ts:245
  • shields?: number
    +
  • Defined in index.d.ts:242
  • +
    + +
    spellCooldown?: number
    +
    + +
    spriteAddr?: number
    spriteIndex?: number
    +
  • Defined in index.d.ts:287
  • statusFlags?: number
    +
  • Defined in index.d.ts:243
  • subunit?: null | UnitStruct
    +
  • Defined in index.d.ts:258
  • subunitId?: null | number
    +
  • Defined in index.d.ts:259
  • typeId?: number
    +
  • Defined in index.d.ts:239
  • upgrade?: {
        id: number;
        level: number;
        time: number;
    }
    @@ -293,19 +342,19 @@
    level
    time: number
    +
  • Defined in index.d.ts:202
  • x?: number
    +
  • Defined in index.d.ts:266
  • y?: number
    +
  • Defined in index.d.ts:267
  • @@ -145,8 +167,12 @@

    @titan-reactor-runtime/ui

    Generated using TypeDoc

    diff --git a/docs/ui/interfaces/IScriptDATType.html b/docs/ui/interfaces/IScriptDATType.html index dea63007..70b9da30 100644 --- a/docs/ui/interfaces/IScriptDATType.html +++ b/docs/ui/interfaces/IScriptDATType.html @@ -20,7 +20,7 @@

    Hierarchy

    • IScriptDATType
    +
  • Defined in index.d.ts:1061
  • @@ -37,12 +37,12 @@

    Properties

    animations: Record<number, IScriptAnimation>
    +
  • Defined in index.d.ts:1063
  • iscripts: Record<number, IScriptProgram>
    +
  • Defined in index.d.ts:1062
  • Generated using TypeDoc

    diff --git a/docs/ui/interfaces/IScriptProgram.html b/docs/ui/interfaces/IScriptProgram.html index 1cb1d299..00412dca 100644 --- a/docs/ui/interfaces/IScriptProgram.html +++ b/docs/ui/interfaces/IScriptProgram.html @@ -20,7 +20,7 @@

    Hierarchy

    • IScriptProgram
    +
  • Defined in index.d.ts:1069
  • @@ -39,22 +39,22 @@

    Properties

    id: number
    +
  • Defined in index.d.ts:1070
  • offset: number
    +
  • Defined in index.d.ts:1072
  • offsets: number[]
    +
  • Defined in index.d.ts:1073
  • type: number
    +
  • Defined in index.d.ts:1071
  • Generated using TypeDoc

    diff --git a/docs/ui/interfaces/ImageDAT.html b/docs/ui/interfaces/ImageDAT.html index b6157181..cad78aaa 100644 --- a/docs/ui/interfaces/ImageDAT.html +++ b/docs/ui/interfaces/ImageDAT.html @@ -20,7 +20,7 @@

    Hierarchy

    • ImageDAT
    +
  • Defined in index.d.ts:1011
  • @@ -52,87 +52,87 @@

    Properties

    attackOverlay: number
    +
  • Defined in index.d.ts:1024
  • clickable: number
    +
  • Defined in index.d.ts:1017
  • damageOverlay: number
    +
  • Defined in index.d.ts:1025
  • drawFunction: number
    +
  • Defined in index.d.ts:1020
  • drawIfCloaked: number
    +
  • Defined in index.d.ts:1019
  • gfxTurns: number
    +
  • Defined in index.d.ts:1016
  • grp: number
    +
  • Defined in index.d.ts:1015
  • grpFile: string
    +
  • Defined in index.d.ts:1013
  • index: number
    +
  • Defined in index.d.ts:1012
  • iscript: number
    +
  • Defined in index.d.ts:1022
  • landingDustOverlay: number
    +
  • Defined in index.d.ts:1027
  • liftOffDustOverlay: number
    +
  • Defined in index.d.ts:1028
  • name: string
    +
  • Defined in index.d.ts:1014
  • remapping: number
    +
  • Defined in index.d.ts:1021
  • shieldOverlay: number
    +
  • Defined in index.d.ts:1023
  • specialOverlay: number
    +
  • Defined in index.d.ts:1026
  • useFullIscript: number
    +
  • Defined in index.d.ts:1018
  • Generated using TypeDoc

    diff --git a/docs/ui/interfaces/MinimapDimensions.html b/docs/ui/interfaces/MinimapDimensions.html index 36d694c8..f5864471 100644 --- a/docs/ui/interfaces/MinimapDimensions.html +++ b/docs/ui/interfaces/MinimapDimensions.html @@ -20,7 +20,7 @@

    Hierarchy

    • MinimapDimensions
    +
  • Defined in index.d.ts:63
  • @@ -38,17 +38,17 @@

    Properties

    matrix: number[]
    +
  • Defined in index.d.ts:64
  • minimapHeight: number
    +
  • Defined in index.d.ts:66
  • minimapWidth: number
    +
  • Defined in index.d.ts:65
  • Generated using TypeDoc

    diff --git a/docs/ui/interfaces/OrderDAT.html b/docs/ui/interfaces/OrderDAT.html index 5e68096c..615251d5 100644 --- a/docs/ui/interfaces/OrderDAT.html +++ b/docs/ui/interfaces/OrderDAT.html @@ -20,7 +20,7 @@

    Hierarchy

    • OrderDAT
    +
  • Defined in index.d.ts:1141
  • @@ -36,7 +36,7 @@

    Properties

    name: string
    +
  • Defined in index.d.ts:1142
  • Generated using TypeDoc

    diff --git a/docs/ui/interfaces/PluginMetaData.html b/docs/ui/interfaces/PluginMetaData.html index 1c4e3175..b10d0fe9 100644 --- a/docs/ui/interfaces/PluginMetaData.html +++ b/docs/ui/interfaces/PluginMetaData.html @@ -22,7 +22,7 @@

    Hierarchy

    • PluginMetaData
    +
  • Defined in index.d.ts:739
  • @@ -32,22 +32,20 @@
    @@ -56,7 +54,7 @@

    Properties

    apiVersion: string
    +
  • Defined in index.d.ts:744
  • author?: string | {
        email?: string;
        name?: string;
        username?: string;
    }
    @@ -71,89 +69,69 @@
    Optional Optional username?: string
    -
    - -
    config?: PluginConfig
    +
    + +
    config: PluginConfig
    +
  • Defined in index.d.ts:746
  • date?: Date
    +
  • Defined in index.d.ts:741
  • description?: string
    -
    - -
    externMethods: string[]
    +
    + +
    devDependencies?: Record<string, string>
    -
    - -
    hooks: string[]
    +
  • Defined in index.d.ts:776
  • id: string
    -
    - -
    indexFile: string
    +
  • Defined in index.d.ts:762
  • isSceneController: boolean
    +
  • Defined in index.d.ts:743
  • keywords?: string[]
    +
  • Defined in index.d.ts:769
  • name: string
    -
    - -
    nativeSource?: null | string
    +
  • Defined in index.d.ts:761
  • path: string
    +
  • Defined in index.d.ts:740
  • peerDependencies?: Record<string, string>
    -
    - -
    permissions?: string[]
    +
  • Defined in index.d.ts:775
  • readme?: string
    +
  • Defined in index.d.ts:742
  • repository?: string | {
        type?: string;
        url?: string;
    }
    @@ -166,13 +144,30 @@
    Optional Optional url?: string
    +
  • Defined in index.d.ts:771
  • +
    + +
    url: string
    +
    + +
    urls: {
        host: null | string;
        ui: null | string;
    }
    +
    +

    Type declaration

    +
      +
    • +
      host: null | string
    • +
    • +
      ui: null | string
    version: string
    +
  • Defined in index.d.ts:763
  • Generated using TypeDoc

    diff --git a/docs/ui/interfaces/PluginPackage.html b/docs/ui/interfaces/PluginPackage.html index 4dffe23f..4ccf918a 100644 --- a/docs/ui/interfaces/PluginPackage.html +++ b/docs/ui/interfaces/PluginPackage.html @@ -22,7 +22,7 @@

    Hierarchy

    +
  • Defined in index.d.ts:760
  • @@ -33,11 +33,11 @@

    Properties

    @@ -56,42 +56,42 @@
    Optional
    Optional username?: string
    +
  • Defined in index.d.ts:764
  • config?: PluginConfig
    +
  • Defined in index.d.ts:777
  • description?: string
    +
  • Defined in index.d.ts:770
  • +
    + +
    devDependencies?: Record<string, string>
    id: string
    +
  • Defined in index.d.ts:762
  • keywords?: string[]
    +
  • Defined in index.d.ts:769
  • name: string
    +
  • Defined in index.d.ts:761
  • peerDependencies?: Record<string, string>
    -
    - -
    permissions?: string[]
    +
  • Defined in index.d.ts:775
  • repository?: string | {
        type?: string;
        url?: string;
    }
    @@ -103,12 +103,12 @@
    Optional
    Optional url?: string
    +
  • Defined in index.d.ts:771
  • version: string
    +
  • Defined in index.d.ts:763
  • Generated using TypeDoc

    diff --git a/docs/ui/interfaces/PluginStateMessage.html b/docs/ui/interfaces/PluginStateMessage.html index c0eae395..0e6cd626 100644 --- a/docs/ui/interfaces/PluginStateMessage.html +++ b/docs/ui/interfaces/PluginStateMessage.html @@ -20,7 +20,7 @@

    Hierarchy

    • PluginStateMessage
    +
  • Defined in index.d.ts:38
  • @@ -42,17 +42,17 @@

    Properties

    dimensions: MinimapDimensions
    +
  • Defined in index.d.ts:40
  • frame: number
    +
  • Defined in index.d.ts:46
  • language: string
    +
  • Defined in index.d.ts:39
  • production: {
        playerData: Int32Array;
        research: Int32Array[];
        unitProduction: Int32Array[];
        upgrades: Int32Array[];
    }
    @@ -68,36 +68,36 @@
    unitProduction
    upgrades: Int32Array[]
    +
  • Defined in index.d.ts:47
  • -
    screen: {
        error: undefined | string;
        screen: undefined | SceneStateID;
    }
    +
    screen: {
        error: undefined | string;
        screen: undefined | TRSceneID;
    }

    Type declaration

    • error: undefined | string
    • -
      screen: undefined | SceneStateID
    +
  • Defined in index.d.ts:41
  • -
    units: DumpedUnit[] | {
        direction?: number;
        energy?: number;
        extras?: { recievingDamage?: number | undefined; selected?: boolean | undefined; dat?: { specialAbilityFlags?: number | undefined; starEditGroupFlags?: number | undefined; name?: string | undefined; isBuilding?: boolean | undefined; isAddon?: boolean | undefined; isFlyer?: boolean | undefined; isResourceMiner?: boolean | undefined; isTurret?: boolean | undefined; isFlyingBuilding?: boolean | undefined; isHero?: boolean | undefined; regenerates?: boolean | undefined; animatedIdle?: boolean | undefined; cloakable?: boolean | undefined; twoUnitsInOneEgg?: boolean | undefined; singleEntity?: boolean | undefined; isResourceDepot?: boolean | undefined; isResourceContainer?: boolean | undefined; isRobotic?: boolean | undefined; isDetector?: boolean | undefined; isOrganic?: boolean | undefined; requiresCreep?: boolean | undefined; unusedFlag?: boolean | undefined; requiresPsi?: boolean | undefined; burrowable?: boolean | undefined; isSpellcaster?: boolean | undefined; permanentCloak?: boolean | undefined; pickupItem?: boolean | undefined; ignoreSupplyCheck?: boolean | undefined; useMediumOverlays?: boolean | undefined; useLargeOverlays?: boolean | undefined; battleReactions?: boolean | undefined; fullAutoAttack?: boolean | undefined; invincible?: boolean | undefined; isMechanical?: boolean | undefined; producesUnits?: boolean | undefined; isZerg?: boolean | undefined; isTerran?: boolean | undefined; isProtoss?: boolean | undefined; index?: number | undefined; flingy?: any; subUnit1?: number | undefined; subUnit2?: number | undefined; infestation?: (number | undefined)[] | undefined; constructionImage?: number | undefined; direction?: number | undefined; shieldsEnabled?: boolean | undefined; shields?: number | undefined; hp?: number | undefined; elevationLevel?: number | undefined; groundWeapon?: number | undefined; airWeapon?: number | undefined; sightRange?: number | undefined; armorUpgrade?: number | undefined; unitSize?: number | undefined; armor?: number | undefined; readySound?: number | undefined; whatSound?: (number | undefined)[] | undefined; yesSound?: (number | undefined)[] | undefined; pissSound?: (number | undefined)[] | undefined; whatSoundStart?: number | undefined; whatSoundEnd?: number | undefined; yesSoundStart?: number | undefined; yesSoundEnd?: number | undefined; pissSoundStart?: number | undefined; pissSoundEnd?: number | undefined; placementWidth?: number | undefined; placementHeight?: number | undefined; addonHorizontal?: number | undefined; addonVertical?: number | undefined; unitSizeLeft?: number | undefined; unitSizeUp?: number | undefined; unitSizeRight?: number | undefined; unitSizeDown?: number | undefined; portrait?: number | undefined; mineralCost?: number | undefined; vespeneCost?: number | undefined; buildTime?: number | undefined; requirements?: number | undefined; supplyProvided?: number | undefined; supplyRequired?: number | undefined; spaceRequired?: number | undefined; spaceProvided?: number | undefined; buildScore?: number | undefined; destroyScore?: number | undefined; starEditAvailabilityFlags?: number | undefined; } | undefined; };
        hp?: number;
        id?: number;
        kills?: number;
        moveTargetX?: number;
        moveTargetY?: number;
        movementFlags?: number;
        nextMovementWaypointX?: number;
        nextMovementWaypointY?: number;
        nextTargetWaypointX?: number;
        nextTargetWaypointY?: number;
        order?: null | number;
        orderTargetAddr?: number;
        orderTargetUnit?: number;
        orderTargetX?: number;
        orderTargetY?: number;
        owner?: number;
        remainingBuildTime?: number;
        resourceAmount?: number;
        shields?: number;
        spriteIndex?: number;
        statusFlags?: number;
        subunit?: null | ({ id?: number | undefined; typeId?: number | undefined; owner?: number | undefined; energy?: number | undefined; shields?: number | undefined; statusFlags?: number | undefined; remainingBuildTime?: number | undefined; resourceAmount?: number | undefined; order?: number | null | undefined; kills?: number | undefined; orderTargetAddr?: number | undefined; orderTargetX?: number | undefined; orderTargetY?: number | undefined; orderTargetUnit?: number | undefined; subunit?: any | null | undefined; subunitId?: number | null | undefined; x?: number | undefined; y?: number | undefined; direction?: number | undefined; moveTargetX?: number | undefined; moveTargetY?: number | undefined; nextMovementWaypointX?: number | undefined; nextMovementWaypointY?: number | undefined; nextTargetWaypointX?: number | undefined; nextTargetWaypointY?: number | undefined; movementFlags?: number | undefined; hp?: number | undefined; spriteIndex?: number | undefined; });
        subunitId?: null | number;
        typeId?: number;
        x?: number;
        y?: number;
    }[]
    +
  • Defined in index.d.ts:53
  • -
    world: {
        map: undefined | {
            description: string;
            height: number;
            tileset: number;
            tilesetName: string;
            title: string;
            width: number;
        };
        replay: undefined | {
            ancillary: {
                activePlayerCount: number;
                alliesEnabled: number;
                campaignId: number;
                cheatsEnabled: number;
                commandByte: number;
                computerPlayerCount: number;
                createInitialUnits: number;
                fogOfWarEnabled: number;
                gameFlags: number;
                gameSpeed: number;
                gameState: number;
                mapHeight: number;
                mapWidth: number;
                playerBytes: Buffer;
                playerName: Buffer;
                replayAutoSave: number;
                resourceType: number;
                restrictionFlags: number;
                slotCount: number;
                startingGas: number;
                startingMinerals: number;
                teamsEnabled: number;
                tileset: number;
                tournamentMode: number;
                unk1: number;
                unk2: number;
                unk3: number;
                unk4: number;
                unk5: number;
                unk6: number;
                unk7: number;
                useFixedPositions: number;
                useStandardUnitStats: number;
                victoryCondition: number;
                victoryConditionValue: number;
            };
            frameCount: number;
            gameName: string;
            gameSubtype: number;
            gameType: number;
            isBroodwar: number;
            mapName: string;
            players: ReplayPlayer[];
            randomSeed: number;
        };
    }
    +
    world: {
        map: undefined | {
            description: string;
            height: number;
            tileset: number;
            tilesetName: string;
            title: string;
            width: number;
        };
        replay: undefined | {
            ancillary: {
                activePlayerCount: number;
                alliesEnabled: number;
                campaignId: number;
                cheatsEnabled: number;
                commandByte: number;
                computerPlayerCount: number;
                createInitialUnits: number;
                fogOfWarEnabled: number;
                gameFlags: number;
                gameSpeed: number;
                gameState: number;
                mapHeight: number;
                mapWidth: number;
                playerBytes: Buffer;
                playerName: Buffer;
                replayAutoSave: number;
                resourceType: number;
                restrictionFlags: number;
                slotCount: number;
                startingGas: number;
                startingMinerals: number;
                teamsEnabled: number;
                tileset: number;
                tournamentMode: number;
                unk1: number;
                unk2: number;
                unk3: number;
                unk4: number;
                unk5: number;
                unk6: number;
                unk7: number;
                useFixedPositions: number;
                useStandardUnitStats: number;
                victoryCondition: number;
                victoryConditionValue: number;
            };
            frameCount: number;
            gameName: string;
            gameSubtype: number;
            gameType: number;
            isBroodwar: number;
            mapName: string;
            players: ReplayPlayer[];
            randomSeed: number;
        };
    }

    Type declaration

    • map: undefined | {
          description: string;
          height: number;
          tileset: number;
          tilesetName: string;
          title: string;
          width: number;
      }
    • -
      replay: undefined | {
          ancillary: {
              activePlayerCount: number;
              alliesEnabled: number;
              campaignId: number;
              cheatsEnabled: number;
              commandByte: number;
              computerPlayerCount: number;
              createInitialUnits: number;
              fogOfWarEnabled: number;
              gameFlags: number;
              gameSpeed: number;
              gameState: number;
              mapHeight: number;
              mapWidth: number;
              playerBytes: Buffer;
              playerName: Buffer;
              replayAutoSave: number;
              resourceType: number;
              restrictionFlags: number;
              slotCount: number;
              startingGas: number;
              startingMinerals: number;
              teamsEnabled: number;
              tileset: number;
              tournamentMode: number;
              unk1: number;
              unk2: number;
              unk3: number;
              unk4: number;
              unk5: number;
              unk6: number;
              unk7: number;
              useFixedPositions: number;
              useStandardUnitStats: number;
              victoryCondition: number;
              victoryConditionValue: number;
          };
          frameCount: number;
          gameName: string;
          gameSubtype: number;
          gameType: number;
          isBroodwar: number;
          mapName: string;
          players: ReplayPlayer[];
          randomSeed: number;
      }
    +
  • Defined in index.d.ts:45
  • Generated using TypeDoc

    diff --git a/docs/ui/interfaces/ReplayAndMapStore.html b/docs/ui/interfaces/ReplayAndMapStore.html index 8914f77a..7fd09a9a 100644 --- a/docs/ui/interfaces/ReplayAndMapStore.html +++ b/docs/ui/interfaces/ReplayAndMapStore.html @@ -20,7 +20,7 @@

    Hierarchy

    • ReplayAndMapStore
    +
  • Defined in index.d.ts:148
  • @@ -28,157 +28,224 @@

    Properties

    +
    + +
    addReplayToQueue: ((replay) => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (replay): void
      • +
      • +
        +

        Parameters

        +
        +

        Returns void

    +
    + +
    addReplaysToQueue: ((replays) => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (replays): void
      • +
      • +
        +

        Parameters

        +
        +

        Returns void

    +
    + +
    addToTotalGameTime: ((t) => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (t): void
      • +
      • +
        +

        Parameters

        +
          +
        • +
          t: number
        +

        Returns void

    +
    + +
    clearReplayQueue: (() => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (): void
      • +
      • +

        Returns void

    +
    + +
    deleteReplayQueueItem: ((replay) => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (replay): void
      • +
      • +
        +

        Parameters

        +
        +

        Returns void

    +
    + +
    flushWatchedReplays: (() => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (): void
      • +
      • +

        Returns void

    +
    + +
    getDeltaReplay: ((d) => undefined | ValidatedReplay)
    +
    +

    Type declaration

    +
    +
    + +
    getNextReplay: ((this) => undefined | ValidatedReplay)
    +
    +

    Type declaration

    +
    live: boolean
    +
  • Defined in index.d.ts:150
  • +
    + +
    loadMap: ((fileBuffer) => Promise<void>)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (fileBuffer): Promise<void>
      • +
      • +
        +

        Parameters

        +
          +
        • +
          fileBuffer: ArrayBuffer
        +

        Returns Promise<void>

    +
    + +
    loadNextReplay: (() => Promise<void>)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (): Promise<void>
      • +
      • +

        Returns Promise<void>

    map?: default
    +
  • Defined in index.d.ts:151
  • mapImage?: HTMLCanvasElement
    +
  • Defined in index.d.ts:153
  • -
    replay?: {
        chk: Buffer;
        header: {
            ancillary: {
                activePlayerCount: number;
                alliesEnabled: number;
                campaignId: number;
                cheatsEnabled: number;
                commandByte: number;
                computerPlayerCount: number;
                createInitialUnits: number;
                fogOfWarEnabled: number;
                gameFlags: number;
                gameSpeed: number;
                gameState: number;
                mapHeight: number;
                mapWidth: number;
                playerBytes: Buffer;
                playerName: Buffer;
                replayAutoSave: number;
                resourceType: number;
                restrictionFlags: number;
                slotCount: number;
                startingGas: number;
                startingMinerals: number;
                teamsEnabled: number;
                tileset: number;
                tournamentMode: number;
                unk1: number;
                unk2: number;
                unk3: number;
                unk4: number;
                unk5: number;
                unk6: number;
                unk7: number;
                useFixedPositions: number;
                useStandardUnitStats: number;
                victoryCondition: number;
                victoryConditionValue: number;
            };
            frameCount: number;
            gameName: string;
            gameSubtype: number;
            gameType: number;
            isBroodwar: number;
            mapName: string;
            players: ReplayPlayer[];
            randomSeed: number;
        };
        limits: {
            bullets: number;
            fogSprites: number;
            images: number;
            orders: number;
            sprites: number;
            thingies: number;
            units: number;
        };
        rawCmds: Buffer;
        rawHeader: Buffer;
        stormPlayerToGamePlayer: number[];
        version: number;
    }
    -
    -

    Type declaration

    -
      -
    • -
      chk: Buffer
    • -
    • -
      header: {
          ancillary: {
              activePlayerCount: number;
              alliesEnabled: number;
              campaignId: number;
              cheatsEnabled: number;
              commandByte: number;
              computerPlayerCount: number;
              createInitialUnits: number;
              fogOfWarEnabled: number;
              gameFlags: number;
              gameSpeed: number;
              gameState: number;
              mapHeight: number;
              mapWidth: number;
              playerBytes: Buffer;
              playerName: Buffer;
              replayAutoSave: number;
              resourceType: number;
              restrictionFlags: number;
              slotCount: number;
              startingGas: number;
              startingMinerals: number;
              teamsEnabled: number;
              tileset: number;
              tournamentMode: number;
              unk1: number;
              unk2: number;
              unk3: number;
              unk4: number;
              unk5: number;
              unk6: number;
              unk7: number;
              useFixedPositions: number;
              useStandardUnitStats: number;
              victoryCondition: number;
              victoryConditionValue: number;
          };
          frameCount: number;
          gameName: string;
          gameSubtype: number;
          gameType: number;
          isBroodwar: number;
          mapName: string;
          players: ReplayPlayer[];
          randomSeed: number;
      }
      -
        -
      • -
        ancillary: {
            activePlayerCount: number;
            alliesEnabled: number;
            campaignId: number;
            cheatsEnabled: number;
            commandByte: number;
            computerPlayerCount: number;
            createInitialUnits: number;
            fogOfWarEnabled: number;
            gameFlags: number;
            gameSpeed: number;
            gameState: number;
            mapHeight: number;
            mapWidth: number;
            playerBytes: Buffer;
            playerName: Buffer;
            replayAutoSave: number;
            resourceType: number;
            restrictionFlags: number;
            slotCount: number;
            startingGas: number;
            startingMinerals: number;
            teamsEnabled: number;
            tileset: number;
            tournamentMode: number;
            unk1: number;
            unk2: number;
            unk3: number;
            unk4: number;
            unk5: number;
            unk6: number;
            unk7: number;
            useFixedPositions: number;
            useStandardUnitStats: number;
            victoryCondition: number;
            victoryConditionValue: number;
        }
        -
          -
        • -
          activePlayerCount: number
        • -
        • -
          alliesEnabled: number
        • -
        • -
          campaignId: number
        • -
        • -
          cheatsEnabled: number
        • -
        • -
          commandByte: number
        • -
        • -
          computerPlayerCount: number
        • -
        • -
          createInitialUnits: number
        • -
        • -
          fogOfWarEnabled: number
        • -
        • -
          gameFlags: number
        • -
        • -
          gameSpeed: number
        • -
        • -
          gameState: number
        • -
        • -
          mapHeight: number
        • -
        • -
          mapWidth: number
        • -
        • -
          playerBytes: Buffer
        • -
        • -
          playerName: Buffer
        • -
        • -
          replayAutoSave: number
        • -
        • -
          resourceType: number
        • -
        • -
          restrictionFlags: number
        • -
        • -
          slotCount: number
        • -
        • -
          startingGas: number
        • -
        • -
          startingMinerals: number
        • -
        • -
          teamsEnabled: number
        • -
        • -
          tileset: number
        • -
        • -
          tournamentMode: number
        • -
        • -
          unk1: number
        • -
        • -
          unk2: number
        • -
        • -
          unk3: number
        • -
        • -
          unk4: number
        • -
        • -
          unk5: number
        • -
        • -
          unk6: number
        • -
        • -
          unk7: number
        • -
        • -
          useFixedPositions: number
        • -
        • -
          useStandardUnitStats: number
        • -
        • -
          victoryCondition: number
        • -
        • -
          victoryConditionValue: number
      • -
      • -
        frameCount: number
      • -
      • -
        gameName: string
      • -
      • -
        gameSubtype: number
      • -
      • -
        gameType: number
      • -
      • -
        isBroodwar: number
      • -
      • -
        mapName: string
      • -
      • -
        players: ReplayPlayer[]
      • -
      • -
        randomSeed: number
    • -
    • -
      limits: {
          bullets: number;
          fogSprites: number;
          images: number;
          orders: number;
          sprites: number;
          thingies: number;
          units: number;
      }
      -
        -
      • -
        bullets: number
      • -
      • -
        fogSprites: number
      • -
      • -
        images: number
      • -
      • -
        orders: number
      • -
      • -
        sprites: number
      • -
      • -
        thingies: number
      • -
      • -
        units: number
    • -
    • -
      rawCmds: Buffer
    • -
    • -
      rawHeader: Buffer
    • -
    • -
      stormPlayerToGamePlayer: number[]
    • -
    • -
      version: number
    + +
    + +
    replayIndex: number
    +
    + +
    replayQueue: ValidatedReplay[]
    reset: (() => void)
    @@ -187,16 +254,34 @@

    Type declaration

      • -
      • (): void
      • +
      • (): void
      • Returns void

    +
  • Defined in index.d.ts:154
  • +
    + +
    totalGameTime: number
    type: "map" | "replay" | "live"
    +
  • Defined in index.d.ts:149
  • +
    + +
    updateNextReplay: (() => void)
    +
    +

    Type declaration

    +
      +
    • +
        +
      • (): void
      • +
      • +

        Returns void

    -
    -
    -
    -
    - -

    Interface ReplayPlayerInternal

    -
    -

    Hierarchy

    -
      -
    • ReplayPlayer
    -
    -
    -
    - -
    -
    -

    Properties

    -
    -
    -

    Properties

    -
    - -
    color: string
    -
    - -
    id: number
    -
    - -
    isActive: boolean
    -
    - -
    isComputer: boolean
    -
    - -
    isHuman: boolean
    -
    - -
    name: string
    -
    - -
    race: "zerg" | "terran" | "protoss" | "unknown"
    -
    - -
    team: number
    -
    -
    -

    Generated using TypeDoc

    -
    \ No newline at end of file diff --git a/docs/host/interfaces/MacroTriggerDTO.html b/docs/ui/interfaces/SCAssetData.html similarity index 74% rename from docs/host/interfaces/MacroTriggerDTO.html rename to docs/ui/interfaces/SCAssetData.html index 4c89950f..a574c2e3 100644 --- a/docs/host/interfaces/MacroTriggerDTO.html +++ b/docs/ui/interfaces/SCAssetData.html @@ -1,4 +1,4 @@ -MacroTriggerDTO | titan-reactor-runtime/host
    +SCAssetData | @titan-reactor-runtime/ui
    • Preparing search index...
    • -
    • The search index is not available
    titan-reactor-runtime/host
    +
  • The search index is not available
  • @titan-reactor-runtime/ui
    -

    Interface MacroTriggerDTOInternal

    +
  • @titan-reactor-runtime/ui
  • +
  • SCAssetData
  • +

    Interface SCAssetDataInternal

    Hierarchy

      -
    • MacroTriggerDTO
    @@ -28,21 +28,21 @@

    Properties

    -
    - -
    +
  • Defined in index.d.ts:975
  • Generated using TypeDoc

    diff --git a/docs/ui/interfaces/UnitDATIncomingType.html b/docs/ui/interfaces/UnitDATIncomingType.html index 0b2b2d3d..3c09f29c 100644 --- a/docs/ui/interfaces/UnitDATIncomingType.html +++ b/docs/ui/interfaces/UnitDATIncomingType.html @@ -22,7 +22,7 @@

    Hierarchy

    +
  • Defined in index.d.ts:304
  • @@ -85,242 +85,242 @@

    Properties

    addonHorizontal: number
    +
  • Defined in index.d.ts:334
  • addonVertical: number
    +
  • Defined in index.d.ts:335
  • airWeapon: number
    +
  • Defined in index.d.ts:317
  • armor: number
    +
  • Defined in index.d.ts:321
  • armorUpgrade: number
    +
  • Defined in index.d.ts:319
  • buildScore: number
    +
  • Defined in index.d.ts:350
  • buildTime: number
    +
  • Defined in index.d.ts:343
  • constructionImage: number
    +
  • Defined in index.d.ts:310
  • destroyScore: number
    +
  • Defined in index.d.ts:351
  • direction: number
    +
  • Defined in index.d.ts:311
  • elevationLevel: number
    +
  • Defined in index.d.ts:315
  • flingy: any
    +
  • Defined in index.d.ts:306
  • groundWeapon: number
    +
  • Defined in index.d.ts:316
  • hp: number
    +
  • Defined in index.d.ts:314
  • index: number
    +
  • Defined in index.d.ts:305
  • infestation: number[]
    +
  • Defined in index.d.ts:309
  • mineralCost: number
    +
  • Defined in index.d.ts:341
  • pissSound: number[]
    +
  • Defined in index.d.ts:325
  • pissSoundEnd: number
    +
  • Defined in index.d.ts:331
  • pissSoundStart: number
    +
  • Defined in index.d.ts:330
  • placementHeight: number
    +
  • Defined in index.d.ts:333
  • placementWidth: number
    +
  • Defined in index.d.ts:332
  • portrait: number
    +
  • Defined in index.d.ts:340
  • readySound: number
    +
  • Defined in index.d.ts:322
  • requirements: number
    +
  • Defined in index.d.ts:344
  • shields: number
    +
  • Defined in index.d.ts:313
  • shieldsEnabled: boolean
    +
  • Defined in index.d.ts:312
  • sightRange: number
    +
  • Defined in index.d.ts:318
  • spaceProvided: number
    +
  • Defined in index.d.ts:349
  • spaceRequired: number
    +
  • Defined in index.d.ts:348
  • starEditAvailabilityFlags: number
    +
  • Defined in index.d.ts:352
  • starEditGroupFlags: number
    +
  • Defined in index.d.ts:345
  • subUnit1: number
    +
  • Defined in index.d.ts:307
  • subUnit2: number
    +
  • Defined in index.d.ts:308
  • supplyProvided: number
    +
  • Defined in index.d.ts:346
  • supplyRequired: number
    +
  • Defined in index.d.ts:347
  • unitSize: number
    +
  • Defined in index.d.ts:320
  • unitSizeDown: number
    +
  • Defined in index.d.ts:339
  • unitSizeLeft: number
    +
  • Defined in index.d.ts:336
  • unitSizeRight: number
    +
  • Defined in index.d.ts:338
  • unitSizeUp: number
    +
  • Defined in index.d.ts:337
  • vespeneCost: number
    +
  • Defined in index.d.ts:342
  • whatSound: number[]
    +
  • Defined in index.d.ts:323
  • whatSoundEnd: number
    +
  • Defined in index.d.ts:327
  • whatSoundStart: number
    +
  • Defined in index.d.ts:326
  • yesSound: number[]
    +
  • Defined in index.d.ts:324
  • yesSoundEnd: number
    +
  • Defined in index.d.ts:329
  • yesSoundStart: number
    +
  • Defined in index.d.ts:328
  • Generated using TypeDoc

    diff --git a/docs/ui/interfaces/UnitStruct.html b/docs/ui/interfaces/UnitStruct.html index 3baeb189..57ca33bc 100644 --- a/docs/ui/interfaces/UnitStruct.html +++ b/docs/ui/interfaces/UnitStruct.html @@ -24,7 +24,7 @@

    Hierarchy

    +
  • Defined in index.d.ts:237
  • @@ -32,8 +32,12 @@

    Properties

    +
    + +
    airWeaponCooldown: number
    +
    + +
    currentSpeed: number
    +
    + +
    currentVelocityDirection: number
    direction: number
    +
  • Defined in index.d.ts:268
  • energy: number
    +
  • Defined in index.d.ts:241
  • +
    + +
    groundWeaponCooldown: number
    hp: number
    +
  • Defined in index.d.ts:283
  • id: number
    +
  • Defined in index.d.ts:238
  • kills: number
    +
  • Defined in index.d.ts:247
  • moveTargetX: number
    +
  • Defined in index.d.ts:270
  • moveTargetY: number
    +
  • Defined in index.d.ts:271
  • movementFlags: number
    +
  • Defined in index.d.ts:276
  • nextMovementWaypointX: number
    +
  • Defined in index.d.ts:272
  • nextMovementWaypointY: number
    +
  • Defined in index.d.ts:273
  • nextTargetWaypointX: number
    +
  • Defined in index.d.ts:274
  • nextTargetWaypointY: number
    +
  • Defined in index.d.ts:275
  • order: null | number
    +
  • Defined in index.d.ts:246
  • orderTargetAddr: number
    +
  • Defined in index.d.ts:248
  • orderTargetUnit: number
    +
  • Defined in index.d.ts:251
  • orderTargetX: number
    +
  • Defined in index.d.ts:249
  • orderTargetY: number
    +
  • Defined in index.d.ts:250
  • owner: number
    +
  • Defined in index.d.ts:240
  • remainingBuildTime: number
    +
  • Defined in index.d.ts:244
  • resourceAmount: number
    +
  • Defined in index.d.ts:245
  • shields: number
    +
  • Defined in index.d.ts:242
  • +
    + +
    spellCooldown: number
    +
    + +
    spriteAddr: number
    spriteIndex: number
    +
  • Defined in index.d.ts:287
  • statusFlags: number
    +
  • Defined in index.d.ts:243
  • subunit: null | UnitStruct
    +
  • Defined in index.d.ts:258
  • subunitId: null | number
    +
  • Defined in index.d.ts:259
  • typeId: number
    +
  • Defined in index.d.ts:239
  • x: number
    +
  • Defined in index.d.ts:266
  • y: number
    +
  • Defined in index.d.ts:267
  • +
    CacheDBStoreName: "general-casc-cache" | "image-cache"
    +
  • Defined in index.d.ts:969
  • Generated using TypeDoc

    diff --git a/docs/ui/types/DeepPartial.html b/docs/ui/types/DeepPartial.html index 66c7ff4c..f6e50c7f 100644 --- a/docs/ui/types/DeepPartial.html +++ b/docs/ui/types/DeepPartial.html @@ -23,7 +23,7 @@

    Type Parameters

    T

    +
  • Defined in index.d.ts:404
  • Generated using TypeDoc

    diff --git a/docs/ui/types/GrpSprite.html b/docs/ui/types/GrpSprite.html index b591df13..8f5910a2 100644 --- a/docs/ui/types/GrpSprite.html +++ b/docs/ui/types/GrpSprite.html @@ -31,7 +31,7 @@
    maxFrameww: number
    +
  • Defined in index.d.ts:1216
  • Generated using TypeDoc

    diff --git a/docs/ui/types/IScriptAnimation.html b/docs/ui/types/IScriptAnimation.html index 0238941d..97a867a7 100644 --- a/docs/ui/types/IScriptAnimation.html +++ b/docs/ui/types/IScriptAnimation.html @@ -18,7 +18,7 @@

    Type alias IScriptAnimationInternalIScriptAnimation: IScriptOperations[]
    +
  • Defined in index.d.ts:1079
  • Generated using TypeDoc

    diff --git a/docs/ui/types/IScriptOperations.html b/docs/ui/types/IScriptOperations.html index d6745e03..721cc124 100644 --- a/docs/ui/types/IScriptOperations.html +++ b/docs/ui/types/IScriptOperations.html @@ -18,7 +18,7 @@

    Type alias IScriptOperationsInternalIScriptOperations: [string, number[]]
    +
  • Defined in index.d.ts:1084
  • Generated using TypeDoc

    diff --git a/docs/ui/types/LoDAT.html b/docs/ui/types/LoDAT.html index 7c444530..32e2e48d 100644 --- a/docs/ui/types/LoDAT.html +++ b/docs/ui/types/LoDAT.html @@ -18,7 +18,7 @@

    Type alias LoDAT

    LoDAT: number[][][]
    +
  • Defined in index.d.ts:1150
  • Generated using TypeDoc

    diff --git a/docs/ui/types/Palettes.html b/docs/ui/types/Palettes.html index 9143496a..2f36a809 100644 --- a/docs/ui/types/Palettes.html +++ b/docs/ui/types/Palettes.html @@ -25,7 +25,7 @@
    Optional Optional light?: Buffer
    +
  • Defined in index.d.ts:1034
  • Generated using TypeDoc

    diff --git a/docs/ui/types/PluginConfig.html b/docs/ui/types/PluginConfig.html index 2ca6de88..e5514b84 100644 --- a/docs/ui/types/PluginConfig.html +++ b/docs/ui/types/PluginConfig.html @@ -18,7 +18,7 @@

    Type alias PluginConfigInternal
    PluginConfig: Record<string, FieldDefinition>
    +
  • Defined in index.d.ts:783
  • Generated using TypeDoc

    diff --git a/docs/ui/types/SceneStateID.html b/docs/ui/types/ResourceLoaderStatus.html similarity index 89% rename from docs/ui/types/SceneStateID.html rename to docs/ui/types/ResourceLoaderStatus.html index 944b423f..0546db5f 100644 --- a/docs/ui/types/SceneStateID.html +++ b/docs/ui/types/ResourceLoaderStatus.html @@ -1,4 +1,4 @@ -SceneStateID | @titan-reactor-runtime/ui
    +ResourceLoaderStatus | @titan-reactor-runtime/ui
    +
    ResourceLoaderStatus: "loading" | "loaded" | "error" | "idle" | "cancelled"
    +
  • Defined in index.d.ts:950
  • Generated using TypeDoc

    diff --git a/docs/ui/types/RuntimeAssets.html b/docs/ui/types/RuntimeAssets.html index da23ac76..6a39a675 100644 --- a/docs/ui/types/RuntimeAssets.html +++ b/docs/ui/types/RuntimeAssets.html @@ -15,12 +15,12 @@
  • @titan-reactor-runtime/ui
  • RuntimeAssets
  • Type alias RuntimeAssets

    -
    RuntimeAssets: Pick<SystemReadyMessage["assets"], "bwDat"> & ReturnType<typeof convertIcons>
    +
    RuntimeAssets: Pick<SystemReadyMessage["assets"], "bwDat">

    Images and game data.

    +
  • Defined in index.d.ts:718
  • Generated using TypeDoc

    diff --git a/docs/ui/types/StateMessage.html b/docs/ui/types/StateMessage.html index d4e44987..ae3d3d53 100644 --- a/docs/ui/types/StateMessage.html +++ b/docs/ui/types/StateMessage.html @@ -18,7 +18,7 @@

    Type alias StateMessageInternal
    StateMessage: Partial<PluginStateMessage>
    +
  • Defined in index.d.ts:30
  • Generated using TypeDoc

    diff --git a/docs/ui/types/TRSceneID.html b/docs/ui/types/TRSceneID.html new file mode 100644 index 00000000..e92ac3e3 --- /dev/null +++ b/docs/ui/types/TRSceneID.html @@ -0,0 +1,64 @@ +TRSceneID | @titan-reactor-runtime/ui
    +
    + +
    +
    +
    +
    + +

    Type alias TRSceneIDInternal

    +
    TRSceneID: "@home" | "@loading" | "@replay" | "@map" | "@iscriptah" | "@interstitial" | "@auth"
    +
    +
    +
    +

    Generated using TypeDoc

    +
    \ No newline at end of file diff --git a/docs/ui/types/ReadFile.html b/docs/ui/types/ValidatedReplay.html similarity index 86% rename from docs/ui/types/ReadFile.html rename to docs/ui/types/ValidatedReplay.html index fb1c289a..17a8b47a 100644 --- a/docs/ui/types/ReadFile.html +++ b/docs/ui/types/ValidatedReplay.html @@ -1,4 +1,4 @@ -ReadFile | @titan-reactor-runtime/ui
    +ValidatedReplay | @titan-reactor-runtime/ui
    +
    ValidatedReplay: Replay & {
        buffer: Buffer;
        uid: number;
    }

    Type declaration

      -
    • -
        -
      • (filename): Promise<Buffer>
      • -
      • Internal -
        -

        Parameters

        -
          -
        • -
          filename: string
        -

        Returns Promise<Buffer>

        -
    +
    +
  • Defined in index.d.ts:174
  • Generated using TypeDoc

    diff --git a/docs/ui/variables/UI_STATE_EVENT_DIMENSIONS_CHANGED.html b/docs/ui/variables/UI_STATE_EVENT_DIMENSIONS_CHANGED.html index 8c760de5..a2cbc4c1 100644 --- a/docs/ui/variables/UI_STATE_EVENT_DIMENSIONS_CHANGED.html +++ b/docs/ui/variables/UI_STATE_EVENT_DIMENSIONS_CHANGED.html @@ -18,7 +18,7 @@

    Variable UI_STATE_EVENT_DIMENSIONS_CHANGEDUI_STATE_EVENT_DIMENSIONS_CHANGED: "dimensions" = "dimensions"
    +
  • Defined in index.d.ts:59
  • Generated using TypeDoc

    diff --git a/docs/ui/variables/UI_STATE_EVENT_ON_FRAME.html b/docs/ui/variables/UI_STATE_EVENT_ON_FRAME.html index c75f7469..c60112d3 100644 --- a/docs/ui/variables/UI_STATE_EVENT_ON_FRAME.html +++ b/docs/ui/variables/UI_STATE_EVENT_ON_FRAME.html @@ -18,7 +18,7 @@

    Variable UI_STATE_EVENT_ON_FRAMEConstUI_STATE_EVENT_ON_FRAME: "frame" = "frame"
    +
  • Defined in index.d.ts:182
  • Generated using TypeDoc

    diff --git a/docs/ui/variables/UI_STATE_EVENT_PRODUCTION.html b/docs/ui/variables/UI_STATE_EVENT_PRODUCTION.html index b1326498..8d4a1a27 100644 --- a/docs/ui/variables/UI_STATE_EVENT_PRODUCTION.html +++ b/docs/ui/variables/UI_STATE_EVENT_PRODUCTION.html @@ -18,7 +18,7 @@

    Variable UI_STATE_EVENT_PRODUCTIONConstUI_STATE_EVENT_PRODUCTION: "production" = "production"
    +
  • Defined in index.d.ts:187
  • Generated using TypeDoc

    diff --git a/docs/ui/variables/UI_STATE_EVENT_SCREEN_CHANGED.html b/docs/ui/variables/UI_STATE_EVENT_SCREEN_CHANGED.html index 0ef0bba4..04cc486d 100644 --- a/docs/ui/variables/UI_STATE_EVENT_SCREEN_CHANGED.html +++ b/docs/ui/variables/UI_STATE_EVENT_SCREEN_CHANGED.html @@ -18,7 +18,7 @@

    Variable UI_STATE_EVENT_SCREEN_CHANGEDCon
    UI_STATE_EVENT_SCREEN_CHANGED: "screen" = "screen"
    +
  • Defined in index.d.ts:72
  • Generated using TypeDoc

    diff --git a/docs/ui/variables/UI_STATE_EVENT_UNITS_SELECTED.html b/docs/ui/variables/UI_STATE_EVENT_UNITS_SELECTED.html index 54f36c00..d7453338 100644 --- a/docs/ui/variables/UI_STATE_EVENT_UNITS_SELECTED.html +++ b/docs/ui/variables/UI_STATE_EVENT_UNITS_SELECTED.html @@ -18,7 +18,7 @@

    Variable UI_STATE_EVENT_UNITS_SELECTEDCon
    UI_STATE_EVENT_UNITS_SELECTED: "units" = "units"
    +
  • Defined in index.d.ts:192
  • Generated using TypeDoc

    diff --git a/docs/ui/variables/UI_STATE_EVENT_WORLD_CHANGED.html b/docs/ui/variables/UI_STATE_EVENT_WORLD_CHANGED.html index 281ef7db..81effd1f 100644 --- a/docs/ui/variables/UI_STATE_EVENT_WORLD_CHANGED.html +++ b/docs/ui/variables/UI_STATE_EVENT_WORLD_CHANGED.html @@ -18,7 +18,7 @@

    Variable UI_STATE_EVENT_WORLD_CHANGEDCons
    UI_STATE_EVENT_WORLD_CHANGED: "world" = "world"
    +
  • Defined in index.d.ts:82
  • Generated using TypeDoc

    diff --git a/docs/ui/variables/assets-1.html b/docs/ui/variables/assets-1.html index 8a2438b9..842a158d 100644 --- a/docs/ui/variables/assets-1.html +++ b/docs/ui/variables/assets-1.html @@ -20,7 +20,7 @@

    Variable assetsConst

    +
  • Defined in index.d.ts:1250
  • Generated using TypeDoc

    diff --git a/docs/ui/variables/enums.html b/docs/ui/variables/enums.html index da8d367b..3d81a1f4 100644 --- a/docs/ui/variables/enums.html +++ b/docs/ui/variables/enums.html @@ -20,7 +20,7 @@

    Variable enumsConst

    +
  • Defined in index.d.ts:1242
  • Generated using TypeDoc

    diff --git a/esbuild.plugin-host.ts b/esbuild.plugin-host.ts new file mode 100644 index 00000000..275eb1ce --- /dev/null +++ b/esbuild.plugin-host.ts @@ -0,0 +1,21 @@ +const esbuild = require("esbuild"); +// const { copy, move } = require("fs-extra"); +const { rmSync } = require("fs"); +// const path = require("path"); +// const { createHash } = require("crypto"); + +const OUTDIR = "dist/plugin-host-es"; + +rmSync(OUTDIR, { recursive: true, force: true }); + +(async () => { + await esbuild.build({ + entryPoints: ["src/utils/types/plugin-host.ts"], + outdir: OUTDIR, + keepNames: true, + minify: false, + format: "esm", + bundle: true, + packages: 'external', + }); +})(); diff --git a/index.html b/index.html index b53a6871..4c94b759 100644 --- a/index.html +++ b/index.html @@ -2,9 +2,9 @@ - - - + + + diff --git a/package.json b/package.json index fa19eaf0..d5099608 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,8 @@ { "name": "titan-reactor", "productName": "Titan Reactor", - "version": "0.7.0", + "version": "0.7.1", "description": "An OpenBW Renderer", - "main": "dist/electron/main/index.js", - "typings": "dist/types/index.d.ts", "scripts": { "sanity": "yarn types:check && yarn test:once", "types:check": "tsc --noEmit", @@ -14,23 +12,36 @@ "test:build": "http-server .\\dist\\titan-reactor -p 80", "lint": "yarn eslint . && yarn prettier --check .", "postinstall": "git apply -v --stat --directory=node_modules/scm-extractor build/patches/scm-extractor.patch", - "generate:api-types": "ts-node -T .\\build\\api-types\\index.ts", - "generate:plugin-api-docs": "typedoc --out docs/host --tsconfig tsconfig.host-api.json build/api-types/host/index.d.ts && typedoc --out docs/ui --tsconfig tsconfig.ui-api.json build/api-types/ui/index.d.ts", + "build:api-types": "ts-node -T .\\build\\api-types\\index.ts", + "build:plugin-api-docs": "typedoc --out docs/host --tsconfig tsconfig.host-api.json build/api-types/host/index.d.ts && typedoc --out docs/ui --tsconfig tsconfig.ui-api.json build/api-types/ui/index.d.ts", "build:runtime": "ts-node -T ./esbuild.runtime.ts", "serve:runtime": "http-server .\\dist\\runtime -p 8090 --cors", "web": "vite -c vite.config.web.ts", "runtime": "yarn build:runtime && yarn serve:runtime", "build": "vite build -c vite.config.web.ts && yarn build:runtime" }, + "files": [ + "./types", + "./host", + "./ui", + "./src", + "package.json", + "README.md" + ], + "types": "./types/index.d.ts", + "exports": { + "./host/*": "./dist/host/*", + "./ui/*": "./dist/ui/*" + }, "repository": { "type": "git", - "url": "git+https://github.com/imbateam-gg/titan-reactor.git" + "url": "git+https://github.com/alexpineda/titan-reactor.git" }, "author": "Alex Pineda ", "bugs": { - "url": "https://github.com/imbateam-gg/titan-reactor/issues" + "url": "https://github.com/alexpineda/titan-reactor/issues" }, - "homepage": "https://github.com/imbateam-gg/titan-reactor#readme", + "homepage": "https://www.blacksheepwall.tv", "debug": { "env": { "VITE_DEV_SERVER_HOSTNAME": "127.0.0.1", @@ -54,7 +65,7 @@ "bl": "^5.0.0", "buffer": "^6.0.3", "bw-chk": "^1.4.0", - "camera-controls": "1.37.2", + "camera-controls": "2.7.3", "concat-stream": "^2.0.0", "deep-diff": "^1.0.2", "deepmerge": "^4.2.2", @@ -82,12 +93,10 @@ "three-gpu-pathtracer": "^0.0.6", "three-instanced-uniforms-mesh": "^0.46.0", "three-janitor": "^2.0.1", - "typescript": "^4.8.4", "zustand": "4.1.1" }, "devDependencies": { "@11ty/eleventy": "^2.0.1", - "@types/bl": "^5.0.2", "@types/concat-stream": "^2.0.0", "@types/d3-ease": "^3.0.0", "@types/deep-diff": "^1.0.1", @@ -137,9 +146,10 @@ "source-map-support": "^0.5.19", "spectorjs": "^0.9.27", "ts-jest": "^29.0.1", - "ts-morph": "^16.0.0", + "ts-morph": "^20.0.0", "ts-node": "^10.9.1", "typedoc": "^0.25.1", + "typescript": "^5.2.2", "vite": "^3.1.3", "webgl-lint": "^1.9.3" }, diff --git a/src/camera/game-viewport.ts b/src/camera/game-viewport.ts index 75c837aa..a6be371c 100644 --- a/src/camera/game-viewport.ts +++ b/src/camera/game-viewport.ts @@ -23,11 +23,11 @@ export class GameViewPort extends Sizeable { camera: PerspectiveCamera | OrthographicCamera; projectedView = new ProjectedCameraView(); orbit!: CameraControls; - viewport = new Vector4( 0, 0, 300, 200 ); + viewport = new Vector4(0, 0, 300, 200); cameraShake = new CameraShake(); shakeCalculation = { - frequency: new Vector3( 10, 20, 7.5 ), - duration: new Vector3( 1000, 1000, 1000 ), + frequency: new Vector3(10, 20, 7.5), + duration: new Vector3(1000, 1000, 1000), strength: new Vector3(), needsUpdate: false, }; @@ -38,11 +38,12 @@ export class GameViewPort extends Sizeable { needsUpdate = true; rotateSprites = false; + autoUpdateSmoothTime = true; audioType: "stereo" | "3d" | null = "stereo"; #direction32 = 0; - set renderMode3D( val: boolean ) { - if ( val !== this.#renderMode3D ) { + set renderMode3D(val: boolean) { + if (val !== this.#renderMode3D) { this.#renderMode3D = val; this.needsUpdate = true; } @@ -56,38 +57,31 @@ export class GameViewPort extends Sizeable { return this.#enabled; } - set enabled( val: boolean ) { + set enabled(val: boolean) { this.#enabled = val; } - constructor( surface: Surface, enabled = false ) { - super( surface ); + constructor(surface: Surface, enabled = false) { + super(surface); this.surface = surface; - this.camera = new PerspectiveCamera( - 15, - surface.aspect, - 0.1, - 500 - ); + this.camera = new PerspectiveCamera(15, surface.aspect, 0.1, 500); this.enabled = enabled; this.#bindOrbitControls(); } #bindOrbitControls() { - this.orbit = new CameraControls( this.camera, this.surface.canvas ); + this.orbit = new CameraControls(this.camera, this.surface.canvas); this.orbit.mouseButtons.left = CameraControls.ACTION.NONE; this.orbit.mouseButtons.right = CameraControls.ACTION.NONE; this.orbit.mouseButtons.middle = CameraControls.ACTION.NONE; this.orbit.mouseButtons.wheel = CameraControls.ACTION.NONE; } - set orthographic( value: boolean ) { - this.camera = ( - value - ? new OrthographicCamera() - : new PerspectiveCamera( 15, this.surface.aspect, 0.1, 500 ) - ); + set orthographic(value: boolean) { + this.camera = value + ? new OrthographicCamera() + : new PerspectiveCamera(15, this.surface.aspect, 0.1, 500); this.constrainToAspect = !value; this.orbit.dispose(); this.#bindOrbitControls(); @@ -101,17 +95,17 @@ export class GameViewPort extends Sizeable { const target = new Vector3(); const position = new Vector3(); - this.orbit.getTarget( target ); - this.orbit.getPosition( position ); + this.orbit.getTarget(target); + this.orbit.getPosition(position); return { target: target, position: position, }; } - shakeStart( elapsed: number, strength: number ) { - if ( strength && this.shakeCalculation.needsUpdate ) { - this.shakeCalculation.strength.multiplyScalar( strength ); + shakeStart(elapsed: number, strength: number) { + if (strength && this.shakeCalculation.needsUpdate) { + this.shakeCalculation.strength.multiplyScalar(strength); this.cameraShake.shake( elapsed, this.shakeCalculation.duration, @@ -119,34 +113,35 @@ export class GameViewPort extends Sizeable { this.shakeCalculation.strength ); this.shakeCalculation.needsUpdate = false; - this.shakeCalculation.strength.setScalar( 0 ); + this.shakeCalculation.strength.setScalar(0); } - this.cameraShake.update( elapsed, this.camera ); + this.cameraShake.update(elapsed, this.camera); } shakeEnd() { - this.cameraShake.restore( this.camera ); + this.cameraShake.restore(this.camera); } - update( targetDamping: number, delta: number ) { - + update(targetSmoothTime: number, delta: number) { this.viewport.copy(this.getActualSize()); this.#direction32 = this.rotateSprites - ? getDirection32( this.projectedView.center, this.camera.getWorldPosition( _target )) + ? getDirection32( + this.projectedView.center, + this.camera.getWorldPosition(_target) + ) : 0; - this.orbit.dampingFactor = MathUtils.damp( - this.orbit.dampingFactor, - targetDamping, - 0.0001, - delta - ); - this.orbit.update( delta / 1000 ); - - this.projectedView.update( - this.camera, - this.orbit.getTarget( _target ) - ); + if (this.autoUpdateSmoothTime) { + this.orbit.smoothTime = MathUtils.damp( + this.orbit.smoothTime, + targetSmoothTime, + 0.0001, + delta + ); + } + this.orbit.update(delta / 1000); + + this.projectedView.update(this.camera, this.orbit.getTarget(_target)); } get direction32() { diff --git a/src/camera/xr-viewport.ts b/src/camera/xr-viewport.ts deleted file mode 100644 index cfd1bbdc..00000000 --- a/src/camera/xr-viewport.ts +++ /dev/null @@ -1,67 +0,0 @@ -import { renderComposer } from "@render/render-composer"; -import { Group } from "three"; -import { GameViewPort } from "./game-viewport"; - -// import { XRControllerModelFactory } from 'three/examples/jsm/webxr/XRControllerModelFactory'; -// import { XRHandModelFactory } from 'three/examples/jsm/webxr/XRHandModelFactory'; - - -/** - * @public - * A "view" into the game. Every viewport contains it's own camera, dimensions, and additional properties. - */ -export class WebXRGameViewPort extends GameViewPort { - - user = new Group(); - get xr(){ - return renderComposer.glRenderer.xr; - } - - constructor( ...args: ConstructorParameters) { - - console.log("WebXRGameViewPort") - super(...args); - this.orbit.enabled = false; - - } - - override update( targetDamping: number, delta: number ) { - super.update( targetDamping, delta ); - } - - override dispose(): void { - super.dispose(); - this.user.removeFromParent(); - } - - // initXR(xr: WebXRManager) { - // const controller1 = xr.getController( 0 ); - // scene.add( controller1 ); - - // const controller2 = xr.getController( 1 ); - // scene.add( controller2 ); - - // const controllerModelFactory = new XRControllerModelFactory(); - // const handModelFactory = new XRHandModelFactory(); - - // // Hand 1 - // const controllerGrip1 = xr.getControllerGrip( 0 ); - // controllerGrip1.add( controllerModelFactory.createControllerModel( controllerGrip1 ) ); - // scene.add( controllerGrip1 ); - - // const hand1 = xr.getHand( 0 ); - // hand1.add( handModelFactory.createHandModel( hand1 ) ); - - // scene.add( hand1 ); - - // // Hand 2 - // const controllerGrip2 = xr.getControllerGrip( 1 ); - // controllerGrip2.add( controllerModelFactory.createControllerModel( controllerGrip2 ) ); - // scene.add( controllerGrip2 ); - - // const hand2 = xr.getHand( 1 ); - // hand2.add( handModelFactory.createHandModel( hand2 ) ); - // scene.add( hand2 ); - // } - -} diff --git a/src/common/default-settings.ts b/src/common/default-settings.ts index ed1127dc..ee8515c9 100644 --- a/src/common/default-settings.ts +++ b/src/common/default-settings.ts @@ -1,17 +1,5 @@ import { SettingsV6 } from "./types"; -export const DEFAULT_PLUGIN_PACKAGES: string[] = [ - "@titan-reactor-plugins/clock", - "@titan-reactor-plugins/player-colors", - "@titan-reactor-plugins/camera-standard", - "@titan-reactor-plugins/camera-overview", - "@titan-reactor-plugins/camera-battle", - "@titan-reactor-plugins/players-bar", - "@titan-reactor-plugins/unit-selection-display", - "@titan-reactor-plugins/production-bar", - "@titan-reactor-plugins/unit-sounds", -]; - export const defaultSettingsV6: SettingsV6 = { version: 6, language: "en-US", @@ -39,7 +27,7 @@ export const defaultSettingsV6: SettingsV6 = { drawCamera: true, }, input: { - sceneController: "@titan-reactor-plugins/camera-standard", + sceneController: "@titan-reactor-plugins/auto-observer", vrController: "@titan-reactor-plugins/vr-controller", dampingFactor: 0.1, cameraShakeStrength: 1, diff --git a/src/common/enums/tech-tree.ts b/src/common/enums/tech-tree.ts index 77d84321..f01d6617 100644 --- a/src/common/enums/tech-tree.ts +++ b/src/common/enums/tech-tree.ts @@ -168,6 +168,7 @@ export const techTree: TechTree = { }, }, // ZERG ---------------------------------------------- + [unitTypes.extractor]: {}, [unitTypes.creepColony]: { units: { builds: [ unitTypes.sunkenColony, unitTypes.sporeColony ], diff --git a/src/common/get-app-settings-leva-config.ts b/src/common/get-app-settings-leva-config.ts index e0f8239b..65e112c3 100644 --- a/src/common/get-app-settings-leva-config.ts +++ b/src/common/get-app-settings-leva-config.ts @@ -284,11 +284,11 @@ const getInputConfig = ( ), }, "input.dampingFactor": { - label: "Camera Movement Damping", + label: "Camera Movement Time", value: input.dampingFactor, - min: 0.01, - max: 0.1, - step: 0.01, + min: 0.1, + max: 10, + step: 0.1, }, "input.zoomLevels": { label: "Camera Zoom Levels", diff --git a/src/common/macros/default-macros.json b/src/common/macros/default-macros.json index 22c48a7a..dc7eb500 100644 --- a/src/common/macros/default-macros.json +++ b/src/common/macros/default-macros.json @@ -8,9 +8,7 @@ "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "KeyT" - ], + "codes": ["KeyT"], "onKeyUp": false } }, @@ -18,11 +16,7 @@ { "type": "action", "id": "624938cb-249d-4b04-9a6b-e942a64d0995", - "path": [ - ":plugin", - "@titan-reactor-plugins/camera-standard", - "tilt" - ], + "path": [":plugin", "@titan-reactor-plugins/camera-standard", "tilt"], "operator": "Set", "value": 35, "group": 1 @@ -30,11 +24,7 @@ { "type": "action", "id": "504f2ac2-2c13-47b9-8b3d-32bd2578f616", - "path": [ - ":plugin", - "@titan-reactor-plugins/camera-standard", - "tilt" - ], + "path": [":plugin", "@titan-reactor-plugins/camera-standard", "tilt"], "operator": "SetToDefault", "value": 35, "group": 2 @@ -46,16 +36,12 @@ { "type": "condition", "id": "3cfb107d-4f39-403e-8daa-ef64f6b58ea1", - "path": [ - ":app", - "input", - "sceneController" - ], + "path": [":app", "input", "sceneController"], "comparator": "Equals", "value": "@titan-reactor-plugins/camera-standard" } ], - "description": "Toggles the tilt of the camera up and down" + "description": "Toggles the tilt of the camera up and down ( Default Camera Only)" }, { "id": "a3f34c04-957a-4ac3-816b-ac0740fe38e4", @@ -66,9 +52,7 @@ "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "KeyP" - ], + "codes": ["KeyP"], "onKeyUp": false } }, @@ -76,9 +60,7 @@ { "type": "action", "id": "a18c3df7-e903-44ae-bbbd-9aa73f4bdd96", - "path": [ - ":function" - ], + "path": [":function"], "operator": "Execute", "value": "api.openBW.togglePause();\napi.simpleMessage(`⏯️`);", "group": 1 @@ -90,11 +72,7 @@ { "type": "condition", "id": "27f54945-b793-41d4-bedd-b42e2015896a", - "path": [ - ":app", - "session", - "type" - ], + "path": [":app", "session", "type"], "comparator": "Equals", "value": "replay" } @@ -110,9 +88,7 @@ "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "F5" - ], + "codes": ["F5"], "onKeyUp": false } }, @@ -120,11 +96,7 @@ { "type": "action", "id": "74f749ce-e219-4179-9e6a-c8d87d19581f", - "path": [ - ":macro", - "11fed136-304d-4ad8-95fb-74448b3be159", - "program" - ], + "path": [":macro", "11fed136-304d-4ad8-95fb-74448b3be159", "program"], "operator": "Execute", "value": true, "group": 2 @@ -132,9 +104,7 @@ { "type": "action", "id": "9647b127-355e-47b5-940e-269864c4a91f", - "path": [ - ":function" - ], + "path": [":function"], "operator": "Execute", "value": "api.changeRenderMode();", "group": 1 @@ -148,34 +118,20 @@ { "id": "3f5fb9d4-2a67-4f7e-b70c-fad69f752067", "name": "Minimap: Full Size", - "trigger": { - "type": "None", - "value": null - }, + "trigger": { "type": "None", "value": null }, "actions": [ { "type": "action", "id": "9738f275-008d-4cd2-b8e5-1d5b57c19422", - "path": [ - ":app", - "minimap", - "position" - ], + "path": [":app", "minimap", "position"], "operator": "Set", - "value": [ - -0.162012939453086, - -0.18998870849609578 - ], + "value": [-0.162012939453086, -0.18998870849609578], "group": 1 }, { "type": "action", "id": "1e0332c3-6bee-4ef5-bdac-8e08be0dbc22", - "path": [ - ":app", - "minimap", - "scale" - ], + "path": [":app", "minimap", "scale"], "operator": "Set", "value": 3.600000000000003, "group": 2 @@ -183,11 +139,7 @@ { "type": "action", "id": "43daf709-6eb4-41b2-9c17-f55551f18f4e", - "path": [ - ":app", - "minimap", - "softEdges" - ], + "path": [":app", "minimap", "softEdges"], "operator": "Set", "value": false, "group": 3 @@ -195,11 +147,7 @@ { "type": "action", "id": "eb9e214c-61e4-474b-be1a-351816ba6b58", - "path": [ - ":app", - "minimap", - "opacity" - ], + "path": [":app", "minimap", "opacity"], "operator": "Max", "value": 1, "group": 4 @@ -207,17 +155,9 @@ { "type": "action", "id": "11adfb82-134c-4f21-90cb-e04bbcd2a334", - "path": [ - ":app", - "minimap", - "rotation" - ], + "path": [":app", "minimap", "rotation"], "operator": "Set", - "value": [ - -0.33999999999999975, - 0, - 0 - ], + "value": [-0.33999999999999975, 0, 0], "group": 5 } ], @@ -226,70 +166,18 @@ "conditions": [], "description": "Toggles the minimap to a larger size." }, - { - "id": "38b94168-507b-469f-ad6d-ef01ef62b5e6", - "name": "Minimap: Toggle Full Size", - "trigger": { - "type": "Hotkey", - "value": { - "ctrlKey": false, - "altKey": false, - "shiftKey": false, - "codes": [ - "KeyM" - ], - "onKeyUp": false - } - }, - "actions": [ - { - "type": "action", - "id": "b01d003f-736f-4560-b1f3-50c61f5dcd29", - "path": [ - ":macro", - "3f5fb9d4-2a67-4f7e-b70c-fad69f752067", - "program" - ], - "operator": "Execute", - "value": true, - "group": 1 - }, - { - "type": "action", - "id": "a9299cb0-d6f1-4466-92b3-c63faa1e800c", - "path": [ - ":macro", - "3f5fb9d4-2a67-4f7e-b70c-fad69f752067", - "program" - ], - "operator": "SetToDefault", - "value": true, - "group": 2 - } - ], - "enabled": true, - "actionSequence": "SingleAlternate", - "conditions": [], - "description": "Toggles the minimap to a larger size by triggering or resetting the Full Size macro." - }, { "id": "70a5b555-30fe-4e94-bb49-741ca72bf75b", "name": "Minimap: Hover Enter", "trigger": { "type": "WorldEvent", - "value": { - "eventName": "minimap-enter" - } + "value": { "eventName": "minimap-enter" } }, "actions": [ { "type": "action", "id": "5c3c3369-04ac-4e30-9954-04352bffbe93", - "path": [ - ":app", - "minimap", - "opacity" - ], + "path": [":app", "minimap", "opacity"], "operator": "Increase", "group": 1 } @@ -304,19 +192,13 @@ "name": "Minimap: Hover Leave", "trigger": { "type": "WorldEvent", - "value": { - "eventName": "minimap-leave" - } + "value": { "eventName": "minimap-leave" } }, "actions": [ { "type": "action", "id": "89122d4a-8a28-4305-a0f9-db9f03d2ff98", - "path": [ - ":app", - "minimap", - "opacity" - ], + "path": [":app", "minimap", "opacity"], "operator": "SetToDefault", "group": 1 } @@ -326,64 +208,6 @@ "conditions": [], "description": "When the mouse leaves the minimap, set the opacity to the default value." }, - { - "id": "702e5376-973d-4927-a4ec-6b23d4e1ebee", - "name": "✈️Switch View Controller", - "trigger": { - "type": "Hotkey", - "value": { - "ctrlKey": false, - "altKey": false, - "shiftKey": false, - "codes": [ - "Backquote" - ], - "onKeyUp": false - } - }, - "actions": [ - { - "type": "action", - "id": "76407af6-0f09-4690-9479-58ecc9300918", - "path": [ - ":app", - "input", - "sceneController" - ], - "operator": "Set", - "value": "@titan-reactor-plugins/camera-battle", - "group": 1 - }, - { - "type": "action", - "id": "a3e17199-4394-4063-8a4b-4a1f727383c5", - "path": [ - ":app", - "input", - "sceneController" - ], - "operator": "Set", - "value": "@titan-reactor-plugins/camera-overview", - "group": 2 - }, - { - "type": "action", - "id": "4b98f985-1989-4fdf-a7b5-11ce76929c2a", - "path": [ - ":app", - "input", - "sceneController" - ], - "operator": "Set", - "value": "@titan-reactor-plugins/camera-standard", - "group": 3 - } - ], - "enabled": true, - "actionSequence": "SingleAlternate", - "conditions": [], - "description": "Switches between the different view controllers. A view controller determines how the view is rendered, and how you interact with that view, including camera controls." - }, { "id": "d61cdeed-ee93-4f68-bf5f-0785f637db16", "name": "🎵 Toggle Music", @@ -393,9 +217,7 @@ "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "KeyM" - ], + "codes": ["KeyM"], "onKeyUp": false } }, @@ -403,22 +225,14 @@ { "type": "action", "id": "f860a7ef-6769-404a-b9a9-fd79b4c7dfe9", - "path": [ - ":app", - "audio", - "music" - ], + "path": [":app", "audio", "music"], "operator": "Min", "group": 1 }, { "type": "action", "id": "19ecb8d8-4650-48c7-8607-e5fcb965f3e7", - "path": [ - ":app", - "audio", - "music" - ], + "path": [":app", "audio", "music"], "operator": "SetToDefault", "group": 2 } @@ -437,9 +251,7 @@ "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "KeyU" - ], + "codes": ["KeyU"], "onKeyUp": false } }, @@ -447,9 +259,7 @@ { "type": "action", "id": "0209b1e3-293d-4bb2-abff-aa84760e5c0d", - "path": [ - ":function" - ], + "path": [":function"], "operator": "Execute", "value": "const speed = api.openBW.speedUp(); \napi.simpleMessage(`🔼 ${speed}x`);", "group": 1 @@ -461,11 +271,7 @@ { "type": "condition", "id": "311e9fdb-decb-42d2-81b4-ee687fa24485", - "path": [ - ":app", - "session", - "type" - ], + "path": [":app", "session", "type"], "comparator": "Equals", "value": "replay" } @@ -481,9 +287,7 @@ "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "KeyD" - ], + "codes": ["KeyD"], "onKeyUp": false } }, @@ -491,9 +295,7 @@ { "type": "action", "id": "1c38fad7-7a5d-4d8f-9b3f-53f6b48aae23", - "path": [ - ":function" - ], + "path": [":function"], "operator": "Execute", "value": "const speed = api.openBW.speedDown(); \napi.simpleMessage(`🔽 ${speed}x`);", "group": 1 @@ -505,11 +307,7 @@ { "type": "condition", "id": "2a25db28-47d0-44ff-9ad7-d13ad10827ad", - "path": [ - ":app", - "session", - "type" - ], + "path": [":app", "session", "type"], "comparator": "Equals", "value": "replay" } @@ -525,9 +323,7 @@ "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "BracketLeft" - ], + "codes": ["BracketLeft"], "onKeyUp": false } }, @@ -535,9 +331,7 @@ { "type": "action", "id": "83132fdf-8731-4b18-805b-886765b5e5cc", - "path": [ - ":function" - ], + "path": [":function"], "operator": "Execute", "value": "api.openBW.skipBackward(10); \napi.simpleMessage('⏪')", "group": 1 @@ -549,11 +343,7 @@ { "type": "condition", "id": "737d0317-5d2e-409d-a183-eb5a3ebe4ed8", - "path": [ - ":app", - "session", - "type" - ], + "path": [":app", "session", "type"], "comparator": "Equals", "value": "replay" } @@ -569,9 +359,7 @@ "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "BracketRight" - ], + "codes": ["BracketRight"], "onKeyUp": false } }, @@ -579,9 +367,7 @@ { "type": "action", "id": "2a1d13d8-5b36-47e0-9fb0-5cc7381087de", - "path": [ - ":function" - ], + "path": [":function"], "operator": "Execute", "value": "api.openBW.skipForward(10); \napi.simpleMessage('⏩');", "group": 1 @@ -593,11 +379,7 @@ { "type": "condition", "id": "d56078b0-a1e6-4368-a9f4-868cadebb933", - "path": [ - ":app", - "session", - "type" - ], + "path": [":app", "session", "type"], "comparator": "Equals", "value": "replay" } @@ -613,9 +395,7 @@ "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "Tab" - ], + "codes": ["Tab"], "onKeyUp": false } }, @@ -623,11 +403,7 @@ { "type": "action", "id": "b2e66ead-a917-4295-b37b-21c224e84e45", - "path": [ - ":plugin", - "@titan-reactor-plugins/player-colors", - "enabled" - ], + "path": [":plugin", "@titan-reactor-plugins/player-colors", "enabled"], "operator": "Toggle", "group": 1 } @@ -642,19 +418,13 @@ "name": "Map Viewer: No Fog", "trigger": { "type": "WorldEvent", - "value": { - "eventName": "world-start" - } + "value": { "eventName": "world-start" } }, "actions": [ { "type": "action", "id": "738c6bac-e2db-4a9b-9e33-84f8d5165609", - "path": [ - ":app", - "postprocessing", - "fogOfWar" - ], + "path": [":app", "postprocessing", "fogOfWar"], "operator": "Min", "group": 1 } @@ -665,11 +435,7 @@ { "type": "condition", "id": "ff1f5a91-0e78-4075-8bf4-dde2bd7a3dc8", - "path": [ - ":app", - "session", - "type" - ], + "path": [":app", "session", "type"], "comparator": "Equals", "value": "map" } @@ -681,17 +447,13 @@ "name": "Follow Units: Right Click to Follow", "trigger": { "type": "WorldEvent", - "value": { - "eventName": "mouse-click" - } + "value": { "eventName": "mouse-click" } }, "actions": [ { "type": "action", "id": "2f495d89-3a52-4176-a499-910d7b2c7e45", - "path": [ - ":function" - ], + "path": [":function"], "operator": "Execute", "value": "const unit = api.getHoveredUnit();\n\nif ( unit ) {\n api.followedUnits.set([unit]);\n // cancel any other mouse click handlers\n return false;\n} else {\n api.followedUnits.clear();\n}", "group": 1 @@ -703,9 +465,7 @@ { "type": "condition", "id": "be922abe-f1c5-472a-a7ec-1de050c2e2e2", - "path": [ - ":function" - ], + "path": [":function"], "comparator": "Execute", "value": "return context.button === 2;" } @@ -721,9 +481,7 @@ "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "KeyF" - ], + "codes": ["KeyF"], "onKeyUp": false } }, @@ -731,9 +489,7 @@ { "type": "action", "id": "d98ffeec-67a5-4972-8f5a-66b9ffabf334", - "path": [ - ":function" - ], + "path": [":function"], "operator": "Execute", "value": "if ( api.followedUnits.size ) {\n api.followedUnits.clear();\n} else if ( api.selectedUnits.size ) {\n console.log(\"settting units\", api.selectedUnits.copyAsArray());\n api.followedUnits.set(api.selectedUnits.copyAsArray());\n}", "group": null @@ -749,17 +505,13 @@ "name": "Follow Units: Clicking Minimap Unfollows", "trigger": { "type": "WorldEvent", - "value": { - "eventName": "mouse-click" - } + "value": { "eventName": "mouse-click" } }, "actions": [ { "type": "action", "id": "32318e7d-4dcc-4984-8ffb-501e0ab51d1f", - "path": [ - ":function" - ], + "path": [":function"], "operator": "Execute", "value": "api.followedUnits.clear();", "group": null @@ -771,9 +523,7 @@ { "type": "condition", "id": "2b63c54e-5b6f-4545-9ef6-14649cd0206f", - "path": [ - ":function" - ], + "path": [":function"], "comparator": "Execute", "value": "return api.isMouseInsideMinimap() && api.followedUnits.size;" } @@ -789,9 +539,7 @@ "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "Digit1" - ], + "codes": ["Digit1"], "onKeyUp": false } }, @@ -799,11 +547,7 @@ { "type": "action", "id": "e7787281-fb08-46a0-8622-e6422f7848fa", - "path": [ - ":app", - "input", - "sceneController" - ], + "path": [":app", "input", "sceneController"], "operator": "Set", "value": "@titan-reactor-plugins/camera-standard", "group": null @@ -811,20 +555,19 @@ ], "enabled": true, "actionSequence": "AllSync", - "conditions": [] + "conditions": [], + "description": "Switch to Default camera controller" }, { "id": "dcdcb3e7-a365-4793-8ffd-a19c8e189748", - "name": "Views: Battle ( Helicopter )", + "name": "Views: 360", "trigger": { "type": "Hotkey", "value": { "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "Digit2" - ], + "codes": ["Digit2"], "onKeyUp": false } }, @@ -832,11 +575,7 @@ { "type": "action", "id": "5083d959-3be3-438d-b5d8-338f2523ea91", - "path": [ - ":app", - "input", - "sceneController" - ], + "path": [":app", "input", "sceneController"], "operator": "Set", "value": "@titan-reactor-plugins/camera-battle", "group": null @@ -844,7 +583,8 @@ ], "enabled": true, "actionSequence": "AllSync", - "conditions": [] + "conditions": [], + "description": "Switch to 360 camera controller" }, { "id": "cf6ad5b4-cf84-4f61-9822-b2b90cb9315e", @@ -855,9 +595,7 @@ "ctrlKey": false, "altKey": false, "shiftKey": false, - "codes": [ - "Digit3" - ], + "codes": ["Digit3"], "onKeyUp": false } }, @@ -865,11 +603,7 @@ { "type": "action", "id": "ea21f942-a631-477c-8a77-1bdb66428d94", - "path": [ - ":app", - "input", - "sceneController" - ], + "path": [":app", "input", "sceneController"], "operator": "Set", "value": "@titan-reactor-plugins/camera-overview", "group": null @@ -877,29 +611,35 @@ ], "enabled": true, "actionSequence": "AllSync", - "conditions": [] + "conditions": [], + "description": "Switch to Overview camera controller" }, { - "id": "348ae444-5406-4b3a-ba16-5a23f8080265", - "name": "Test", + "id": "40659b03-2300-44ad-8891-416af907113b", + "name": "Views: Auto Observer", "trigger": { - "type": "None", - "value": null + "type": "Hotkey", + "value": { + "ctrlKey": false, + "altKey": false, + "shiftKey": false, + "codes": ["Digit4"], + "onKeyUp": false + } }, "actions": [ { "type": "action", - "id": "8383afe7-c72d-419e-9c17-f5f71f2f4cf9", - "path": [ - ":function" - ], - "operator": "Execute", - "value": "api.sandboxApi.createUnit(7, 1, 0, 0)\n console.log(api.sandboxApi);\n", + "id": "c6577f70-460c-4e15-83cb-b7a7e24b0c43", + "path": [":app", "input", "sceneController"], + "operator": "Set", + "value": "@titan-reactor-plugins/auto-observer", "group": null } ], "enabled": true, "actionSequence": "AllSync", - "conditions": [] + "conditions": [], + "description": "Switch to AutoObserver camera controller" } -] \ No newline at end of file +] diff --git a/src/common/types/declarations/global.d.ts b/src/common/types/declarations/global.d.ts index 73c541ed..e4618e0a 100644 --- a/src/common/types/declarations/global.d.ts +++ b/src/common/types/declarations/global.d.ts @@ -32,3 +32,9 @@ declare module "*.png" { const contents: string; export = contents; } + +declare global { + var THREE: typeof import("three"); + var postprocessing: typeof import("postprocessing"); + // ... other globals +} \ No newline at end of file diff --git a/src/common/types/plugin.ts b/src/common/types/plugin.ts index dacf6bbc..438a7131 100644 --- a/src/common/types/plugin.ts +++ b/src/common/types/plugin.ts @@ -1,6 +1,3 @@ -import { SessionVariables } from "@core/world/settings-session-store"; -import { WorldEvents } from "@core/world/world-events"; -import { TypeEmitterProxy } from "@utils/type-emitter"; import { FieldDefinition } from "./fields"; export type PluginConfig = Record; @@ -45,20 +42,6 @@ export interface PluginMetaData extends PluginPackage { } } -/** - * These are the injectable services that are available to plugins during a world session. - */ -export interface Injectables { - /** - * Reactive setting values that apply to the active session only. - */ - settings: SessionVariables; - - /** - * World events that can be listened to and emitted. - */ - events: TypeEmitterProxy; -} /** * A plugin that executes in the main process. @@ -102,10 +85,7 @@ export interface NativePlugin { * Called when a plugin has it's configuration changed by the user */ onConfigChanged?( oldConfig: Record ): void; - /** - * CaLLed when a plugin must release its resources - */ - dispose?(): void; + /** * Called when an React component sends a message to this window */ @@ -122,6 +102,10 @@ export interface NativePlugin { * Called on a game frame */ onFrame?( frame: number, commands?: any[] ): void; + /** + * Called before render, every render tick + */ + onTick?( delta: number, elapsed: number ): void; /** * When a game has been loaded and the game loop is about to begin */ @@ -135,13 +119,4 @@ export interface NativePlugin { */ onFrameReset?(): void; - /** - * When a scene is entered and nearly initialized. - */ - onEnterScene?( prevData: any ): Promise; - - /** - * When a scene has exited. Dispose resources here. - */ - onExitScene?( currentData: any ): any; } diff --git a/src/common/types/structs/flingy-struct.ts b/src/common/types/structs/flingy-struct.ts index f0303a78..899de968 100644 --- a/src/common/types/structs/flingy-struct.ts +++ b/src/common/types/structs/flingy-struct.ts @@ -12,4 +12,5 @@ export interface FlingyStruct extends ThingyStruct { nextTargetWaypointX: number; nextTargetWaypointY: number; movementFlags: number; + currentVelocityDirection: number; } diff --git a/src/common/utils/with-error-message.ts b/src/common/utils/with-error-message.ts index 76332304..20f02043 100644 --- a/src/common/utils/with-error-message.ts +++ b/src/common/utils/with-error-message.ts @@ -1,6 +1,6 @@ export const withErrorMessage = ( error: unknown, msg: string ) => { if ( error instanceof Error ) { - return `${msg} - ${error.message}`; + return `${msg} - ${error.message} ${import.meta.env.DEV && error.stack}`; } else { return msg; } diff --git a/src/configuration-ui/plugins-configuration.tsx b/src/configuration-ui/plugins-configuration.tsx index f5a5c913..655e8b39 100644 --- a/src/configuration-ui/plugins-configuration.tsx +++ b/src/configuration-ui/plugins-configuration.tsx @@ -36,10 +36,10 @@ export const PluginsConfiguration = ({ setBanner: React.Dispatch>; }) => { const [ tabIndex, setTabIndex ] = useState( 0 ); - const plugins = useStore( window.deps.usePluginsStore ); + const { plugins } = useStore( window.deps.usePluginsStore ); const [ plugin, setSelectedPluginPackage ] = useState( - plugins.plugins[0] + plugins[0] ); const oldConfig = useRef( plugin?.config ); @@ -86,8 +86,15 @@ export const PluginsConfiguration = ({ display: "flex", flexDirection: "column", }}> - {plugins.plugins - .sort() + {plugins + .sort((a, b) => { + if (a.isSceneController && !b.isSceneController) { + return -1; + } else if (!a.isSceneController && b.isSceneController) { + return 1; + } + return (a.description ?? a.name).localeCompare(b.description ?? b.name); + }) .map( ( plugin ) => localPluginButton( plugin, !plugin.config?._enabled?.value ) )} @@ -104,7 +111,7 @@ export const PluginsConfiguration = ({ {plugin?.description ?? plugin?.name} - {plugin?.version}

    - {plugin && plugins.plugins.includes( plugin ) && ( + {plugin && plugins.includes( plugin ) && ( <> {!isDeprecated( plugin ) && ( ; } -const spriteRemnants = [ - 134, 139, 141, 143, 147, 150, 158, 160, 192, 230, 236, 484, 490, -]; - -const remnantImages = [ 7, 16, 20, 24, 32, 37, 53, 57, 89, 124, 230, 241, 920, 946 ]; -// guardian birth 27?, devourer 917 -const birthImages = [ 2, 15, 19, 27, 31, 40, 44, 49, 52, 56, 917, 919 ]; -const placeFlatOnGround = [ ...remnantImages, ...birthImages ] - .map( ( id ) => ( { [id]: [ { type: "flat-on-ground" } ] } ) ) - .reduce( ( a, b ) => ( { ...a, ...b } ), {} ) as Record< - number, - ModelSetModifierFlatOnGround[] ->; - -const spritesFlat = spriteRemnants - .map( ( id ) => ( { [id]: [ { type: "flat-on-ground" } ] } ) ) - .reduce( ( a, b ) => ( { ...a, ...b } ), {} ) as Record< - number, - ModelSetModifierFlatOnGround[] ->; - export const modelSetModifiers: ModelSetModifiers = { sprites: { - ...spritesFlat, }, images: { // egg @@ -271,7 +249,6 @@ export const modelSetModifiers: ModelSetModifiers = { type: "hide-sprite", }, ], - ...placeFlatOnGround, }, }; diff --git a/src/core/model-effects.ts b/src/core/model-effects.ts index 2b1aff81..e082408a 100644 --- a/src/core/model-effects.ts +++ b/src/core/model-effects.ts @@ -28,8 +28,9 @@ export const applyRenderModeToSprite = ( switch ( effect.type ) { // set emissive on main image if I'm visible case "flat-on-ground": - sprite.rotation.x = -Math.PI / 2; - sprite.position.y = terrainY + 0.1; + // deprecated once we moved to shader based billboarding + // sprite.rotation.x = Math.PI / 2; + // sprite.position.y = terrainY + 0.1; break; } } diff --git a/src/core/terrain.ts b/src/core/terrain.ts index 6def72cf..db429171 100644 --- a/src/core/terrain.ts +++ b/src/core/terrain.ts @@ -89,7 +89,6 @@ export class Terrain extends Group { } setTerrainQuality( highDefinition: boolean, anisotropy: number ) { - this.shadowsEnabled = highDefinition; this.#setAnisotropy( anisotropy ); diff --git a/src/core/titan-reactor.ts b/src/core/titan-reactor.ts index d0d3a397..04cbdfe8 100644 --- a/src/core/titan-reactor.ts +++ b/src/core/titan-reactor.ts @@ -185,7 +185,9 @@ logCapabilities(); // } // metaVerse().setSession(session); - await initCacheDB(); + try { + await initCacheDB(); + } catch (e) {} await sceneStore().loadScene(new LoadingScene()); diff --git a/src/core/unit-entities.ts b/src/core/unit-entities.ts index 63a87aa5..3ac4db24 100644 --- a/src/core/unit-entities.ts +++ b/src/core/unit-entities.ts @@ -3,7 +3,6 @@ import { Unit } from "@core/unit"; import gameStore from "@stores/game-store"; import { IterableMap } from "@utils/data-structures/iteratible-map"; -//TODO: Deprecate // The primary purpose of this class is to provide a storage for damage effects, and serialization to plugins ui // We can store damage effects in a map, and we can serialize the map to plugins ui via an ArrayBuffer of unitData export class UnitEntities { diff --git a/src/core/world/api-session.ts b/src/core/world/api-session.ts index eefea8ce..9037e039 100644 --- a/src/core/world/api-session.ts +++ b/src/core/world/api-session.ts @@ -30,12 +30,19 @@ export class ApiSession { this.#janitor = new Janitor(); this.#events = new WeakRef( events ); - this.#plugins = this.#janitor.mop( await createPluginSession( openBW, events ) ); - - this.#macros = this.#janitor.mop( createMacrosComposer( settings ) ); const eventsProxy = this.#janitor.mop( new TypeEmitterProxy( events ) ); const customEvents = this.#janitor.mop( new TypeEmitter() ); + this.#plugins = this.#janitor.mop( await createPluginSession( openBW, events, { + settings: settings.vars, + events, + customEvents, + game: gameTimeApi + } ) ); + + this.#macros = this.#janitor.mop( createMacrosComposer( settings ) ); + + this.#macros.macros.targets.setHandler( ":plugin", { action: ( action ) => this.#plugins.store.operate( action, ( path ) => path.slice( 1 ) ), @@ -66,20 +73,6 @@ export class ApiSession { } ) ); - this.#janitor.mop( - this.native.injectApi( - mix( - { - settings: settings.vars, - events: eventsProxy, - customEvents, - }, - gameTimeApi - ) - ), - "native.injectApi" - ); - this.native.useTryCatchOnHooks = useSettingsStore.getState().data.utilities.debugMode; this.#janitor.mop( diff --git a/src/core/world/commands-composer.ts b/src/core/world/commands-composer.ts index 40eba7ab..023b9eb6 100644 --- a/src/core/world/commands-composer.ts +++ b/src/core/world/commands-composer.ts @@ -1,5 +1,6 @@ import { CommandsStream } from "process-replay"; -import { World } from "./world"; +import { TypeEmitter } from "@utils/type-emitter"; +import { WorldEvents } from "./world-events"; /** * Mostly responsible for collecting recent commands into a bundle for consumption by plugins, limits to previous 5 seconds of game time. @@ -9,7 +10,7 @@ import { World } from "./world"; * @returns */ export const createCommandsComposer = ( - world: World, + events: TypeEmitter, commandsStream: CommandsStream ) => { let cmds = commandsStream.generate(); @@ -21,7 +22,7 @@ export const createCommandsComposer = ( cmd = cmds.next(); } - world.events.on( "frame-reset", reset ); + events.on( "frame-reset", reset ); return { get commandsThisFrame() { diff --git a/src/core/world/create-plugin-session.ts b/src/core/world/create-plugin-session.ts index 146128a4..30cbb525 100644 --- a/src/core/world/create-plugin-session.ts +++ b/src/core/world/create-plugin-session.ts @@ -9,18 +9,20 @@ import { PluginSystemUI } from "@plugins/plugin-system-ui"; import { PluginSystemNative } from "@plugins/plugin-system-native"; import { Janitor } from "three-janitor"; import { createPluginSessionStore } from "@core/world/plugin-session-store"; -import { createCompartment } from "@utils/ses-util"; +import { createCompartment } from "@utils/create-compartment"; import { globalEvents } from "@core/global-events"; import { WorldEvents } from "./world-events"; import { TypeEmitter, TypeEmitterProxy } from "@utils/type-emitter"; import { normalizePluginConfiguration } from "@utils/function-utils"; import { pluginsStore } from "@stores/plugins-store"; +import { PluginSessionContext } from "@plugins/plugin-base"; export type PluginSession = Awaited>; export const createPluginSession = async ( openBW: OpenBW, - _events: TypeEmitter + _events: TypeEmitter, + sessionContext: PluginSessionContext ) => { const janitor = new Janitor( "PluginSession" ); @@ -28,7 +30,7 @@ export const createPluginSession = async ( const pluginPackages = pluginsStore().sessionPlugins; const uiPlugins = janitor.mop( - new PluginSystemUI( openBW, pluginPackages ), + new PluginSystemUI( openBW, pluginPackages.filter( ( p ) => p.urls.ui && !p.isSceneController ) ), "uiPlugins" ); @@ -41,7 +43,7 @@ export const createPluginSession = async ( } ); const nativePlugins = janitor.mop( - new PluginSystemNative(), + new PluginSystemNative(sessionContext), "nativePlugins" ); diff --git a/src/core/world/game-loop-composer.ts b/src/core/world/game-loop-composer.ts index d451e09b..01478e53 100644 --- a/src/core/world/game-loop-composer.ts +++ b/src/core/world/game-loop-composer.ts @@ -1,15 +1,17 @@ import { log } from "@ipc/log"; import { renderComposer } from "@render/render-composer"; -import { World } from "./world"; +import { WorldEvents } from "./world-events"; +import { TypeEmitter } from "@utils/type-emitter"; export type GameLoopComposer = ReturnType; export type GameLoopComposerApi = GameLoopComposer["api"]; -export const createGameLoopComposer = ( world: World ) => { +export const createGameLoopComposer = ( events: TypeEmitter ) => { let delta = 0; let lastElapsed = 0; let _onUpdate: ( delta: number, elapsed: number ) => void = () => {}; + // the < 0 stuff is due to a bug when WebXR is entering/exiting const GAME_LOOP = ( elapsed: number ) => { if (elapsed < 0) { console.error( "Negative elapsed time detected. Skipping frame." ); @@ -18,10 +20,10 @@ export const createGameLoopComposer = ( world: World ) => { delta = elapsed - lastElapsed; lastElapsed = elapsed; - _onUpdate( delta, elapsed ); + _onUpdate( delta < 0 ? 0 : delta, elapsed ); }; - world.events.on( "dispose", () => { + events.on( "dispose", () => { log.debug( "dispose game loop" ); renderComposer.setAnimationLoop( null ); } ); diff --git a/src/core/world/input-composer.ts b/src/core/world/input-composer.ts index d0e576d1..bd00e408 100644 --- a/src/core/world/input-composer.ts +++ b/src/core/world/input-composer.ts @@ -43,7 +43,7 @@ export const createInputComposer = ( ); const unitSelectionBox = createUnitSelectionBox( - world, + world.events, mouseInput, scene, imageQuadrants, diff --git a/src/core/world/macros-composer.ts b/src/core/world/macros-composer.ts index 96461285..4ac1120c 100644 --- a/src/core/world/macros-composer.ts +++ b/src/core/world/macros-composer.ts @@ -2,7 +2,7 @@ import { Macros } from "@macros"; import { useMacroStore } from "@stores/settings-store"; import { SettingsSessionStore } from "./settings-session-store"; import { Janitor } from "three-janitor"; -import { createCompartment } from "@utils/ses-util"; +import { createCompartment } from "@utils/create-compartment"; import { globalEvents } from "../global-events"; import { TargetComposer } from "./target-composer"; import { log } from "@ipc/log"; diff --git a/src/core/world/plugin-session-store.test.ts b/src/core/world/plugin-session-store.test.ts index 6cbd1244..8d277523 100644 --- a/src/core/world/plugin-session-store.test.ts +++ b/src/core/world/plugin-session-store.test.ts @@ -6,6 +6,7 @@ import { log } from "@ipc/log"; import { PluginSystemNative } from "@plugins/plugin-system-native"; import { PluginMetaData } from "common/types"; import { PluginSystemUI } from "@plugins/plugin-system-ui"; +import { PluginSessionContext } from "@plugins/plugin-base"; jest.mock( "@ipc/log" ); jest.mock( "@core/global-events" ); @@ -44,6 +45,7 @@ const createBasePlugin = ( _package?: Partial ) => { }; const plugins = new PluginSystemNative( + {} as PluginSessionContext // [pluginPackage as unknown as PluginMetaData], // () => {}, // () => {} diff --git a/src/core/world/plugin-session-store.ts b/src/core/world/plugin-session-store.ts index 80fd1131..df96394a 100644 --- a/src/core/world/plugin-session-store.ts +++ b/src/core/world/plugin-session-store.ts @@ -88,10 +88,8 @@ export const createPluginSessionStore = ( const vars = plugins.reduce( ( acc, plugin ) => { Object.keys( plugin.rawConfig ?? {} ).forEach( ( key ) => { - if ( key !== "system" ) { - const compKey = [ plugin.name, key ]; - lSet( acc, compKey, store.createVariable( compKey ) ); - } + const compKey = [ plugin.name, key ]; + lSet( acc, compKey, store.createVariable( compKey ) ); } ); return acc; diff --git a/src/core/world/postprocessing-composer.ts b/src/core/world/postprocessing-composer.ts index 0496d75a..713ba546 100644 --- a/src/core/world/postprocessing-composer.ts +++ b/src/core/world/postprocessing-composer.ts @@ -14,7 +14,6 @@ import { ViewControllerComposer } from "@core/world/view-controller-composer"; import { World } from "./world"; import { isImageHd, isMesh } from "@utils/image-utils"; import { createTransition } from "./transition"; -import { VRButton } from "@render/vr/vr-button"; //tank base, minerals const ignoreRecieveShadow = [250, 253, 347, 349, 351]; @@ -122,6 +121,7 @@ export const createPostProcessingComposer = ( : world.settings.getState().postprocessing; terrain.setTerrainQuality(renderMode3D, postprocessing.anisotropy); + terrain.shadowsEnabled = renderMode3D; scene.setBorderTileColor(renderMode3D ? 0xffffff : 0x999999); scene.sunlight.enabled = renderMode3D; images.use3dImages = renderMode3D; @@ -144,12 +144,6 @@ export const createPostProcessingComposer = ( world.events.on("dispose", () => janitor.dispose()); - if (import.meta.env.DEV) { - document.body.appendChild( - janitor.mop(VRButton.createButton(renderComposer.glRenderer)) - ); - } - return { precompile(camera: PerspectiveCamera | OrthographicCamera) { _changeRenderMode(false); diff --git a/src/core/world/scene-composer.ts b/src/core/world/scene-composer.ts index f70b6020..f7b279e0 100644 --- a/src/core/world/scene-composer.ts +++ b/src/core/world/scene-composer.ts @@ -1,4 +1,3 @@ -// @ts-nocheck import type { SpritesBufferView } from "@openbw/structs/sprites-buffer-view"; import type { UnitsBufferView, @@ -38,10 +37,10 @@ import { getJanitorLogLevel } from "@ipc/global"; import { getMapTiles } from "@utils/chk-utils"; import { ImageBase } from ".."; import { ImageHDMaterial } from "@core/image-hd-material"; -import { calculateImagesFromTechTreeUnits } from "@utils/preload-map-units-and-sprites"; -import { TimeSliceJob } from "@utils/time-slice-job"; +import { calculateImagesFromTechTreeUnit } from "@utils/preload-map-units-and-sprites"; import { IterableMap } from "@utils/data-structures/iteratible-map"; import { SimpleQuadtree } from "@utils/data-structures/simple-quadtree"; +import { settingsStore } from "@stores/settings-store"; export type SceneComposer = Awaited>; export type SceneComposerApi = SceneComposer["api"]; @@ -149,6 +148,7 @@ export const createSceneComposer = async ( world: World, assets: Assets ) => { } const _unitPos = new Vector3(); + const _preloadedUnit = new Set(); const buildUnit = ( unitStruct: UnitsBufferView ) => { const unit = units.getOrCreate( unitStruct ); @@ -184,8 +184,17 @@ export const createSceneComposer = async ( world: World, assets: Assets ) => { if ( isCompleted ) { world.events.emit( "unit-completed", unit ); + + if ( settingsStore().data.graphics.preloadMapSprites ) { + // get next units in tech tree and start loading their images + const preloads = calculateImagesFromTechTreeUnit(unit.typeId, _preloadedUnit); + for (const img of preloads) { + assets.loader.loadImage(img, 2); + } + } } + }; @@ -359,24 +368,8 @@ export const createSceneComposer = async ( world: World, assets: Assets ) => { } janitor.dispose(); Janitor.logLevel = getJanitorLogLevel(); - // preloader.dispose(); } ); - // const preloader = new TimeSliceJob( - // ( imageId, next ) => { - // if ( assets.hasImageAtlas( imageId ) ) { - // return false; - // } - // console.log("preload", imageId) - // assets.loadImageAtlasAsync( imageId, assets.bwDat ).then( next ).catch( next ); - // }, - // calculateImagesFromTechTreeUnits( world.map.units.map( ( unit ) => unit.unitId ) ), - // 2000 - // ); - - const _alreadyCalculated = new Set(); - - const pxToWorldInverse = makePxToWorld( ...world.map.size, terrain.getTerrainY, true ); return { @@ -399,15 +392,6 @@ export const createSceneComposer = async ( world: World, assets: Assets ) => { elapsed: number, renderMode3D: boolean, ) { - // preloader.update( elapsed ); - - // if ( preloader.isComplete() && elapsed - preloader.timeCompleted > 10000 ) { - // const work = calculateImagesFromTechTreeUnits( - // units.units._dangerousArray.map( ( unit ) => unit.typeId ), - // _alreadyCalculated - // ); - // preloader.addWork( work ); - // } world.fogOfWar.onFrame( world.players.getVisionFlag() ); diff --git a/src/core/world/settings-session-store.ts b/src/core/world/settings-session-store.ts index aa5c1da1..adab50af 100644 --- a/src/core/world/settings-session-store.ts +++ b/src/core/world/settings-session-store.ts @@ -62,9 +62,8 @@ export const createSettingsSessionStore = ( events: TypeEmitter ) = const store = createOperatableStore( createDeepStore( { initialState: sourceOfTruth.clone(), - validateMerge: ( newSettings, rhs ) => - events.emit( "settings-changed", { settings: newSettings, rhs } ) !== - false, + onUpdate: ( newSettings, rhs ) => + events.emit( "settings-changed", { settings: newSettings, rhs } ), } ), sourceOfTruth, ( path, state ) => diff --git a/src/core/world/surface-composer.ts b/src/core/world/surface-composer.ts index eeaa20bb..10eb7bdd 100644 --- a/src/core/world/surface-composer.ts +++ b/src/core/world/surface-composer.ts @@ -3,7 +3,9 @@ import { renderComposer } from "@render/render-composer"; import { settingsStore, useSettingsStore } from "@stores/settings-store"; import { Janitor } from "three-janitor"; import debounce from "lodash.debounce"; -import { World } from "./world"; +import Chk from "bw-chk"; +import { WorldEvents } from "./world-events"; +import { TypeEmitter } from "@utils/type-emitter"; export type SurfaceComposer = ReturnType; export type SurfaceComposerApi = SurfaceComposer["api"]; @@ -13,11 +15,11 @@ export type SurfaceComposerApi = SurfaceComposer["api"]; * @param world * @returns */ -export const createSurfaceComposer = ( world: World ) => { +export const createSurfaceComposer = ( map: Chk, events: TypeEmitter ) => { const janitor = new Janitor( "SurfaceComposer" ); const gameSurface = janitor.mop( new GameSurface( - ...world.map.size, + ...map.size, renderComposer.srcCanvas ), "GameSurface" @@ -39,7 +41,7 @@ export const createSurfaceComposer = ( world: World ) => { settingsStore().data.graphics.pixelRatio ); - world.events.emit( "resize", gameSurface ); + events.emit( "resize", gameSurface ); }; const sceneResizeHandler = debounce( () => { @@ -73,7 +75,7 @@ export const createSurfaceComposer = ( world: World ) => { "useSettingsStore.subscribe" ); - world.events.on( "dispose", () => { + events.on( "dispose", () => { janitor.dispose(); } ); diff --git a/src/core/world/view-controller-composer.ts b/src/core/world/view-controller-composer.ts index d6f83d0b..36424644 100644 --- a/src/core/world/view-controller-composer.ts +++ b/src/core/world/view-controller-composer.ts @@ -5,11 +5,12 @@ import { DamageType, Explosion } from "common/enums"; import { PerspectiveCamera, Vector3 } from "three"; import { GameViewPort } from "../../camera/game-viewport"; import { World } from "./world"; -import { SceneController } from "@plugins/scene-controller"; +import type { SceneController } from "@plugins/scene-controller"; import { easeInCubic } from "@utils/function-utils"; import range from "common/utils/range"; import { mixer } from "@audio/main-mixer"; -import { WebXRGameViewPort } from "../../camera/xr-viewport"; +import { renderComposer } from "@render/index"; +import { VRSceneController } from "@plugins/vr-controller"; // frequency, duration, strength multiplier const explosionFrequencyDuration = { @@ -50,7 +51,7 @@ export const createViewControllerComposer = ( const initViewport = new GameViewPort( gameSurface, true ); initViewport.fullScreen(); initViewport.orbit.setTarget(initialStartLocation.x, initialStartLocation.y, initialStartLocation.z); - const viewports: (GameViewPort | WebXRGameViewPort)[] = [initViewport] + const viewports: GameViewPort[] = [initViewport] const createViewports = (n = 4) => range( 0, n ).map( i => new GameViewPort( gameSurface, i === 0 ) ); @@ -124,7 +125,6 @@ export const createViewControllerComposer = ( */ async activate( newController: SceneController, - isWebXR: boolean ) { if ( activating ) { return; @@ -136,12 +136,23 @@ export const createViewControllerComposer = ( if ( sceneController?.onExitScene ) { try { world.events.emit( "scene-controller-exit", sceneController.name ); - prevData = sceneController.onExitScene( prevData ); + const _prevData = sceneController.onExitScene( prevData ); + if (_prevData) { + prevData = _prevData; + } } catch ( e ) { log.error( e ); } } + if (sceneController) { + sceneController.parent.removeFromParent(); + } + + if ( sceneController?.isWebXR ) { + (sceneController as VRSceneController).viewerPosition.removeFromParent(); + } + sceneController = null; gameSurface.togglePointerLock( false ); @@ -150,12 +161,19 @@ export const createViewControllerComposer = ( } viewports.length = 0; - if ( isWebXR ) { - viewports[0] = new WebXRGameViewPort(gameSurface, true); - } else { - viewports.push(...createViewports(newController.viewportsCount)); + viewports.push(...createViewports(newController.viewportsCount)); + + if (newController.isWebXR) { + const vrController = newController as VRSceneController; + vrController.setupXR( renderComposer.glRenderer.xr ); + newController.scene.add( vrController.viewerPosition ); + vrController.viewerPosition.add( vrController.viewport.camera ); } + newController.scene.add( newController.parent ); + + world.settings.vars.input.unitSelection.set(true); + world.settings.vars.input.cursorVisible.set(true); await newController.onEnterScene( prevData ); sceneController = newController; diff --git a/src/core/world/world-composer.ts b/src/core/world/world-composer.ts index 6c4ea6c7..19088ac4 100644 --- a/src/core/world/world-composer.ts +++ b/src/core/world/world-composer.ts @@ -28,6 +28,7 @@ import { useReplayAndMapStore } from "@stores/replay-and-map-store"; import { mixer } from "@audio/main-mixer"; import { CommandsStream } from "process-replay"; import { log } from "@ipc/log"; +import { pluginsStore } from "@stores/plugins-store"; export type WorldComposer = Awaited>; @@ -66,10 +67,10 @@ export const createWorldComposer = async ( log.info( "creating composers" ); - const gameLoopComposer = createGameLoopComposer( world ); - const surfaceComposer = createSurfaceComposer( world ); + const gameLoopComposer = createGameLoopComposer( events ); + const surfaceComposer = createSurfaceComposer( map, events ); const sceneComposer = await createSceneComposer( world, assets ); - const commandsComposer = createCommandsComposer( world, commands ); + const commandsComposer = createCommandsComposer( events, commands ); const inputsComposer = createInputComposer( world, sceneComposer ); const viewControllerComposer = createViewControllerComposer( world, surfaceComposer, sceneComposer.api.initialStartLocation ); const sandboxApi = createSandboxApi( world, sceneComposer.pxToWorldInverse ); @@ -109,7 +110,11 @@ export const createWorldComposer = async ( if ( sceneController ) { apiSession.native.activateSceneController( sceneController ); - await viewControllerComposer.activate( sceneController, isWebXR ); + if (viewControllerComposer.sceneController) { + apiSession.ui.deactivatePlugin( viewControllerComposer.sceneController.name ); + } + await viewControllerComposer.activate( sceneController); + apiSession.ui.activatePlugins( pluginsStore().plugins.filter( p => p.name === sceneController.name ) ); inputsComposer.unitSelectionBox.camera = viewControllerComposer.primaryCamera!; } @@ -327,6 +332,11 @@ export const createWorldComposer = async ( ); } + apiSession.native.hook_onTick( + delta, + elapsed + ) + postProcessingComposer.render( delta, elapsed ); inputsComposer.reset(); diff --git a/src/image/assets.ts b/src/image/assets.ts index 3434f4b5..d4638a75 100644 --- a/src/image/assets.ts +++ b/src/image/assets.ts @@ -27,7 +27,7 @@ import processStore from "@stores/process-store"; import { CubeTexture, CubeTextureLoader, Texture } from "three"; import { loadEnvironmentMap } from "./environment/env-map"; import { loadDATFiles } from "common/bwdat/load-dat-files"; -import { ImageLoaderManager } from "./loader/image-loader"; +import { ImageLoaderManager } from "./loader/image-loader-manager"; /** * @public @@ -115,18 +115,6 @@ export const initializeAssets = async () => { selectionCircles, minimapConsole, loader: imageLoaderManager, - loadImageAtlas(imageId: number, priority = 3) { - return imageLoaderManager.loadImage(imageId, priority); - }, - getImageAtlas(imageId: number): AnimAtlas | null { - return imageLoaderManager.getImage(imageId); - }, - hasImageAtlas(imageId: number): boolean { - return !!imageLoaderManager.exists(imageId); - }, - loadImageImmediate(imageId: number) { - return imageLoaderManager.loadImageImmediate(imageId); - }, skyBox, refId, resetImagesCache: () => { diff --git a/src/image/generate-map/get-terrain-y.ts b/src/image/generate-map/get-terrain-y.ts index 139a3652..dfc1b1a6 100644 --- a/src/image/generate-map/get-terrain-y.ts +++ b/src/image/generate-map/get-terrain-y.ts @@ -19,7 +19,7 @@ export const getTerrainY = ( const p = py * image.width + px; - return imageF[p] + offset; + return (imageF[p] ?? 0) + offset; }; }; diff --git a/src/image/loader/image-loader-manager.ts b/src/image/loader/image-loader-manager.ts new file mode 100644 index 00000000..43c2db18 --- /dev/null +++ b/src/image/loader/image-loader-manager.ts @@ -0,0 +1,90 @@ +import { AnimAtlas } from "../atlas"; +import { settingsStore } from "@stores/settings-store"; +import { IndexedDBCache } from "./indexed-db-cache"; +import { ImageLoader } from "./image-loader"; + +const genFileName = ( i: number, prefix = "" ) => + `${prefix}anim/main_${`00${i}`.slice( -3 )}.anim`; + +export class ImageLoaderManager { + maxDownloads = 8; + currentDownloads = 0; + imageLoaders = new Map(); + #refId: ( id: number ) => number; + #cache = new IndexedDBCache( "image-cache" ); + + constructor( refId: ( id: number ) => number ) { + this.#refId = refId; + this.#cache.enabled = settingsStore().data.utilities.cacheLocally; + } + + exists( imageId: number ) { + const refId = this.#refId( imageId ); + return this.imageLoaders.has( refId ); + } + + getImage( imageId: number, useRefId = true ): AnimAtlas | null { + const refId = useRefId ? this.#refId( imageId ) : imageId; + return this.imageLoaders.get( refId )?.atlas ?? null; + } + + loadImage( imageId: number, priority = 3 ) { + const refId = this.#refId( imageId ); + + if ( this.imageLoaders.has( refId )) { + this.processQueue(); + return; + } + + const loader = new ImageLoader(genFileName( refId, "HD2/" ), refId, this.#cache); + loader.priority = priority; + // const loader = new ImageLoader(genFileName( refId, res === UnitTileScale.HD2 ? "HD2/" : "")); + + this.imageLoaders.set( refId, loader ); + this.processQueue(); + + return new Promise( ( resolve ) => loader.onLoaded = () => { + resolve(); + } ); + } + + async loadImageImmediate( imageId: number ) { + const refId = this.#refId( imageId ); + + if ( this.imageLoaders.has( refId ) ) { + return this.imageLoaders.get( refId )?.atlas ?? null; + } + + const imageLoader = new ImageLoader(genFileName( refId, "HD2/" ), refId, this.#cache); + this.imageLoaders.set( refId, imageLoader ); + await imageLoader.loader.fetch(); + return imageLoader.atlas; + } + + + async processQueue() { + if ( this.currentDownloads >= this.maxDownloads ) { + return; + } + + const imageLoaders = Array.from( this.imageLoaders.values() ) + .filter( ( loader ) => loader.status === "idle" ) + .sort( ( a, b ) => b.priority - a.priority ); + + for ( const image of imageLoaders ) { + this.currentDownloads++; + image.loader.fetch().finally( () => { + this.currentDownloads--; + this.processQueue(); + }); + } + } + + dispose() { + for (const image of this.imageLoaders.values()) { + image.atlas?.dispose(); + image.loader.cancel(); + } + this.imageLoaders.clear(); + } +} diff --git a/src/image/loader/image-loader.ts b/src/image/loader/image-loader.ts index 881a3958..1cd67949 100644 --- a/src/image/loader/image-loader.ts +++ b/src/image/loader/image-loader.ts @@ -10,13 +10,9 @@ import { } from "../atlas"; import { ResourceLoaderStatus } from "./resource-loader-status"; import { ResourceLoader } from "./resource-loader"; -import { settingsStore } from "@stores/settings-store"; import { IndexedDBCache } from "./indexed-db-cache"; import { renderComposer } from "@render/index"; -const genFileName = ( i: number, prefix = "" ) => - `${prefix}anim/main_${`00${i}`.slice( -3 )}.anim`; - // const setHDMipMaps = ( hd: AnimAtlas, hd2: AnimAtlas ) => { // hd.diffuse.mipmaps.push( hd2.diffuse.mipmaps[0] ); @@ -71,87 +67,4 @@ export class ImageLoader { } } -} - -export class ImageLoaderManager { - maxDownloads = 8; - currentDownloads = 0; - imageLoaders = new Map(); - #refId: ( id: number ) => number; - #cache = new IndexedDBCache( "image-cache" ); - - constructor( refId: ( id: number ) => number ) { - this.#refId = refId; - this.#cache.enabled = settingsStore().data.utilities.cacheLocally; - } - - exists( imageId: number ) { - const refId = this.#refId( imageId ); - return this.imageLoaders.has( refId ); - } - - getImage( imageId: number, useRefId = true ): AnimAtlas | null { - const refId = useRefId ? this.#refId( imageId ) : imageId; - return this.imageLoaders.get( refId )?.atlas ?? null; - } - - loadImage( imageId: number, priority = 3 ) { - const refId = this.#refId( imageId ); - - if ( this.imageLoaders.has( refId )) { - this.processQueue(); - return; - } - - const loader = new ImageLoader(genFileName( refId, "HD2/" ), imageId, this.#cache); - loader.priority = priority; - // const loader = new ImageLoader(genFileName( refId, res === UnitTileScale.HD2 ? "HD2/" : "")); - - this.imageLoaders.set( refId, loader ); - this.processQueue(); - - return new Promise( ( resolve ) => loader.onLoaded = () => { - resolve(); - } ); - } - - async loadImageImmediate( imageId: number ) { - const refId = this.#refId( imageId ); - - if ( this.imageLoaders.has( refId ) ) { - return this.imageLoaders.get( refId )?.atlas ?? null; - } - - const imageLoader = new ImageLoader(genFileName( refId, "HD2/" ), imageId, this.#cache); - this.imageLoaders.set( refId, imageLoader ); - await imageLoader.loader.fetch(); - return imageLoader.atlas; - } - - - async processQueue() { - if ( this.currentDownloads >= this.maxDownloads ) { - return; - } - - const imageLoaders = Array.from( this.imageLoaders.values() ) - .filter( ( loader ) => loader.status === "idle" ) - .sort( ( a, b ) => b.priority - a.priority ); - - for ( const image of imageLoaders ) { - this.currentDownloads++; - image.loader.fetch().finally( () => { - this.currentDownloads--; - this.processQueue(); - }); - } - } - - dispose() { - for (const image of this.imageLoaders.values()) { - image.atlas?.dispose(); - image.loader.cancel(); - } - this.imageLoaders.clear(); - } -} +} \ No newline at end of file diff --git a/src/image/loader/indexed-db-cache.ts b/src/image/loader/indexed-db-cache.ts index 9c345d04..4db600b7 100644 --- a/src/image/loader/indexed-db-cache.ts +++ b/src/image/loader/indexed-db-cache.ts @@ -12,18 +12,27 @@ export const cacheDBStoreNames = ["general-casc-cache", "image-cache"] as const; export let appCacheDb: IDBDatabase; +let _cacheWasOpened = false; + export const initCacheDB = () => new Promise((resolve, reject) => { + const _timeout = setTimeout(() => { + console.error("IndexedDB timeout"); + reject(new Error("IndexedDB timeout")); + }, 1000); + console.log("Opening IndexedDB"); const dbReq = indexedDB.open(DB_NAME, DB_VERSION); dbReq.onblocked = () => { + clearTimeout(_timeout); console.error("IndexedDB blocked"); reject(new Error("IndexedDB blocked")); }; // Create the schema dbReq.onupgradeneeded = () => { + clearTimeout(_timeout); console.log("IndexedDB upgrade needed"); appCacheDb = dbReq.result; for (const storeName of cacheDBStoreNames) { @@ -31,26 +40,30 @@ export const initCacheDB = () => appCacheDb.createObjectStore(storeName, { keyPath: "id" }); } } + _cacheWasOpened = true; resolve(undefined); }; // Error handler dbReq.onerror = (error) => { + clearTimeout(_timeout); console.error(error); reject(error); }; // Success handler dbReq.onsuccess = () => { + clearTimeout(_timeout); console.log("IndexedDB opened successfully"); appCacheDb = dbReq.result; + _cacheWasOpened = true; resolve(undefined); }; }); export class IndexedDBCache { #storeName: CacheDBStoreName; - #enabled = true; + #enabled = _cacheWasOpened; constructor(storeName: CacheDBStoreName) { this.#storeName = storeName; @@ -61,6 +74,9 @@ export class IndexedDBCache { } set enabled(value: boolean) { + if (_cacheWasOpened === false) { + return; + } if (value !== this.#enabled && value === false) { this.clear(); } diff --git a/src/image/loader/resource-incremental-loader.ts b/src/image/loader/resource-incremental-loader.ts index 9ae8ffcf..e63d7f78 100644 --- a/src/image/loader/resource-incremental-loader.ts +++ b/src/image/loader/resource-incremental-loader.ts @@ -1,23 +1,19 @@ import { ResourceLoader } from "./resource-loader"; function concatenateArrayBuffers(arrayBuffers: ArrayBuffer[]) { - // Step 2: Calculate Total Length const totalLength = arrayBuffers.reduce( (acc, arrayBuffer) => acc + arrayBuffer.byteLength, 0 ); - // Step 3: Create a New Uint8Array const result = new Uint8Array(totalLength); - // Step 4: Copy Data let offset = 0; for (let arrayBuffer of arrayBuffers) { result.set(new Uint8Array(arrayBuffer), offset); offset += arrayBuffer.byteLength; } - // Step 5: Convert to Buffer return Buffer.from(result); } diff --git a/src/input/create-unit-selection.ts b/src/input/create-unit-selection.ts index 71379d5b..bbbe8e68 100644 --- a/src/input/create-unit-selection.ts +++ b/src/input/create-unit-selection.ts @@ -3,12 +3,13 @@ import { inverse } from "@utils/function-utils"; import { canOnlySelectOne } from "@utils/unit-utils"; import { Camera, Object3D, PerspectiveCamera, Raycaster, Vector2 } from "three"; import { SelectionBox } from "three/examples/jsm/interactive/SelectionBox"; -import { World } from "@core/world/world"; import BaseScene from "@render/base-scene"; import { ImageBase } from "@core/image-base"; import { ProjectedCameraView } from "../camera/projected-camera-view"; import { InputsComposer } from "@core/world/input-composer"; import { SimpleQuadtree } from "@utils/data-structures/simple-quadtree"; +import { TypeEmitter } from "@utils/type-emitter"; +import { WorldEvents } from "@core/world/world-events"; const MIN_DRAG_SIZE = 0.01; @@ -28,7 +29,7 @@ export enum UnitSelectionStatus { } export const createUnitSelectionBox = ( - world: World, + events: TypeEmitter, mouse: InputsComposer["mouse"], scene: BaseScene, imageQuadtree: SimpleQuadtree, @@ -48,7 +49,7 @@ export const createUnitSelectionBox = ( selectionBox.startPoint.set( mouse.move.x, mouse.move.y, 0.5 ); - world.events.emit( "box-selection-start" ); + events.emit( "box-selection-start" ); }; const largerThanMinDrag = () => { @@ -67,7 +68,7 @@ export const createUnitSelectionBox = ( _selectBoxStarted = true; } } else { - world.events.emit( "box-selection-move" ); + events.emit( "box-selection-move" ); _status = UnitSelectionStatus.Dragging; } @@ -145,7 +146,7 @@ export const createUnitSelectionBox = ( if ( unit ) { draft.push( unit ); } else { - world.events.emit( "box-selection-end", [] ); + events.emit( "box-selection-end", [] ); return; } } else { @@ -179,7 +180,7 @@ export const createUnitSelectionBox = ( draft.sort( typeIdSort ).splice( 12 ); - world.events.emit( "box-selection-end", draft ); + events.emit( "box-selection-end", draft ); }; return { @@ -191,7 +192,7 @@ export const createUnitSelectionBox = ( }, set enabled( value: boolean ) { if ( value !== _enabled ) { - world.events.emit( "box-selection-enabled", value ); + events.emit( "box-selection-enabled", value ); } _enabled = value; _selectActivated = value && _selectActivated; diff --git a/src/openbw/structs/flingy-buffer-view.ts b/src/openbw/structs/flingy-buffer-view.ts index cb15c8a7..4ac251e1 100644 --- a/src/openbw/structs/flingy-buffer-view.ts +++ b/src/openbw/structs/flingy-buffer-view.ts @@ -63,4 +63,11 @@ export class FlingyBufferView extends ThingyBufferView implements FlingyStruct { return FP8(this._bw.HEAPU32[this._addr32 + 21]); } + get currentVelocityDirection() { + const heading = this._bw.HEAP8[this._addr8 + ( 25 << 2 )]; + const v = fractional_part( heading, 8 ); + if ( v < 0 ) return 256 + v; + else return v; + } + } diff --git a/src/openbw/structs/units-buffer-view.ts b/src/openbw/structs/units-buffer-view.ts index 0e22fddc..a662bbe3 100644 --- a/src/openbw/structs/units-buffer-view.ts +++ b/src/openbw/structs/units-buffer-view.ts @@ -230,7 +230,21 @@ export class UnitsBufferView extends FlingyBufferView implements UnitStruct { dest.groundWeaponCooldown = this.groundWeaponCooldown; dest.airWeaponCooldown = this.airWeaponCooldown; dest.spellCooldown = this.spellCooldown; - + + dest.moveTargetX = this.moveTargetX; + dest.moveTargetY = this.moveTargetY; + + dest.orderTargetX = this.orderTargetX; + dest.orderTargetY = this.orderTargetY; + + dest.nextMovementWaypointX = this.nextMovementWaypointX; + dest.nextMovementWaypointY = this.nextMovementWaypointY; + + dest.nextTargetWaypointX = this.nextTargetWaypointX; + dest.nextTargetWaypointY = this.nextTargetWaypointY; + + dest.currentSpeed = this.currentSpeed; + dest.currentVelocityDirection = this.currentVelocityDirection; } diff --git a/src/plugins/plugin-base.ts b/src/plugins/plugin-base.ts index 4a0d7b7d..ee9d6f44 100644 --- a/src/plugins/plugin-base.ts +++ b/src/plugins/plugin-base.ts @@ -1,42 +1,61 @@ import type { GameTimeApi } from "@core/world/game-time-api"; import type { FieldDefinition, - Injectables, NativePlugin, PluginConfig, PluginPackage, } from "common/types"; - -import { log } from "@ipc/log"; // import { savePluginsConfig } from "renderer/command-center/ipc/plugins"; import { normalizePluginConfiguration } from "@utils/function-utils"; +import type { SessionVariables } from "@core/world/settings-session-store"; +import { TypeEmitter, TypeEmitterProxy } from "@utils/type-emitter"; +import type { WorldEvents } from "@core/world/world-events"; +import { usePluginsStore } from "@stores/plugins-store"; const structuredClone = // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition globalThis.structuredClone ?? - ( ( x: any ) => JSON.parse( JSON.stringify( x ) ) as unknown ); + ((x: any) => JSON.parse(JSON.stringify(x)) as unknown); + +export interface PluginBase extends NativePlugin, GameTimeApi {} -export interface PluginBase extends NativePlugin, GameTimeApi, Injectables {} +export type PluginSessionContext = { + game: GameTimeApi; + settings: SessionVariables; + events: TypeEmitter; + customEvents: TypeEmitter; +}; -export class PluginBase { +export class PluginBase implements PluginBase { readonly id: string; readonly name: string; isSceneController = false; #config: PluginConfig = {}; + game: GameTimeApi; + settings: SessionVariables; + events: TypeEmitterProxy; + /** * @internal * Same as config but simplified to [key] = value */ #normalizedConfig: Record = {}; - constructor( pluginPackage: PluginPackage ) { + constructor(pluginPackage: PluginPackage, session: PluginSessionContext) { this.id = pluginPackage.id; this.name = pluginPackage.name; - this.rawConfig = structuredClone( pluginPackage.config ?? {} ); + this.rawConfig = structuredClone(pluginPackage.config ?? {}); + this.game = session.game; + this.settings = session.settings; + this.events = new TypeEmitterProxy(session.events); + } + + dispose() { + this.events.dispose(); } - sendUIMessage: ( message: any ) => void = () => {}; + sendUIMessage: (message: any) => void = () => {}; /** * @@ -46,18 +65,17 @@ export class PluginBase { * @param value The configuration value. * @returns */ - saveConfigProperty( key: string, value: unknown, persist = true ): void { - if ( !( key in this.#config ) ) { - log.warn( + saveConfigProperty(key: string, value: unknown, persist = true): void { + if (!(key in this.#config)) { + console.warn( `Plugin ${this.id} tried to set config key ${key} but it was not found` ); return undefined; } this.#config[key].value = value; - if ( persist ) { - //todo: persist - // savePluginsConfig( this.id, this.#config ); + if (persist) { + usePluginsStore.getState().savePluginConfig( this.id, this.#config ); } } @@ -66,7 +84,7 @@ export class PluginBase { * Same as config but simplified to [key] = value */ refreshConfig() { - this.#normalizedConfig = normalizePluginConfiguration( this.#config ); + this.#normalizedConfig = normalizePluginConfiguration(this.#config); } /** @@ -79,7 +97,7 @@ export class PluginBase { /** * Set the config from unnormalized data (ie leva config schema). */ - set rawConfig( value: PluginConfig ) { + set rawConfig(value: PluginConfig) { this.#config = value; this.refreshConfig(); } @@ -92,7 +110,7 @@ export class PluginBase { * @param key The configuration key. * @returns the leva configuration for a particular field */ - getFieldDefinition( key: string ) { + getFieldDefinition(key: string) { return this.#config[key] as FieldDefinition | undefined; } } diff --git a/src/plugins/plugin-system-native.ts b/src/plugins/plugin-system-native.ts index a2363928..57e70aad 100644 --- a/src/plugins/plugin-system-native.ts +++ b/src/plugins/plugin-system-native.ts @@ -7,11 +7,12 @@ import { withErrorMessage } from "common/utils/with-error-message"; import { UI_SYSTEM_CUSTOM_MESSAGE } from "./events"; import throttle from "lodash.throttle"; import { Janitor } from "three-janitor"; -import { mix } from "@utils/object-utils"; import { log } from "@ipc/log"; -import { PluginBase } from "./plugin-base"; +import { PluginBase, PluginSessionContext } from "./plugin-base"; import { SceneController } from "./scene-controller"; import lSet from "lodash.set"; +import { mix } from "@utils/object-utils"; +import { VRSceneController } from "./vr-controller"; type PluginsConfigSnapshot = Record< string, @@ -28,6 +29,7 @@ export class PluginSystemNative { #sendCustomUIMessage!: (pluginId: string, message: any) => void; #compartments = new WeakMap(); + #sessionContext: PluginSessionContext; /** * Error trapping is signficantly slower than not using it. @@ -43,28 +45,36 @@ export class PluginSystemNative { return this.#plugins.reduce.bind(this.#plugins); } + constructor( sessionContext: PluginSessionContext ) { + this.#sessionContext = sessionContext; + } + async activatePlugin( pluginPackage: PluginMetaData, createCompartment: (env: unknown) => { globalThis: { Function: (...args: any[]) => () => object | PluginBase; }; - } + }, + sessionContext: PluginSessionContext ) { + //todo: remove this const compartment = createCompartment({ PluginBase, SceneController, + VRSceneController, }); try { - const Plugin = await import(/* @vite-ignore */ pluginPackage.urls.host! ); + const Plugin = await import(/* @vite-ignore */pluginPackage.urls.host! ); if (!Plugin) { throw new Error("Plugin constructor must extend PluginBase"); } - const plugin = new Plugin.default(pluginPackage); + const plugin = new Plugin.default(pluginPackage, sessionContext) as PluginBase; + mix(plugin, sessionContext.game); plugin.isSceneController = pluginPackage.isSceneController; @@ -94,12 +104,12 @@ export class PluginSystemNative { async init( pluginPackages: PluginMetaData[], msg: (id: string, message: any) => void, - createCompartment: (env: any) => any + createCompartment: (env: any) => any, ) { log.debug(`@plugin-system-native: init`); for (const pkg of pluginPackages) { - const plugin = await this.activatePlugin(pkg, createCompartment); + const plugin = await this.activatePlugin(pkg, createCompartment, this.#sessionContext); if (plugin) { this.#plugins.push(plugin); } @@ -226,12 +236,33 @@ export class PluginSystemNative { } } + #hook_onTick( delta: number, elapsed: number ) { + for (const plugin of this.#plugins) { + if (plugin.onTick && this.isRegularPluginOrActiveSceneController(plugin)) { + plugin.onTick(delta, elapsed); + } + } + } + + hook_onTick( delta: number, elapsed: number ) { + if (this.useTryCatchOnHooks) { + try { + this.#hook_onTick(delta, elapsed); + } catch (e) { + log.error(withErrorMessage(e, "@plugin-system-native: onFrame")); + } + } else { + this.#hook_onTick( delta, elapsed ); + } + } + activateAdditionalPlugins( pluginPackages: PluginMetaData[], createCompartment: (env: any) => any ) { + const additionalPlugins = pluginPackages - .map((p) => this.activatePlugin(p, createCompartment)) + .map((p) => this.activatePlugin(p, createCompartment, this.#sessionContext)) .filter(Boolean); this.#plugins = [...this.#plugins, ...additionalPlugins] as PluginBase[]; @@ -240,17 +271,16 @@ export class PluginSystemNative { /** * Temporarily inject an api into all active plugins. */ - injectApi(object: object) { - mix(PluginBase.prototype, object); - const keys = Object.keys(object); - - return () => { - keys.forEach((key) => { - // eslint-disable-next-line @typescript-eslint/no-dynamic-delete - delete PluginBase.prototype[key as keyof typeof PluginBase.prototype]; - }); - }; - } + // injectApi(object: object) { + // const keys = Object.keys(object); + + // return () => { + // keys.forEach((key) => { + // // eslint-disable-next-line @typescript-eslint/no-dynamic-delete + // delete PluginBase.prototype[key as keyof typeof PluginBase.prototype]; + // }); + // }; + // } getConfigSnapshot() { return this.#plugins.reduce((acc, plugin) => { diff --git a/src/plugins/plugin-system-ui.ts b/src/plugins/plugin-system-ui.ts index df730e4f..a84b76e5 100644 --- a/src/plugins/plugin-system-ui.ts +++ b/src/plugins/plugin-system-ui.ts @@ -210,10 +210,7 @@ export class PluginSystemUI { const assets = gameStore().assets!; const payload: SystemReadyMessage = { - plugins: pluginPackages.map( ( plugin ) => ( { - ...plugin, - config: normalizePluginConfiguration( plugin.config ?? {} ), - } ) ), + plugins: this.#normalizePlugins( pluginPackages ), initialStore: initialStore(), assets: { bwDat: assets.bwDat, @@ -273,6 +270,13 @@ export class PluginSystemUI { } + #normalizePlugins(pluginPackages: PluginMetaData[]) { + return pluginPackages.map( ( plugin ) => ( { + ...plugin, + config: normalizePluginConfiguration( plugin.config ?? {} ), + } ) ); + } + show() { this.#iframe.style.visibility = "visible"; } @@ -344,7 +348,7 @@ export class PluginSystemUI { activatePlugins( plugins: PluginMetaData[] ) { this.sendMessage( { type: UI_SYSTEM_PLUGINS_ENABLED, - payload: plugins, + payload: this.#normalizePlugins( plugins ), } ); } diff --git a/src/plugins/scene-controller.ts b/src/plugins/scene-controller.ts index d0d45962..f17f9bf5 100644 --- a/src/plugins/scene-controller.ts +++ b/src/plugins/scene-controller.ts @@ -1,15 +1,36 @@ import { GameTimeApi } from "@core/world/game-time-api"; -import { Injectables, NativePlugin } from "common/types"; -import { Quaternion, Vector2, Vector3 } from "three"; +import { NativePlugin } from "common/types"; +import { + Group, + Quaternion, + Vector2, + Vector3, +} from "three"; import { PluginBase } from "./plugin-base"; /** * @public */ -export interface SceneController - extends Omit, - GameTimeApi, - Injectables { +export type PrevSceneData = { + position: Vector3; + target: Vector3; + data?: any; +}; + +/** + * @public + */ +export interface SceneController extends Omit, GameTimeApi { + /** + * When a scene is entered and nearly initialized. + */ + onEnterScene(prevData: PrevSceneData): Promise | void; + + /** + * When a scene has exited. Dispose resources here. + */ + onExitScene?(currentData: PrevSceneData): PrevSceneData | void; + /** * Updates every frame with the current mouse data. * @@ -43,7 +64,7 @@ export interface SceneController * @param elapsed - Time in milliseconds since the game started * @param truck - x,y movement deltas */ - onCameraKeyboardUpdate?( delta: number, elapsed: number, truck: Vector2 ): void; + onCameraKeyboardUpdate?(delta: number, elapsed: number, truck: Vector2): void; /** * An optional override for the position of the audio listener. @@ -51,7 +72,7 @@ export interface SceneController * @param target - Vector3 of the current camera target * @param position - Vector 3 of the current camera position */ - onUpdateAudioMixerLocation( target: Vector3, position: Vector3 ): Vector3; + onUpdateAudioMixerLocation(target: Vector3, position: Vector3): Vector3; /** * Updates when the minimap is clicked and dragged. @@ -74,17 +95,17 @@ const _va = new Vector3(), /** * @public */ -export class SceneController extends PluginBase implements SceneController { +export class SceneController + extends PluginBase + implements NativePlugin, SceneController +{ override isSceneController = true; isWebXR = false; viewportsCount = 1; - - override onEnterScene( prevData: unknown ) { - return Promise.resolve( prevData ); - } + parent = new Group(); //TODO: change to globalThis - onUpdateAudioMixerLocation( target: Vector3, position: Vector3 ) { + onUpdateAudioMixerLocation(target: Vector3, position: Vector3) { return position.lerp( target, this.settings.session.audioListenerDistance() as number @@ -92,7 +113,9 @@ export class SceneController extends PluginBase implements SceneController { } onUpdateAudioMixerOrientation() { - this.viewport.camera.matrixWorld.decompose( _va, _qa, _vb ); + this.viewport.camera.matrixWorld.decompose(_va, _qa, _vb); return _qa; } } + + diff --git a/src/plugins/vr-controller.ts b/src/plugins/vr-controller.ts new file mode 100644 index 00000000..d03292f2 --- /dev/null +++ b/src/plugins/vr-controller.ts @@ -0,0 +1,127 @@ + + +import { NativePlugin } from "common/types"; +import { + Group, + Quaternion, + Vector3, + WebXRManager, + XRTargetRaySpace, +} from "three"; +import { XRControllerModelFactory } from "three/examples/jsm/webxr/XRControllerModelFactory.js"; +import { SceneController } from "./scene-controller"; + +const _va = new Vector3(), + _vb = new Vector3(), + _qa = new Quaternion(); + +/** + * @public + */ +export class VRSceneController + extends SceneController + implements NativePlugin, SceneController +{ + override isSceneController = true; + override isWebXR = true; + override viewportsCount = 1; + + xr!: WebXRManager; + baseReferenceSpace!: XRReferenceSpace; + controllerModelFactory = new XRControllerModelFactory(); + controller1!: XRTargetRaySpace; + controller2!: XRTargetRaySpace; + input1?: XRInputSource; + input2?: XRInputSource; + lastWorldPosition = new Vector3(); + viewerPosition = new Group(); + + constructor(...args: ConstructorParameters) { + super(...args); + } + + setupXR(xr: WebXRManager) { + this.xr = xr; + this.baseReferenceSpace = this.xr.getReferenceSpace()!; + this.controller1 = this.xr.getController(0); + this.controller2 = this.xr.getController(1); + + this.controller1.addEventListener( + "connected", + ({ data }: { data: XRInputSource }) => { + this.input1 = data; + } + ); + this.controller1.addEventListener("disconnected", () => { + this.input1 = undefined; + this.parent.remove(this.controller1.children[0]); + + }); + this.parent.add(this.controller1); + + // this.controller2.addEventListener("selectstart", onSelectStart); + // this.controller2.addEventListener("selectend", onSelectEnd); + this.controller2.addEventListener( + "connected", + ({ data }: { data: XRInputSource }) => { + this.input2 = data; + } + ); + this.controller2.addEventListener("disconnected", () => { + this.input2 = undefined; + this.parent.remove(this.controller1.children[0]) + }); + this.parent.add(this.controller2); + + // this.getPoseWorldPosition(); + } + + + + moveLocal(targetPosition: Vector3) { + // _v4.set( targetPosition.x, targetPosition.y, targetPosition.z, 1 ); + this.viewerPosition.position.add(targetPosition); + // const offsetRotation = new Quaternion(); + // const transform = new XRRigidTransform( _v4, offsetRotation ); + // const teleportSpaceOffset = this.xr.getReferenceSpace()!.getOffsetReferenceSpace( transform ); + // this.xr.setReferenceSpace( teleportSpaceOffset ); + } + + moveWorld(targetPosition: Vector3) { + // _v4.set( targetPosition.x, targetPosition.y, targetPosition.z, 1 ); + this.viewerPosition.position.copy(targetPosition); + + // const currentPosition = this.lastWorldPosition; + // _v3.copy( targetPosition ).sub( currentPosition ); + // _v4.set( _v3.x, _v3.y, _v3.z, 1 ); + + // const offsetRotation = new Quaternion(); + // const transform = new XRRigidTransform( _v4, offsetRotation ); + + // const newReferenceSpace = this.xr.getReferenceSpace()!.getOffsetReferenceSpace(transform); + + // this.xr.setReferenceSpace(newReferenceSpace); + } + + getPoseWorldPosition() { + const pose = this.xr.getFrame()?.getViewerPose(this.baseReferenceSpace); + if (pose) { + this.lastWorldPosition.set( + pose.transform.position.x, + pose.transform.position.y, + pose.transform.position.z + ); + return this.lastWorldPosition; + } + return this.lastWorldPosition; + } + + override onUpdateAudioMixerLocation() { + return this.viewerPosition.position; + } + + override onUpdateAudioMixerOrientation() { + this.viewport.camera.matrixWorld.decompose(_va, _qa, _vb); + return _qa; + } +} diff --git a/src/render/render-composer.ts b/src/render/render-composer.ts index ab807677..a1b2c6de 100644 --- a/src/render/render-composer.ts +++ b/src/render/render-composer.ts @@ -10,7 +10,7 @@ import { WebGLRenderer, } from "three"; import { EffectComposer, Pass } from "postprocessing"; -import { ColorManagement } from "three/src/math/ColorManagement"; +import { ColorManagement } from "three"; import { globalEvents } from "../core/global-events"; ColorManagement.enabled = true; diff --git a/src/render/vr/test.tsx b/src/render/vr/vr-button-react.tsx similarity index 53% rename from src/render/vr/test.tsx rename to src/render/vr/vr-button-react.tsx index 7482457a..e95df84b 100644 --- a/src/render/vr/test.tsx +++ b/src/render/vr/vr-button-react.tsx @@ -1,19 +1,17 @@ import React, { useEffect, useState, useCallback } from 'react'; +import { InGameMenuButton } from '../../scenes/game-scene/ingame-menu-button'; type VRButtonProps = { renderer: any; // replace 'any' with the actual type of renderer }; -const VRButton: React.FC = ({ renderer }) => { - const [buttonText, setButtonText] = useState('ENTER VR'); +const VRButtonReact: React.FC = ({ renderer }) => { const [currentSession, setCurrentSession] = useState(null); const [isSupported, setIsSupported] = useState(false); const onSessionStarted = useCallback( async (session: XRSession) => { - session.addEventListener('end', onSessionEnded); await renderer.xr.setSession(session); - setButtonText('EXIT VR'); setCurrentSession(session); }, [renderer.xr] @@ -21,22 +19,26 @@ const VRButton: React.FC = ({ renderer }) => { const onSessionEnded = useCallback( () => { - if (currentSession) { - currentSession.removeEventListener('end', onSessionEnded); - } - setButtonText('ENTER VR'); setCurrentSession(null); }, [currentSession] ); + useEffect(() => { + if (currentSession) { + currentSession.addEventListener('end', onSessionEnded); + } + return () => { + if (currentSession) { + currentSession.removeEventListener('end', onSessionEnded); + } + } + }, [currentSession]); + useEffect(() => { if ('xr' in navigator) { navigator.xr!.isSessionSupported('immersive-vr').then((supported) => { setIsSupported(supported); - if (supported) { - // additional logic if needed - } }); } }, []); @@ -52,25 +54,16 @@ const VRButton: React.FC = ({ renderer }) => { } }; - const buttonStyle = { - display: isSupported ? '' : 'none', - cursor: 'pointer', - left: 'calc(50% - 50px)', - width: '100px', - opacity: '0.5', - // ... other styles - }; + const buttonText = isSupported ? (currentSession ? "Exit VR" : "Enter VR") : 'VR Not Supported'; return ( - + ); }; -export default VRButton; \ No newline at end of file +export default VRButtonReact; \ No newline at end of file diff --git a/src/runtime.tsx b/src/runtime.tsx index e863cb27..6633c324 100644 --- a/src/runtime.tsx +++ b/src/runtime.tsx @@ -10,11 +10,11 @@ import create from "zustand"; // import { Canvas, useFrame as r3fUseFrame } from 'https://cdn.jsdelivr.net/npm/@react-three/fiber@8.14.5/+esm' // split up an array into chunks of size n -function chunk( arr: Int32Array, n: number ) { +function chunk(arr: Int32Array, n: number) { const chunks = []; let i = 0; - while ( i < arr.length ) { - chunks.push( arr.slice( i, ( i += n ) ) ); + while (i < arr.length) { + chunks.push(arr.slice(i, (i += n))); } return chunks; } @@ -35,68 +35,68 @@ interface Plugin { } type StateMessage = Partial; -const useStore = create( () => ( { +const useStore = create(() => ({ screen: { screen: "@home", error: undefined, }, -} ) ); +})); // friendly utilities -const _useLocale = ( state: StateMessage ) => state.language; +const _useLocale = (state: StateMessage) => state.language; /** * @public * Use the translation function to translate a string */ export const useLocale = () => { - return useStore( _useLocale ); + return useStore(_useLocale); }; -const _useReplay = ( state: StateMessage ) => state.world!.replay; +const _useReplay = (state: StateMessage) => state.world!.replay; /** * @public * The replay header information. */ export const useReplay = () => { - return useStore( _useReplay ); + return useStore(_useReplay); }; -const _useMap = ( state: StateMessage ) => state.world!.map; +const _useMap = (state: StateMessage) => state.world!.map; /** * @public * The map information. */ export const useMap = () => { - return useStore( _useMap ); + return useStore(_useMap); }; -const _useFrame = ( state: StateMessage ) => state.frame; +const _useFrame = (state: StateMessage) => state.frame; /** * @public * The current frame of the replay. */ export const useFrame = () => { - return useStore( _useFrame ); + return useStore(_useFrame); }; // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -const _usePlayers = ( state: StateMessage ) => state.world?.replay?.players; +const _usePlayers = (state: StateMessage) => state.world?.replay?.players; /** * @public * All players in the current replay. */ export const usePlayers = () => { - return useStore( _usePlayers ) ?? []; + return useStore(_usePlayers) ?? []; }; -const _usePlayerFrame = ( state: StateMessage ) => state.production!.playerData; +const _usePlayerFrame = (state: StateMessage) => state.production!.playerData; /** * @public * Returns a function getPlayerInfo that can be used to get resource information about a player. */ export const usePlayerFrame = () => { - const playerData = useStore( _usePlayerFrame ); - return ( id: number ) => getPlayerInfo( id, playerData ); + const playerData = useStore(_usePlayerFrame); + return (id: number) => getPlayerInfo(id, playerData); }; /** @@ -105,56 +105,56 @@ export const usePlayerFrame = () => { */ export const usePlayer = () => { const players = usePlayers(); - return ( playerId: number ) => { - return players.find( ( player ) => player.id === playerId ); + return (playerId: number) => { + return players.find((player) => player.id === playerId); }; }; -const _useSelectedUnits = ( state: StateMessage ) => state.units; +const _useSelectedUnits = (state: StateMessage) => state.units; /** * @public * Returns user selected units (if any). */ export const useSelectedUnits = () => { - return ( useStore( _useSelectedUnits ) ?? [] ).map( ( unit ) => { + return (useStore(_useSelectedUnits) ?? []).map((unit) => { return { ...unit, extras: { dat: assets.bwDat.units[unit.typeId!], }, }; - } ); + }); }; -const unitIsComplete = ( unit: DumpedUnit ) => { - return ( unit.statusFlags! & 0x01 ) === 1; +const unitIsComplete = (unit: DumpedUnit) => { + return (unit.statusFlags! & 0x01) === 1; }; /** * @public * Get the icon id for a particular unit type. */ -export const getUnitIcon = ( unit: DumpedUnit ) => { +export const getUnitIcon = (unit: DumpedUnit) => { if ( - ( unit.extras!.dat.isBuilding && + (unit.extras!.dat.isBuilding && !unit.extras!.dat.isZerg && - unitIsComplete( unit ) && - unit.buildQueue?.length ) || - ( unit.extras!.dat.isZerg && + unitIsComplete(unit) && + unit.buildQueue?.length) || + (unit.extras!.dat.isZerg && !unit.extras!.dat.isBuilding && - unit.buildQueue?.length ) + unit.buildQueue?.length) ) { return unit.buildQueue[0]; } - if ( unitIsComplete( unit ) && unit.remainingTrainTime ) { - if ( unit.typeId === enums.unitTypes.reaver ) { + if (unitIsComplete(unit) && unit.remainingTrainTime) { + if (unit.typeId === enums.unitTypes.reaver) { // eslint-disable-next-line @typescript-eslint/no-unsafe-return return enums.unitTypes.scarab; - } else if ( unit.typeId === enums.unitTypes.carrier ) { + } else if (unit.typeId === enums.unitTypes.carrier) { // eslint-disable-next-line @typescript-eslint/no-unsafe-return return enums.unitTypes.interceptor; - } else if ( unit.typeId === enums.unitTypes.nuclearSilo ) { + } else if (unit.typeId === enums.unitTypes.nuclearSilo) { // eslint-disable-next-line @typescript-eslint/no-unsafe-return return enums.unitTypes.nuclearMissile; } @@ -163,7 +163,7 @@ export const getUnitIcon = ( unit: DumpedUnit ) => { return null; }; -const mapUnitInProduction = ( input: Int32Array, unit: UnitDAT ) => +const mapUnitInProduction = (input: Int32Array, unit: UnitDAT) => unit.isTurret ? null : { @@ -174,44 +174,44 @@ const mapUnitInProduction = ( input: Int32Array, unit: UnitDAT ) => isUnit: true, }; -const mapUpgradeInProduction = ( input: Int32Array, upgrade: UpgradeDAT ) => ( { +const mapUpgradeInProduction = (input: Int32Array, upgrade: UpgradeDAT) => ({ typeId: input[0], icon: upgrade.icon, level: input[1], isUpgrade: true, progress: - input[2]! / ( upgrade.researchTimeBase + upgrade.researchTimeFactor * input[1]! ), -} ); + input[2]! / (upgrade.researchTimeBase + upgrade.researchTimeFactor * input[1]!), +}); -const mapResearchInProduction = ( input: Int32Array, research: TechDataDAT ) => ( { +const mapResearchInProduction = (input: Int32Array, research: TechDataDAT) => ({ typeId: input[0], icon: research.icon, progress: input[1]! / research.researchTime, isResearch: true, -} ); +}); -const _useProduction = ( state: StateMessage ) => state.production!; +const _useProduction = (state: StateMessage) => state.production!; /** * @public * Returns three functions that can be used to get player production information. * Units, Upgrades and Research. */ export const useProduction = () => { - const { unitProduction, upgrades, research } = useStore( _useProduction ); + const { unitProduction, upgrades, research } = useStore(_useProduction); return [ - ( playerId: number ) => - chunk( unitProduction[playerId]!, 3 ) - .map( ( unit ) => mapUnitInProduction( unit, assets.bwDat.units[unit[0]!]! ) ) - .filter( ( unit ) => unit ), - - ( playerId: number ) => - chunk( upgrades[playerId]!, 3 ).map( ( upgrade ) => - mapUpgradeInProduction( upgrade, assets.bwDat.upgrades[upgrade[0]!]! ) + (playerId: number) => + chunk(unitProduction[playerId]!, 3) + .map((unit) => mapUnitInProduction(unit, assets.bwDat.units[unit[0]!]!)) + .filter((unit) => unit), + + (playerId: number) => + chunk(upgrades[playerId]!, 3).map((upgrade) => + mapUpgradeInProduction(upgrade, assets.bwDat.upgrades[upgrade[0]!]!) ), - ( playerId: number ) => - chunk( research[playerId]!, 2 ).map( ( research ) => - mapResearchInProduction( research, assets.bwDat.tech[research[0]!]! ) + (playerId: number) => + chunk(research[playerId]!, 2).map((research) => + mapResearchInProduction(research, assets.bwDat.tech[research[0]!]!) ), ]; }; @@ -220,18 +220,18 @@ export const useProduction = () => { * @public * Converts a frame numer to a time string eg 01:00. */ -export const getFriendlyTime = ( frame: number ) => { - const t = Math.floor( ( frame * 42 ) / 1000 ); - const minutes = Math.floor( t / 60 ); - const seconds = Math.floor( t % 60 ); +export const getFriendlyTime = (frame: number) => { + const t = Math.floor((frame * 42) / 1000); + const minutes = Math.floor(t / 60); + const seconds = Math.floor(t % 60); - return `${minutes}:${`00${seconds}`.slice( -2 )}`; + return `${minutes}:${`00${seconds}`.slice(-2)}`; }; /** * @public */ -export const openUrl = ( url: string ) => +export const openUrl = (url: string) => window.parent.postMessage( { type: "system:open-url", @@ -241,63 +241,62 @@ export const openUrl = ( url: string ) => ); // plugin specific configuration -const useConfig = create>( () => ( {} ) ); +const useConfig = create>(() => ({})); interface ComponentsStore { components: Component[]; - add: ( component: Component ) => void; - remove: ( id: string ) => void; + add: (component: Component) => void; + remove: (id: string) => void; } -const useComponents = create( ( set, get ) => ( { +const useComponents = create((set, get) => ({ components: [], - add: ( item ) => set( { components: [ ...get().components, item ] } ), - remove: ( id ) => - set( { components: get().components.filter( ( c ) => c.pluginId !== id ) } ), -} ) ); - -const setPluginStyleSheet = ( id: string, content: string ) => { - let style = document.getElementById( id ); - if ( !style ) { - style = document.createElement( "style" ); + add: (item) => set({ components: [...get().components, item] }), + remove: (id) => + set({ components: get().components.filter((c) => c.pluginId !== id) }), +})); + +const setPluginStyleSheet = (id: string, content: string) => { + let style = document.getElementById(id); + if (!style) { + style = document.createElement("style"); style.id = id; - document.head.appendChild( style ); + document.head.appendChild(style); } style.textContent = content; }; -const removePluginStylesheet = ( id: string ) => { - const style = document.getElementById( id ); - style && document.head.removeChild( style ); +const removePluginStylesheet = (id: string) => { + const style = document.getElementById(id); + style && document.head.removeChild(style); }; const _plugins: Record = {}; -const _removePlugin = ( pluginId: string ) => { +const _removePlugin = (pluginId: string) => { const plugin = _plugins[pluginId] as Plugin | undefined; - if ( !plugin || pluginId !== plugin.id ) { + if (!plugin || pluginId !== plugin.id) { return; } - useComponents.getState().remove( plugin.id ); + useComponents.getState().remove(plugin.id); plugin.script.remove(); - delete _plugins[plugin.id]; }; -const _addPlugin = ( plugin: PluginMetaData ) => { +const _addPlugin = (plugin: PluginMetaData) => { console.log("@runtime/loading-plugin", plugin.name); - if ( !plugin.urls.ui ) { + if (!plugin.urls.ui) { return; } // initialize the plugin channels custom script and we'll later wait for it to register - const script = document.createElement( "script" ); + const script = document.createElement("script"); script.type = "module"; script.async = true; - script.src = plugin.urls.ui; - document.head.appendChild( script ); + script.src = `${plugin.urls.ui}?=${Math.random()}`; + document.head.appendChild(script); _plugins[plugin.id] = { id: plugin.id, @@ -305,9 +304,9 @@ const _addPlugin = ( plugin: PluginMetaData ) => { script, }; - useConfig.setState( { + useConfig.setState({ [plugin.id]: plugin.config, - } ); + }); }; /** * @public @@ -336,20 +335,20 @@ class RollingValue { _direction = false; _speed = 0; - constructor( value = 0, upSpeed = 80, downSpeed = 30 ) { + constructor(value = 0, upSpeed = 80, downSpeed = 30) { this.upSpeed = upSpeed; this.downSpeed = downSpeed; this._value = typeof value === "number" ? value : 0; this._rollingValue = this._value; } - update( delta: number ) { - if ( this._running && delta >= this._speed ) { + update(delta: number) { + if (this._running && delta >= this._speed) { this._rollingValue = this._direction - ? Math.min( this._value, this._rollingValue + 1 ) - : Math.max( this._value, this._rollingValue - 1 ); + ? Math.min(this._value, this._rollingValue + 1) + : Math.max(this._value, this._rollingValue - 1); - if ( this._rollingValue === this._value ) { + if (this._rollingValue === this._value) { this._running = false; } return true; @@ -365,13 +364,13 @@ class RollingValue { return this._running; } - start( value: number, onUpdate: ( value: number ) => void ) { - if ( value === this._value ) return; + start(value: number, onUpdate: (value: number) => void) { + if (value === this._value) return; this._value = typeof value === "number" ? value : 0; const direction = this._value > this._rollingValue; - if ( this._running && direction === this._direction ) { + if (this._running && direction === this._direction) { return; } @@ -380,19 +379,19 @@ class RollingValue { this._running = true; this.#lastTime = 0; - const raf = ( elapsed: number ) => { + const raf = (elapsed: number) => { const delta = elapsed - this.#lastTime; - if ( this.update( delta ) ) { + if (this.update(delta)) { this.#lastTime = elapsed; - onUpdate( this._rollingValue ); + onUpdate(this._rollingValue); } - if ( this.isRunning ) { - requestAnimationFrame( raf ); + if (this.isRunning) { + requestAnimationFrame(raf); } }; - requestAnimationFrame( raf ); + requestAnimationFrame(raf); } stop() { @@ -404,7 +403,7 @@ class RollingValue { * @public * A number that rolls up and down quickly like a casino slot. */ -export const RollingNumber = ( { +export const RollingNumber = ({ value, upSpeed, downSpeed, @@ -413,29 +412,29 @@ export const RollingNumber = ( { value: number; upSpeed: number | undefined; downSpeed: number | undefined; -} ) => { - const numberRef = useRef( null ); +}) => { + const numberRef = useRef(null); const rollingNumber = useRef( - new RollingValue( value, upSpeed ?? 80, downSpeed ?? 30 ) + new RollingValue(value, upSpeed ?? 80, downSpeed ?? 30) ); - useEffect( () => { - if ( numberRef.current ) { + useEffect(() => { + if (numberRef.current) { numberRef.current.textContent = `${value}`; } - }, [] ); + }, []); - useEffect( () => { - rollingNumber.current.start( value, ( val ) => { - if ( numberRef.current ) { + useEffect(() => { + rollingNumber.current.start(value, (val) => { + if (numberRef.current) { numberRef.current.textContent = `${val}`; } - } ); + }); return () => { rollingNumber.current.stop(); }; - }, [ value ] ); + }, [value]); return ; }; @@ -491,33 +490,33 @@ const getPlayerInfo = ( return playerInfo; }; -const updateDimensionsCss = ( dimensions: MinimapDimensions ) => { +const updateDimensionsCss = (dimensions: MinimapDimensions) => { setPluginStyleSheet( "game-dimension-css-vars", `:root { --minimap-width: ${dimensions.minimapWidth}px; --minimap-height: ${dimensions.minimapHeight}px; - --minimap-matrix: matrix3d(${dimensions.matrix.join( "," )}); + --minimap-matrix: matrix3d(${dimensions.matrix.join(",")}); }` ); }; -const PluginContext = createContext( null ); +const PluginContext = createContext(null); /** * @public * Receive ipc messages from your native plugin. */ -export const useMessage = ( cb?: ( event: any ) => void, deps: unknown[] = [] ) => { - const { messageHandler } = useContext( PluginContext )!; +export const useMessage = (cb?: (event: any) => void, deps: unknown[] = []) => { + const { messageHandler } = useContext(PluginContext)!; - useEffect( () => { - const handler = ( { detail }: any ) => { - typeof cb === "function" && cb( detail ); + useEffect(() => { + const handler = ({ detail }: any) => { + typeof cb === "function" && cb(detail); }; - messageHandler.addEventListener( "message", handler ); - return () => messageHandler.removeEventListener( "message", handler ); - }, [ ...deps, cb, messageHandler ] ); + messageHandler.addEventListener("message", handler); + return () => messageHandler.removeEventListener("message", handler); + }, [...deps, cb, messageHandler]); }; /** @@ -525,9 +524,9 @@ export const useMessage = ( cb?: ( event: any ) => void, deps: unknown[] = [] ) * Send ipc messages to your native plugin. */ export const useSendMessage = () => { - const { pluginId } = useContext( PluginContext )!; + const { pluginId } = useContext(PluginContext)!; - return ( message: unknown ) => + return (message: unknown) => window.parent.postMessage( { type: "system:custom-message", @@ -545,29 +544,29 @@ export const useSendMessage = () => { * Get your users plugin configuration. */ export const usePluginConfig = () => { - const { pluginId } = useContext( PluginContext )!; - return useConfig( ( store ) => store[pluginId] ); + const { pluginId } = useContext(PluginContext)!; + return useConfig((store) => store[pluginId]); }; /** * @public * Set a global stylesheet. */ -export const useStyleSheet = ( content: string, deps = [] ) => { - const { pluginId } = useContext( PluginContext )!; - useEffect( () => { - setPluginStyleSheet( pluginId, content ); - }, [ content, ...deps ] ); - - useEffect( () => { - return () => removePluginStylesheet( pluginId ); - }, [] ); +export const useStyleSheet = (content: string, deps = []) => { + const { pluginId } = useContext(PluginContext)!; + useEffect(() => { + setPluginStyleSheet(pluginId, content); + }, [content, ...deps]); + + useEffect(() => { + return () => removePluginStylesheet(pluginId); + }, []); }; /** * @public */ -export const proxyFetch = ( url: string ) => fetch( `?proxy=${encodeURIComponent( url )}` ); +export const proxyFetch = (url: string) => fetch(`?proxy=${encodeURIComponent(url)}`); export const _rc = ( pluginId: string, @@ -575,14 +574,14 @@ export const _rc = ( JSXElement: React.FC ) => { const plugin = _plugins[pluginId]; - if ( !plugin ) { + if (!plugin) { return; } component.id = Math.random(); component.order = component.order ?? 0; - useComponents.getState().add( { + useComponents.getState().add({ ...component, pluginId, id: Math.random(), @@ -590,23 +589,23 @@ export const _rc = ( messageHandler: plugin.messageHandler, JSXElement, snap: component.snap ?? "loose", - } ); + }); }; const AppWrapper = () => { - const components = useComponents( ( state ) => state.components ); + const components = useComponents((state) => state.components); return ; }; -const _screenSelector = ( store: StateMessage ) => store.screen; +const _screenSelector = (store: StateMessage) => store.screen; -const PluginComponent = ( { +const PluginComponent = ({ key, JSXElement, }: { key: string | number; JSXElement: Component["JSXElement"]; -} ) => { +}) => { const config = usePluginConfig() as { _visible: boolean }; return ( @@ -617,33 +616,33 @@ const PluginComponent = ( { ); }; -const orderSort = ( a: Component, b: Component ) => { +const orderSort = (a: Component, b: Component) => { return a.order! - b.order!; }; -const App = ( { components }: { components: Component[] } ) => { - const { screen } = useStore( _screenSelector )!; - const containerDiv = useRef( null ); +const App = ({ components }: { components: Component[] }) => { + const { screen } = useStore(_screenSelector)!; + const containerDiv = useRef(null); - useEffect( () => { - if ( !containerDiv.current ) return; + useEffect(() => { + if (!containerDiv.current) return; - if ( [ "@home", "@loading" ].includes( screen as string ) ) { + if (["@home", "@loading"].includes(screen as string)) { containerDiv.current.style.opacity = "1"; } else { let opacity = 0; - const cancelId = setInterval( () => { + const cancelId = setInterval(() => { opacity += 0.025; - containerDiv.current!.style.opacity = `${Math.min( opacity, 1 )}`; - if ( opacity >= 1 ) { - clearInterval( cancelId ); + containerDiv.current!.style.opacity = `${Math.min(opacity, 1)}`; + if (opacity >= 1) { + clearInterval(cancelId); } - }, 50 ); - return () => clearInterval( cancelId ); + }, 50); + return () => clearInterval(cancelId); } - }, [ screen ] ); + }, [screen]); - const renderComponent = ( component: Component ) => ( + const renderComponent = (component: Component) => ( @@ -695,9 +694,9 @@ const App = ( { components }: { components: Component[] } ) => { flexDirection: "column", }}> {components - .filter( ( c ) => c.snap === "top-left" ) - .sort( orderSort ) - .map( renderComponent )} + .filter((c) => c.snap === "top-left") + .sort(orderSort) + .map(renderComponent)}
    { flexGrow: 1, }}> {components - .filter( ( c ) => c.snap === "top" ) - .sort( orderSort ) - .map( renderComponent )} + .filter((c) => c.snap === "top") + .sort(orderSort) + .map(renderComponent)}
    { flexDirection: "column", }}> {components - .filter( ( c ) => c.snap === "top-right" ) - .sort( orderSort ) - .map( renderComponent )} + .filter((c) => c.snap === "top-right") + .sort(orderSort) + .map(renderComponent)}
    { // marginBottom: "var(--minimap-height)", }}> {components - .filter( ( c ) => c.snap === "left" ) - .sort( orderSort ) - .map( renderComponent )} + .filter((c) => c.snap === "left") + .sort(orderSort) + .map(renderComponent)}
    { flexGrow: 1, }}> {components - .filter( ( c ) => c.snap === "center" ) - .sort( orderSort ) - .map( renderComponent )} + .filter((c) => c.snap === "center") + .sort(orderSort) + .map(renderComponent)}
    { display: "flex", }}> {components - .filter( ( c ) => c.snap === "bottom" ) - .sort( orderSort ) - .map( renderComponent )} + .filter((c) => c.snap === "bottom") + .sort(orderSort) + .map(renderComponent)}
    {components - .filter( ( c ) => c.snap === "loose" ) - .sort( orderSort ) - .map( renderComponent )} + .filter((c) => c.snap === "loose") + .sort(orderSort) + .map(renderComponent)} ); @@ -801,9 +800,9 @@ class ErrorBoundary extends React.Component { children?: React.ReactNode; } = {}; - constructor( props: any ) { + constructor(props: any) { // eslint-disable-next-line @typescript-eslint/no-unsafe-argument - super( props ); + super(props); this.state = { hasError: false }; } @@ -811,12 +810,12 @@ class ErrorBoundary extends React.Component { return { hasError: true }; } - override componentDidCatch( error: any, errorInfo: any ) { - console.error( error, errorInfo ); + override componentDidCatch(error: any, errorInfo: any) { + console.error(error, errorInfo); } override render() { - if ( this.state.hasError ) { + if (this.state.hasError) { return <>☠️; } @@ -850,60 +849,60 @@ class ErrorBoundary extends React.Component { /** * Core of runtime, listens for messages from the plugin ui manager. */ -window.addEventListener( "message", function ( event: MessageEvent ) { - if ( event.data.type.startsWith( "system:" ) ) { - if ( event.data.type === "system:ready" ) { +window.addEventListener("message", function (event: MessageEvent) { + if (event.data.type.startsWith("system:")) { + if (event.data.type === "system:ready") { const payload = event.data.payload as SystemReadyMessage; - useStore.setState( payload.initialStore ); + useStore.setState(payload.initialStore); - updateDimensionsCss( payload.initialStore.dimensions ); + updateDimensionsCss(payload.initialStore.dimensions); - Object.assign( assets, payload.assets ); + Object.assign(assets, payload.assets); - Object.assign( enums, event.data.payload.enums ); + Object.assign(enums, event.data.payload.enums); - event.data.payload.plugins.forEach( _addPlugin ); - ReactDOM.render( , document.body ); - } else if ( event.data.type === "system:plugins-enabled" ) { - event.data.payload.forEach( _addPlugin ); - } else if ( event.data.type === "system:plugin-disabled" ) { - _removePlugin( event.data.payload as string ); - } else if ( event.data.type === "system:plugin-config-changed" ) { - useConfig.setState( { + event.data.payload.plugins.forEach(_addPlugin); + ReactDOM.render(, document.body); + } else if (event.data.type === "system:plugins-enabled") { + event.data.payload.forEach(_addPlugin); + } else if (event.data.type === "system:plugin-disabled") { + _removePlugin(event.data.payload as string); + } else if (event.data.type === "system:plugin-config-changed") { + useConfig.setState({ [event.data.payload.pluginId]: event.data.payload.config as object, - } ); - } else if ( event.data.type === "system:mouse-click" ) { + }); + } else if (event.data.type === "system:mouse-click") { const { clientX, clientY, button, shiftKey, ctrlKey } = event.data .payload as MouseEvent; - const element = document.elementFromPoint( clientX, clientY )!; - ReactTestUtils.Simulate.click( element, { + const element = document.elementFromPoint(clientX, clientY)!; + ReactTestUtils.Simulate.click(element, { button, shiftKey, ctrlKey, clientX, clientY, - } ); - } else if ( event.data.type === "system:custom-message" ) { + }); + } else if (event.data.type === "system:custom-message") { const { message, pluginId } = event.data.payload as { message: object; pluginId: string; }; const plugin = _plugins[pluginId]; - if ( plugin ) { - const event = new CustomEvent( "message", { detail: message } ); - plugin.messageHandler.dispatchEvent( event ); + if (plugin) { + const event = new CustomEvent("message", { detail: message }); + plugin.messageHandler.dispatchEvent(event); } } } else { - if ( event.data.type === "dimensions" ) { - updateDimensionsCss( event.data.payload as MinimapDimensions ); + if (event.data.type === "dimensions") { + updateDimensionsCss(event.data.payload as MinimapDimensions); } - useStore.setState( { [event.data.type]: event.data.payload as unknown } ); + useStore.setState({ [event.data.type]: event.data.payload as unknown }); } -} ); +}); -ReactDOM.render( , document.body ); +ReactDOM.render(, document.body); // const canvas = document.createElement("canvas"); // const offscreen = canvas.transferControlToOffscreen(); diff --git a/src/scenes/game-scene/game-scene.tsx b/src/scenes/game-scene/game-scene.tsx index 97e36ff1..b7fe5836 100644 --- a/src/scenes/game-scene/game-scene.tsx +++ b/src/scenes/game-scene/game-scene.tsx @@ -1,29 +1,45 @@ import { globalEvents } from "@core/global-events"; import { useEffect, useState } from "react"; import { InGameMenuScene } from "./ingame-menu-scene"; +import VRButtonReact from "@render/vr/vr-button-react"; +import { renderComposer } from "@render/index"; +import { Welcome } from "./welcome"; + + export const GameScene = () => { const [gameMenu, setGameMenu] = useState(false); + const [showWelcome, setShowWelcome] = useState( + localStorage.getItem("hideWelcome") !== "true" + ); useEffect(() => { const off = globalEvents.on("replay-complete", async () => { setGameMenu(true); }); - const evtListener = ( evt: KeyboardEvent ) => { - if ( evt.key === "Escape" && document.pointerLockElement === null ) { + const evtListener = (evt: KeyboardEvent) => { + if (evt.key === "Escape" && document.pointerLockElement === null) { setGameMenu(!gameMenu); } }; - window.addEventListener( "keydown", evtListener ); + window.addEventListener("keydown", evtListener); return () => { off(); - window.removeEventListener( "keydown", evtListener ); - } - + window.removeEventListener("keydown", evtListener); + }; }, []); - return <>{gameMenu && setGameMenu(false)} />}; + return ( + <> + {gameMenu && setGameMenu(false)} />} + {showWelcome && { + setShowWelcome(false); + localStorage.setItem("hideWelcome", "true"); + }} />} + + + ); }; diff --git a/src/scenes/game-scene/help.tsx b/src/scenes/game-scene/help.tsx new file mode 100644 index 00000000..6cb3cd23 --- /dev/null +++ b/src/scenes/game-scene/help.tsx @@ -0,0 +1,74 @@ +import { HotkeyTrigger, HotkeyTriggerDTO } from "@macros/hotkey-trigger"; +import { useMacroStore } from "@stores/settings-store"; +import { TriggerType } from "common/types"; + +type HelpProps = { + onClose: () => void; +}; +export const Help = ({ onClose }: HelpProps) => { + const macros = useMacroStore((store) => store.macros.macros).filter( + (macro) => macro.enabled && macro.trigger.type === TriggerType.Hotkey + ); + + return ( +
    +
    { + evt.preventDefault(); + evt.stopPropagation(); + onClose(); + }}> + Back +
    +

    Help

    +
    + Visit{" "} + + blacksheepwall.tv + {" "} + for more information. +
    +
    + + + + + + + {macros.map((macro) => { + const trigger = HotkeyTrigger.deserialize( + macro.trigger.value as HotkeyTriggerDTO + ); + return ( + + + + + + ); + })} +
    KeyMacroDescription
    {trigger.stringify()}{macro.name}{macro.description}
    +
    +
    + ); +}; diff --git a/src/scenes/game-scene/ingame-menu-scene.tsx b/src/scenes/game-scene/ingame-menu-scene.tsx index 356cad89..6b812de6 100644 --- a/src/scenes/game-scene/ingame-menu-scene.tsx +++ b/src/scenes/game-scene/ingame-menu-scene.tsx @@ -3,14 +3,17 @@ import { useReplayAndMapStore } from "@stores/replay-and-map-store"; import sceneStore from "@stores/scene-store"; import { HomeScene } from "../../scenes/home-scene"; import { InGameMenuButton } from "./ingame-menu-button"; +import VRButtonReact from "@render/vr/vr-button-react"; +import { renderComposer } from "@render/index"; +import { useState } from "react"; +import { Help } from "./help"; - -export const InGameMenuScene = ({ onClose }: { onClose: () => void }) => { - const queued = useReplayAndMapStore( ( store ) => store.getNextReplay() ); +export const InGameMenuScene = ({ onClose }: { onClose: () => void }) => { + const [showHelp, setShowHelp] = useState(false); + const queued = useReplayAndMapStore((store) => store.getNextReplay()); return (
    onClose()} style={{ position: "absolute", left: 0, @@ -23,41 +26,97 @@ export const InGameMenuScene = ({ onClose }: { onClose: () => void }) => { alignItems: "center", userSelect: "none", }}> -
    - {queued && ( - - useReplayAndMapStore.getState().loadNextReplay() - }> - Play Next - - )} - {/* */} - gameStore().openConfigurationWindow()}> - - - - - Control Panel - - - sceneStore().loadScene( new HomeScene() ) - }> - - - Exit to Home Scene +
    + onClose()} + xmlns="http://www.w3.org/2000/svg" + fill="none" + viewBox="0 0 24 24" + strokeWidth={1.5} + stroke="white" + style={{ width: "24px", float: "right", cursor: "pointer" }}> + + - - + {showHelp && setShowHelp(false)} />} + {!showHelp && ( +
    + setShowHelp(true)}> + Help + + {queued && ( + + useReplayAndMapStore.getState().loadNextReplay() + }> + Play Next + + )} + {/* */} + gameStore().openConfigurationWindow()}> + + + + + Control Panel + + + sceneStore().loadScene(new HomeScene())}> + + + {" "} + Exit to Home + +
    + )}
    ); -}; \ No newline at end of file +}; diff --git a/src/scenes/game-scene/welcome.tsx b/src/scenes/game-scene/welcome.tsx new file mode 100644 index 00000000..234b5365 --- /dev/null +++ b/src/scenes/game-scene/welcome.tsx @@ -0,0 +1,66 @@ + +export const Welcome = ({onClose} : {onClose: () => void}) => { + + return ( +
    +

    + Welcome! 🫶 +

    +
    +

    This has been a labor of love and I hope you enjoy your time here!

    +

    Press ESC for the menu / help / options.

    +

    Camera mode: press 1, 2, 3 or 4 on your keyboard.

    +

    1 - Standard Camera

    +

    2 - 360 Camera

    +

    3 - Overview Camera

    +

    4 - Auto Observer Camera ( you are here)

    +

    + + + + Click here to close this message. +

    +
    +
    ) +}; \ No newline at end of file diff --git a/src/scenes/home/open-file-button.tsx b/src/scenes/home/open-file-button.tsx index cb0088e2..0980ee80 100644 --- a/src/scenes/home/open-file-button.tsx +++ b/src/scenes/home/open-file-button.tsx @@ -37,7 +37,6 @@ export const OpenFileButton = ( background="var(--gray-5)" color="var(--gray-9)" onClick={() => { - console.log(inputRef.current) if ( inputRef.current ) { inputRef.current.click(); } @@ -65,7 +64,6 @@ export const OpenFileButton = ( multiple accept=".rep,.scm,.scx" onChange={async ( evt ) => { - console.log(evt.target.files) evt.preventDefault(); if ( evt.target.files ) { const files = []; diff --git a/src/scenes/home/replay-queue-list.tsx b/src/scenes/home/replay-queue-list.tsx index ab5efb26..c5715b5e 100644 --- a/src/scenes/home/replay-queue-list.tsx +++ b/src/scenes/home/replay-queue-list.tsx @@ -51,7 +51,7 @@ export const ReplayQueueList = () => { justifyContent: "center", alignItems: "center", borderRadius: "10px", - padding: "var(--size-6) var(--size-4);", + padding: "var(--size-6) var(--size-4)", }}>

    Todays Matches

    diff --git a/src/scenes/home/space-scene.ts b/src/scenes/home/space-scene.ts index 78b7a299..bb6b5d34 100644 --- a/src/scenes/home/space-scene.ts +++ b/src/scenes/home/space-scene.ts @@ -38,7 +38,6 @@ import { createWraithNoise, playRemix, WraithNoise } from "./wraith-noise"; import { createWraiths } from "./wraiths"; import { CameraState, CAMERA_ROTATE_SPEED, createCamera } from "./camera"; import processStore from "@stores/process-store"; -import { VRButton } from "@render/vr/vr-button"; CameraControls.install( { THREE: THREE } ); @@ -274,10 +273,6 @@ export async function createWraithScene() { _sceneResizeHandler(); - if (import.meta.env.DEV) { - document.body.appendChild( janitor.mop(VRButton.createButton( renderComposer.glRenderer )) ); - } - return { dispose: () => janitor.dispose(), resize: _sceneResizeHandler, diff --git a/src/scenes/map-scene.tsx b/src/scenes/map-scene.tsx index 5df6569c..cbea91fc 100644 --- a/src/scenes/map-scene.tsx +++ b/src/scenes/map-scene.tsx @@ -80,6 +80,7 @@ export class MapScene implements TRScene { ( openBW: OpenBW ) => { openBW.setUnitLimits( 1700 ); openBW.loadMap( dBuffer ); + openBW.setReplayFrameListener(() => {}); const mapPlayers: BasePlayer[] = []; const p = new PlayerBufferViewIterator( openBW ); diff --git a/src/scenes/replay-scene.tsx b/src/scenes/replay-scene.tsx index 2976f33b..eff4d875 100644 --- a/src/scenes/replay-scene.tsx +++ b/src/scenes/replay-scene.tsx @@ -1,13 +1,12 @@ import { TRScene, TRSceneID } from "./scene"; -import { CMDS } from "process-replay"; import { CommandsStream } from "process-replay"; import Chk from "bw-chk"; import { OpenBW } from "@openbw/openbw"; -import { GameTypes } from "common/enums"; +import { GameTypes, unitTypes } from "common/enums"; import { log } from "@ipc/log"; import { settingsStore } from "@stores/settings-store"; import processStore from "@stores/process-store"; @@ -15,18 +14,18 @@ import { startOpenBWAndWorld } from "./start-openbw-and-world"; import { Janitor } from "three-janitor"; import { useReplayAndMapStore } from "@stores/replay-and-map-store"; // import { cleanMapTitles } from "@utils/chk-utils"; -import { preloadMapUnitsAndSpriteFiles } from "@utils/preload-map-units-and-sprites"; +import { calculateImagesFromTechTreeUnits, preloadMapUnitsAndSpriteFiles } from "@utils/preload-map-units-and-sprites"; import gameStore from "@stores/game-store"; import { globalEvents } from "@core/global-events"; import debounce from "lodash.debounce"; import { music } from "@audio/music"; import { cleanMapTitles, createMapImage } from "@utils/chk-utils"; import { pluginsStore } from "@stores/plugins-store"; -import { calculateImagesFromUnitsIscript } from "@utils/images-from-iscript"; import { ValidatedReplay } from "./load-and-validate-replay"; import { GameScene } from "./game-scene/game-scene"; import { getWraithSurface } from "./home/space-scene"; import { MatchDisplay } from "./home/match-display"; +import { calculateImagesFromUnitsIscript } from "@utils/images-from-iscript"; export class ReplayScene implements TRScene { id: TRSceneID = "@replay"; @@ -91,50 +90,28 @@ export class ReplayScene implements TRScene { "reset replay and map store" ); - // if (settingsStore().data.graphics.preloadMapSprites) { - // const preloadCommandUnits = new Set(); - // const postLoad = new Set(); - - // const preloadCommands = new CommandsStream( - // this.replay.rawCmds, - // this.replay.stormPlayerToGamePlayer - // ); - // const preloadCommandTypes = [ - // CMDS.TRAIN.id, - // CMDS.UNIT_MORPH.id, - // CMDS.BUILDING_MORPH.id, - // CMDS.BUILD.id, - // ]; - - // let preOrPost = 0; - - // for (const command of preloadCommands.generate()) { - // if (typeof command !== "number") { - // if (preloadCommandTypes.includes(command.id)) { - // for (const imageId of calculateImagesFromUnitsIscript( - // gameStore().assets!.bwDat, - // [command.unitTypeId!] - // )) { - // if (preOrPost === 0) { - // preloadCommandUnits.add(imageId); - // } else { - // postLoad.add(imageId); - // } - // } - // } - // } else { - // // preload up to 1 minute of commands - // if (command > 1 * 24 * 60) { - // preOrPost = 1; - // } - // } - // } - - // await preloadMapUnitsAndSpriteFiles(gameStore().assets!, map, [ - // ...preloadCommandUnits, - // ]); - - // } + const preloads = new Set(); + if (settingsStore().data.graphics.preloadMapSprites) { + + for (const player of this.replay.header.players) { + if (player.race === "zerg") { + preloads.add( unitTypes.hatchery ); + preloads.add( unitTypes.drone ); + preloads.add( unitTypes.overlord ); + preloads.add( unitTypes.larva ); + preloads.add( unitTypes.zergEgg ); + } else if (player.race === "terran") { + preloads.add( unitTypes.commandCenter ); + preloads.add( unitTypes.scv ); + } else if (player.race === "protoss") { + preloads.add( unitTypes.nexus ); + preloads.add( unitTypes.probe ); + } + }; + + } + + await preloadMapUnitsAndSpriteFiles(gameStore().assets!, map, [...preloads]); const commands = new CommandsStream( this.replay.rawCmds as Buffer, @@ -159,34 +136,6 @@ export class ReplayScene implements TRScene { async (worldComposer) => { const openBW = worldComposer.world.openBW; - openBW.setGameSpeed(64); - - openBW.setReplayFrameListener( () => { - worldComposer.preRunFrame(); - }) - - const preloadImages = new Set(); - if (settingsStore().data.graphics.preloadMapSprites) { - let i = 0; - while (openBW.nextFrameSafe() < this.replay.header.frameCount ) { - // worldComposer.preRunFrame(); - i = i + 1; - if ( i > 20) { - break; - } - for (const sprite of openBW.iterators.sprites) { - for ( const imgAddr of sprite.images.reverse() ) { - const imageStruct = openBW.structs.image.get( imgAddr ); - preloadImages.add(imageStruct.typeId); - } - } - } - } - - await preloadMapUnitsAndSpriteFiles(gameStore().assets!, map, [ - ...preloadImages, - ]); - const emitComplete = debounce(() => { openBW.setReplayFrameListener(() => {}); console.log("GG WP"); @@ -201,9 +150,7 @@ export class ReplayScene implements TRScene { emitComplete(); } }); - openBW.setCurrentReplayFrame( 0 ); - - // worldComposer.preRunComplete(); + } ); diff --git a/src/stores/deep-store.ts b/src/stores/deep-store.ts index 907bd840..8524d50e 100644 --- a/src/stores/deep-store.ts +++ b/src/stores/deep-store.ts @@ -47,8 +47,17 @@ export function createDeepStore>( { const getValue = ( path: string[] ) => lGet( store, path ) as unknown; - const setValue = ( path: string[], value: any ) => { - merge( lSet>( {}, path, value ), path, value ); + /** + * Merge changes to our deep store + * Typically we want a copy so that it can be diffed against the change, but this incurs quite a cost + * So we provide the option to "silentUpdate" to avoid this cost. Only use if performance critical. + */ + const setValue = ( path: string[], value: any, silentUpdate = false ) => { + if (silentUpdate) { + lSet>( store, path, value ); + } else { + merge( lSet>( {}, path, value ), path, value ); + } }; return { @@ -61,7 +70,7 @@ export function createDeepStore>( { export interface DeepStore { getState: () => T; - setValue: ( path: string[], value: unknown ) => void; + setValue: ( path: string[], value: unknown, silentUpdate?: boolean ) => void; getValue: ( path: string[] ) => unknown; merge: ( rhs: DeepPartial ) => void; } diff --git a/src/stores/operatable-store.ts b/src/stores/operatable-store.ts index 67de129d..b46cadcb 100644 --- a/src/stores/operatable-store.ts +++ b/src/stores/operatable-store.ts @@ -7,7 +7,7 @@ import { SourceOfTruth } from "./source-of-truth"; export type MutationVariable = ReturnType>; export const createMutationVariable = - ( operate: ( operation: Operation ) => void, getValue: ( path: string[] ) => unknown ) => + ( operate: OperationRequest, getValue: ( path: string[] ) => unknown ) => ( path: string[] ) => { const _data: { value: unknown; @@ -19,10 +19,10 @@ export const createMutationVariable = operator: Operator.Set, }; - const apply = ( operator: Operator, value?: any ) => { + const apply = ( operator: Operator, value?: any, silentUpdate = false ) => { _data.operator = operator; _data.value = value; - operate( _data ); + operate( _data, x => x, silentUpdate ); }; const fn = function ( value?: unknown ) { @@ -69,11 +69,50 @@ export const createMutationVariable = * Reset the value of the property to the default. */ toggle: () => apply( Operator.Toggle ), + + // silent update variants + + $set: ( value: any ) => apply( Operator.Set, value, true ), + + /** + * Increase the value of the property. + */ + $inc: () => apply( Operator.Increase, null, true ), + /** + * Increase the value of the property. Loop around if the value is greater than the maximum. + */ + $incCycle: () => apply( Operator.IncreaseCycle, null, true ), + /** + * Decrease the value of the property. + */ + $dec: () => apply( Operator.Decrease, null, true ), + /** + * Decrease the value of the property. Loop around if the value is less than the minimum. + */ + $decCycle: () => apply( Operator.DecreaseCycle, null, true ), + /** + * Set the value of the property to the minimum. + */ + $min: () => apply( Operator.Min, null, true ), + /** + * Set the value of the property to the maximum. + */ + $max: () => apply( Operator.Max, null, true ), + /** + * Reset the value of the property to the default. + */ + $reset: () => apply( Operator.SetToDefault, null, true ), + /** + * Reset the value of the property to the default. + */ + $toggle: () => apply( Operator.Toggle, null, true ), } ); }; +type OperationRequest = ( action: Operation, transformPath?: ( path: string[] ) => string[], silentUpdate?: boolean ) => void; + export type OperatableStore = DeepStore & { - operate: ( action: Operation, transformPath?: ( path: string[] ) => string[] ) => void; + operate: OperationRequest; createVariable: ( path: string[] ) => MutationVariable; sourceOfTruth: SourceOfTruth; }; @@ -98,7 +137,9 @@ export function createOperatableStore( const operate = ( operation: Operation, - transformPath: ( path: string[] ) => string[] = ( x ) => x + // this should probably belong to the store itself + transformPath: ( path: string[] ) => string[] = ( x ) => x, + silentUpdate = false ) => { const path = transformPath( operation.path ); @@ -112,7 +153,8 @@ export function createOperatableStore( field, operation.value, sourceOfTruth.getValue( path ) - ) + ), + silentUpdate ); } else { log.warn( "Session field is no found." ); diff --git a/src/stores/plugin-repository.ts b/src/stores/plugin-repository.ts index 096d29ed..c8d98170 100644 --- a/src/stores/plugin-repository.ts +++ b/src/stores/plugin-repository.ts @@ -29,7 +29,7 @@ const defaultReplayPlugins = [ "@titan-reactor-plugins/unit-selection-display", "@titan-reactor-plugins/production-bar", "@titan-reactor-plugins/unit-sounds", - // "@titan-reactor-plugins/narrative-maker", + "@titan-reactor-plugins/auto-observer", "@titan-reactor-plugins/vr-controller", ]; @@ -146,7 +146,7 @@ export class PluginsRepository { let isSceneController = false; const hostFile = plugin.files.includes("host.js") - ? await fetch(`${pluginRootUrl}/dist/host.js`) + ? await fetch(urlJoin(pluginRootUrl, "dist", "host.js")) .then(async (r) => { isSceneController = (await r.text()).includes("onEnterScene"); return true; @@ -155,16 +155,14 @@ export class PluginsRepository { : null; const uiFile = plugin.files.includes("ui.js") - ? await fetch(`${pluginRootUrl}/dist/ui.js`) + ? await fetch(urlJoin(pluginRootUrl, "dist", "ui.js")) .then(() => true) .catch(() => false) : ""; - const readme = plugin.files.includes("readme.md") - ? await fetch(`${pluginRootUrl}/readme.md`) + const readme = await fetch(urlJoin(pluginRootUrl, "readme.md")) .then((r) => r.text()) .catch(() => undefined) - : undefined; const config = packageJSON.config ?? {}; diff --git a/src/utils/ses-util.ts b/src/utils/create-compartment.ts similarity index 100% rename from src/utils/ses-util.ts rename to src/utils/create-compartment.ts diff --git a/src/utils/data-structures/iterable-set.ts b/src/utils/data-structures/iterable-set.ts index 0701e935..e9be103d 100644 --- a/src/utils/data-structures/iterable-set.ts +++ b/src/utils/data-structures/iterable-set.ts @@ -59,6 +59,10 @@ export class IterableSet { this.onChange( this.#copy ); } + get(index: number) { + return this.#copy[index]; + } + [Symbol.iterator]() { return this.#copy[Symbol.iterator](); } diff --git a/src/utils/function-utils.ts b/src/utils/function-utils.ts index c4dc7643..ab2c5741 100644 --- a/src/utils/function-utils.ts +++ b/src/utils/function-utils.ts @@ -1,4 +1,4 @@ -import { PluginConfig } from "common/types"; +import type { PluginConfig } from "common/types"; export function inverse any>( fn: T ) { return ( ...args: Parameters ) => !fn( ...args ); diff --git a/src/utils/preload-map-units-and-sprites.ts b/src/utils/preload-map-units-and-sprites.ts index 1d45d150..0fb017f7 100644 --- a/src/utils/preload-map-units-and-sprites.ts +++ b/src/utils/preload-map-units-and-sprites.ts @@ -11,29 +11,38 @@ import { techTree } from "common/enums"; export const preloadMapUnitsAndSpriteFiles = async ( assets: Assets, map: Pick, - extraImages: number[] = [] + extraUnits: number[] = [] ) => { + const unitImages = [...calculateImagesFromTechTreeUnits(extraUnits), ...calculateImagesFromUnitsIscript(assets.bwDat, extraUnits)]; + const unitSprites = new Set( map.units.map( ( u ) => u.sprite ).filter( ( s ) => Number.isInteger( s ) ) as number[] ); const allSprites = [ ...new Set( [...unitSprites, ...map.sprites.map( ( s ) => s.spriteId )] ), ]; - const allImages = [ ...calculateImagesFromSpritesIscript( assets.bwDat, allSprites ), ...extraImages]; + const allImages = [ ...calculateImagesFromSpritesIscript( assets.bwDat, allSprites ), ...unitImages]; const preload = processStore().create( "preload", allImages.length ); await Promise.all( allImages.map( ( imageId ) => assets - .loadImageImmediate( imageId )//, assets.bwDat ) + .loader.loadImageImmediate( imageId ) .then( () => preload.increment() ) ) ); }; +const _unit: number[] = []; +export const calculateImagesFromTechTreeUnit = ( unit: number , + cache?: Set ) => { + _unit[0] = unit; + return calculateImagesFromTechTreeUnits( _unit, cache ); +}; + export const calculateImagesFromTechTreeUnits = ( units: number[], cache?: Set diff --git a/src/utils/types/plugin-host-types.d.ts b/src/utils/types/plugin-host-types.d.ts deleted file mode 100644 index b37fb680..00000000 --- a/src/utils/types/plugin-host-types.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -import type { Janitor } from "three-janitor"; -import type * as PostProcessing from "postprocessing"; -import type CameraControls from "camera-controls"; - -declare global { - const enums: any; - const cameraControls: CameraControls; - const THREE: typeof THREE; - const Janitor: Janitor; - const postprocessing: typeof PostProcessing; -} - -export {}; diff --git a/src/utils/types/plugin-host-types.ts b/src/utils/types/plugin-host-types.ts index 070f7239..d95ef76d 100644 --- a/src/utils/types/plugin-host-types.ts +++ b/src/utils/types/plugin-host-types.ts @@ -2,6 +2,7 @@ export { PluginBase } from "../../plugins/plugin-base"; export { SceneController } from "../../plugins/scene-controller"; -export {enums} from "../../common/enums/enumsbundle"; +export { VRSceneController } from "../../plugins/vr-controller"; +export { enums } from "../../common/enums/enumsbundle"; export type context = any; \ No newline at end of file diff --git a/src/utils/types/plugin-host.ts b/src/utils/types/plugin-host.ts new file mode 100644 index 00000000..3fd9f15a --- /dev/null +++ b/src/utils/types/plugin-host.ts @@ -0,0 +1,7 @@ +// should match wrapInGlobal for build-api-types/index.ts and ses-util.ts Compartment globals +export * as enums from "../../common/enums/enumsbundle"; +export { PluginBase } from "../../plugins/plugin-base"; +export { SceneController } from "../../plugins/scene-controller"; +export { VRSceneController } from "../../plugins/vr-controller"; + +export type context = any; \ No newline at end of file diff --git a/tsconfig.declaration.json b/tsconfig.declaration.json new file mode 100644 index 00000000..1a7f732c --- /dev/null +++ b/tsconfig.declaration.json @@ -0,0 +1,11 @@ + + + +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "emitDeclarationOnly": true, + "declaration": true, + "outDir": "./dist/titan-reactor-types", + } +} \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 973be0ff..98a7af8e 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,15 +1,13 @@ { "compilerOptions": { - "target": "ES2020", - "module": "ES2020", + "target": "ES2022", + "module": "ES2022", "moduleResolution": "Node", "noImplicitOverride": true, "allowJs": true, "checkJs": false, "allowSyntheticDefaultImports": true, - "emitDecoratorMetadata": true, "esModuleInterop": true, - "experimentalDecorators": true, "jsx": "react-jsx", "strict": true, @@ -18,13 +16,10 @@ "isolatedModules": false, "strictPropertyInitialization": true, "forceConsistentCasingInFileNames": true, - "lib": ["DOM", "DOM.Iterable", "ESNext"], + "lib": ["DOM", "DOM.Iterable", "ES2022", "ES2021.WeakRef"], "noErrorTruncation": true, "noUncheckedIndexedAccess": false, - "declaration": true, - "declarationDir": "./dist/types", - "noUnusedLocals": true, "noUnusedParameters": true, @@ -32,6 +27,8 @@ "sourceMap": true, "removeComments": false, + "declaration": true, + "baseUrl": "src", "paths": { "common/*": ["common/*"], @@ -60,7 +57,7 @@ }, "typeRoots": ["./src/common/types/declarations", "./node_modules/@types"], - "outDir": "generated", + "resolveJsonModule": true }, "include": ["src/**/*"], diff --git a/vite.config.web.ts b/vite.config.web.ts index b7f257ee..5584358c 100644 --- a/vite.config.web.ts +++ b/vite.config.web.ts @@ -13,8 +13,6 @@ const TARGET = tsConfig.compilerOptions.target; export default defineConfig((env) => { return { ...sharedViteConfig(), - // titan-reactor is the subfolder in the black-sheep-wall public dir - base: env.command === "build" ? "/" : "/", define: { __static: JSON.stringify(env.command === "build" ? "" : "/bundled"), }, @@ -31,7 +29,7 @@ export default defineConfig((env) => { }, }, minify: false, //env.command === "build", - sourcemap: false, //env.command === "build", + sourcemap: false,//env.command === "build", }, esbuild: { target: TARGET, @@ -47,6 +45,6 @@ export default defineConfig((env) => { port: pkg.debug.env.VITE_DEV_SERVER_PORT, // https: true, hmr: false, - }, + } }; }); diff --git a/yarn.lock b/yarn.lock index ef29fa2e..89ed7b27 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1362,14 +1362,14 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== -"@ts-morph/common@~0.17.0": - version "0.17.0" - resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.17.0.tgz#de0d405df10857907469fef8d9363893b4163fd1" - integrity sha512-RMSSvSfs9kb0VzkvQ2NWobwnj7TxCA9vI/IjR9bDHqgAyVbu2T0DN4wiKVqomyDWqO7dPr/tErSfq7urQ1Q37g== +"@ts-morph/common@~0.21.0": + version "0.21.0" + resolved "https://registry.yarnpkg.com/@ts-morph/common/-/common-0.21.0.tgz#30272bde654127326d8b73643b9a8de280135fb4" + integrity sha512-ES110Mmne5Vi4ypUKrtVQfXFDtCsDXiUiGxF6ILVlE90dDD4fdpC1LSjydl/ml7xJWKSDZwUYD2zkOePMSrPBA== dependencies: - fast-glob "^3.2.11" - minimatch "^5.1.0" - mkdirp "^1.0.4" + fast-glob "^3.2.12" + minimatch "^7.4.3" + mkdirp "^2.1.6" path-browserify "^1.0.1" "@tsconfig/node10@^1.0.7": @@ -1425,13 +1425,6 @@ dependencies: "@babel/types" "^7.3.0" -"@types/bl@^5.0.2": - version "5.1.0" - resolved "https://registry.yarnpkg.com/@types/bl/-/bl-5.1.0.tgz#d699916f032474feae849a2a77637e0c0170dc8a" - integrity sha512-VXd3oG66/bay2tlApl0U3BrdkGop68tYTzybJO2xzAtLFk6ULWKIm+UGbrG9Ev8t+yuQd2uUm2m6wUP8XO8mfA== - dependencies: - bl "*" - "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -2374,15 +2367,6 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bl@*, bl@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/bl/-/bl-6.0.1.tgz#f35547d073b5f920512943a3fe0ec9ad5854fcb7" - integrity sha512-zk1P1eAEBHhhB+4NfGxqmuV6NgwECnIoRgsOq2ObdEsmoFVIYzJ/Jjcgaj7JOY/8ekH27bIHSV4Si2T+evqu+Q== - dependencies: - buffer "^6.0.3" - inherits "^2.0.4" - readable-stream "^4.2.0" - bl@^1.0.1: version "1.2.3" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.3.tgz#1e8dd80142eac80d7158c9dccc047fb620e035e7" @@ -2400,6 +2384,15 @@ bl@^5.0.0: inherits "^2.0.4" readable-stream "^3.4.0" +bl@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/bl/-/bl-6.0.1.tgz#f35547d073b5f920512943a3fe0ec9ad5854fcb7" + integrity sha512-zk1P1eAEBHhhB+4NfGxqmuV6NgwECnIoRgsOq2ObdEsmoFVIYzJ/Jjcgaj7JOY/8ekH27bIHSV4Si2T+evqu+Q== + dependencies: + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^4.2.0" + bl@^6.0.7: version "6.0.7" resolved "https://registry.yarnpkg.com/bl/-/bl-6.0.7.tgz#1ee70a88044ad3ca9219a6ff94206a193dd4c39d" @@ -2529,10 +2522,10 @@ camelcase@^6.2.0: resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -camera-controls@1.37.2: - version "1.37.2" - resolved "https://registry.yarnpkg.com/camera-controls/-/camera-controls-1.37.2.tgz#12d808c98b3fea1fffd72c8dfeb024f2495ab307" - integrity sha512-b+8DYJc/honm3b/PzjTQbVjsnkdgiDnI44/PRAWKlLhF0lzggGtaU9ZSGRM/lll2HkF0KN+OHx/ZN80wJmEbqA== +camera-controls@2.7.3: + version "2.7.3" + resolved "https://registry.yarnpkg.com/camera-controls/-/camera-controls-2.7.3.tgz#99e0449f68d203bf5f98f6c4ac0021c10b5c13a8" + integrity sha512-L4mxjBd3u8qiOLozdWrH2P8ZybSsDXBF7iyNyqNEFJhPUkovmuARWR8JTc1B/qlclOIg6FvZZA/0uAZMMim0mw== caniuse-lite@^1.0.30001449: version "1.0.30001480" @@ -2624,10 +2617,10 @@ co@^4.6.0: resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== -code-block-writer@^11.0.3: - version "11.0.3" - resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-11.0.3.tgz#9eec2993edfb79bfae845fbc093758c0a0b73b76" - integrity sha512-NiujjUFB4SwScJq2bwbYUtXbZhBSlY6vYzm++3Q6oC+U+injTqfPYFK8wS9COOmb2lueqp0ZRB4nK1VYeHgNyw== +code-block-writer@^12.0.0: + version "12.0.0" + resolved "https://registry.yarnpkg.com/code-block-writer/-/code-block-writer-12.0.0.tgz#4dd58946eb4234105aff7f0035977b2afdc2a770" + integrity sha512-q4dMFMlXtKR3XNBHyMHt/3pwYNA69EDk00lloMOaaUMKPUXBw6lpXtbu3MMVG6/uOihGnRDOlkyqsONEUj60+w== collect-v8-coverage@^1.0.0: version "1.0.1" @@ -3747,10 +3740,10 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.2.12" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" - integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== +fast-glob@^3.2.12: + version "3.3.1" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -3758,10 +3751,10 @@ fast-glob@^3.2.11, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^3.2.12: - version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== +fast-glob@^3.2.9: + version "3.2.12" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" + integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -5778,13 +5771,20 @@ minimatch@^3.0.0, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatc dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1, minimatch@^5.1.0: +minimatch@^5.0.1: version "5.1.6" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" +minimatch@^7.4.3: + version "7.4.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" + integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw== + dependencies: + brace-expansion "^2.0.1" + minimatch@^9.0.3: version "9.0.3" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" @@ -5819,10 +5819,10 @@ mkdirp@^0.5.1, mkdirp@^0.5.6: dependencies: minimist "^1.2.6" -mkdirp@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" - integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +mkdirp@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-2.1.6.tgz#964fbcb12b2d8c5d6fbc62a963ac95a273e2cc19" + integrity sha512-+hEnITedc8LAtIP9u3HJDFIdcLV2vXP33sqLLIzkv1Db1zO/1OxbvYf0Y1OC/S/Qo5dxHXepofhmxL02PsKe+A== moo@^0.5.2: version "0.5.2" @@ -7373,13 +7373,13 @@ ts-jest@^29.0.1: semver "7.x" yargs-parser "^21.0.1" -ts-morph@^16.0.0: - version "16.0.0" - resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-16.0.0.tgz#35caca7c286dd70e09e5f72af47536bf3b6a27af" - integrity sha512-jGNF0GVpFj0orFw55LTsQxVYEUOCWBAbR5Ls7fTYE5pQsbW18ssTb/6UXx/GYAEjS+DQTp8VoTw0vqYMiaaQuw== +ts-morph@^20.0.0: + version "20.0.0" + resolved "https://registry.yarnpkg.com/ts-morph/-/ts-morph-20.0.0.tgz#c46b4c231dfc93347091901f1f9a3e13413230fd" + integrity sha512-JVmEJy2Wow5n/84I3igthL9sudQ8qzjh/6i4tmYCm6IqYyKFlNbJZi7oBdjyqcWSWYRu3CtL0xbT6fS03ESZIg== dependencies: - "@ts-morph/common" "~0.17.0" - code-block-writer "^11.0.3" + "@ts-morph/common" "~0.21.0" + code-block-writer "^12.0.0" ts-node@^10.9.1: version "10.9.1" @@ -7505,10 +7505,10 @@ typedoc@^0.25.1: minimatch "^9.0.3" shiki "^0.14.1" -typescript@^4.8.4: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== +typescript@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" + integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6"