classicborne
    Preparing search index...

    Class BaseLevel<E>

    Yet to be documented.

    Type Parameters

    • E extends Record<string, any>

    Hierarchy

    • TypedEmitter
      • BaseLevel
    Index

    Constructors

    • Initializes a new instance of the BaseLevel class.

      Type Parameters

      • E extends Record<string, any>

      Parameters

      • bounds: Vector3
      • blocks: Buffer<ArrayBufferLike>

      Returns BaseLevel<E>

    Properties

    allowList: string[]

    Usernames of who is allowed to build in the level. BaseLevel.userHasPermission checks against this list. If empty, everyone is allowed.

    blocking: boolean
    blocks: Buffer<ArrayBufferLike>

    The buffer representing the level's blocks.

    bounds: Vector3

    The bounds of the level.

    clientDrones: Map<Client, Drone>

    Drones which are linked to clients in the level.

    commandInterpreter: BaseLevelCommandInterpreter
    drones: Set<Drone>

    The set of drones currently in the level.

    loading: boolean
    players: BasePlayer[]

    The players currently in the level.

    blockset: number[][] = []

    Defines the block set used in the level.

    bounds: Vector3 = ...
    commandInterpreterClass: typeof BaseLevelCommandInterpreter = BaseLevelCommandInterpreter

    The default BaseLevelCommandInterpreter class for the level.

    commands: any[] = []

    Yet to be documented.

    defaultMaxListeners: number
    environment: {
        cloudsHeight: number;
        edgeHeight: number;
        edgeId: number;
        sidesId: number;
    } = ...

    Defines the environmental properties of the level, such as sky and cloud settings.

    Expose types from classicborne-server-protocol for better documentation.

    standardBounds: Vector3 = ...

    Deprecated. Use BaseLevel.bounds instead.

    template: EmptyTemplate = ...

    The template used to generate the level's blocks.

    Methods

    • Type Parameters

      • U extends string | number | symbol

      Parameters

      • event: U
      • listener: (
            {
                levelLoaded: () => void;
                loaded: () => void;
                playerAdded: (player: BasePlayer) => void;
                playerRemoved: (player: BasePlayer) => void;
                unloaded: () => void;
            } & E
        )[U]

      Returns this

    • Destroys the level, releasing any resources used for it.

      Parameters

      • OptionalsaveChanges: boolean = true

        If true, I will flush any pending block changes to my ChangeRecord before disposing it. Default is true

      Returns Promise<void>

    • Type Parameters

      • U extends string | number | symbol

      Parameters

      • event: U
      • ...args: Parameters<
            (
                {
                    levelLoaded: () => void;
                    loaded: () => void;
                    playerAdded: (player: BasePlayer) => void;
                    playerRemoved: (player: BasePlayer) => void;
                    unloaded: () => void;
                } & E
            )[U],
        >

      Returns boolean

    • Type Parameters

      • U extends string | number | symbol

      Returns U[]

    • Gets the block type at the specified position in the level.

      Parameters

      • position: Vector3

        The position to get the block from.

      Returns number

      The block type at the specified position.

    • Returns number

    • Parameters

      • type:
            | "playerAdded"
            | "playerRemoved"
            | "loaded"
            | "unloaded"
            | "levelLoaded"
            | keyof E

      Returns number

    • Type Parameters

      • U extends string | number | symbol

      Parameters

      • type: U

      Returns (
          {
              levelLoaded: () => void;
              loaded: () => void;
              playerAdded: (player: BasePlayer) => void;
              playerRemoved: (player: BasePlayer) => void;
              unloaded: () => void;
          } & E
      )[U][]

    • Type Parameters

      • U extends string | number | symbol

      Parameters

      • event: U
      • listener: (
            {
                levelLoaded: () => void;
                loaded: () => void;
                playerAdded: (player: BasePlayer) => void;
                playerRemoved: (player: BasePlayer) => void;
                unloaded: () => void;
            } & E
        )[U]

      Returns this

    • Type Parameters

      • U extends string | number | symbol

      Parameters

      • event: U
      • listener: (
            {
                levelLoaded: () => void;
                loaded: () => void;
                playerAdded: (player: BasePlayer) => void;
                playerRemoved: (player: BasePlayer) => void;
                unloaded: () => void;
            } & E
        )[U]

      Returns this

    • Type Parameters

      • U extends string | number | symbol

      Parameters

      • event: U
      • listener: (
            {
                levelLoaded: () => void;
                loaded: () => void;
                playerAdded: (player: BasePlayer) => void;
                playerRemoved: (player: BasePlayer) => void;
                unloaded: () => void;
            } & E
        )[U]

      Returns this

    • Type Parameters

      • U extends string | number | symbol

      Parameters

      • event: U
      • listener: (
            {
                levelLoaded: () => void;
                loaded: () => void;
                playerAdded: (player: BasePlayer) => void;
                playerRemoved: (player: BasePlayer) => void;
                unloaded: () => void;
            } & E
        )[U]

      Returns this

    • Type Parameters

      • U extends string | number | symbol

      Parameters

      • event: U
      • listener: (
            {
                levelLoaded: () => void;
                loaded: () => void;
                playerAdded: (player: BasePlayer) => void;
                playerRemoved: (player: BasePlayer) => void;
                unloaded: () => void;
            } & E
        )[U]

      Returns this

    • Type Parameters

      • U extends string | number | symbol

      Parameters

      • type: U

      Returns (
          {
              levelLoaded: () => void;
              loaded: () => void;
              playerAdded: (player: BasePlayer) => void;
              playerRemoved: (player: BasePlayer) => void;
              unloaded: () => void;
          } & E
      )[U][]

    • Sets a block at the specified position in the level without notifying players.

      Parameters

      • position: Vector3

        The position to set the block at.

      • block: number

        The block type to set.

      Returns void

    • Reloads all players in the level, typically used to refresh the level's state.

      Returns void

    • Parameters

      • Optionalevent:
            | "playerAdded"
            | "playerRemoved"
            | "loaded"
            | "unloaded"
            | "levelLoaded"
            | keyof E

      Returns this

    • Type Parameters

      • U extends string | number | symbol

      Parameters

      • event: U
      • listener: (
            {
                levelLoaded: () => void;
                loaded: () => void;
                playerAdded: (player: BasePlayer) => void;
                playerRemoved: (player: BasePlayer) => void;
                unloaded: () => void;
            } & E
        )[U]

      Returns this

    • Sets a block at the specified position in the level.

      Parameters

      • position: Vector3

        The position to set the block at.

      • block: number

        The block type to set.

      • OptionalexcludePlayers: BasePlayer[] = []

        Default is []

      • OptionalsaveToRecord: boolean = true

        Default is true

      Returns void

    • Parameters

      • n: number

      Returns this

    • Checks if a user has permission to edit the level.

      Parameters

      • username: string

        The username to check.

      Returns boolean

      Whether the user has permission.

    • Checks if a position is within the level bounds.

      Parameters

      • position: Vector3

        The position to check.

      Returns boolean

      Whether the position is within the level bounds.

    • Parameters

      • command: string

      Returns LevelCommand

      The command class, or null if not found.

      Yet to be documented.

    • Loads a level into a BaseUniverse instance, creating it if it doesn't exist.

      Parameters

      • universe: BaseUniverse

        The universe to load the level into.

      • spaceName: string

        The identifier of the level. This will be used for BaseUniverse.levels.

      • defaults: any

        The default properties for the level.

      Returns Promise<BaseLevel<any>>

      A promise that resolves to the loaded level.

    • Sends a block set to a client.

      Parameters

      • client: Client

        The client to send the block set to.

      • blockset: number[][]

        The block set to send.

      Returns void

    • Teleports the player into the level. If level currently doesn't exist in universe, it'll be created.

      Levels extending Level are expected to override this method using this pattern:

       static async teleportPlayer(player, spaceName) {
      if (super.teleportPlayer(player) === false) return // Removes player from any levels they are in. If it returns false, the player is still being teleported somewhere.
      Level.loadIntoUniverse(player.universe, spaceName, { // Create the level using its desired defaults.
      levelClass: HubLevel,
      }).then(async (level) => { // Add player after it loads.
      level.addPlayer(player, [60, 8, 4], [162, 254])
      })
      }

      Parameters

      • player: BasePlayer

        The player to teleport.

      • OptionalspaceName: string

        The identifier of the level to teleport to. Default is null

      • Optionaldefaults: {} = {}

        Default is {}

      Returns Promise<boolean>