示例#1
0
        public void UpdateAttachedGrids()
        {
            AttachedGrids.Clear();
            var box      = Entity.WorldAABB;
            var entities = new List <MyEntity>();

            MyGamePruningStructure.GetTopMostEntitiesInBox(ref box, entities, MyEntityQueryType.Static);
            foreach (var entity in entities.Where(e => e is IMyCubeGrid))
            {
                var gridModel = Tree.Grids.FirstOrDefault(g => g.Entity.EntityId == entity.EntityId);
                if (gridModel == null)
                {
                    gridModel = new GridViewModel((MyCubeGrid)entity, Tree);
                    Tree.Grids.Add(gridModel);
                }

                AttachedGrids.Add(gridModel);
            }
        }
示例#2
0
        public async Task UpdateAttachedGrids()
        {
            //TODO: fix
            return;

            AttachedGrids.Clear();
            var box      = Entity.WorldAABB;
            var entities = new List <MyEntity>();
            await TorchBase.Instance.InvokeAsync(() => MyEntities.GetTopMostEntitiesInBox(ref box, entities)).ConfigureAwait(false);

            foreach (var entity in entities.Where(e => e is IMyCubeGrid))
            {
                if (Tree.Grids.TryGetValue(entity.EntityId, out var gridModel))
                {
                    gridModel = new GridViewModel((MyCubeGrid)entity, Tree);
                    Tree.Grids.Add(entity.EntityId, gridModel);
                }

                AttachedGrids.Add(gridModel);
            }
        }