Index: source/graphics/scripting/JSInterface_GameView.cpp =================================================================== --- source/graphics/scripting/JSInterface_GameView.cpp +++ source/graphics/scripting/JSInterface_GameView.cpp @@ -72,6 +72,28 @@ #undef REGISTER_BOOLEAN_SCRIPT_SETTING +JS::Value GetCameraDirection(const ScriptRequest& rq) +{ + CVector3D pos(-1, -1, -1); + if (g_Game && g_Game->GetView()) { + pos = g_Game->GetView()->GetCamera()->GetOrientation().GetIn(); + } else { + return JS::UndefinedValue(); + } + + JS::RootedValue val(rq.cx); + Script::CreateObject(rq, &val, "x", pos.X, "y", pos.Y); + return val; +} + +JS::Value GetCameraZoom() +{ + float zoom = -1; + if (g_Game && g_Game->GetView()) + zoom = g_Game->GetView()->GetCameraZoom(); + return JS::NumberValue(zoom); +} + JS::Value GetCameraPivot(const ScriptRequest& rq) { CVector3D pivot(-1, -1, -1); @@ -166,6 +188,8 @@ { RegisterScriptFunctions_Settings(rq); + ScriptFunction::Register<&GetCameraDirection>(rq, "GetCameraDirection"); + ScriptFunction::Register<&GetCameraZoom>(rq, "GetCameraZoom"); ScriptFunction::Register<&GetCameraPivot>(rq, "GetCameraPivot"); ScriptFunction::Register<&CameraMoveTo>(rq, "CameraMoveTo"); ScriptFunction::Register<&SetCameraTarget>(rq, "SetCameraTarget");