Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Stairs<StairName>

Stairs represent one entrance to a staircase in a Hallway on a single floor.

Type parameters

  • StairName: string

Hierarchy

Index

Constructors

constructor

  • new Stairs(side: Direction, nodeId: StairNode<StairName>, fullName?: string, edgeLengthFromPreviousNodeInHallway?: number | undefined): Stairs
  • Parameters

    • side: Direction
    • nodeId: StairNode<StairName>
    • Default value fullName: string = "the stairs"
    • Optional edgeLengthFromPreviousNodeInHallway: number | undefined

    Returns Stairs

Properties

Private Readonly _fullName

_fullName: string

aliases

aliases: string[] = []

Other names for this room. These aliases will not be used in the generated directions between rooms, but if you use an alias in Building.getDirections, it will know which room you want to go to.

edgeLengthFromPreviousNodeInHallway

edgeLengthFromPreviousNodeInHallway: number | null | undefined = null

The edge length in the graph from the previous node in this Hallway to this node. Use this if you want to alter the directions to make it less likely that the user will be given directions that take them along that edge in the hallway.

This property has no effect if this hallway element is not a node (has no node ID).

Optional name

name: (null | string) | undefined

The name of this hallway element

Readonly nodeId

nodeId: StairNode<StairName>

prefix

prefix: string | undefined = "room"

The prefix that should be given whenever mentioning the name of this room. The default prefix is "room", which is useful when specifying a room with a number. But if you have a room with a name such as "Library", you should change the prefix to "the" so that the directions say "the Library" instead of "room Library". Use an empty string for no prefix.

side

side: Direction

The side of the Hallway that this element is on. You should decide which side the element is on based on how you've ordered the elementss in the Hallway - that is, which direction you've arbitrarily decided is "forward."

Accessors

fullName

  • get fullName(): string

Methods

onArrive

  • onArrive(forwardOrBackward: -1 | 1): string
  • Parameters

    • forwardOrBackward: -1 | 1

    Returns string

onLeave

  • onLeave(forwardOrBackward: -1 | 1, _isBeginningOfDirections: boolean, entranceWasStraight: boolean): string
  • Parameters

    • forwardOrBackward: -1 | 1
    • _isBeginningOfDirections: boolean
    • entranceWasStraight: boolean

    Returns string

onPass

  • Parameters

    • forwardOrBackward: -1 | 1

      Whether we're going forward or backward through this hallway

    • prevRoom: HallwayElement | Turn

      The previous room

    Returns string

    What we should say when you pass this room

Generated using TypeDoc