1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- class PlayerBaseClient extends PlayerBase
- {
- static ScriptedLightBase m_PersonalLight;
- static bool m_PersonalLightEnabledOnCurrentServer = false; // "disablePersonalLight" in server.cfg decides if this is true or false
- static bool m_PersonalLightDisabledByDebug = false;
- static bool m_PersonalLightIsSwitchedOn = true;
-
- //! Creates PL if it doesn't exist already.
- static void CreatePersonalLight()
- {
- if (!m_PersonalLight && ( !GetGame().IsServer() || !GetGame().IsMultiplayer() ))
- {
- m_PersonalLight = ScriptedLightBase.CreateLight(PersonalLight, "0 0 0");
- }
- }
-
- /*
- override void OnRPC(PlayerIdentity sender, int rpc_type, ParamsReadContext ctx)
- {
- super.OnRPC(sender, rpc_type, ctx);
-
- switch( rpc_type )
- {
- case ERPCs.RPC_TOGGLE_PERSONAL_LIGHT:
- {
- Param1<bool> is_enabled = new Param1<bool>(false);
-
- if (ctx.Read(is_enabled))
- {
- m_PersonalLightEnabledOnCurrentServer = is_enabled.param1;
- UpdatePersonalLight();
- }
-
- break;
- }
- }
- }*/
-
- override void OnGameplayDataHandlerSync()
- {
- super.OnGameplayDataHandlerSync();
- m_PersonalLightEnabledOnCurrentServer = !CfgGameplayHandler.GetDisablePersonalLight();
- UpdatePersonalLight();
- UpdateHitDirectionValues();
- }
-
-
- //! Controls the ON/OFF switch of the Personal Light. PL will still shine only if the server allows it.
- static void SwitchPersonalLight(bool state)
- {
- if ( !GetGame().IsServer() || !GetGame().IsMultiplayer() )
- {
- m_PersonalLightIsSwitchedOn = state;
- UpdatePersonalLight();
- }
- }
-
- //! Updates state of PL
- static void UpdatePersonalLight()
- {
- string param;
-
- CreatePersonalLight();
-
- // Allow PL unless it's disabled by debug or client-side starting parameter
- if ( !GetCLIParam("disablePersonalLight", param) && !m_PersonalLightDisabledByDebug && m_PersonalLightIsSwitchedOn )
- {
- m_PersonalLight.SetEnabled(m_PersonalLightEnabledOnCurrentServer);
- }
- else
- {
- m_PersonalLight.SetEnabled(false);
- }
- }
-
- static void UpdateHitDirectionValues()
- {
- HitDirectionEffectBase.CheckValues();
- }
- }
|