Exemplo n.º 1
0
        public static CompensatioSnapshotGameEntity Allocate(EntityKey entityKey)
        {
            var rc = ObjectAllocatorHolder <CompensatioSnapshotGameEntity> .Allocate();

            rc.EntityKey = entityKey;
            return(rc);
        }
Exemplo n.º 2
0
        public static DeleteEntityPatch Allocate(EntityKey key)
        {
            var rc = ObjectAllocatorHolder <DeleteEntityPatch> .Allocate();

            rc.Key = key;
            return(rc);
        }
Exemplo n.º 3
0
        public static EntitasGameEntity <TEntity> Allocate(TEntity entity, IComponentTypeLookup lookup)
        {
            var rc = ObjectAllocatorHolder <EntitasGameEntity <TEntity> > .Allocate();

            rc.Init(entity, lookup);
            return(rc);
        }
Exemplo n.º 4
0
        public static VNetworkMessageItem Allocate(int messageType, object messageBody, int channel)
        {
            VNetworkMessageItem rc = ObjectAllocatorHolder <VNetworkMessageItem> .Allocate();

            rc.Init(messageType, messageBody, channel);
            return(rc);
        }
Exemplo n.º 5
0
        public static EntityMapCacheGroup Allocate(EntityMap entityId2Entity)
        {
            EntityMapCacheGroup cacheGroup = ObjectAllocatorHolder <EntityMapCacheGroup> .Allocate();

            cacheGroup.Initialize(entityId2Entity);
            return(cacheGroup);
        }
Exemplo n.º 6
0
        public MemoryStream SerializeSinaglePackage(UpdateLatestPacakge msg)
        {
            MemoryStream stream = ObjectAllocatorHolder <MemoryStream> .Allocate();

            stream.Seek(0, SeekOrigin.Begin);
            var  binaryWriter = MyBinaryWriter.Allocate(stream);
            long bodyLength;
            var  old = MessagePool.GetPackageBySeq(msg.Head.BaseUserCmdSeq);

            if (old != null)
            {
                msg.Head.Serialize(binaryWriter);
                bodyLength = SerializeComponents(binaryWriter, old.UpdateComponents, msg.UpdateComponents);
            }
            else
            {
                msg.Head.BaseUserCmdSeq = -1;
                msg.Head.Serialize(binaryWriter);
                bodyLength = SerializeComponents(binaryWriter, _emptyUpdateComponents, msg.UpdateComponents);
            }

            AssertUtility.Assert(bodyLength < 65535);
            msg.Head.ReWriteBodyLength(binaryWriter, (short)bodyLength);
            binaryWriter.ReleaseReference();
            return(stream);
        }
Exemplo n.º 7
0
            public static AssetLoadRequestNode Alloc(AbstractAssetLoadRequest request)
            {
                var node = ObjectAllocatorHolder <AssetLoadRequestNode> .Allocate();

                node.Value = request;
                return(node);
            }
Exemplo n.º 8
0
        public virtual object Deserialize(Stream inStream)
        {
            T message = ObjectAllocatorHolder <T> .Allocate();

            MergeFrom(message, inStream);
            return(message);
        }
Exemplo n.º 9
0
        public static ComponentWrapper Allocate(int componentId)
        {
            var rc = ObjectAllocatorHolder <ComponentWrapper> .Allocate();

            rc._component = _gameCompoentInfo.Allocate(componentId);
            return(rc);
        }
Exemplo n.º 10
0
            public static AssetLoadRequestBatch <T> Alloc()
            {
                var batch = ObjectAllocatorHolder <AssetLoadRequestBatch <T> > .Allocate();

                batch._isDisposed = false;
                return(batch);
            }
Exemplo n.º 11
0
        public static ComponentWrapper Allocate(IGameComponent component)
        {
            var rc = ObjectAllocatorHolder <ComponentWrapper> .Allocate();

            rc._component = component;
            return(rc);
        }
Exemplo n.º 12
0
        public static MyBinaryWriter Allocate(Stream stream)
        {
            var writer = ObjectAllocatorHolder <MyBinaryWriter> .Allocate();

            writer.OutStream = stream;
            return(writer);
        }
