'''
''' The sign displaying the current location in the world.
'''
Public Class RouteSign
Private _positionY As Single = -60
Private _show As Boolean = False
Private _delay As Single = 0
Private _text As String = ""
'''
''' Sets the values of the RouteSign and displays it on the screen.
'''
Public Sub Setup(ByVal newText As String)
'Only if the text is different from last time the RouteSign showed up, display the RouteSign.
If newText.ToLower() <> Me._text.ToLower() Then
_show = True
_delay = 13.0F
_text = newText
End If
End Sub
'''
''' Hides the RouteSign.
'''
Public Sub Hide()
Me._show = False
End Sub
'''
''' Update the RouteSign.
'''
Public Sub Update()
If Me._delay > 0.0F Then
If Me._positionY < 5.0F Then
Me._positionY += 1.2F
End If
Me._delay -= 0.1F
If Me._delay <= 0.0F Then
Me._delay = 0.0F
End If
Else
If Me._positionY > -60 Then
Me._positionY -= 1.2F
If Me._positionY <= -60 Then
Me._show = False
End If
End If
End If
End Sub
'''
''' Renders the RouteSign.
'''
Public Sub Draw()
If Me._show = True Then
Dim placeString As String = Localization.GetString("Places_" & Me._text, Me._text)
'Get the point to render the text to.
Dim pX As Integer = CInt(316 / 2) - CInt(FontManager.InGameFont.MeasureString(placeString).X / 2)
Core.SpriteBatch.DrawInterface(TextureManager.GetTexture("GUI\Overworld\Sign"), New Rectangle(5, CInt(Me._positionY), 316, 60), Color.White) 'Draw the sign image.
Core.SpriteBatch.DrawInterfaceString(FontManager.InGameFont, placeString, New Vector2(pX, CInt(Me._positionY) + 13), Color.Black) 'Draw the text on the sign.
End If
End Sub
End Class