378 lines
13 KiB
VB.net
378 lines
13 KiB
VB.net
Imports KeraLua
|
|
|
|
Public Module Lua_Aux
|
|
|
|
Friend Function LuaClearStack(state As Lua)
|
|
Dim nIndex As Integer = state.GetTop()
|
|
If nIndex > 0 Then
|
|
state.Pop(nIndex)
|
|
End If
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaCheckParam(state As Lua, nIndex As Integer, ByRef bValue As Boolean)
|
|
If Not LuaGetParam(state, nIndex, bValue) Then
|
|
Return state.Error(" Invalid Parameter # " & nIndex)
|
|
End If
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaCheckParam(state As Lua, nIndex As Integer, ByRef nValue As Integer)
|
|
If Not LuaGetParam(state, nIndex, nValue) Then
|
|
Return state.Error(" Invalid Parameter # " & nIndex)
|
|
End If
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaCheckParam(state As Lua, nIndex As Integer, ByRef dValue As Double)
|
|
If Not LuaGetParam(state, nIndex, dValue) Then
|
|
Return state.Error(" Invalid Parameter # " & nIndex)
|
|
End If
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaCheckParam(state As Lua, nIndex As Integer, ByRef sValue As String)
|
|
If Not LuaGetParam(state, nIndex, sValue) Then
|
|
Return state.Error(" Invalid Parameter # " & nIndex)
|
|
End If
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaGetParam(state As Lua, nIndex As Integer, ByRef bValue As Boolean) As Boolean
|
|
If Not state.IsBoolean(nIndex) Then Return False
|
|
bValue = state.ToBoolean(nIndex)
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaGetParam(state As Lua, nIndex As Integer, ByRef nValue As Integer) As Boolean
|
|
If Not state.IsNumber(nIndex) Then Return False
|
|
nValue = Math.Round(state.ToNumber(nIndex))
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaGetParam(state As Lua, nIndex As Integer, ByRef dValue As Double) As Boolean
|
|
If Not state.IsNumber(nIndex) Then Return False
|
|
dValue = state.ToNumber(nIndex)
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaGetParam(state As Lua, nIndex As Integer, ByRef sValue As String) As Boolean
|
|
If Not state.IsString(nIndex) Then Return False
|
|
sValue = state.ToString(nIndex)
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaSetParam(state As Lua) As Boolean
|
|
Try
|
|
state.PushNil()
|
|
Catch ex As Exception
|
|
Return False
|
|
End Try
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaSetParam(state As Lua, ByRef bValue As Boolean) As Boolean
|
|
Try
|
|
state.PushBoolean(bValue)
|
|
Catch ex As Exception
|
|
Return False
|
|
End Try
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaSetParam(state As Lua, ByRef nValue As Integer) As Boolean
|
|
Try
|
|
state.PushInteger(nValue)
|
|
Catch ex As Exception
|
|
Return False
|
|
End Try
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaSetParam(state As Lua, ByRef dValue As Double) As Boolean
|
|
Try
|
|
state.PushNumber(dValue)
|
|
Catch ex As Exception
|
|
Return False
|
|
End Try
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaSetParam(state As Lua, ByRef sValue As String) As Boolean
|
|
Try
|
|
state.PushString(sValue)
|
|
Catch ex As Exception
|
|
Return False
|
|
End Try
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaSetParam(state As Lua, ByRef sValue() As String) As Boolean
|
|
Try
|
|
Dim nSize As Integer = sValue.Count()
|
|
state.CreateTable(nSize, 0)
|
|
For nIndex = 0 To nSize - 1
|
|
state.PushString(sValue(nIndex))
|
|
state.RawSetInteger(-2, nIndex)
|
|
Next
|
|
Catch ex As Exception
|
|
Return False
|
|
End Try
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaGetTabFieldParam(state As Lua, nIndex As Integer, sVarName As String, ByRef bValue As Boolean) As Boolean
|
|
If Not state.IsTable(nIndex) Then Return False
|
|
state.GetField(nIndex, sVarName)
|
|
Dim bResult As Boolean = LuaGetParam(state, -1, bValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End Function
|
|
|
|
Friend Function LuaGetTabFieldParam(state As Lua, nIndex As Integer, sVarName As String, ByRef nValue As Integer) As Boolean
|
|
If Not state.IsTable(nIndex) Then Return False
|
|
state.GetField(nIndex, sVarName)
|
|
Dim bResult As Boolean = LuaGetParam(state, -1, nValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End Function
|
|
|
|
Friend Function LuaGetTabFieldParam(state As Lua, nIndex As Integer, sVarName As String, ByRef dValue As Double) As Boolean
|
|
If Not state.IsTable(nIndex) Then Return False
|
|
state.GetField(nIndex, sVarName)
|
|
Dim bResult As Boolean = LuaGetParam(state, -1, dValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End Function
|
|
|
|
Friend Function LuaGetTabFieldParam(state As Lua, nIndex As Integer, sVarName As String, ByRef sValue As String) As Boolean
|
|
If Not state.IsTable(nIndex) Then Return False
|
|
state.GetField(nIndex, sVarName)
|
|
Dim bResult As Boolean = LuaGetParam(state, -1, sValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End Function
|
|
|
|
Friend Function LuaGetGlobVar(state As Lua, ByRef sName As String, ByRef bValue As Boolean) As Boolean
|
|
' se variabile standard
|
|
If Not sName.Contains("."c) Then
|
|
state.GetGlobal(sName)
|
|
Dim bResult As Boolean = LuaGetParam(state, -1, bValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
Else
|
|
Dim sTableName As String = "", sVarName As String = ""
|
|
Dim sParams() As String = sName.Split("."c)
|
|
sTableName = sParams(0)
|
|
sVarName = sParams(1)
|
|
state.GetGlobal(sTableName)
|
|
Dim bResult As Boolean = LuaGetTabFieldParam(state, -1, sVarName, bValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End If
|
|
End Function
|
|
|
|
Friend Function LuaGetGlobVar(state As Lua, ByRef sName As String, ByRef nValue As Integer) As Boolean
|
|
' se variabile standard
|
|
If Not sName.Contains("."c) Then
|
|
state.GetGlobal(sName)
|
|
Dim bResult As Boolean = LuaGetParam(state, -1, nValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
Else
|
|
Dim sTableName As String = "", sVarName As String = ""
|
|
Dim sParams() As String = sName.Split("."c)
|
|
sTableName = sParams(0)
|
|
sVarName = sParams(1)
|
|
state.GetGlobal(sTableName)
|
|
Dim bResult As Boolean = LuaGetTabFieldParam(state, -1, sVarName, nValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End If
|
|
End Function
|
|
|
|
Friend Function LuaGetGlobVar(state As Lua, ByRef sName As String, ByRef dValue As Double) As Boolean
|
|
' se variabile standard
|
|
If Not sName.Contains("."c) Then
|
|
state.GetGlobal(sName)
|
|
Dim bResult As Boolean = LuaGetParam(state, -1, dValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
Else
|
|
Dim sTableName As String = "", sVarName As String = ""
|
|
Dim sParams() As String = sName.Split("."c)
|
|
sTableName = sParams(0)
|
|
sVarName = sParams(1)
|
|
state.GetGlobal(sTableName)
|
|
Dim bResult As Boolean = LuaGetTabFieldParam(state, -1, sVarName, dValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End If
|
|
End Function
|
|
|
|
Friend Function LuaGetGlobVar(state As Lua, ByRef sName As String, ByRef sValue As String) As Boolean
|
|
' se variabile standard
|
|
If Not sName.Contains("."c) Then
|
|
state.GetGlobal(sName)
|
|
Dim bResult As Boolean = LuaGetParam(state, -1, sValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
Else
|
|
Dim sTableName As String = "", sVarName As String = ""
|
|
Dim sParams() As String = sName.Split("."c)
|
|
sTableName = sParams(0)
|
|
sVarName = sParams(1)
|
|
state.GetGlobal(sTableName)
|
|
Dim bResult As Boolean = LuaGetTabFieldParam(state, -1, sVarName, sValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End If
|
|
End Function
|
|
|
|
Friend Function LuaSetTabFieldParam(state As Lua, nIndex As Integer, sVarName As String) As Boolean
|
|
If Not state.IsTable(nIndex) Then Return False
|
|
If Not LuaSetParam(state) Then Return False
|
|
Dim nPos As Integer = (If(nIndex > 0, nIndex, nIndex - 1))
|
|
state.SetField(nPos, sVarName)
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaSetTabFieldParam(state As Lua, nIndex As Integer, sVarName As String, ByRef bValue As Boolean) As Boolean
|
|
If Not state.IsTable(nIndex) Then Return False
|
|
If Not LuaSetParam(state, bValue) Then Return False
|
|
Dim nPos As Integer = (If(nIndex > 0, nIndex, nIndex - 1))
|
|
state.SetField(nPos, sVarName)
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaSetTabFieldParam(state As Lua, nIndex As Integer, sVarName As String, ByRef nValue As Integer) As Boolean
|
|
If Not state.IsTable(nIndex) Then Return False
|
|
If Not LuaSetParam(state, nValue) Then Return False
|
|
Dim nPos As Integer = (If(nIndex > 0, nIndex, nIndex - 1))
|
|
state.SetField(nPos, sVarName)
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaSetTabFieldParam(state As Lua, nIndex As Integer, sVarName As String, ByRef dValue As Double) As Boolean
|
|
If Not state.IsTable(nIndex) Then Return False
|
|
If Not LuaSetParam(state, dValue) Then Return False
|
|
Dim nPos As Integer = (If(nIndex > 0, nIndex, nIndex - 1))
|
|
state.SetField(nPos, sVarName)
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaSetTabFieldParam(state As Lua, nIndex As Integer, sVarName As String, ByRef sValue As String) As Boolean
|
|
If Not state.IsTable(nIndex) Then Return False
|
|
If Not LuaSetParam(state, sValue) Then Return False
|
|
Dim nPos As Integer = (If(nIndex > 0, nIndex, nIndex - 1))
|
|
state.SetField(nPos, sVarName)
|
|
Return True
|
|
End Function
|
|
|
|
Friend Function LuaSetGlobVar(state As Lua, ByRef sName As String, ByRef bValue As Boolean) As Boolean
|
|
' se variabile standard
|
|
If Not sName.Contains("."c) Then
|
|
If Not LuaSetParam(state, bValue) Then Return False
|
|
state.SetGlobal(sName)
|
|
Return True
|
|
' altrimenti campo di tabella
|
|
Else
|
|
Dim sTableName As String = "", sVarName As String = ""
|
|
Dim sParams() As String = sName.Split("."c)
|
|
sTableName = sParams(0)
|
|
sVarName = sParams(1)
|
|
state.GetGlobal(sTableName)
|
|
Dim bResult As Boolean = LuaSetTabFieldParam(state, -1, sVarName, bValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End If
|
|
End Function
|
|
|
|
Friend Function LuaSetGlobVar(state As Lua, ByRef sName As String, ByRef nValue As Integer) As Boolean
|
|
' se variabile standard
|
|
If Not sName.Contains("."c) Then
|
|
If Not LuaSetParam(state, nValue) Then Return False
|
|
state.SetGlobal(sName)
|
|
Return True
|
|
' altrimenti campo di tabella
|
|
Else
|
|
Dim sTableName As String = "", sVarName As String = ""
|
|
Dim sParams() As String = sName.Split("."c)
|
|
sTableName = sParams(0)
|
|
sVarName = sParams(1)
|
|
state.GetGlobal(sTableName)
|
|
Dim bResult As Boolean = LuaSetTabFieldParam(state, -1, sVarName, nValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End If
|
|
End Function
|
|
|
|
Friend Function LuaSetGlobVar(state As Lua, ByRef sName As String, ByRef dValue As Double) As Boolean
|
|
' se variabile standard
|
|
If Not sName.Contains("."c) Then
|
|
If Not LuaSetParam(state, dValue) Then Return False
|
|
state.SetGlobal(sName)
|
|
Return True
|
|
' altrimenti campo di tabella
|
|
Else
|
|
Dim sTableName As String = "", sVarName As String = ""
|
|
Dim sParams() As String = sName.Split("."c)
|
|
sTableName = sParams(0)
|
|
sVarName = sParams(1)
|
|
state.GetGlobal(sTableName)
|
|
Dim bResult As Boolean = LuaSetTabFieldParam(state, -1, sVarName, dValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End If
|
|
End Function
|
|
|
|
Friend Function LuaSetGlobVar(state As Lua, ByRef sName As String, ByRef sValue As String) As Boolean
|
|
' se variabile standard
|
|
If Not sName.Contains("."c) Then
|
|
If Not LuaSetParam(state, sValue) Then Return False
|
|
state.SetGlobal(sName)
|
|
Return True
|
|
' altrimenti campo di tabella
|
|
Else
|
|
Dim sTableName As String = "", sVarName As String = ""
|
|
Dim sParams() As String = sName.Split("."c)
|
|
sTableName = sParams(0)
|
|
sVarName = sParams(1)
|
|
state.GetGlobal(sTableName)
|
|
Dim bResult As Boolean = LuaSetTabFieldParam(state, -1, sVarName, sValue)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End If
|
|
End Function
|
|
|
|
Friend Function LuaResetGlobVar(state As Lua, ByRef sName As String) As Boolean
|
|
' se variabile standard
|
|
If Not sName.Contains("."c) Then
|
|
If Not LuaSetParam(state) Then Return False
|
|
state.SetGlobal(sName)
|
|
Return True
|
|
' altrimenti campo di tabella
|
|
Else
|
|
Dim sTableName As String = "", sVarName As String = ""
|
|
Dim sParams() As String = sName.Split("."c)
|
|
sTableName = sParams(0)
|
|
sVarName = sParams(1)
|
|
state.GetGlobal(sTableName)
|
|
Dim bResult As Boolean = LuaSetTabFieldParam(state, -1, sVarName)
|
|
state.Pop(1)
|
|
Return bResult
|
|
End If
|
|
End Function
|
|
|
|
Friend Function LuaCreateGlobTable(state As Lua, ByRef sName As String) As Boolean
|
|
Try
|
|
state.NewTable()
|
|
state.SetGlobal(sName)
|
|
Catch ex As Exception
|
|
Return False
|
|
End Try
|
|
Return True
|
|
End Function
|
|
|
|
End Module
|