private void EvolveByResult(EvolveResult args) { foreach (var pair in args.Result) { bool deathEventIsHappended = pair.Value.DeathRuleFitResult.Contains(LifeGame.STATUS_DEATH_TRUE); bool rebornEventIsHappened = pair.Value.RebornRuleFitResult.Contains(LifeGame.STATUS_REBORN_TRUE); bool liveEventIsHappened = pair.Value.LiveRuleFitResult.Contains(LifeGame.STATUS_LIVE_TRUE); var eventArgs = new SpaceEvolveEventArgs() { Location = pair.Key, NearSpaces = pair.Value.NearSpaces }; if (liveEventIsHappened) { LiveEventHappened(this, eventArgs); } if (deathEventIsHappended) { DeathEventHappened(this, eventArgs); } if (rebornEventIsHappened) { RebornEventHappened(this, eventArgs); } } }
private void RebornEventHappened(object world, SpaceEvolveEventArgs args) { Reborn?.Invoke(world, args); }
private void LiveEventHappened(object world, SpaceEvolveEventArgs args) { Live?.Invoke(world, args); }
private void DeathEventHappened(object world, SpaceEvolveEventArgs args) { Death?.Invoke(world, args); }