//moved it to util for easier implementation with MAD public static void DestroyNCreateGlower(ThingWithComps parent, ColorInt glowColour, float glowRadius, Map map) { CompGlower oldGlower = null; CompPowerTrader pwrTrader = null; List <ThingComp> list = parent.GetComps(); foreach (ThingComp comp in list) { if (typeof(CompGlower) == comp.GetType()) { oldGlower = (CompGlower)comp; } if (typeof(CompPowerTrader) == comp.GetType()) { pwrTrader = (CompPowerTrader)comp; } } if (oldGlower != null) { //Boolean isLit = oldGlower.; //oldGlower.Lit = false; //parent.BroadcastCompSignal("FlickedOff"); //oldGlower.PostDeSpawn(); map.glowGrid.DeRegisterGlower(oldGlower); CompGlower newGlower = Util.newCompGlower(parent, glowColour, glowRadius); list.Remove(oldGlower); list.Add(newGlower); //Find.GlowGrid.RegisterGlower(newGlower); //(CompGlower)oldGlower. //replaced with an extention to thingWithComps... doesnt feel safe but hey //typeof(BuildingGlowTnC).GetField("comps", BindingFlags.NonPublic | BindingFlags.Instance).SetValue(parent, List_AllThingComps); parent.SetComps(list); //parent.BroadcastCompSignal("FlickedOn"); newGlower.UpdateLit(map); //newGlower.Lit = false; updateMap(parent.Position, map); //if (pwrTrader != null) //{ // if (isLit && pwrTrader.PowerOn) // { // newGlower.Lit = true; // } //} } }
//moved it to util for easier implementation with MAD public static void DestroyNCreateGlower(ThingWithComps parent, ColorInt glowColour, float glowRadius) { CompGlower oldGlower = null; CompPowerTrader pwrTrader = null; List<ThingComp> list = parent.GetComps(); foreach (ThingComp comp in list) { if (typeof(CompGlower) == comp.GetType()) { if (oldGlower == null) { oldGlower = (CompGlower)comp; } } if (typeof(CompPowerTrader) == comp.GetType()) { pwrTrader = (CompPowerTrader)comp; } } if (oldGlower != null) { Boolean isLitoldGlower = oldGlower.Lit; oldGlower.Lit = false; CompGlower newGlower = Util.newCompGlower(parent, glowColour, glowRadius); list.Remove(oldGlower); list.Add(newGlower); parent.SetComps(list); newGlower.Lit = false; updateMap(parent.Position); if (pwrTrader != null) { if (isLitoldGlower && pwrTrader.PowerOn) { newGlower.Lit = true; } } } }
//moved it to util for easier implementation with MAD public static void DestroyNCreateGlower(ThingWithComps parent, ColorInt glowColour, float glowRadius) { CompGlower oldGlower = null; CompPowerTrader pwrTrader = null; List <ThingComp> list = parent.GetComps(); foreach (ThingComp comp in list) { if (typeof(CompGlower) == comp.GetType()) { if (oldGlower == null) { oldGlower = (CompGlower)comp; } } if (typeof(CompPowerTrader) == comp.GetType()) { pwrTrader = (CompPowerTrader)comp; } } if (oldGlower != null) { Boolean isLitoldGlower = oldGlower.Lit; oldGlower.Lit = false; CompGlower newGlower = Util.newCompGlower(parent, glowColour, glowRadius); list.Remove(oldGlower); list.Add(newGlower); parent.SetComps(list); newGlower.Lit = false; updateMap(parent.Position); if (pwrTrader != null) { if (isLitoldGlower && pwrTrader.PowerOn) { newGlower.Lit = true; } } } }