GetLandTilesArray
Searches for land tiles of type TileType within the rectangular area bounded by (Xmin, Ymin) – (Xmax, Ymax) in world WorldNum.
In Python, TileTypes is a list (supports searching for multiple tile types at once).
Ищет ландшафтные тайлы типа TileType в прямоугольной области (Xmin, Ymin) – (Xmax, Ymax) в мире WorldNum.
В Python TileTypes — список (поддерживает поиск нескольких типов одновременно).
function GetLandTilesArray(Xmin: Word; Ymin: Word; Xmax: Word; Ymax: Word;
WorldNum: Byte; TileType: Word): TFoundTilesArray;
DWS overload (legacy, returns count):
function GetLandTilesArray(Xmin: Word; Ymin: Word; Xmax: Word; Ymax: Word;
WorldNum: Byte; TileType: Word; var LandTilesArray: TFoundTilesArray): Word;
function GetLandTilesArray(Xmin: Word; Ymin: Word; Xmax: Word; Ymax: Word;
WorldNum: Byte; TileType: Word; var LandTilesArray: TFoundTilesArray): Word;
Type definitions:
TFoundTile = packed record
Tile: Word;
X: SmallInt;
Y: SmallInt;
Z: ShortInt;
end;
// Pascal Script
TFoundTilesArray = array[0..999] of TFoundTile;
// DWS
TFoundTilesArray = TArray<TFoundTile>;
Notes:
- In Pascal Script,
TFoundTilesArrayis a fixed-size array of 1000 elements. - In DWS,
TFoundTilesArrayis a dynamic array (TArray<TFoundTile>).
def GetLandTilesArray(Xmin: int, Ymin: int, Xmax: int, Ymax: int,
WorldNum: int, TileTypes: list[int]) -> list[FoundTile]: ...
var
Tiles: TFoundTilesArray;
i, Count: Integer;
begin
Tiles := GetLandTilesArray(1000, 1000, 2, 2, WorldNum);
Count := Length(Tiles);
AddToSystemJournal('Found land tiles: ' + IntToStr(Count));
for i := 0 to Count - 1 do
AddToSystemJournal(
'Tile=' + IntToStr(Tiles[i].Tile) +
' X=' + IntToStr(Tiles[i].X) +
' Y=' + IntToStr(Tiles[i].Y) +
' Z=' + IntToStr(Tiles[i].Z)
);
end.
tiles = GetLandTilesArray(1000, 1000, 2, 2, WorldNum())
AddToSystemJournal(f'Found land tiles: {len(tiles)}')
for tile in tiles:
AddToSystemJournal(
f'Tile={tile.Tile} X={tile.X} Y={tile.Y} Z={tile.Z}'
)