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; } }
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; } }