home *** CD-ROM | disk | FTP | other *** search
/ Game Level Design / GLDesign.bin / Software / UnrealEngine2Runtime / UE2Runtime-22262001_Demo.exe / Engine / Classes / Projector.uc < prev    next >
Text File  |  2003-08-27  |  3KB  |  113 lines

  1. class Projector extends Actor
  2.     placeable
  3.     native;
  4.  
  5. #exec Texture Import File=Textures\Proj_IconMasked.pcx Name=Proj_Icon Mips=Off MASKED=1
  6. #exec Texture Import file=Textures\GRADIENT_Fade.tga Name=GRADIENT_Fade Mips=Off UCLAMPMODE=CLAMP VCLAMPMODE=CLAMP DXT=3
  7. #exec Texture Import file=Textures\GRADIENT_Clip.tga Name=GRADIENT_Clip Mips=Off UCLAMPMODE=CLAMP VCLAMPMODE=CLAMP DXT=3
  8.  
  9.  
  10. // Projector blending operation.
  11.  
  12. enum EProjectorBlending
  13. {
  14.     PB_None,
  15.     PB_Modulate,
  16.     PB_AlphaBlend,
  17.     PB_Add
  18. };
  19.  
  20. var() EProjectorBlending    MaterialBlendingOp,        // The blending operation between the material being projected onto and ProjTexture.
  21.                             FrameBufferBlendingOp;    // The blending operation between the framebuffer and the result of the base material blend.
  22.  
  23. // Projector properties.
  24.  
  25. var() Material    ProjTexture;
  26. var() int        FOV;
  27. var() int        MaxTraceDistance;
  28. var() bool        bProjectBSP;
  29. var() bool        bProjectTerrain;
  30. var() bool        bProjectStaticMesh;
  31. var() bool        bProjectParticles;
  32. var() bool        bProjectActor;
  33. var() bool        bLevelStatic;
  34. var() bool        bClipBSP;
  35. var() bool        bClipStaticMesh;
  36. var() bool        bProjectOnUnlit;
  37. var() bool        bGradient;
  38. var() bool        bProjectOnBackfaces;
  39. var() bool        bProjectOnAlpha;
  40. var() bool        bProjectOnParallelBSP;
  41. var() name        ProjectTag;
  42. var() bool        bDynamicAttach;
  43.  
  44.  
  45. // Internal state.
  46.  
  47. var const transient plane FrustumPlanes[6];
  48. var const transient vector FrustumVertices[8];
  49. var const transient Box Box;
  50. var const transient ProjectorRenderInfoPtr RenderInfo;
  51. var Texture GradientTexture;
  52. var transient Matrix GradientMatrix;
  53. var transient Matrix Matrix;
  54. var transient Vector OldLocation;
  55.  
  56. // Native interface.
  57.  
  58. native function AttachProjector();
  59. native function DetachProjector(optional bool Force);
  60. native function AbandonProjector(optional float Lifetime);
  61.  
  62. native function AttachActor( Actor A );
  63. native function DetachActor( Actor A );
  64.  
  65. simulated event PostBeginPlay()
  66. {
  67.     AttachProjector();
  68.     if( bLevelStatic )
  69.     {
  70.         AbandonProjector();
  71.         Destroy();
  72.     }
  73.     if( bProjectActor )
  74.         SetCollision(True, False, False);
  75. }
  76.  
  77. simulated event Touch( Actor Other )
  78. {
  79.     if(Other==None)
  80.         return;
  81.     if( Other.bAcceptsProjectors && (ProjectTag=='' || Other.Tag==ProjectTag) && (bProjectStaticMesh || Other.StaticMesh==None)   && !(Other.bStatic && bStatic && Other.StaticMesh!=None))
  82.         AttachActor(Other);
  83. }
  84.  
  85. simulated event Untouch( Actor Other )
  86. {
  87.     DetachActor(Other);
  88. }
  89.  
  90. defaultproperties
  91. {
  92.     MaterialBlendingOp=PB_None
  93.     FrameBufferBlendingOp=PB_Modulate
  94.     FOV=0
  95.     bDirectional=True
  96.     Texture=Proj_Icon
  97.     MaxTraceDistance=1000
  98.     bProjectBSP=True
  99.     bProjectTerrain=True
  100.     bProjectStaticMesh=True
  101.     bProjectParticles=True
  102.     bProjectActor=True
  103.     bClipBSP=False
  104.     bClipStaticMesh=False
  105.     bLevelStatic=False
  106.     bProjectOnUnlit=False
  107.     bHidden=True
  108.     bStatic=True
  109.     GradientTexture=GRADIENT_Fade
  110.     bProjectOnBackfaces=False
  111.     bDynamicAttach=False
  112.     RemoteRole=ROLE_None
  113. }