void Update() { if (BlockNeonSign.isBlockPoweredUp(blockPos, cIdx)) { isSignActive = true; } else { isSignActive = false; nextStateChangeTime = default(DateTime); } if (isSignActive) { if (litSignObject != null && flicker) { litSignObject.active = !litSignObject.active; return; } if (flash) { //Flashing if (nextStateChangeTime == default(DateTime)) { nextStateChangeTime = DateTime.Now; } if (DateTime.Now > nextStateChangeTime) { if (litSignObject != null && litSignObject.active) { litSignObject.active = false; } else { litSignObject.active = true; } nextStateChangeTime = DateTime.Now.AddSeconds(flashSpeed); } } else { //No Flashing if (litSignObject != null && !litSignObject.active) { litSignObject.active = true; } } } else { if (litSignObject != null && litSignObject.active) { litSignObject.active = false; } } }