diff options
| author | jussi | 2023-05-30 13:42:43 +0300 |
|---|---|---|
| committer | jussi | 2023-05-30 13:42:43 +0300 |
| commit | e1cc1e9e2796540ab81b9798aeb1684614c66b88 (patch) | |
| tree | e4a9cf22336af770d6803717012708350e2dc503 /src | |
| parent | 335321e3aa238069df88cf06c98119ef4ef348d3 (diff) | |
| download | reilua-enhanced-e1cc1e9e2796540ab81b9798aeb1684614c66b88.tar.gz reilua-enhanced-e1cc1e9e2796540ab81b9798aeb1684614c66b88.tar.bz2 reilua-enhanced-e1cc1e9e2796540ab81b9798aeb1684614c66b88.zip | |
Light property functions and basic light example.
Diffstat (limited to 'src')
| -rw-r--r-- | src/lights.c | 260 | ||||
| -rw-r--r-- | src/lua_core.c | 10 |
2 files changed, 270 insertions, 0 deletions
diff --git a/src/lights.c b/src/lights.c index 180cbd1..70ac011 100644 --- a/src/lights.c +++ b/src/lights.c @@ -108,3 +108,263 @@ int llightsUpdateLightValues( lua_State *L ) { return 1; } + +/* +> success = RL.SetLightType( Light light, int type ) + +Set light type + +- Failure return false +- Success return true +*/ +int llightsSetLightType( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) || !lua_isnumber( L, 2 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.SetLightType( Light light, int type )" ); + lua_pushboolean( L, false ); + return 1; + } + size_t lightId = lua_tointeger( L, 1 ); + int type = lua_tointeger( L, 2 ); + + if ( !validLight( lightId ) ) { + lua_pushboolean( L, false ); + return 1; + } + state->lights[ lightId ]->type = type; + lua_pushboolean( L, true ); + + return 1; +} + +/* +> success = RL.SetLightPosition( Light light, Vector3 position ) + +Set light position + +- Failure return false +- Success return true +*/ +int llightsSetLightPosition( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) || !lua_istable( L, 2 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.SetLightPosition( Light light, Vecto3 position )" ); + lua_pushboolean( L, false ); + return 1; + } + size_t lightId = lua_tointeger( L, 1 ); + Vector3 position = uluaGetVector3Index( L, 2 ); + + if ( !validLight( lightId ) ) { + lua_pushboolean( L, false ); + return 1; + } + state->lights[ lightId ]->position = position; + lua_pushboolean( L, true ); + + return 1; +} + +/* +> success = RL.SetLightTarget( Light light, Vector3 target ) + +Set light target + +- Failure return false +- Success return true +*/ +int llightsSetLightTarget( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) || !lua_istable( L, 2 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.SetLightTarget( Light light, Vecto3 target )" ); + lua_pushboolean( L, false ); + return 1; + } + size_t lightId = lua_tointeger( L, 1 ); + Vector3 target = uluaGetVector3Index( L, 2 ); + + if ( !validLight( lightId ) ) { + lua_pushboolean( L, false ); + return 1; + } + state->lights[ lightId ]->target = target; + lua_pushboolean( L, true ); + + return 1; +} + +/* +> success = RL.SetLightColor( Light light, Color color ) + +Set light color + +- Failure return false +- Success return true +*/ +int llightsSetLightColor( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) || !lua_istable( L, 2 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.SetLightColor( Light light, Color color )" ); + lua_pushboolean( L, false ); + return 1; + } + size_t lightId = lua_tointeger( L, 1 ); + Color color = uluaGetColorIndex( L, 2 ); + + if ( !validLight( lightId ) ) { + lua_pushboolean( L, false ); + return 1; + } + state->lights[ lightId ]->color = color; + lua_pushboolean( L, true ); + + return 1; +} + +/* +> success = RL.SetLightEnabled( Light light, bool enabled ) + +Set light enabled + +- Failure return false +- Success return true +*/ +int llightsSetLightEnabled( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) || !lua_isboolean( L, 2 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.SetLightEnabled( Light light, bool enabled )" ); + lua_pushboolean( L, false ); + return 1; + } + size_t lightId = lua_tointeger( L, 1 ); + bool enabled = lua_toboolean( L, 2 ); + + if ( !validLight( lightId ) ) { + lua_pushboolean( L, false ); + return 1; + } + state->lights[ lightId ]->enabled = enabled; + lua_pushboolean( L, true ); + + return 1; +} + +/* +> type = RL.GetLightType( Light light ) + +Get light type + +- Failure return false +- Success return int +*/ +int llightsGetLightType( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.GetLightType( Light light )" ); + lua_pushboolean( L, false ); + return 1; + } + size_t lightId = lua_tointeger( L, 1 ); + + if ( !validLight( lightId ) ) { + lua_pushboolean( L, false ); + return 1; + } + lua_pushinteger( L, state->lights[ lightId ]->type ); + + return 1; +} + +/* +> position = RL.GetLightPosition( Light light ) + +Get light position + +- Failure return false +- Success return Vector3 +*/ +int llightsGetLightPosition( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.GetLightPosition( Light light )" ); + lua_pushboolean( L, false ); + return 1; + } + size_t lightId = lua_tointeger( L, 1 ); + + if ( !validLight( lightId ) ) { + lua_pushboolean( L, false ); + return 1; + } + uluaPushVector3( L, state->lights[ lightId ]->position ); + + return 1; +} + +/* +> target = RL.GetLightTarget( Light light ) + +Get light target + +- Failure return false +- Success return Vector3 +*/ +int llightsGetLightTarget( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.GetLightTarget( Light light )" ); + lua_pushboolean( L, false ); + return 1; + } + size_t lightId = lua_tointeger( L, 1 ); + + if ( !validLight( lightId ) ) { + lua_pushboolean( L, false ); + return 1; + } + uluaPushVector3( L, state->lights[ lightId ]->target ); + + return 1; +} + +/* +> color = RL.GetLightColor( Light light ) + +Get light color + +- Failure return false +- Success return Color +*/ +int llightsGetLightColor( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.GetLightColor( Light light )" ); + lua_pushboolean( L, false ); + return 1; + } + size_t lightId = lua_tointeger( L, 1 ); + + if ( !validLight( lightId ) ) { + lua_pushboolean( L, false ); + return 1; + } + uluaPushColor( L, state->lights[ lightId ]->color ); + + return 1; +} + +/* +> enabled = RL.IsLightEnabled( Light light ) + +Get light enabled + +- Failure return nil +- Success return boolean +*/ +int llightsIsLightEnabled( lua_State *L ) { + if ( !lua_isnumber( L, 1 ) ) { + TraceLog( LOG_WARNING, "%s", "Bad call of function. RL.IsLightEnabled( Light light )" ); + lua_pushnil( L ); + return 1; + } + size_t lightId = lua_tointeger( L, 1 ); + + if ( !validLight( lightId ) ) { + lua_pushnil( L ); + return 1; + } + lua_pushboolean( L, state->lights[ lightId ]->enabled ); + + return 1; +} diff --git a/src/lua_core.c b/src/lua_core.c index a65c95a..e14395c 100644 --- a/src/lua_core.c +++ b/src/lua_core.c @@ -1358,6 +1358,16 @@ void luaRegister() { /* Basics. */ assingGlobalFunction( "CreateLight", llightsCreateLight ); assingGlobalFunction( "UpdateLightValues", llightsUpdateLightValues ); + assingGlobalFunction( "SetLightType", llightsSetLightType ); + assingGlobalFunction( "SetLightPosition", llightsSetLightPosition ); + assingGlobalFunction( "SetLightTarget", llightsSetLightTarget ); + assingGlobalFunction( "SetLightColor", llightsSetLightColor ); + assingGlobalFunction( "SetLightEnabled", llightsSetLightEnabled ); + assingGlobalFunction( "GetLightType", llightsGetLightType ); + assingGlobalFunction( "GetLightPosition", llightsGetLightPosition ); + assingGlobalFunction( "GetLightTarget", llightsGetLightTarget ); + assingGlobalFunction( "GetLightColor", llightsGetLightColor ); + assingGlobalFunction( "IsLightEnabled", llightsIsLightEnabled ); /* RLGL */ /* General render state. */ |
