public void SetState(int generatorId, GeneratorState newState) { var generator = GetOrAdd(generatorId); var oldState = generator.State; generator.SetState(newState); if (oldState != newState) { GameEvents.OnGeneratorStateChanged(oldState, generator.State, generator); } }