25 lines
941 B
JavaScript
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);
|
|
}
|
|
}
|