コード例 #1
0
ファイル: TilePropagator.cs プロジェクト: peljevic/07_t03
        /// <summary>
        ///
        /// </summary>
        void Update()
        {
            if (Input.GetKeyDown(KeyCode.R))
            {
                _model.Reset();
                foreach (var v in _verts)
                {
                    v.Tile = null;
                }
                _status = CollapseStatus.Incomplete;
            }

            for (int i = 0; i < _substeps; i++)
            {
                if (_status == CollapseStatus.Incomplete)
                {
                    _status = _model.Observe();

                    if (_status == CollapseStatus.Contradiction)
                    {
                        Debug.Log("Contradiction found! Reset the model and try again.");
                        return;
                    }

                    if (_status == CollapseStatus.Complete)
                    {
                        Debug.Log("Collapse complete!");
                        return;
                    }

                    _model.Propagate();
                }
            }
        }