summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lights.c260
-rw-r--r--src/lua_core.c10
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. */