FIX: initPositionFromLayerName will now prioritize its target layer rather than the start layer
This commit is contained in:
parent
d033b78c58
commit
ce26294250
@ -51,20 +51,26 @@ export class StartPositionCalculator {
|
|||||||
if (!selectedOrDefaultLayer) {
|
if (!selectedOrDefaultLayer) {
|
||||||
selectedOrDefaultLayer = defaultStartLayerName;
|
selectedOrDefaultLayer = defaultStartLayerName;
|
||||||
}
|
}
|
||||||
|
let foundLayer: ITiledMapLayer | null = null;
|
||||||
for (const layer of this.gameMap.flatLayers) {
|
for (const layer of this.gameMap.flatLayers) {
|
||||||
if (
|
if (layer.type !== "tilelayer") continue;
|
||||||
(selectedOrDefaultLayer === layer.name || layer.name.endsWith("/" + selectedOrDefaultLayer)) &&
|
//we want to prioritize the selectedLayer other the start layer
|
||||||
layer.type === "tilelayer" &&
|
if (selectedOrDefaultLayer === layer.name || layer.name.endsWith("/" + selectedOrDefaultLayer)) {
|
||||||
(selectedOrDefaultLayer === defaultStartLayerName || this.isStartLayer(layer))
|
foundLayer = layer;
|
||||||
) {
|
break;
|
||||||
const startPosition = this.startUser(layer, selectedLayer);
|
} else if (selectedOrDefaultLayer === defaultStartLayerName || this.isStartLayer(layer)) {
|
||||||
|
foundLayer = layer;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (foundLayer) {
|
||||||
|
const startPosition = this.startUser(foundLayer, selectedLayer);
|
||||||
this.startPosition = {
|
this.startPosition = {
|
||||||
x: startPosition.x + this.mapFile.tilewidth / 2,
|
x: startPosition.x + this.mapFile.tilewidth / 2,
|
||||||
y: startPosition.y + this.mapFile.tileheight / 2,
|
y: startPosition.y + this.mapFile.tileheight / 2,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private isStartLayer(layer: ITiledMapLayer): boolean {
|
private isStartLayer(layer: ITiledMapLayer): boolean {
|
||||||
return this.getProperty(layer, "startLayer") == true;
|
return this.getProperty(layer, "startLayer") == true;
|
||||||
|
Loading…
Reference in New Issue
Block a user