refactor: Synchronizer
This commit is contained in:
parent
bf05af3a0f
commit
a618ebd9cb
|
@ -5,7 +5,7 @@ import {ActionRegistry} from '@avocado/input';
|
|||
import {Stage} from '@avocado/graphics';
|
||||
import {Vector} from '@avocado/math';
|
||||
import {World} from '@avocado/physics/matter/world';
|
||||
import {StateSynchronizer, Unpacker} from '@avocado/state';
|
||||
import {Synchronizer, Unpacker} from '@avocado/state';
|
||||
import {Room, RoomView} from '@avocado/topdown';
|
||||
import {clearAnimation, setAnimation} from '@avocado/timing';
|
||||
// 1st party.
|
||||
|
@ -46,7 +46,7 @@ const worldTime = new WorldTime();
|
|||
let lastWorldTime = worldTime.humanReadable();
|
||||
// Synchronize state.
|
||||
let state = undefined;
|
||||
const stateSynchronizer = new StateSynchronizer({
|
||||
const synchronizer = new Synchronizer({
|
||||
room,
|
||||
worldTime,
|
||||
});
|
||||
|
@ -160,9 +160,9 @@ const predictionHandle = setInterval(() => {
|
|||
selfEntity.inputState = actionState.toJS();
|
||||
}
|
||||
// Tick synchronized.
|
||||
stateSynchronizer.tick(elapsed);
|
||||
dirty = dirty || stateSynchronizer.state !== state;
|
||||
state = stateSynchronizer.state;
|
||||
synchronizer.tick(elapsed);
|
||||
dirty = dirty || synchronizer.state !== state;
|
||||
state = synchronizer.state;
|
||||
// Apply environmental lighting.
|
||||
stage.removeAllFilters();
|
||||
let intensity = 0;
|
||||
|
@ -193,7 +193,7 @@ function onMessage({type, payload}) {
|
|||
selfEntity = value;
|
||||
}
|
||||
}
|
||||
stateSynchronizer.patchState(patch);
|
||||
synchronizer.patchState(patch);
|
||||
dirty = true;
|
||||
break;
|
||||
default:
|
||||
|
|
|
@ -3,7 +3,7 @@ import {performance} from 'perf_hooks';
|
|||
// 3rd party.
|
||||
import immutablediff from 'immutablediff';
|
||||
// 2nd party.
|
||||
import {StateSynchronizer} from '@avocado/state';
|
||||
import {Synchronizer} from '@avocado/state';
|
||||
// 1st party.
|
||||
import {WorldTime} from '../common/world-time';
|
||||
import {createEntityForConnection} from './create-entity-for-connection';
|
||||
|
@ -20,7 +20,7 @@ const worldTime = new WorldTime();
|
|||
worldTime.hour = 10;
|
||||
// Entity tracking.
|
||||
const informables = [];
|
||||
const stateSynchronizer = new StateSynchronizer({
|
||||
const synchronizer = new Synchronizer({
|
||||
room,
|
||||
worldTime,
|
||||
});
|
||||
|
@ -70,10 +70,10 @@ function createMainLoop() {
|
|||
const elapsed = (now - lastTime) / 1000;
|
||||
lastTime = now;
|
||||
// Tick synchronized.
|
||||
stateSynchronizer.tick(elapsed);
|
||||
synchronizer.tick(elapsed);
|
||||
// Inform entities of the new state.
|
||||
for (const entity of informables) {
|
||||
entity.inform(stateSynchronizer.state);
|
||||
entity.inform(synchronizer.state);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,7 @@ import isPlainObject from 'is-plain-object';
|
|||
|
||||
import {compose} from '@avocado/core';
|
||||
import {Trait} from '@avocado/entity';
|
||||
import {Packer, StateSynchronizer} from '@avocado/state';
|
||||
import {Packer, Synchronizer} from '@avocado/state';
|
||||
|
||||
const decorate = compose(
|
||||
);
|
||||
|
|
Loading…
Reference in New Issue
Block a user