rott/kf_sources/ScrnBalanceSrv/Classes/ScrnLocalLaserDot.uc
2026-07-14 20:27:09 +07:00

69 lines
2.0 KiB
Ucode

class ScrnLocalLaserDot extends DynamicProjector;
#exec OBJ LOAD FILE=ScrnTex.utx
struct SLaser {
var Color LaserColor;
var Material DotTexture, Skin3rd;
};
var const array<SLaser> Lasers;
var private byte LaserType;
var() float ProjectorPullback; // Amount to pull back the laser dot projector from the hit location
simulated function color GetLaserColor()
{
return Lasers[LaserType].LaserColor;
}
static function Color GetLaserColorStatic(byte LaserType)
{
if ( LaserType >= default.Lasers.Length )
LaserType = 0;
return default.Lasers[LaserType].LaserColor;
}
simulated function byte GetLaserType()
{
return LaserType;
}
simulated function SetLaserType(byte value)
{
if ( value >= Lasers.length )
value = 0;
LaserType = value;
ProjTexture = Lasers[LaserType].DotTexture;
bHidden = LaserType == 0 || ProjTexture == none;
}
defaultproperties
{
Lasers(0)=(LaserColor=(A=1))
Lasers(1)=(LaserColor=(R=255,A=255),DotTexture=Texture'ScrnTex.Laser.Laser_Dot_Red',Skin3rd=Texture'ScrnTex.Laser.LASER_Red')
Lasers(2)=(LaserColor=(G=255,A=255),DotTexture=Texture'ScrnTex.Laser.Laser_Dot_Green',Skin3rd=Texture'ScrnTex.Laser.LASER_Green')
Lasers(3)=(LaserColor=(B=255,G=150,A=255),DotTexture=Texture'ScrnTex.Laser.Laser_Dot_Blue',Skin3rd=Texture'ScrnTex.Laser.Laser_Blue')
Lasers(4)=(LaserColor=(G=150,R=255,A=255),DotTexture=Texture'ScrnTex.Laser.Laser_Dot_Orange',Skin3rd=Texture'ScrnTex.Laser.Laser_Orange')
ProjectorPullback=1.000000
MaterialBlendingOp=PB_Add
FrameBufferBlendingOp=PB_Add
FOV=5
MaxTraceDistance=100
bClipBSP=True
bProjectOnUnlit=True
bGradient=True
bProjectOnAlpha=True
bProjectOnParallelBSP=True
bNoProjectOnOwner=True
DrawType=DT_None
bLightChanged=True
bSkipActorPropertyReplication=True
LifeSpan=100000000.000000
DrawScale=0.250000
}