コード例 #1
0
        internal void OnAddEntity(AddEntityOp op)
        {
            var entityId = new EntityId(op.EntityId);

            if (worker.EntityIdToEntity.ContainsKey(entityId))
            {
                throw new InvalidSpatialEntityStateException(
                          string.Format(Errors.EntityAlreadyExistsError, entityId.Id));
            }

            Profiler.BeginSample("OnAddEntity");
            var entity = EntityManager.CreateEntity();

            EntityManager.AddComponentData(entity, new SpatialEntityId
            {
                EntityId = entityId
            });
            EntityManager.AddComponent(entity, ComponentType.Create <NewlyAddedSpatialOSEntity>());

            foreach (var AddCommandCompoent in AddAllCommandComponents)
            {
                AddCommandCompoent(entity);
            }

            WorldCommands.AddWorldCommandRequesters(World, EntityManager, entity);
            worker.EntityIdToEntity.Add(entityId, entity);
            Profiler.EndSample();
        }
コード例 #2
0
        private void OnAddEntity(AddEntityOp op)
        {
            var entityId = op.EntityId;

            if (worker.EntityMapping.ContainsKey(entityId))
            {
                worker.LogDispatcher.HandleLog(LogType.Error, new LogEvent(Errors.DuplicateAdditionOfEntity)
                                               .WithField(LoggingUtils.LoggerName, LoggerName)
                                               .WithField(LoggingUtils.EntityId, entityId));
                return;
            }

            var entity = EntityManager.CreateEntity();

            EntityManager.AddComponentData(entity, new SpatialEntityId
            {
                EntityId = entityId
            });
            EntityManager.AddComponentData(entity, new NewlyAddedSpatialOSEntity());

            foreach (var AddCommandCompoent in AddAllCommandComponents)
            {
                AddCommandCompoent(entity);
            }

            WorldCommands.AddWorldCommandRequesters(World, EntityManager, entity);
            worker.EntityMapping.Add(entityId, entity);
        }
コード例 #3
0
        public static WrappedOp <AddEntityOp> CreateAddEntityOp(long entityId)
        {
            var op = new AddEntityOp
            {
                EntityId = new EntityId(entityId)
            };

            return(new WrappedOp <AddEntityOp>(op));
        }
コード例 #4
0
ファイル: Dispatcher.cs プロジェクト: KertisJones/Chess.io
 private void HandleAddEntity(AddEntityOp op)
 {
     addEntityCallbacks.InvokeAll(op);
 }
コード例 #5
0
 private void OnAddEntity(AddEntityOp op)
 {
     view.CreateEntity(op.EntityId.Id);
 }