fix: blow up visible area for camera desync

This commit is contained in:
cha0s 2019-04-12 00:45:25 -05:00
parent 54d48c9d72
commit 218a1c3d3d

View File

@ -4,6 +4,7 @@ import isPlainObject from 'is-plain-object';
import {compose} from '@avocado/core';
import {Trait} from '@avocado/entity';
import {Rectangle, Vector} from '@avocado/math';
import {Packer, Synchronizer} from '@avocado/state';
import {KeysPacket, StatePacket} from '../common/packet';
@ -34,8 +35,16 @@ export class Informed extends decorate(Trait) {
const room = this.entity.room;
const camera = this.entity.camera;
for (const {index, layer} of room.layers) {
const position = Rectangle.position(camera.rectangle);
const size = Rectangle.size(camera.rectangle);
const visibleEntities = layer.visibleEntities(
camera.rectangle
Rectangle.compose(
Vector.sub(
position,
Vector.scale(size, 0.25),
),
Vector.scale(size, 1.5),
)
);
let reducedEntityList = I.Map();
for (const entity of visibleEntities) {