UNPKG

isaacscript-common

Version:

Helper functions and features for IsaacScript mods.

79 lines 3.94 kB
import { CopyableIsaacAPIClassType } from "isaac-typescript-definitions"; import type { SerializedBitSet128 } from "../functions/bitSet128"; import { copyBitSet128, deserializeBitSet128, isBitSet128, isSerializedBitSet128, serializeBitSet128 } from "../functions/bitSet128"; import type { SerializedColor } from "../functions/color"; import { copyColor, deserializeColor, isColor, isSerializedColor, serializeColor } from "../functions/color"; import type { SerializedKColor } from "../functions/kColor"; import { copyKColor, deserializeKColor, isKColor, isSerializedKColor, serializeKColor } from "../functions/kColor"; import type { SerializedRNG } from "../functions/rng"; import { copyRNG, deserializeRNG, isRNG, isSerializedRNG, serializeRNG } from "../functions/rng"; import type { SerializedVector } from "../functions/vector"; import { copyVector, deserializeVector, isSerializedVector, isVector, serializeVector } from "../functions/vector"; /** A type representing an Isaac API class that can be safely copied or serialized. */ export type CopyableIsaacAPIClass = BitSet128 | Color | KColor | RNG | Vector; /** * A type representing an Isaac API class like `Color` or `RNG` that has been written to the * "save#.dat" file. It is used by the save data manager when reading and writing to that file. * * For the list of supported classes, see the `CopyableIsaacAPIClassType` enum. */ export type SerializedIsaacAPIClass = SerializedBitSet128 | SerializedColor | SerializedKColor | SerializedRNG | SerializedVector; export interface IsaacAPIClassTypeToType { [CopyableIsaacAPIClassType.BIT_SET_128]: BitSet128; [CopyableIsaacAPIClassType.COLOR]: Color; [CopyableIsaacAPIClassType.K_COLOR]: KColor; [CopyableIsaacAPIClassType.RNG]: RNG; [CopyableIsaacAPIClassType.VECTOR]: Vector; } export interface IsaacAPIClassTypeToSerializedType { [CopyableIsaacAPIClassType.BIT_SET_128]: SerializedBitSet128; [CopyableIsaacAPIClassType.COLOR]: SerializedColor; [CopyableIsaacAPIClassType.K_COLOR]: SerializedKColor; [CopyableIsaacAPIClassType.RNG]: SerializedRNG; [CopyableIsaacAPIClassType.VECTOR]: SerializedVector; } export interface IsaacAPIClassTypeFunctions<T, SerializedT> { is: (object: unknown) => object is T; isSerialized: (object: unknown) => object is SerializedT; copy: (object: T) => T; serialize: (object: T) => SerializedT; deserialize: (object: SerializedT) => T; } export declare const ISAAC_API_CLASS_TYPE_TO_FUNCTIONS: { readonly BitSet128: { readonly is: typeof isBitSet128; readonly isSerialized: typeof isSerializedBitSet128; readonly copy: typeof copyBitSet128; readonly serialize: typeof serializeBitSet128; readonly deserialize: typeof deserializeBitSet128; }; readonly Color: { readonly is: typeof isColor; readonly isSerialized: typeof isSerializedColor; readonly copy: typeof copyColor; readonly serialize: typeof serializeColor; readonly deserialize: typeof deserializeColor; }; readonly KColor: { readonly is: typeof isKColor; readonly isSerialized: typeof isSerializedKColor; readonly copy: typeof copyKColor; readonly serialize: typeof serializeKColor; readonly deserialize: typeof deserializeKColor; }; readonly RNG: { readonly is: typeof isRNG; readonly isSerialized: typeof isSerializedRNG; readonly copy: typeof copyRNG; readonly serialize: typeof serializeRNG; readonly deserialize: typeof deserializeRNG; }; readonly Vector: { readonly is: typeof isVector; readonly isSerialized: typeof isSerializedVector; readonly copy: typeof copyVector; readonly serialize: typeof serializeVector; readonly deserialize: typeof deserializeVector; }; }; //# sourceMappingURL=isaacAPIClassTypeToFunctions.d.ts.map