private void OnHazardChanged(Hazard hazard) { if (!Hazards.Contains(hazard)) { throw new InvalidOperationException($"Attempted to updated hazard `{hazard}` but it could not be found!"); } else { OnChunkChanged.Raise(this); } }
private void OnHazardDestroyed(Hazard hazard) { if (Hazards.Contains(hazard)) { Hazards.Remove(hazard); _log.Info($"Hazard {hazard} has been removed."); } else { throw new InvalidOperationException($"Attempted to remove hazard {hazard} but it could not be found!"); } hazard.OnHazardChanged -= OnHazardChanged; hazard.OnHazardDestroyed -= OnHazardDestroyed; OnChunkChanged.Raise(this); }