simulation.parts() iterator
This commit is contained in:
parent
03f2590967
commit
17de12dc8b
@ -479,9 +479,9 @@ void LuaScriptInterface::initSimulationAPI()
|
||||
{"gravityMode", simulation_gravityMode},
|
||||
{"airMode", simulation_airMode},
|
||||
{"waterEqualisation", simulation_waterEqualisation},
|
||||
{"waterEqualization", simulation_waterEqualisation},
|
||||
{"ambientAirTemp", simulation_ambientAirTemp},
|
||||
{"elementCount", simulation_elementCount},
|
||||
{"parts", simulation_parts},
|
||||
{NULL, NULL}
|
||||
};
|
||||
luaL_register(l, "simulation", simulationAPIMethods);
|
||||
@ -1505,6 +1505,28 @@ int LuaScriptInterface::simulation_elementCount(lua_State * l)
|
||||
return 1;
|
||||
}
|
||||
|
||||
int PartsClosure(lua_State * l)
|
||||
{
|
||||
int i = lua_tointeger(l, lua_upvalueindex(1));
|
||||
i++;
|
||||
while(!luacon_sim->parts[i].type)
|
||||
if(i>=NPART)
|
||||
return 0;
|
||||
else
|
||||
i++;
|
||||
lua_pushnumber(l, i);
|
||||
lua_replace(l, lua_upvalueindex(1));
|
||||
lua_pushnumber(l, i);
|
||||
return 1;
|
||||
}
|
||||
|
||||
int LuaScriptInterface::simulation_parts(lua_State *l)
|
||||
{
|
||||
lua_pushnumber(l, -1);
|
||||
lua_pushcclosure(l, PartsClosure, 1);
|
||||
return 1;
|
||||
}
|
||||
|
||||
//// Begin Renderer API
|
||||
|
||||
void LuaScriptInterface::initRendererAPI()
|
||||
|
@ -101,6 +101,7 @@ class LuaScriptInterface: public CommandInterface
|
||||
static int simulation_waterEqualisation(lua_State * l);
|
||||
static int simulation_ambientAirTemp(lua_State * l);
|
||||
static int simulation_elementCount(lua_State * l);
|
||||
static int simulation_parts(lua_State * l);
|
||||
|
||||
//Renderer
|
||||
void initRendererAPI();
|
||||
|
Reference in New Issue
Block a user