Imports Orbiter.Interfaces
Imports Wrap = Orbiter.Wrapper.Vessel
Namespace MyVesselTemplate
    Class MyVesselTemplateModule
        Implements VesselModule

        Public Sub ExitVessel(ByVal vessel As System.IntPtr) Implements Orbiter.Interfaces.VesselModule.ExitVessel
            Wrap.Exit(vessel)
        End Sub
        Public Function InitVessel(ByVal vessel As System.IntPtr, ByVal flightModel As Integer) As System.IntPtr Implements Orbiter.Interfaces.VesselModule.InitVessel
            Return Wrap.Init(vessel, flightModel, New MyVesselClass())
        End Function
        Public Sub InitModule(ByVal nativeDLL As System.IntPtr) Implements Orbiter.Interfaces.VesselModule.InitModule

        End Sub
        Public Sub ExitModule(ByVal nativeDLL As System.IntPtr) Implements Orbiter.Interfaces.VesselModule.ExitModule

        End Sub
    End Class
End Namespace
Public Class MyVesselClass
    Implements Orbiter.Interfaces.Vessel2
    Private MyVessel As Orbiter.Interfaces.Vessel
    Private MyVessel2 As Orbiter.Interfaces.Vessel2
    Private Const callbacks As Vessel2Callback = Vessel2Callback.All
    Public Property Base() As Orbiter.Interfaces.Vessel2 Implements Orbiter.Interfaces.Vessel2.Base
        Get
            Return MyVessel2
        End Get
        Set(ByVal value As Orbiter.Interfaces.Vessel2)
            MyVessel2 = value
        End Set
    End Property
    Public Property This() As Orbiter.Interfaces.Vessel Implements Orbiter.Interfaces.Vessel2.This
        Get
            Return MyVessel
        End Get
        Set(ByVal value As Orbiter.Interfaces.Vessel)
            MyVessel = value
        End Set
    End Property
    Public ReadOnly Property CallbackSetting() As Orbiter.Interfaces.Vessel2Callback Implements Orbiter.Interfaces.Vessel2.CallbackSetting
        Get
            Return callbacks
        End Get
    End Property

    Public Sub SetClassCaps(ByVal configuration As System.IntPtr) Implements Orbiter.Interfaces.Vessel2.SetClassCaps

    End Sub

    Public Function LiftCoefficient(ByVal angleOfAttack As Double) As Double

    End Function

    Public Sub ADCtrlMode(ByVal mode As Integer) Implements Orbiter.Interfaces.Vessel2.ADCtrlMode

    End Sub

    Public Sub Animate(ByVal simt As Double) Implements Orbiter.Interfaces.Vessel2.Animate

    End Sub

    Public Function ConsumeBufferedKey(ByVal key As Integer, ByVal down As Boolean, ByVal keyState As System.IntPtr) As Integer Implements Orbiter.Interfaces.Vessel2.ConsumeBufferedKey

    End Function

    Public Function ConsumeDirectKey(ByVal keyState As System.IntPtr) As Integer Implements Orbiter.Interfaces.Vessel2.ConsumeDirectKey

    End Function

    Public Sub DisposeThis() Implements Orbiter.Interfaces.Vessel2.DisposeThis

    End Sub

    Public Sub DockEvent(ByVal dock As Integer, ByVal mate As System.IntPtr) Implements Orbiter.Interfaces.Vessel2.DockEvent

    End Sub

    Public Sub DrawHUD(ByVal mode As Integer, ByVal hps As Orbiter.Interfaces.HudPaintSpecification, ByVal hDC As System.IntPtr) Implements Orbiter.Interfaces.Vessel2.DrawHUD

    End Sub

    Public Sub FocusChanged(ByVal getFocus As Boolean, ByVal newVessel As System.IntPtr, ByVal oldVessel As System.IntPtr) Implements Orbiter.Interfaces.Vessel2.FocusChanged

    End Sub

    Public Sub HUDMode(ByVal mode As Integer) Implements Orbiter.Interfaces.Vessel2.HUDMode

    End Sub

    Public Function LoadGenericCockpit() As Boolean Implements Orbiter.Interfaces.Vessel2.LoadGenericCockpit

    End Function

    Public Function LoadPanel(ByVal id As Integer) As Boolean Implements Orbiter.Interfaces.Vessel2.LoadPanel

    End Function

    Public Sub LoadStateEx(ByVal scenario As System.IntPtr, ByVal status As System.IntPtr) Implements Orbiter.Interfaces.Vessel2.LoadStateEx

    End Sub

    Public Function LoadVC(ByVal id As Integer) As Boolean Implements Orbiter.Interfaces.Vessel2.LoadVC

    End Function

    Public Sub MFDMode(ByVal mfd As Integer, ByVal mode As Integer) Implements Orbiter.Interfaces.Vessel2.MFDMode

    End Sub

    Public Sub NavMode(ByVal mode As Integer, ByVal active As Boolean) Implements Orbiter.Interfaces.Vessel2.NavMode

    End Sub

    Public Function PanelMouseEvent(ByVal id As Integer, ByVal mouseEvent As Integer, ByVal mx As Integer, ByVal my As Integer) As Boolean Implements Orbiter.Interfaces.Vessel2.PanelMouseEvent

    End Function

    Public Function PanelRedrawEvent(ByVal id As Integer, ByVal mouseEvent As Integer, ByVal surface As System.IntPtr) As Boolean Implements Orbiter.Interfaces.Vessel2.PanelRedrawEvent

    End Function

    Public Function PlaybackEvent(ByVal simt As Double, ByVal event_t As Double, ByVal event_type As String, ByVal event_name As String) As Boolean Implements Orbiter.Interfaces.Vessel2.PlaybackEvent

    End Function

    Public Sub PostCreation() Implements Orbiter.Interfaces.Vessel2.PostCreation

    End Sub

    Public Sub PostStep(ByVal simt As Double, ByVal simdt As Double, ByVal mjd As Double) Implements Orbiter.Interfaces.Vessel2.PostStep

    End Sub

    Public Sub PreStep(ByVal simt As Double, ByVal simdt As Double, ByVal mjd As Double) Implements Orbiter.Interfaces.Vessel2.PreStep

    End Sub

    Public Sub RCSMode(ByVal mode As Integer) Implements Orbiter.Interfaces.Vessel2.RCSMode

    End Sub

    Public Sub SaveState(ByVal scenario As System.IntPtr) Implements Orbiter.Interfaces.Vessel2.SaveState

    End Sub

    Public Sub SetStateEx(ByVal status As Orbiter.Interfaces.VesselStatus2) Implements Orbiter.Interfaces.Vessel2.SetStateEx

    End Sub

    Public Function VCMouseEvent(ByVal id As Integer, ByVal mouseEvent As Integer, ByVal p As Orbiter.Interfaces.Vector3) As Boolean Implements Orbiter.Interfaces.Vessel2.VCMouseEvent

    End Function

    Public Function VCRedrawEvent(ByVal id As Integer, ByVal mouseEvent As Integer, ByVal surface As System.IntPtr) As Boolean Implements Orbiter.Interfaces.Vessel2.VCRedrawEvent

    End Function

    Public Sub VisualCreated(ByVal vis As System.IntPtr, ByVal refCount As Integer) Implements Orbiter.Interfaces.Vessel2.VisualCreated

    End Sub

    Public Sub VisualDestroyed(ByVal vis As System.IntPtr, ByVal refCount As Integer) Implements Orbiter.Interfaces.Vessel2.VisualDestroyed

    End Sub

End Class

