public override int GetHashCode() { int agentHash = queleaSettings.Aggregate(1, (current, agent) => current * agent.GetHashCode()); int emitterHash = emitters.Aggregate(1, (current, emitter) => current * emitter.GetHashCode()); int environmentHash = environment.GetHashCode(); return(agentHash ^ emitterHash * 7 * environmentHash); }