Пример #1
0
        private void DeserializeActorEvent(Actor actor, ActorEventData data)
        {
            switch (data.Type)
            {
            case ActorEventType.End:
                RemoveActor(actor, data.Time);
                break;

            case ActorEventType.Start:
                break;

            default:
                throw new NotSupportedException("EventType");
            }
        }
Пример #2
0
        private Offset <ActorData>?SerializeActor(FlatBufferBuilder fbb, Actor actor)
        {
            var oVariables = new List <Offset <VariableData> >();

            foreach (var variable in actor.Variables)
            {
                var oVariable = SerializeVariable(fbb, variable, actor.StartTime >= Scene.ElapsedTime);
                if (oVariable != null)
                {
                    oVariables.Add(oVariable.Value);
                }
            }

            var oEvents = new List <Offset <ActorEventData> >();

            if (actor.StartTime >= Scene.ElapsedTime)
            {
                var oEvent = ActorEventData.CreateActorEventData(fbb, ActorEventType.Start, actor.StartTime);
                oEvents.Add(oEvent);
            }

            if (actor.EndTime >= Scene.ElapsedTime)
            {
                var oEvent = ActorEventData.CreateActorEventData(fbb, ActorEventType.End, actor.EndTime);
                oEvents.Add(oEvent);
            }

            if (oVariables.Count > 0 || oEvents.Count > 0)
            {
                var vVariables = ActorData.CreateVariablesVector(fbb, oVariables.ToArray());
                var vEvents    = ActorData.CreateEventsVector(fbb, oEvents.ToArray());
                var oActor     = ActorData.CreateActorData(fbb, actor.Id, vEvents, vVariables);

                return(oActor);
            }
            else
            {
                return(null);
            }
        }