Exemple #1
0
        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);
        }
Exemple #2
0
 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));
 }
Exemple #3
0
 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);
 }
Exemple #4
0
 public int GetHashCode(ListWalker <T> obj)
 {
     unchecked {
         return(((obj.Walking != null ? obj.Walking.GetHashCode() : 0) * 397) ^ obj.Cursor);
     }
 }
Exemple #5
0
 /// <inheritdoc />
 public _CheckpointChanger(ListWalker <T> walker, string name)
 {
     _walker         = walker ?? throw new ArgumentNullException(nameof(walker));
     _checkpointName = name ?? $"___CheckpointChanger_{Guid.NewGuid()}";
     _walker.SaveCheckpoint(_checkpointName);
 }