DIFF

PersonalLight.c

class PersonalLight extends PointLightBase
{	
	void PersonalLight()
	{
		SetVisibleDuringDaylight(false);
		SetRadiusTo( 3 );
		SetBrightnessTo(0.38);
		SetDiffuseColor(0.2, 0.23, 0.25);
		SetCastShadow(false);
		EnableSpecular(false);
		EnableLinear(true);
		SetFlareVisible(false);
	}
	
	override void OnFrameLightSource(IEntity other, float timeSlice)
	{
		if ( g_Game  &&  IsEnabled() )
		{
			vector pos = g_Game.GetCurrentCameraPosition();
			pos += Vector( 0, -0.4, 0 );
			
			SetPosition( pos );
		}
	}
	
	// Experiment with dynamic range of Personal Light based on distance between camera and player's character.
	/*override void OnFrameLightSource(IEntity other, float timeSlice)
	{
		if ( g_Game  &&  IsEnabled() )
		{
			vector pos = g_Game.GetCurrentCameraPosition();
			vector dir = g_Game.GetCurrentCameraDirection();
			
			SetPosition(pos);
			
			DayZPlayer plr = g_Game.GetPlayer();
			if (plr)
			{
				vector pos_plr = plr.GetPosition() + Vector(0, 1.64, 0);
				float distance = vector.Distance( pos_plr, pos );
				//Print(distance);
				float radius = 20.0 + distance;
				SetRadiusTo( radius );
			}
		}
	}*/
}