public GetWallPosition ( TilePosition tilePosition, DungeonMasterEngine.DungeonContent.Tiles.Tile currentTile ) : Vector3 | ||
tilePosition | TilePosition | |
currentTile | DungeonMasterEngine.DungeonContent.Tiles.Tile | |
return | Vector3 |
public Vector3 GetWallPosition(TilePosition tilePosition, Tile currentTile)
{
Vector3 offset = Vector3.Zero;
const float scalarOffset = 0.25f;
switch (tilePosition)
{
case TilePosition.North_TopLeft:
offset = new Vector3(scalarOffset, scalarOffset, 1 - scalarOffset);
break;
case TilePosition.East_TopRight:
offset = new Vector3(0, scalarOffset, 1 - scalarOffset);
break;
case TilePosition.South_BottomLeft:
offset = new Vector3(scalarOffset, scalarOffset, 0);
break;
case TilePosition.West_BottomRight:
offset = new Vector3(1 - scalarOffset, scalarOffset, scalarOffset);
break;
}
return currentTile.Position + offset;
}
private void SetupTags(TileData wall, Point textTagTilePosition) { foreach (var textTag in wall.TextTags.Where(x => !x.Processed && x.GetParentPosition(textTagTilePosition) == CurrentTile.GridPosition)) { textTag.Processed = true; var tag = new TextTag(builder.GetWallPosition(textTag.TilePosition, CurrentTile), textTag.IsVisible, textTag.TilePosition == TilePosition.East_TopRight || textTag.TilePosition == TilePosition.West_BottomRight, textTag.Text.Replace("|", Environment.NewLine)) { AcceptMessages = textTag.HasTargetingActuator }; CurrentTile.SubItems.Add(tag); } }