2024-06-13 17:49:39 -05:00
|
|
|
import {System} from '@/ecs/index.js';
|
|
|
|
|
|
|
|
export default class ClampPositions extends System {
|
|
|
|
|
2024-06-25 10:44:37 -05:00
|
|
|
static get priority() {
|
|
|
|
return {
|
2024-07-02 08:05:36 -05:00
|
|
|
after: 'IntegratePhysics',
|
2024-06-25 10:44:37 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-06-13 17:49:39 -05:00
|
|
|
tick() {
|
|
|
|
const {AreaSize} = this.ecs.get(1);
|
2024-06-22 12:30:25 -05:00
|
|
|
for (const {Position} of this.ecs.changed(['Position'])) {
|
|
|
|
if (Position.x < 0) {
|
|
|
|
Position.x = 0;
|
|
|
|
}
|
|
|
|
if (Position.y < 0) {
|
|
|
|
Position.y = 0;
|
|
|
|
}
|
|
|
|
if (Position.x >= AreaSize.x) {
|
|
|
|
Position.x = AreaSize.x - 0.0001;
|
|
|
|
}
|
|
|
|
if (Position.y >= AreaSize.y) {
|
|
|
|
Position.y = AreaSize.y - 0.0001;
|
2024-06-13 17:49:39 -05:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|