Ejemplo n.º 1
0
        internal static void Deallocate(this MyActorComponent item)
        {
            var voxelRenderable = item as MyVoxelRenderableComponent; // TODO: Rewrite this whole method

            if (voxelRenderable != null)
            {
                MyComponentFactory <MyVoxelRenderableComponent> .Deallocate(voxelRenderable);

                return;
            }

            switch (item.Type)
            {
            case MyActorComponentEnum.Renderable:
                MyComponentFactory <MyRenderableComponent> .Deallocate(item as MyRenderableComponent);

                break;

            case MyActorComponentEnum.Instancing:
                MyComponentFactory <MyInstancingComponent> .Deallocate(item as MyInstancingComponent);

                break;

            case MyActorComponentEnum.Skinning:
                MyComponentFactory <MySkinningComponent> .Deallocate(item as MySkinningComponent);

                break;

            case MyActorComponentEnum.Foliage:
                MyComponentFactory <MyFoliageComponent> .Deallocate(item as MyFoliageComponent);

                break;

            case MyActorComponentEnum.GroupLeaf:
                MyComponentFactory <MyGroupLeafComponent> .Deallocate(item as MyGroupLeafComponent);

                break;

            case MyActorComponentEnum.GroupRoot:
                MyComponentFactory <MyGroupRootComponent> .Deallocate(item as MyGroupRootComponent);

                break;

            case MyActorComponentEnum.InstanceLod:
                MyComponentFactory <MyInstanceLodComponent> .Deallocate(item as MyInstanceLodComponent);

                break;

            case MyActorComponentEnum.Unassigned:
                Debug.Assert(false, "Can't find component factory");
                break;
            }
        }
Ejemplo n.º 2
0
        internal static void Deallocate(this MyActorComponent item)
        {
            switch (item.Type)
            {
            case MyActorComponentEnum.Renderable:
                MyComponentFactory <MyRenderableComponent> .Deallocate(item as MyRenderableComponent);

                break;

            case MyActorComponentEnum.Instancing:
                MyComponentFactory <MyInstancingComponent> .Deallocate(item as MyInstancingComponent);

                break;

            case MyActorComponentEnum.Skinning:
                MyComponentFactory <MySkinningComponent> .Deallocate(item as MySkinningComponent);

                break;

            case MyActorComponentEnum.Foliage:
                MyComponentFactory <MyFoliageComponent> .Deallocate(item as MyFoliageComponent);

                break;

            case MyActorComponentEnum.GroupLeaf:
                MyComponentFactory <MyGroupLeafComponent> .Deallocate(item as MyGroupLeafComponent);

                break;

            case MyActorComponentEnum.GroupRoot:
                MyComponentFactory <MyGroupRootComponent> .Deallocate(item as MyGroupRootComponent);

                break;

            case MyActorComponentEnum.InstanceLod:
                MyComponentFactory <MyInstanceLodComponent> .Deallocate(item as MyInstanceLodComponent);

                break;

            case MyActorComponentEnum.Unassigned:
                Debug.Assert(false, "Can't find component factory");
                break;
            }
        }