summaryrefslogtreecommitdiff
path: root/src/lights.c
diff options
context:
space:
mode:
authorjussi2023-05-30 13:42:43 +0300
committerjussi2023-05-30 13:42:43 +0300
commite1cc1e9e2796540ab81b9798aeb1684614c66b88 (patch)
treee4a9cf22336af770d6803717012708350e2dc503 /src/lights.c
parent335321e3aa238069df88cf06c98119ef4ef348d3 (diff)
downloadreilua-enhanced-e1cc1e9e2796540ab81b9798aeb1684614c66b88.tar.gz
reilua-enhanced-e1cc1e9e2796540ab81b9798aeb1684614c66b88.tar.bz2
reilua-enhanced-e1cc1e9e2796540ab81b9798aeb1684614c66b88.zip
Light property functions and basic light example.
Diffstat (limited to 'src/lights.c')
-rw-r--r--src/lights.c260
1 files changed, 260 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;
+}