Exemplo n.º 13
0
        public static ModifyEntityPatch Allocate(IGameEntity entity)
        {
            var rc = ObjectAllocatorHolder <ModifyEntityPatch> .Allocate();

            rc.Key = entity.EntityKey;
            return(rc);
        }
Exemplo n.º 14
0
        public static EntityMapCache Allocate(EntityMap entityId2Entity)
        {
            EntityMapCache cache = ObjectAllocatorHolder <EntityMapCache> .Allocate();

            cache.SetEntityMap(entityId2Entity);
            return(cache);
        }
Exemplo n.º 15
0
        public static ListBasedGameEntity Allocate(EntityKey entityKey)
        {
            var rc = ObjectAllocatorHolder <ListBasedGameEntity> .Allocate();

            rc.EntityKey = entityKey;
            return(rc);
        }
Exemplo n.º 16
0
        public static PredictionEntityMap Allocate(bool ownEntity = true)
        {
            PredictionEntityMap rc = ObjectAllocatorHolder <PredictionEntityMap> .Allocate();

            rc._ownEntity  = ownEntity;
            rc._arrayDirty = true;
            return(rc);
        }
Exemplo n.º 17
0
        public static RemoveAssetStatus Allocate(AssetStatus status, ICommonResourceActions actions)
        {
            var ret = ObjectAllocatorHolder <RemoveAssetStatus> .Allocate();

            ret.Actions = actions;
            ret.Status  = status;
            return(ret);
        }
Exemplo n.º 18
0
        public static SyncLatestEntityMap Allocate(bool ownEntity = true)
        {
            SyncLatestEntityMap rc = ObjectAllocatorHolder <SyncLatestEntityMap> .Allocate();

            rc._ownEntity  = ownEntity;
            rc._arrayDirty = true;
            return(rc);
        }
Exemplo n.º 19
0
        internal static LinkedListNode <T> Allocate(MyLinkedList <T> list, T value)
        {
            var rc = ObjectAllocatorHolder <LinkedListNode <T> > .Allocate();

            rc.list  = list;
            rc.Value = value;
            return(rc);
        }
Exemplo n.º 20
0
        public static CacheEntityMap Allocate(bool ownEntity = true)
        {
            CacheEntityMap rc = ObjectAllocatorHolder <CacheEntityMap> .Allocate();

            rc._ownEntity  = ownEntity;
            rc._arrayDirty = true;
            return(rc);
        }
Exemplo n.º 21
0
        public static PlayBackEntityMap Allocate(bool ownEntity = true)
        {
            PlayBackEntityMap rc = ObjectAllocatorHolder <PlayBackEntityMap> .Allocate();

            rc.ownEntity  = ownEntity;
            rc.arrayDirty = true;
            return(rc);
        }
Exemplo n.º 22
0
        public static T AllocEvent <T>() where T : RoomEvent
        {
            var evt = ObjectAllocatorHolder <T> .Allocate();

            evt._allocator = ObjectAllocatorHolder <T> .GetAllocator();

            return(evt);
        }
Exemplo n.º 23
0
        public void SendSnapshot(int interval, SnapshotFactory snapshotFactory,
                                 Dictionary <INetworkChannel, PlayerEntity> channelToPlayer)
        {
            var           sessionObjects        = _contexts.session.serverSessionObjects;
            Bin2DConfig   bin2DConfig           = sessionObjects.Bin2DConfig;
            IBin2DManager bin                   = sessionObjects.Bin2dManager;
            int           snapshotSeq           = sessionObjects.GetNextSnapshotSeq();
            int           vehicleSimulationTime = sessionObjects.SimulationTimer.CurrentTime;
            int           serverTime            = _contexts.session.currentTimeObject.CurrentTime;

            _sendSnapshotTasks.Clear();
            var freeMoveEntitys = _globalFreeMoveEntities.GetEntities();
            var weaponEntities  = _globalWeaponEntities.GetEntities();

            foreach (var entry in channelToPlayer)
            {
                INetworkChannel channel = entry.Key;
                PlayerEntity    player  = entry.Value;
                if (player.hasStage &&
                    player.stage.CanSendSnapshot() &&
                    channel.IsConnected &&
                    !player.network.NetworkChannel.Serializer.MessageTypeInfo.SkipSendSnapShot(serverTime))
                {
                    var p = ObjectAllocatorHolder <CreateSnapshotParams> .Allocate().Build(snapshotFactory, player,
                                                                                           bin2DConfig, bin, serverTime,
                                                                                           snapshotSeq,
                                                                                           vehicleSimulationTime, channel);

                    var entitys = p.PreEnitys;
                    AddTeamPlayers(player, entitys, _contexts);
                    AddGlobalFreeMove(player, entitys, freeMoveEntitys);
                    AddWeapon(player, entitys, weaponEntities);
                    _sendSnapshotTasks.Add(p);
                }
                else
                {
                    player.network.NetworkChannel.Serializer.MessageTypeInfo.IncSendSnapShot();
                    _logger.DebugFormat("channel:{2} skip SendSnapshot :{0} {1}!", channel.IsConnected,
                                        !player.network.NetworkChannel.Serializer.MessageTypeInfo.SkipSendSnapShot(serverTime),
                                        channel.IdInfo());
                }
            }

            if (SharedConfig.MutilThread)
            {
#if ENABLE_NEW_SENDSNAPSHOT_THREAD
                ConsumerExecute();
#else
                MutilExecute();
#endif
            }
            else
            {
                MainExecute();
            }

            _logger.DebugFormat("SendSnapshot Threads Done;");
        }
