Imports System
Imports System.Collections.Generic
Imports System.Linq
Imports System.Text
Imports LuaInterface
Imports Python.Runtime
Imports Phoenix_Engine
Namespace ScriptingSystem
Public Class LUAScriptEngine
Public luaparser As New Lua()
Public sengine As New Phoenix_Engine.Graphics.Render_Engine()
Public smath As New Phoenix_Engine.Math.MathHelper()
Public Sub RegisterEngineFunction(ByVal [function] As String)
Try
luaparser.RegisterFunction([function], sengine, sengine.[GetType]().GetMethod([function]))
Catch e As System.Reflection.AmbiguousMatchException
Console.WriteLine(e.Message)
End Try
End Sub
Public Sub RegisterFunctionMath(ByVal [function] As String)
luaparser.RegisterFunction([function], smath, smath.[GetType]().GetMethod([function]))
End Sub
Public Sub ParseEntityLUAAsCode(ByVal entity As Integer)
Dim luacode As String = Phoenix_Engine.Graphics.Render_Engine.EntityProperty(entity, "lua", "")
If luacode <> "" Then
luaparser.DoString(luacode)
End If
End Sub
Public Sub ParseEntityLUAAsFile(ByVal entity As Integer)
Dim luafile As String = Phoenix_Engine.Graphics.Render_Engine.EntityProperty(entity, "lua", "")
If luafile <> "" Then
luaparser.DoFile(luafile)
End If
End Sub
Public Sub RunScript(ByVal filepath As String)
luaparser.DoFile(filepath)
End Sub
Public Sub RunChunk(ByVal chunk As String)
luaparser.DoString(chunk)
End Sub
Public Function GetTable(ByVal path As String) As Object
Return luaparser.GetTable(path)
End Function
Public Function GetFunction(ByVal path As String) As Object
Return luaparser.GetFunction(path)
End Function
Public Function GetString(ByVal path As String) As Object
Return luaparser.GetString(path)
End Function
Public Function GetNumber(ByVal path As String) As Object
Return luaparser.GetNumber(path)
End Function
Public Sub NewTable(ByVal path As String)
luaparser.NewTable(path)
End Sub
Public Sub LoadRenderEngineFunctions()
#Region "Render_Engine Class Encapsulation ------- LUA"
RegisterEngineFunction("AddBodyForce")
RegisterEngineFunction("AddBodyTorque")
RegisterEngineFunction("AddTireTorque")
RegisterEngineFunction("AFilter")
RegisterEngineFunction("AlignToVector")
RegisterEngineFunction("AmbientLight")
RegisterEngineFunction("Animate")
RegisterEngineFunction("AppLog")
RegisterEngineFunction("AppLogMode")
RegisterEngineFunction("AppSpeed")
RegisterEngineFunction("AppTerminate")
RegisterEngineFunction("AppTime")
RegisterEngineFunction("BodyOmegaX")
RegisterEngineFunction("BodyOmegaY")
RegisterEngineFunction("BodyOmegaZ")
RegisterEngineFunction("BodyVelocityX")
RegisterEngineFunction("BodyVelocityY")
RegisterEngineFunction("BodyVelocityZ")
RegisterEngineFunction("CameraClsColor")
RegisterEngineFunction("CameraClsMode")
RegisterEngineFunction("CameraFogColor")
RegisterEngineFunction("CameraFogMode")
RegisterEngineFunction("CameraFogRange")
RegisterEngineFunction("CameraPick")
RegisterEngineFunction("CameraProject")
RegisterEngineFunction("CameraProjMode")
RegisterEngineFunction("CameraRange")
RegisterEngineFunction("CameraUnproject")
RegisterEngineFunction("CameraViewport")
RegisterEngineFunction("CameraZoom")
RegisterEngineFunction("ChannelPlaying")
RegisterEngineFunction("ClearWorld")
RegisterEngineFunction("Cls")
RegisterEngineFunction("CollisionX")
RegisterEngineFunction("CollisionY")
RegisterEngineFunction("CollisionZ")
RegisterEngineFunction("CountCollisions")
RegisterEngineFunction("CreateBallJoint")
RegisterEngineFunction("CreateBoxBody")
RegisterEngineFunction("CreateCamera")
RegisterEngineFunction("CreateConeBody")
RegisterEngineFunction("CreateCorkscrewJoint")
RegisterEngineFunction("CreateCorona")
RegisterEngineFunction("CreateCylinderBody")
RegisterEngineFunction("CreateDecal")
RegisterEngineFunction("CreateEmitter")
RegisterEngineFunction("CreateFixedJoint")
RegisterEngineFunction("CreateHingeJoint")
RegisterEngineFunction("CreateLight")
RegisterEngineFunction("CreateListener")
RegisterEngineFunction("CreatePivot")
RegisterEngineFunction("CreatePivotBody")
RegisterEngineFunction("CreatePlayer")
RegisterEngineFunction("CreateShadow")
RegisterEngineFunction("CreateSliderJoint")
RegisterEngineFunction("CreateSphereBody")
RegisterEngineFunction("CreateSprite")
RegisterEngineFunction("CreateTire")
RegisterEngineFunction("CreateUniversalJoint")
RegisterEngineFunction("CreateUpVectorJoint")
RegisterEngineFunction("CreateVehicle")
RegisterEngineFunction("CreateWorld")
RegisterEngineFunction("CueSound")
RegisterEngineFunction("CurrentWorld")
RegisterEngineFunction("Delay")
RegisterEngineFunction("DrawImage")
RegisterEngineFunction("DrawLine")
RegisterEngineFunction("DrawRect")
RegisterEngineFunction("DrawText")
RegisterEngineFunction("EAXEffect")
RegisterEngineFunction("EAXSupported")
RegisterEngineFunction("EmitSound")
RegisterEngineFunction("EnableEAX")
RegisterEngineFunction("EntityAutoFade")
RegisterEngineFunction("EntityColor")
RegisterEngineFunction("EntityDistance")
RegisterEngineFunction("EntityHidden")
RegisterEngineFunction("EntityMaterial")
RegisterEngineFunction("EntityParent")
RegisterEngineFunction("EntityPick")
RegisterEngineFunction("EntityPitch")
RegisterEngineFunction("EntityProperty")
RegisterEngineFunction("EntityRoll")
RegisterEngineFunction("EntityVisible")
RegisterEngineFunction("EntityX")
RegisterEngineFunction("EntityY")
RegisterEngineFunction("EntityYaw")
RegisterEngineFunction("EntityZ")
RegisterEngineFunction("FindChild")
RegisterEngineFunction("Flip")
RegisterEngineFunction("ForEachEntityDo")
RegisterEngineFunction("FreeEntity")
RegisterEngineFunction("FreeJoint")
RegisterEngineFunction("FreeMaterial")
RegisterEngineFunction("FreeTexture")
RegisterEngineFunction("FreeWorld")
RegisterEngineFunction("GCMemAlloced")
RegisterEngineFunction("GetCollision")
RegisterEngineFunction("GetParent")
RegisterEngineFunction("Graphics")
RegisterEngineFunction("GraphicsHeight")
RegisterEngineFunction("GraphicsWidth")
RegisterEngineFunction("HideEntity")
RegisterEngineFunction("HideMouse")
RegisterEngineFunction("IgniteModel")
RegisterEngineFunction("JointStiffness")
RegisterEngineFunction("KeyDown")
RegisterEngineFunction("KeyHit")
RegisterEngineFunction("LightConeAngles")
RegisterEngineFunction("LightRange")
RegisterEngineFunction("LinePick")
RegisterEngineFunction("LoadActor")
RegisterEngineFunction("LoadBody")
RegisterEngineFunction("LoadMaterial")
RegisterEngineFunction("LoadModel")
RegisterEngineFunction("LoadSound")
RegisterEngineFunction("LoadTexture")
RegisterEngineFunction("LoadWorld")
RegisterEngineFunction("MaterialName")
RegisterEngineFunction("MaxAFilter")
RegisterEngineFunction("ModelDetail")
RegisterEngineFunction("MouseDown")
RegisterEngineFunction("MouseHit")
RegisterEngineFunction("MouseX")
RegisterEngineFunction("MouseY")
RegisterEngineFunction("MoveEntity")
RegisterEngineFunction("MoveMouse")
RegisterEngineFunction("PaintEntity")
RegisterEngineFunction("PauseApp")
RegisterEngineFunction("PauseChannel")
RegisterEngineFunction("PickedEntity")
RegisterEngineFunction("PickedNX")
RegisterEngineFunction("PickedNY")
RegisterEngineFunction("PickedNZ")
RegisterEngineFunction("PickedX")
RegisterEngineFunction("PickedY")
RegisterEngineFunction("PickedZ")
RegisterEngineFunction("PlayerAirborne")
RegisterEngineFunction("PlaySound")
RegisterEngineFunction("Plot")
RegisterEngineFunction("PointEntity")
RegisterEngineFunction("PointVisible")
RegisterEngineFunction("PositionEntity")
RegisterEngineFunction("ProjectedX")
RegisterEngineFunction("ProjectedY")
RegisterEngineFunction("ProjectedZ")
RegisterEngineFunction("RegisterAbstractPath")
RegisterEngineFunction("RenderWorld")
RegisterEngineFunction("ResumeApp")
RegisterEngineFunction("ResumeChannel")
RegisterEngineFunction("RotateEntity")
RegisterEngineFunction("RotateSprite")
RegisterEngineFunction("ScaleSprite")
RegisterEngineFunction("SetBlend")
RegisterEngineFunction("SetBodyCenterOfMass")
RegisterEngineFunction("SetBodyGravity")
RegisterEngineFunction("SetBodyMass")
RegisterEngineFunction("SetBodyVelocity")
RegisterEngineFunction("SetChannelRate")
RegisterEngineFunction("SetChannelVolume")
RegisterEngineFunction("SetColor")
RegisterEngineFunction("SetEmitterAcceleration")
RegisterEngineFunction("SetEmitterArea")
RegisterEngineFunction("SetEmitterRotation")
RegisterEngineFunction("SetEmitterSize")
RegisterEngineFunction("SetEmitterSpeed")
RegisterEngineFunction("SetEntityProperty")
RegisterEngineFunction("SetTireAngle")
RegisterEngineFunction("SetWorld")
RegisterEngineFunction("ShowEntity")
RegisterEngineFunction("ShowMouse")
RegisterEngineFunction("SkinModel")
RegisterEngineFunction("StopChannel")
RegisterEngineFunction("SweptCollision")
RegisterEngineFunction("TextureHeight")
RegisterEngineFunction("TextureName")
RegisterEngineFunction("TextureWidth")
RegisterEngineFunction("TFilter")
RegisterEngineFunction("TFormedW")
RegisterEngineFunction("TFormedX")
RegisterEngineFunction("TFormedY")
RegisterEngineFunction("TFormedZ")
RegisterEngineFunction("TFormNormal")
RegisterEngineFunction("TFormPlane")
RegisterEngineFunction("TFormPoint")
RegisterEngineFunction("TFormVector")
RegisterEngineFunction("TranslateEntity")
RegisterEngineFunction("TurnEntity")
RegisterEngineFunction("UpdatePlayer")
RegisterEngineFunction("UpdateWorld")
RegisterEngineFunction("UPS")
#End Region
End Sub
Public Sub LoadMathHelperFunctions()
#Region "MathHelper Class Encapsulation ------- LUA"
RegisterFunctionMath("Clamp")
RegisterFunctionMath("Curve")
RegisterFunctionMath("Midpoint")
RegisterFunctionMath("Mod")
RegisterFunctionMath("DifferenceMod")
RegisterFunctionMath("CurveAngle")
RegisterFunctionMath("Slerp")
#End Region
End Sub
End Class
'PYTHON ENGINE
'THE PYTHON ENGINE IS SIMPLY A PYTHON FILE THAT DEMONSTRATES HOW TO CALL Engine.dll IN PYTHON
End Namespace