예제 #1
0
        public GameSnapshotDelta(
            GameSnapshot currentSnap,
            GameSnapshot baseSnap
            )
        {
            Tick     = currentSnap.Tick;
            BaseTick = baseSnap.Tick;

            Positions = new EcDictDelta <Ecs.Components.Position>(
                currentSnap.Positions,
                baseSnap.Positions
                );

            ShapeRectangles = new EcDictDelta <Ecs.Components.Shapes.Rectangle>(
                currentSnap.ShapeRectangles,
                baseSnap.ShapeRectangles
                );

            Characters = new EcDictDelta <Ecs.Components.Character>(
                currentSnap.Characters,
                baseSnap.Characters
                );

            Projectiles = new EcDictDelta <Ecs.Components.Projectile>(
                currentSnap.Projectiles,
                baseSnap.Projectiles
                );

            Items = new EcDictDelta <Ecs.Components.Item>(
                currentSnap.Items,
                baseSnap.Items
                );

            Doors = new EcDictDelta <Ecs.Components.Door>(
                currentSnap.Doors,
                baseSnap.Doors
                );

            OrientationCardinals = new EcDictDelta <Ecs.Components.Orientations.Cardinal>(
                currentSnap.OrientationCardinals,
                baseSnap.OrientationCardinals
                );

            Playables = new EcDictDelta <Ecs.Components.Playable>(
                currentSnap.Playables,
                baseSnap.Playables
                );

            Inventories = new EcDictDelta <Ecs.Components.Inventory>(
                currentSnap.Inventories,
                baseSnap.Inventories
                );
        }
예제 #2
0
 public void Process(Packets.GameSnapshot gameSnapshot)
 {
     Clear();
     ProcessEcDict(gameSnapshot.Positions);
     ProcessEcDict(gameSnapshot.ShapeRectangles);
     ProcessEcDict(gameSnapshot.Characters);
     ProcessEcDict(gameSnapshot.Projectiles);
     ProcessEcDict(gameSnapshot.Items);
     ProcessEcDict(gameSnapshot.Doors);
     ProcessEcDict(gameSnapshot.OrientationCardinals);
     ProcessEcDict(gameSnapshot.Playables);
     ProcessEcDict(gameSnapshot.Inventories);
 }
예제 #3
0
 public void Process(Packets.GameSnapshot gameSnapshot)
 {
     ecsRegistry.Process(gameSnapshot);
 }
예제 #4
0
 private void StoreGameSnapshot(
     Packets.GameSnapshot gameSnapshotPacket
     )
 {
     packetsReceived.gameSnapshots.Enqueue(gameSnapshotPacket);
 }