public void JoinRightwardTo(ScreenCanvas canvas) { var tileTopOne = (int)Math.Round(this.Margin.Top / Screen.Tileset.TileSize); var tileTopTwo = (int)Math.Round(canvas.Margin.Top / Screen.Tileset.TileSize); var startPoint = Math.Max(tileTopOne, tileTopTwo); var endPoint = Math.Min(tileTopOne + Screen.Height, tileTopTwo + canvas.Screen.Height); var startTileOne = (startPoint - tileTopOne); var startTileTwo = (startPoint - tileTopTwo); var length = endPoint - startPoint; var join = new MegaMan.Common.Join(); join.screenOne = Screen.Name; join.screenTwo = canvas.Screen.Name; join.direction = Common.JoinDirection.Both; join.type = Common.JoinType.Vertical; join.offsetOne = startTileOne; join.offsetTwo = startTileTwo; join.Size = length; Screen.Stage.AddJoin(join); }
public void JoinDownwardTo(ScreenCanvas canvas) { var tileLeftOne = (int)Math.Round(this.Margin.Left / Screen.Tileset.TileSize); var tileLeftTwo = (int)Math.Round(canvas.Margin.Left / Screen.Tileset.TileSize); var startPoint = Math.Max(tileLeftOne, tileLeftTwo); var endPoint = Math.Min(tileLeftOne + Screen.Width, tileLeftTwo + canvas.Screen.Width); var startTileOne = (startPoint - tileLeftOne); var startTileTwo = (startPoint - tileLeftTwo); var length = endPoint - startPoint; var join = new MegaMan.Common.Join(); join.screenOne = Screen.Name; join.screenTwo = canvas.Screen.Name; join.direction = Common.JoinDirection.Both; join.type = Common.JoinType.Horizontal; join.offsetOne = startTileOne; join.offsetTwo = startTileTwo; join.Size = length; Screen.Stage.AddJoin(join); }