import { Container } from 'pixi.js';
/**
* Контейнер с сортировкой глубины для изометрической сцены.
* Глубина = tx + ty (классика изометрии 2:1): чем юго-восточнее объект,
* тем «ближе к камере» он рисуется. Герой, NPC, деревья и прочие сущности
* добавляются сюда, а не прямо в слой карты.
*
* Если объект движется, каждый кадр (или при смене тайла) вызывайте setDepth.
*/
export class IsoDepthLayer extends Container {
constructor() {
super();
this.sortableChildren = true;
}
/** Добавить объект и выставить глубину по тайловым координатам. */
add(view: Container, tx: number, ty: number): Container {
this.setDepth(view, tx, ty);
this.addChild(view);
return view;
}
/** Обновить глубину объекта по тайловым координатам. */
setDepth(view: Container, tx: number, ty: number): void {
view.zIndex = tx + ty;
}
}