Beispiel #1
0
        public void Serialize(int maxChannels, ref Dictionary <UInt32, ActorState> newActorsById, UInt32 versionMajor, UInt32 versionMinor, BitWriter bw)
        {
            bw.Write(Time);
            bw.Write(Delta); // TODO: recalculate

            foreach (var deletedActor in ActorStates.Where(a => a.State == ActorStateState.Deleted))
            {
                bw.Write(true); // There is another actor state
                deletedActor.Serialize(maxChannels, null, versionMajor, versionMinor, bw);
            }

            foreach (var newActor in ActorStates.Where(a => a.State == ActorStateState.New))
            {
                bw.Write(true); // There is another actor state

                newActorsById[newActor.Id] = newActor;

                newActor.Serialize(maxChannels, null, versionMajor, versionMinor, bw);
            }

            foreach (var existingActor in ActorStates.Where(a => a.State == ActorStateState.Existing))
            {
                bw.Write(true); // There is another actor state

                existingActor.Serialize(maxChannels, newActorsById, versionMajor, versionMinor, bw);
            }

            bw.Write(false); // No more actor states
        }
Beispiel #2
0
        public void Serialize(int maxChannels, string[] objectNames, UInt32 engineVersion, UInt32 licenseeVersion, UInt32 netVersion, BitWriter bw)
        {
            bw.Write(Time);
            bw.Write(Delta); // TODO: recalculate

            foreach (var deletedActor in ActorStates.Where(a => a.State == ActorStateState.Deleted))
            {
                bw.Write(true); // There is another actor state
                deletedActor.Serialize(maxChannels, objectNames, engineVersion, licenseeVersion, netVersion, bw);
            }

            foreach (var newActor in ActorStates.Where(a => a.State == ActorStateState.New))
            {
                bw.Write(true); // There is another actor state

                newActor.Serialize(maxChannels, objectNames, engineVersion, licenseeVersion, netVersion, bw);
            }

            foreach (var existingActor in ActorStates.Where(a => a.State == ActorStateState.Existing))
            {
                bw.Write(true); // There is another actor state

                existingActor.Serialize(maxChannels, objectNames, engineVersion, licenseeVersion, netVersion, bw);
            }

            bw.Write(false); // No more actor states
        }