private void SortOutComps() { if (!switchedToChunkSilo) { CompRTQuantumChunkSilo compChunkSilo = parent.TryGetComp<CompRTQuantumChunkSilo>(); if (compChunkSilo != null) { foreach (ThingComp comp in parent.AllComps) { if (comp is CompRTQuantumChunkSilo) { comp.PostDeSpawn(comp.parent.Map); } } parent.AllComps.RemoveAll(x => x is CompRTQuantumChunkSilo); parent.def.comps.RemoveAll(x => x.compClass.ToString().Equals("RT_QuantumStorage.CompRTQuantumChunkSilo")); } if (parent.TryGetComp<CompRTQuantumStockpile>() == null) { CompProperties_RTQuantumStockpile compPropsStockpile = new CompProperties_RTQuantumStockpile(); compPropsStockpile.compClass = typeof(CompRTQuantumStockpile); List<CompProperties> componentsBackup = new List<CompProperties>(); foreach (CompProperties compProperties in parent.def.comps) { componentsBackup.Add(compProperties); } parent.def.comps.Clear(); parent.def.comps.Add(compPropsStockpile); parent.InitializeComps(); foreach (CompProperties compProperties in componentsBackup) { parent.def.comps.Add(compProperties); } CompRTQuantumStockpile compStockpile = parent.TryGetComp<CompRTQuantumStockpile>(); compStockpile.PostSpawnSetup(); compStockpile.PostExposeData(); } } else { CompRTQuantumStockpile compStockpile = parent.TryGetComp<CompRTQuantumStockpile>(); if (compStockpile != null) { foreach (ThingComp comp in parent.AllComps) { if (comp is CompRTQuantumStockpile) { comp.PostDeSpawn(comp.parent.Map); } } parent.AllComps.RemoveAll(x => x is CompRTQuantumStockpile); parent.def.comps.RemoveAll(x => x.compClass.ToString().Equals("RT_QuantumStorage.CompRTQuantumStockpile")); } if (parent.TryGetComp<CompRTQuantumChunkSilo>() == null) { CompProperties_RTQuantumChunkSilo compPropsChunkSilo = new CompProperties_RTQuantumChunkSilo(); compPropsChunkSilo.compClass = typeof(CompRTQuantumChunkSilo); List<CompProperties> componentsBackup = new List<CompProperties>(); foreach (CompProperties compProperties in parent.def.comps) { componentsBackup.Add(compProperties); } parent.def.comps.Clear(); parent.def.comps.Add(compPropsChunkSilo); parent.InitializeComps(); foreach (CompProperties compProperties in componentsBackup) { parent.def.comps.Add(compProperties); } CompRTQuantumChunkSilo compChunkSilo = parent.TryGetComp<CompRTQuantumChunkSilo>(); compChunkSilo.PostSpawnSetup(); compChunkSilo.PostExposeData(); } } }
private void SortOutComps() { if (!switchedToChunkSilo) { CompRTQuantumChunkSilo compChunkSilo = parent.TryGetComp <CompRTQuantumChunkSilo>(); if (compChunkSilo != null) { foreach (ThingComp comp in parent.AllComps) { if (comp is CompRTQuantumChunkSilo) { comp.PostDeSpawn(); } } parent.AllComps.RemoveAll(x => x is CompRTQuantumChunkSilo); parent.def.comps.RemoveAll(x => x.compClass.ToString().Equals("RT_QuantumStorage.CompRTQuantumChunkSilo")); } if (parent.TryGetComp <CompRTQuantumStockpile>() == null) { CompProperties_RTQuantumStockpile compPropsStockpile = new CompProperties_RTQuantumStockpile(); compPropsStockpile.compClass = typeof(CompRTQuantumStockpile); List <CompProperties> componentsBackup = new List <CompProperties>(); foreach (CompProperties compProperties in parent.def.comps) { componentsBackup.Add(compProperties); } parent.def.comps.Clear(); parent.def.comps.Add(compPropsStockpile); parent.InitializeComps(); foreach (CompProperties compProperties in componentsBackup) { parent.def.comps.Add(compProperties); } CompRTQuantumStockpile compStockpile = parent.TryGetComp <CompRTQuantumStockpile>(); compStockpile.PostSpawnSetup(); compStockpile.PostExposeData(); } } else { CompRTQuantumStockpile compStockpile = parent.TryGetComp <CompRTQuantumStockpile>(); if (compStockpile != null) { foreach (ThingComp comp in parent.AllComps) { if (comp is CompRTQuantumStockpile) { comp.PostDeSpawn(); } } parent.AllComps.RemoveAll(x => x is CompRTQuantumStockpile); parent.def.comps.RemoveAll(x => x.compClass.ToString().Equals("RT_QuantumStorage.CompRTQuantumStockpile")); } if (parent.TryGetComp <CompRTQuantumChunkSilo>() == null) { CompProperties_RTQuantumChunkSilo compPropsChunkSilo = new CompProperties_RTQuantumChunkSilo(); compPropsChunkSilo.compClass = typeof(CompRTQuantumChunkSilo); List <CompProperties> componentsBackup = new List <CompProperties>(); foreach (CompProperties compProperties in parent.def.comps) { componentsBackup.Add(compProperties); } parent.def.comps.Clear(); parent.def.comps.Add(compPropsChunkSilo); parent.InitializeComps(); foreach (CompProperties compProperties in componentsBackup) { parent.def.comps.Add(compProperties); } CompRTQuantumChunkSilo compChunkSilo = parent.TryGetComp <CompRTQuantumChunkSilo>(); compChunkSilo.PostSpawnSetup(); compChunkSilo.PostExposeData(); } } }