private void Awake() { perSecondTimer = Timer.TimesPerSecond(TimesPerSecond); perSecondTimer.Hit += UpdateSim; var patternsManager = new GoLPatternsManager(new GoLPatternsResourcesLoader().Load()); PatternWalker = new ListWalker <GoLPattern>(patternsManager.Patterns); PatternWalker.Changed += PatternWalkerOnChanged; SetSelectedPatternTexture(new GoLPatternTexture(PatternWalker.Current)); SelectedPresetTexture.Changed += SelectedPresetTextureOnChanged; outputTexture = new RenderTexture((int)size.x, (int)size.y, 24); outputTexture.enableRandomWrite = true; outputTexture.filterMode = FilterMode.Point; outputTexture.Create(); bufferTexture = new RenderTexture((int)size.x, (int)size.y, 24); bufferTexture.enableRandomWrite = true; bufferTexture.filterMode = FilterMode.Point; bufferTexture.Create(); gameOfLifeRawImage.texture = outputTexture; gameOfLifeRawImage.GetComponent <RectTransform>().sizeDelta = size; mouseCameraController.Initialize(size); GenerateRandomWorldGPU(Seed); gameOfLifeComputeShader.SetFloats("Resolution", outputTexture.width, outputTexture.height); gameOfLifeComputeShader.SetTexture(0, "Result", outputTexture); gameOfLifeComputeShader.SetTexture(0, "BufferTexture", bufferTexture); }
public int Compare(ListWalker <T> x, ListWalker <T> y) { if (ReferenceEquals(x, y)) { return(0); } if (ReferenceEquals(null, y)) { return(1); } if (ReferenceEquals(null, x)) { return(-1); } return(x.Cursor.CompareTo(y.Cursor)); }
public bool Equals(ListWalker <T> x, ListWalker <T> y) { if (ReferenceEquals(x, y)) { return(true); } if (ReferenceEquals(x, null)) { return(false); } if (ReferenceEquals(y, null)) { return(false); } if (x.GetType() != y.GetType()) { return(false); } return(Equals(x.Walking, y.Walking) && x.Cursor == y.Cursor); }
public int GetHashCode(ListWalker <T> obj) { unchecked { return(((obj.Walking != null ? obj.Walking.GetHashCode() : 0) * 397) ^ obj.Cursor); } }
/// <inheritdoc /> public _CheckpointChanger(ListWalker <T> walker, string name) { _walker = walker ?? throw new ArgumentNullException(nameof(walker)); _checkpointName = name ?? $"___CheckpointChanger_{Guid.NewGuid()}"; _walker.SaveCheckpoint(_checkpointName); }