Skip to content

Segment.lua

Functions


segment.new

segment.new(instance: LibLegelGen.Instance): LibLevelGen.Segment

no description

Parameters:

Name Type Description
instance LibLegelGen.Instance no description

Returns: LibLevelGen.Segment


segment.createRandLinkedRoomParameterCombinations

segment.createRandLinkedRoomParameterCombinations(parameters: LibLevelGen.RoomGenCombinations): LibLevelGen.RoomGenCombination[]

no description

Parameters:

Name Type Description
parameters LibLevelGen.RoomGenCombinations no description

Returns: LibLevelGen.RoomGenCombination[]

Classes


LibLevelGen.RoomGenCombination

no description

Properties:

Name Type Description
direction number no description
corridorEntrance number no description
corridorExit number no description
corridorThickness number no description
corridorLength number no description
roomWidth number no description
roomHeight number no description
clearCorridor boolean no description
entranceTileChances table<string,number> no description
exitTileChances table<string,number> no description

LibLevelGen.RoomGenCombinations

no description

Properties:

Name Type Description
direction number[] no description
corridorEntrance number[] no description
corridorExit number[] no description
corridorThickness number[] no description
corridorLength number[] no description
roomWidth number[] no description
roomHeight number[] no description
clearCorridor boolean no description
entranceTileChances table<string,number> no description
exitTileChances table<string,number> no description

LibLegelGen.RoomGenResult

no description

Properties:

Name Type Description
axis number no description
corridorX number no description
corridorY number no description
roomCorridorX number no description
roomCorridorY number no description
combination LibLevelGen.RoomGenCombination no description

LibLevelGen.TileData

no description

Properties:

Name Type Description
tileset string no description
type string no description

LibLevelGen.PaddingExtraTileData extends LibLevelGen.TileData

no description

Properties:

Name Type Description
tileset string no description
type string no description
ratio number no description

LibLevelGen.PaddingData

no description

Properties:

Name Type Description
mainTile LibLevelGen.TileData no description
extraTiles LibLevelGen.PaddingExtraTileData[] no description
count number no description

LibLevelGen.Rect

no description

Properties:

Name Type Description
x number no description
y number no description
w number no description
h number no description

LibLevelGen.Segment

no description

Properties:

Name Type Description
instance LibLegelGen.Instance The instance that created this segment. no description
rooms LibLevelGen.Room[] Rooms within this segment. no description
padding table Wall padding that's applied to rooms when serializing the segment. no description
tileset string The default tileset that's used if not specified no description
roomBorder string Tile type that's used for walls in newly created rooms. no description
corridorBorder string Tile type that's used for walls in newly created corridors. no description
chestsLeft number chests that have yet to be placed. no description
cratesLeft number of crates that have yet to be placed. no description
forceSecretRoomBomb boolean Determines whether 1st secret room will be forcefully filled with a bomb (used when locked shop spawns) no description

Methods:


LibLevelGen.Segment.setNumberOfChests

setNumberOfChests(self: LibLevelGen.Segment, chests: number): void

no description

Parameters:

Name Type Description
self LibLevelGen.Segment no description
chests number no description

LibLevelGen.Segment.setNumberOfCrates

setNumberOfCrates(self: LibLevelGen.Segment, crates: number): void

no description

Parameters:

Name Type Description
self LibLevelGen.Segment no description
crates number no description

LibLevelGen.Segment.setTileset

setTileset(self: LibLevelGen.Segment, tilesetName: string): void

no description

Parameters:

Name Type Description
self LibLevelGen.Segment no description
tilesetName string no description

LibLevelGen.Segment.setRoomBorder

setRoomBorder(self: LibLevelGen.Segment, roomBorder: string): void

no description

Parameters:

Name Type Description
self LibLevelGen.Segment no description
roomBorder string no description

LibLevelGen.Segment.setCorridorBorder

setCorridorBorder(self: LibLevelGen.Segment, corridorBorder: string): void

no description

Parameters:

Name Type Description
self LibLevelGen.Segment no description
corridorBorder string no description

LibLevelGen.Segment.setPadding

setPadding(self: LibLevelGen.Segment, data: LibLevelGen.PaddingData): void

no description

Parameters:

Name Type Description
self LibLevelGen.Segment no description
data LibLevelGen.PaddingData no description

LibLevelGen.Segment.getRandomPaddingTile

getRandomPaddingTile(self: LibLevelGen.Segment, padding: LibLevelGen.PaddingData): LibLevelGen.TileData

no description

Parameters:

Name Type Description
self LibLevelGen.Segment no description
padding LibLevelGen.PaddingData no description

Returns: LibLevelGen.TileData


LibLevelGen.Segment.createRoom

createRoom(self: LibLevelGen.Segment, x: number, y: number, w: number, h: number, flags: number?): LibLevelGen.Room

no description

Parameters:

Name Type Description
self LibLevelGen.Segment no description
x number no description
y number no description
w number no description
h number no description
flags number? no description

Returns: LibLevelGen.Room


LibLevelGen.Segment.createStartingRoom

createStartingRoom(self: LibLevelGen.Segment): LibLevelGen.Room

Creates a starting room.

Parameters:

Name Type Description
self LibLevelGen.Segment no description

Returns: LibLevelGen.Room


LibLevelGen.Segment.placeWallTorches

placeWallTorches(self: LibLevelGen.Segment, torchesPerRoom: number): void

Places specified amount of torches in rooms that allow it.

Parameters:

Name Type Description
self LibLevelGen.Segment no description
torchesPerRoom number no description

LibLevelGen.Segment.selectRooms

selectRooms(self: LibLevelGen.Segment, flags: number): LibLevelGen.Room[]

Select rooms that match the given flags.

