private void PrepareDropRegions(IBlock block) { this.DropRegions.Clear(); foreach (KeyValuePair <IBlockView, Point> kv in allViews) { IBlockView v = kv.Key; if (v.Model == block) { continue; } Point p = kv.Value; DropRegions.AddRange(v.DropRegions(p).Where(dr => dr.IsCompatible(blockSpace.Typeof(block), blockSpace.AttributeOf(block)))); } }