diff options
author | madmaxoft <github@xoft.cz> | 2014-08-09 14:25:49 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-08-09 14:25:49 +0200 |
commit | 4b1505f39d6a77b0fd389d1170a1dcc901f602cd (patch) | |
tree | 036067995500e4d770eeecbf3e3b9b791d604bb5 /src/Bindings | |
parent | Debuggers: Simple cRankManager test case. (diff) | |
parent | Merge pull request #1295 from mc-server/crystal (diff) | |
download | cuberite-4b1505f39d6a77b0fd389d1170a1dcc901f602cd.tar cuberite-4b1505f39d6a77b0fd389d1170a1dcc901f602cd.tar.gz cuberite-4b1505f39d6a77b0fd389d1170a1dcc901f602cd.tar.bz2 cuberite-4b1505f39d6a77b0fd389d1170a1dcc901f602cd.tar.lz cuberite-4b1505f39d6a77b0fd389d1170a1dcc901f602cd.tar.xz cuberite-4b1505f39d6a77b0fd389d1170a1dcc901f602cd.tar.zst cuberite-4b1505f39d6a77b0fd389d1170a1dcc901f602cd.zip |
Diffstat (limited to 'src/Bindings')
-rw-r--r-- | src/Bindings/ManualBindings.cpp | 29 |
1 files changed, 28 insertions, 1 deletions
diff --git a/src/Bindings/ManualBindings.cpp b/src/Bindings/ManualBindings.cpp index 5563fb14a..f50bdd7de 100644 --- a/src/Bindings/ManualBindings.cpp +++ b/src/Bindings/ManualBindings.cpp @@ -82,6 +82,33 @@ static int lua_do_error(lua_State* L, const char * a_pFormat, ...) // Lua bound functions with special return types +static int tolua_Clamp(lua_State * tolua_S) +{ + cLuaState LuaState(tolua_S); + int NumArgs = lua_gettop(LuaState); + if (NumArgs != 3) + { + return lua_do_error(LuaState, "Error in function call '#funcname#': Requires 3 arguments, got %i", NumArgs); + } + + if (!lua_isnumber(LuaState, 1) || !lua_isnumber(LuaState, 2) || !lua_isnumber(LuaState, 3)) + { + return lua_do_error(LuaState, "Error in function call '#funcname#': Expected a number for parameters #1, #2 and #3"); + } + + lua_Number Number = tolua_tonumber(LuaState, 1, 0); + lua_Number Min = tolua_tonumber(LuaState, 2, 0); + lua_Number Max = tolua_tonumber(LuaState, 3, 0); + + lua_Number Result = Clamp(Number, Min, Max); + LuaState.Push(Result); + return 1; +} + + + + + static int tolua_StringSplit(lua_State * tolua_S) { cLuaState LuaState(tolua_S); @@ -480,7 +507,6 @@ static int tolua_DoWithXYZ(lua_State* tolua_S) int ItemX = ((int)tolua_tonumber(tolua_S, 2, 0)); int ItemY = ((int)tolua_tonumber(tolua_S, 3, 0)); int ItemZ = ((int)tolua_tonumber(tolua_S, 4, 0)); - LOG("x %i y %i z %i", ItemX, ItemY, ItemZ); if (!lua_isfunction( tolua_S, 5)) { return lua_do_error(tolua_S, "Error in function call '#funcname#': Expected a function for parameter #4"); @@ -3103,6 +3129,7 @@ static int tolua_cCompositeChat_UnderlineUrls(lua_State * tolua_S) void ManualBindings::Bind(lua_State * tolua_S) { tolua_beginmodule(tolua_S, NULL); + tolua_function(tolua_S, "Clamp", tolua_Clamp); tolua_function(tolua_S, "StringSplit", tolua_StringSplit); tolua_function(tolua_S, "StringSplitAndTrim", tolua_StringSplitAndTrim); tolua_function(tolua_S, "LOG", tolua_LOG); |