Parameters:

Name Type Description
self LibLevelGen.Segment no description
flags number no description

Returns: LibLevelGen.Room[]


LibLevelGen.Segment.iterateRooms

iterateRooms(self: LibLevelGen.Segment, flags: number, clb: fun(room: LibLevelGen.Room)): void

Call the specified callback function for every room that matches the given flags.

Parameters:

Name Type Description
self LibLevelGen.Segment no description
flags number no description
clb fun(room: LibLevelGen.Room) no description

LibLevelGen.Segment.randomlyConvertTiles

randomlyConvertTiles(self: LibLevelGen.Segment, sourceType: string, targetType: string, ratio: number): void

Randomly convert tiles from sourceType to targetType in rooms that allow tile conversions. Chance to convert a given tile is specified by ratio.

Parameters:

Name Type Description
self LibLevelGen.Segment no description
sourceType string no description
targetType string no description
ratio number no description

LibLevelGen.Segment.createRandLinkedRoom

createRandLinkedRoom(self: LibLevelGen.Segment, roomToLink: LibLevelGen.Room, rotateRoom: boolean, orgCombinations: LibLevelGen.RoomGenCombination[]): LibLevelGen.Room newCorridor, LibLevelGen.Room newRoom, LibLegelGen.RoomGenResult result

no description

Parameters:

Name Type Description
self LibLevelGen.Segment no description
roomToLink LibLevelGen.Room no description
rotateRoom boolean no description
orgCombinations LibLevelGen.RoomGenCombination[] no description

Returns: LibLevelGen.Room newCorridor, LibLevelGen.Room newRoom, LibLegelGen.RoomGenResult result


LibLevelGen.Segment.createLinkedRoom

createLinkedRoom(self: LibLevelGen.Segment, roomToLink: LibLevelGen.Room, axis: number, corridorX: number, corridorY: number, corridorW: number, corridorH: number, roomCorridorX: number, roomCorridorY: number, roomW: number, roomH: number): LibLevelGen.Room newCorridor, LibLevelGen.Room newRoom

no description

Parameters:

Name Type Description
self LibLevelGen.Segment no description
roomToLink LibLevelGen.Room no description
axis number no description
corridorX number no description
corridorY number no description
corridorW number no description
corridorH number no description
roomCorridorX number no description
roomCorridorY number no description
roomW number no description
roomH number no description

Returns: LibLevelGen.Room newCorridor, LibLevelGen.Room newRoom


LibLevelGen.Segment.rectOverlapsWithAnyRoom

rectOverlapsWithAnyRoom(self: LibLevelGen.Segment, rect: LibLevelGen.Rect): LibLevelGen.Room | nil

Checks whether the given rect overlaps with any room, and returns the 1st room that overlapped.

Parameters:

Name Type Description
self LibLevelGen.Segment no description
rect LibLevelGen.Rect no description

Returns: LibLevelGen.Room | nil


LibLevelGen.Segment.rectOverlappedRooms

rectOverlappedRooms(self: LibLevelGen.Segment, rect: LibLevelGen.Rect): LibLevelGen.Room[]

Return all rooms that overlap with the given rect.

Parameters:

Name Type Description
self LibLevelGen.Segment no description
rect LibLevelGen.Rect no description

Returns: LibLevelGen.Room[]


LibLevelGen.Segment.rectInBounds

rectInBounds(self: LibLevelGen.Segment, rect: LibLevelGen.Rect, bounds: number[]): boolean

Check whether the given rect is within bounds of the segment.

Parameters:

Name Type Description
self LibLevelGen.Segment no description
rect LibLevelGen.Rect no description
bounds number[] no description

Returns: boolean


LibLevelGen.Segment.findBetweenRoomRects

findBetweenRoomRects(self: LibLevelGen.Segment, minWidth: number, minHeight: number): LibLevelGen.OverlappedRect[]

Find rects between rooms of the segment, of minimum width and height.

Parameters:

Name Type Description
self LibLevelGen.Segment no description
minWidth number no description
minHeight number no description

Returns: LibLevelGen.OverlappedRect[]


LibLevelGen.Segment.beetweenRoomRectSidesWithAdjecentRooms

beetweenRoomRectSidesWithAdjecentRooms(self: LibLevelGen.Segment, betweenRoomRect: LibLevelGen.OverlappedRect): boolean

Counts how many sides of an overlappedRect are adjacent to a room, including other overlapped rects.

Parameters:

Name Type Description
self LibLevelGen.Segment no description
betweenRoomRect LibLevelGen.OverlappedRect no description

Returns: boolean


LibLevelGen.Segment.beetweenRoomRectAdjecentFakeRooms

beetweenRoomRectAdjecentFakeRooms(self: LibLevelGen.Segment, betweenRect: LibLevelGen.OverlappedRect): number

Counts how many "fake rooms" (other overlapped rects) are adjacent to this overlapped rect.

Parameters:

Name Type Description
self LibLevelGen.Segment no description
betweenRect LibLevelGen.OverlappedRect no description

Returns: number


LibLevelGen.Segment.determineBounds

determineBounds(self: LibLevelGen.Segment): number[]

Detemine bounds of the segment.

Parameters:

Name Type Description
self LibLevelGen.Segment no description

Returns: number[]


LibLevelGen.Overlaps

no description

Properties:

Name Type Description
top LibLevelGen.Room[] no description
bottom LibLevelGen.Room[] no description
left LibLevelGen.Room[] no description
right LibLevelGen.Room[] no description

LibLevelGen.OverlappedRect extends LibLevelGen.Rect

no description

Properties:

Name Type Description
x number no description
y number no description
w number no description
h number no description
overlaps LibLevelGen.Overlaps no description