Files
Foundry-VTT-Docker/resources/app/client/data/documents/tile.js
2025-01-04 00:34:03 +01:00

25 lines
941 B
JavaScript

/**
* The client-side Tile document which extends the common BaseTile document model.
* @extends foundry.documents.BaseTile
* @mixes ClientDocumentMixin
*
* @see {@link Scene} The Scene document type which contains Tile documents
* @see {@link TileConfig} The Tile configuration application
*/
class TileDocument extends CanvasDocumentMixin(foundry.documents.BaseTile) {
/** @inheritdoc */
prepareDerivedData() {
super.prepareDerivedData();
const d = this.parent?.dimensions;
if ( !d ) return;
const securityBuffer = Math.max(d.size / 5, 20).toNearest(0.1);
const maxX = d.width - securityBuffer;
const maxY = d.height - securityBuffer;
const minX = (this.width - securityBuffer) * -1;
const minY = (this.height - securityBuffer) * -1;
this.x = Math.clamp(this.x.toNearest(0.1), minX, maxX);
this.y = Math.clamp(this.y.toNearest(0.1), minY, maxY);
}
}