Options
All
  • Public
  • Public/Protected
  • All
Menu

Class HallwayElement

This class represents a single element in a hallway that is not a Turn. This can be a room, but it can also be a Fork or Stairs.

Hierarchy

Index

Constructors

constructor

  • new HallwayElement(name?: (null | string) | undefined, side?: Direction, __namedParameters?: { aliases: string[]; edgeLengthFromPreviousNodeInHallway: undefined | null | number; prefix: string }): HallwayElement
  • Parameters

    • Optional name: (null | string) | undefined

      The name of this hallway element

    • Default value side: Direction = Direction.LEFT

      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."

    • Default value __namedParameters: { aliases: string[]; edgeLengthFromPreviousNodeInHallway: undefined | null | number; prefix: string } = {}

    Returns HallwayElement

Properties

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

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
  • Returns string

Methods

onArrive

  • onArrive(forwardOrBackward: -1 | 1, isEndOfDirections: boolean): string
  • Parameters

    • forwardOrBackward: -1 | 1

      Whether we're going forward or backward through this hallway

    • isEndOfDirections: boolean

      Is this sentence the last sentence in the whole in the whole set of directions created in Building.getDirections?

    Returns string

    What we should say when we enter this room or hallway

onLeave

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

    • forwardOrBackward: -1 | 1

      Whether we're going forward or backward through this hallway

    • isBeginningOfDirections: boolean

      Is this sentence the first sentence in the whole set of directions created in Building.getDirections?

    • entranceWasStraight: boolean

      When we entered this hallway, were we going straight (as opposed to turning left or right into this hallway)? (not applicable if isBeginningOfDirections is true; in this case, the argument is ignored)

    Returns string

    What we should say when we go out of this room or hallway

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