Esempio n. 1
0
        /// <summary>
        /// 블럭이 끼워질 때의 이벤트
        /// 끼워진 블럭이 가지는 구멍들을 이 블럭이 가진 구멍 목록에 추가
        /// </summary>
        /// <param name="hole">블럭이 끼워진 구멍</param>
        /// <param name="block">구멍에 끼운 블럭</param>
        private void OnBlockAttached(BaseHole hole, BaseBlock block)
        {
            if (block != null)
            {
                AllHoleList.AddRange(block.HoleList);
                block.AllowVariableList.AddRange(AllowVariableList);

                ParentHole?.ParentBlock?.OnBlockAttached(hole, block);
            }
        }
Esempio n. 2
0
        /// <summary>
        /// 블럭이 떨어질 때의 이벤트
        /// 떨어진 블럭이 가지는 구멍들은 이 블럭이 가진 구멍 목록에서 제거
        /// </summary>
        /// <param name="hole">블럭이 떨어져 나온 구멍</param>
        /// <param name="block">구멍에서 떨어진 블럭</param>
        private void OnBlockDetached(BaseHole hole, BaseBlock block)
        {
            if (block != null)
            {
                foreach (var holeItem in block.HoleList)
                {
                    AllHoleList.Remove(holeItem);
                }

                foreach (var allowVariable in AllowVariableList)
                {
                    block.AllowVariableList.Remove(allowVariable);
                }

                ParentHole?.ParentBlock?.OnBlockDetached(hole, block);
            }
        }
Esempio n. 3
0
 public ToObjectException(string message, BaseBlock block) : base(message)
 {
     where = block;
 }