perf: various opts

This commit is contained in:
cha0s 2019-04-17 00:40:03 -05:00
parent e10bb82682
commit 5f932db5f6

View File

@ -142,25 +142,20 @@ export class Informed extends decorate(Trait) {
const room = this.entity.room;
const camera = this.entity.camera;
// Blow up camera rectangle to compensate for camera desync.
const position = Rectangle.position(camera.rectangle);
const size = Rectangle.size(camera.rectangle);
const visibleArea = Rectangle.compose(
Vector.sub(
position,
Vector.scale(size, 0.25),
),
const visibleArea = Rectangle.expand(
camera.rectangle,
Vector.scale(size, 1.5),
);
// Write over entity list for every layer.
for (const {index, layer} of room.layers) {
const visibleEntities = layer.visibleEntities(visibleArea);
let reducedEntityList = I.Map();
for (const entity of visibleEntities) {
reducedEntityList = reducedEntityList.set(
entity.instanceUuid,
entity.state,
);
const reduceEntityListRaw = {};
for (let i = 0; i < visibleEntities.length; ++i) {
const entity = visibleEntities[i];
reduceEntityListRaw[entity.instanceUuid] = entity.state;
}
let reducedEntityList = I.Map(reduceEntityListRaw);
const entityListPath = ['room', 'layers', index, 'entityList'];
state = state.setIn(entityListPath, reducedEntityList);
}