Exemplo n.º 24
0
        public static DeleteComponentPatch Allocate(IGameComponent comp)
        {
            var rc = ObjectAllocatorHolder <DeleteComponentPatch> .Allocate();

            rc.CreateGameComponent(comp.GetComponentId());
            // ReSharper disable once PossibleNullReferenceException
            (rc.Component as INetworkObject).CopyFrom(comp);
            return(rc);
        }
Exemplo n.º 25
0
        public static DefaultBulletSegment Allocate(int serverTime, RaySegment raySegment, IBulletEntity bulletEntity)
        {
            var ret = ObjectAllocatorHolder <DefaultBulletSegment> .Allocate();

            ret.ServerTime   = serverTime;
            ret.RaySegment   = raySegment;
            ret.BulletEntity = bulletEntity;
            return(ret);
        }
Exemplo n.º 26
0
        public void Serialize(Stream outStream, object message)
        {
            var stream = ObjectAllocatorHolder <CodedOutputStream> .Allocate();

            stream.Initizlize(outStream, _outputBuffer);
            (message as IMessage).WriteTo(stream);
            stream.Flush();
            ObjectAllocatorHolder <CodedOutputStream> .Free(stream);
        }
Exemplo n.º 27
0
            public static QueueItem Allocate(INetworkChannel channel, int messageType, object messageBody)
            {
                var rc = ObjectAllocatorHolder <QueueItem> .Allocate();

                rc.Channel     = channel;
                rc.MessageBody = messageBody;
                rc.MessageType = messageType;
                return(rc);
            }
Exemplo n.º 28
0
        public static void CreateMuzzleSparkEffct(Vector3 postion, float pitch, float yaw, int effectId,
                                                  Transform muzzleTrans)
        {
            ClientEffectEmitter clientEffectObj =
                LocalObjectGenerator.EffectLocal.GetClientEffectEmitter(EEffectObjectClassify.Muzzle);
            var immobileEffectBehavior = ObjectAllocatorHolder <YawEffectBehavior> .Allocate();

            immobileEffectBehavior.Initialize(pitch, yaw, postion, muzzleTrans);
            clientEffectObj.Initialize(effectId, immobileEffectBehavior);
        }
Exemplo n.º 29
0
        public ISnapshot GeneratePerPlayerSnapshot(int seq, EntityKey self, Vector3 position, Bin2DConfig config,
                                                   IBin2DManager bin, List <IGameEntity> preEntitys)
        {
            var factory = ObjectAllocatorHolder <PartialSnapshotFactory> .Allocate();

            var ret = factory.GeneratePartialSnapshot(seq, self, position, config, bin, preEntitys);

            factory.ReleaseReference();
            return(ret);
        }
Exemplo n.º 30
0
            public static AssetLoadRequest <T> Alloc()
            {
                var req = ObjectAllocatorHolder <AssetLoadRequest <T> > .Allocate();

                if (req.Allocator == null)
                {
                    req.Allocator = ObjectAllocatorHolder <AssetLoadRequest <T> > .GetAllocator();
                }
                return(req);
            }