/// <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); } }
/// <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); } }
public ToObjectException(string message, BaseBlock block) : base(message) { where = block; }