public bool IsFlickedOn() { if (FlickComp == null) { return(false); } if (InstantFlickActive) { return(FlickComp.SwitchIsOn); } else { return((bool)WantsToBeOnInfo.GetValue(FlickComp)); } }
public void Flick() { if (FlickComp == null) { return; } bool currentWantsToBeOn = (bool)WantsToBeOnInfo.GetValue(FlickComp); WantsToBeOnInfo.SetValue(FlickComp, !currentWantsToBeOn); if (InstantFlickActive) { FlickComp.DoFlick(); } else { FlickUtility.UpdateFlickDesignation(Thing); } }
public void FlickAll(bool startingState) { foreach (var thing in Things) { var fc = thing.FlickComp; if (fc == null) { continue; } bool currentState = InstantFlickActive ? fc.SwitchIsOn : (bool)WantsToBeOnInfo.GetValue(fc); if (startingState && currentState) { thing.Flick(); } else if (!startingState && !currentState) { thing.Flick(); } } }