示例#1
0
        protected override void OnUpdate()
        {
            Entities.WithAll <Simulated>().ForEach((Entity entity, DynamicBuffer <TransferAction> buffer) =>
            {
                if (buffer.Length == 0)
                {
                    return;
                }

                var transferAction = buffer[0];

                if (transferAction.accepted)
                {
                    EntityManager.RemoveComponent <Simulated>(entity);
                    EntityManager.RemoveComponent <LingerSimulated>(entity);
                    ReceiveUpdate.RemoveSyncComponents(EntityManager, entity);
                    ReceiveUpdate.AddCommandBuffers(EntityManager, entity);
                }

                if (transferAction.accepted && transferAction.participant == 0)
                {
                    EntityManager.AddComponent <Orphan>(entity);
                }

                buffer.Clear();
            }).WithStructuralChanges().Run();

            Dependency.Complete();
        }
示例#2
0
        private void BootUp()
        {
            simGroup = World.GetExistingSystem <CoherenceSimulationSystemGroup>();
            var netSys = World.GetOrCreateSystem <NetworkSystem>();
            var deserializeComponents = new ComponentDeserializeWrapper(netSys.Mapper);
            var skipper        = new DeserializeComponentsAndSkipWrapper(netSys.Mapper);
            var commandPerform = new PerformCommands(netSys.Mapper);
            var eventPerform   = new PerformEvents(netSys.Mapper);
            var receiveUpdate  = new ReceiveUpdate(deserializeComponents, skipper, netSys.Mapper, netSys.DestroyedEntities);

            receiver = new Receiver(World, netSys.Mapper, netSys.Connector, receiveUpdate, commandPerform, eventPerform, netSys.MessageChannels, netSys.SentPacketsCache);
        }
        private void BootUp()
        {
            var netSys = World.GetOrCreateSystem <NetworkSystem>();
            var deserializeComponents = new ComponentDeserializeWrapper(netSys.Mapper);
            var skipper        = new DeserializeComponentsAndSkipWrapper(netSys.Mapper);
            var commandPerform = new PerformCommands(netSys.Mapper);
            var eventPerform   = new PerformEvents(netSys.Mapper);
            var inputPerform   = new PerformInputs(netSys.Mapper);
            var receiveUpdate  = new ReceiveUpdate(deserializeComponents, skipper, netSys.Mapper);

            receiver         = new Receiver(World, receiveUpdate, commandPerform, eventPerform, inputPerform);
            frameCountSystem = World.GetExistingSystem <FrameCountSystem>();
        }
        protected override void OnUpdate()
        {
            Entities.WithAll <Simulated>().ForEach((Entity entity, in TransferAction transferAction) =>
            {
                if (transferAction.accepted)
                {
                    EntityManager.RemoveComponent <Simulated>(entity);
                    EntityManager.RemoveComponent <LingerSimulated>(entity);
                    ReceiveUpdate.RemoveSyncComponents(EntityManager, entity);
                    ReceiveUpdate.AddCommandBuffers(EntityManager, entity);
                }
                if (transferAction.accepted && transferAction.participant == 0)
                {
                    EntityManager.AddComponent <Orphan>(entity);
                }
            }).WithStructuralChanges().Run();

            Dependency.Complete();
        }