home *** CD-ROM | disk | FTP | other *** search
/ Game Level Design / GLDesign.bin / Software / UnrealEngine2Runtime / UE2Runtime-22262001_Demo.exe / Engine / Classes / ParticleEmitter.uc < prev    next >
Text File  |  2003-06-23  |  11KB  |  377 lines

  1. //=============================================================================
  2. // ParticleEmitter: Base class for sub- emitters.
  3. //
  4. // make sure to keep structs in sync in UnParticleSystem.h
  5. //=============================================================================
  6.  
  7. class ParticleEmitter extends Object
  8.     abstract
  9.     editinlinenew
  10.     native;
  11.  
  12. enum EBlendMode
  13. {
  14.     BM_MODULATE,
  15.     BM_MODULATE2X,
  16.     BM_MODULATE4X,
  17.     BM_ADD,
  18.     BM_ADDSIGNED,
  19.     BM_ADDSIGNED2X,
  20.     BM_SUBTRACT,
  21.     BM_ADDSMOOTH,
  22.     BM_BLENDDIFFUSEALPHA,
  23.     BM_BLENDTEXTUREALPHA,
  24.     BM_BLENDFACTORALPHA,
  25.     BM_BLENDTEXTUREALPHAPM,
  26.     BM_BLENDCURRENTALPHA,
  27.     BM_PREMODULATE,
  28.     BM_MODULATEALPHA_ADDCOLOR,
  29.     BM_MODULATEINVALPHA_ADDCOLOR,
  30.     BM_MODULATEINVCOLOR_ADDALPHA,
  31.     BM_HACK    
  32. };
  33.  
  34. enum EParticleDrawStyle
  35. {
  36.     PTDS_Regular,
  37.     PTDS_AlphaBlend,
  38.     PTDS_Modulated,
  39.     PTDS_Translucent,
  40.     PTDS_AlphaModulate_MightNotFogCorrectly,
  41.     PTDS_Darken,
  42.     PTDS_Brighten
  43. };
  44.  
  45. enum EParticleCoordinateSystem
  46. {
  47.     PTCS_Independent,
  48.     PTCS_Relative,
  49.     PTCS_Absolute
  50. };
  51.  
  52. enum EParticleRotationSource
  53. {
  54.     PTRS_None,
  55.     PTRS_Actor,
  56.     PTRS_Offset,
  57.     PTRS_Normal
  58. };
  59.  
  60. enum EParticleVelocityDirection
  61. {
  62.     PTVD_None,
  63.     PTVD_StartPositionAndOwner,
  64.     PTVD_OwnerAndStartPosition,
  65.     PTVD_AddRadial
  66. };
  67.  
  68. enum EParticleStartLocationShape
  69. {
  70.     PTLS_Box,
  71.     PTLS_Sphere,
  72.     PTLS_Polar,
  73.     PTLS_All
  74. };
  75.  
  76. enum EParticleEffectAxis
  77. {
  78.     PTEA_NegativeX,
  79.     PTEA_PositiveZ
  80. };
  81.  
  82. enum EParticleCollisionSound
  83. {
  84.     PTSC_None,
  85.     PTSC_LinearGlobal,
  86.     PTSC_LinearLocal,
  87.     PTSC_Random
  88. };
  89.  
  90. enum EParticleMeshSpawning
  91. {
  92.     PTMS_None,
  93.     PTMS_Linear,
  94.     PTMS_Random
  95. };
  96.  
  97. enum ESkelLocationUpdate
  98. {
  99.     PTSU_None,
  100.     PTSU_SpawnOffset,
  101.     PTSU_Location
  102. };
  103.  
  104. struct ParticleTimeScale
  105. {
  106.     var () float    RelativeTime;        // always in range [0..1]
  107.     var () float    RelativeSize;
  108. };
  109.  
  110. struct ParticleRevolutionScale
  111. {
  112.     var () float    RelativeTime;        // always in range [0..1]
  113.     var () vector    RelativeRevolution;
  114. };
  115.  
  116. struct ParticleColorScale
  117. {
  118.     var () float    RelativeTime;        // always in range [0..1]
  119.     var () color    Color;
  120. };
  121.  
  122. struct ParticleVelocityScale
  123. {
  124.     var () float    RelativeTime;        // always in range [0..1]
  125.     var () vector    RelativeVelocity;
  126. };
  127.  
  128. struct Particle
  129. {
  130.     var vector    Location;
  131.     var vector    OldLocation;
  132.     var vector    Velocity;
  133.     var vector    StartSize;
  134.     var vector    SpinsPerSecond;
  135.     var vector    StartSpin;
  136.     var vector  RevolutionCenter;
  137.     var vector  RevolutionsPerSecond;
  138.     var vector    RevolutionsMultiplier;
  139.     var vector    Size;
  140.     var vector  StartLocation;
  141.     var vector  ColorMultiplier;
  142.     var vector    VelocityMultiplier;
  143.     var vector    OldMeshLocation;
  144.     var color    Color;
  145.     var float    Time;
  146.     var float    MaxLifetime;
  147.     var float    Mass;
  148.     var int        HitCount;
  149.     var int        Flags;
  150.     var int        Subdivision;
  151.     var int     BoneIndex;
  152. };
  153.  
  154. struct ParticleSound
  155. {
  156.     var () sound    Sound;
  157.     var () range    Radius;
  158.     var () range    Pitch;
  159.     var () int        Weight;
  160.     var () range    Volume;
  161.     var () range    Probability;
  162. };
  163.  
  164. var (Acceleration)    vector                        Acceleration;
  165.  
  166. var (Collision)        bool                        UseCollision;
  167. var (Collision)        vector                        ExtentMultiplier;
  168. var (Collision)        rangevector                    DampingFactorRange;
  169. var (Collision)        bool                        UseCollisionPlanes;
  170. var (Collision)        array<plane>                CollisionPlanes;
  171. var    (Collision)        bool                        UseMaxCollisions;
  172. var (Collision)        range                        MaxCollisions;
  173. var (Collision)        int                            SpawnFromOtherEmitter;
  174. var (Collision)        int                            SpawnAmount;
  175. var (Collision)        rangevector                    SpawnedVelocityScaleRange;
  176. var (Collision)        bool                        UseSpawnedVelocityScale;
  177.  
  178. var (Color)            bool                        UseColorScale;
  179. var (Color)            array<ParticleColorScale>    ColorScale;
  180. var (Color)            float                        ColorScaleRepeats;
  181. var (Color)            rangevector                    ColorMultiplierRange;
  182.  
  183. var (Fading)        plane                        FadeOutFactor;
  184. var (Fading)        float                        FadeOutStartTime;
  185. var (Fading)        bool                        FadeOut;
  186. var (Fading)        plane                        FadeInFactor;
  187. var (Fading)        float                        FadeInEndTime;
  188. var (Fading)        bool                        FadeIn;
  189.  
  190. var (Force)            bool                        UseActorForces;
  191.  
  192. var (General)        EParticleCoordinateSystem    CoordinateSystem;
  193. var (General)        const int                    MaxParticles;
  194. var (General)        bool                        ResetAfterChange;
  195. var (General)        EParticleEffectAxis            EffectAxis;
  196.  
  197. var (Local)            bool                        RespawnDeadParticles;
  198. var (Local)            bool                        AutoDestroy;
  199. var (Local)            bool                        AutoReset;
  200. var (Local)            bool                        Disabled;
  201. var (Local)            bool                        DisableFogging;
  202. var (Local)            range                        AutoResetTimeRange;
  203. var (Local)            string                        Name;
  204.  
  205. var (Location)        vector                        StartLocationOffset;
  206. var (Location)        rangevector                    StartLocationRange;
  207. var (Location)        int                            AddLocationFromOtherEmitter;
  208. var (Location)        EParticleStartLocationShape StartLocationShape;
  209. var (Location)        range                        SphereRadiusRange;
  210. var (Location)        rangevector                    StartLocationPolarRange;
  211.  
  212. var (Mass)            range                        StartMassRange;
  213.  
  214. var (MeshSpawning)    staticmesh                    MeshSpawningStaticMesh;
  215. var (MeshSpawning)    EParticleMeshSpawning        MeshSpawning;
  216. var (MeshSpawning)    bool                        VelocityFromMesh;
  217. var (MeshSpawning)    rangevector                    VelocityScaleRange;
  218. var (MeshSpawning)    rangevector                    MeshScaleRange;
  219. var (MeshSpawning)    bool                        UniformMeshScale;
  220. var (MeshSpawning)    bool                        UniformVelocityScale;
  221. var (MeshSpawning)    bool                        UseColorFromMesh;
  222. var (MeshSpawning)    bool                        SpawnOnlyInDirectionOfNormal;
  223. var (MeshSpawning)    vector                        MeshNormal;
  224. var (MeshSpawning)    range                        MeshNormalThresholdRange;
  225.  
  226. var (Rendering)        int                            AlphaRef;
  227. var (Rendering)        bool                        AlphaTest;
  228. var (Rendering)        bool                        AcceptsProjectors;
  229. var (Rendering)        bool                        ZTest;
  230. var (Rendering)        bool                        ZWrite;
  231.  
  232. var (Revolution)    bool                        UseRevolution;
  233. var (Revolution)    rangevector                    RevolutionCenterOffsetRange;
  234. var (Revolution)    rangevector                    RevolutionsPerSecondRange;
  235. var (Revolution)    bool                        UseRevolutionScale;
  236. var (Revolution)    array<ParticleRevolutionScale> RevolutionScale;
  237. var (Revolution)    float                        RevolutionScaleRepeats;
  238.  
  239. var (Rotation)        EParticleRotationSource        UseRotationFrom;
  240. var (Rotation)        bool                        SpinParticles;
  241. var (Rotation)        rotator                        RotationOffset;
  242. var (Rotation)        vector                        SpinCCWorCW;
  243. var (Rotation)        rangevector                    SpinsPerSecondRange;
  244. var (Rotation)        rangevector                    StartSpinRange;
  245. var (Rotation)        bool                        DampRotation;
  246. var (Rotation)        rangevector                    RotationDampingFactorRange;
  247. var (Rotation)        vector                        RotationNormal;
  248.  
  249. var (Size)            bool                        UseSizeScale;
  250. var (Size)            bool                        UseRegularSizeScale;
  251. var (Size)            array<ParticleTimeScale>    SizeScale;
  252. var (Size)            float                        SizeScaleRepeats;
  253. var (Size)            rangevector                    StartSizeRange;
  254. var (Size)            bool                        UniformSize;
  255.  
  256. var (SkeletalMesh)    ESkelLocationUpdate            UseSkeletalLocationAs;
  257. var    (SkeletalMesh)    actor                        SkeletalMeshActor;
  258. var (SkeletalMesh)    vector                        SkeletalScale;
  259. var (SkeletalMesh)    range                        RelativeBoneIndexRange;
  260.  
  261. var (Sound)            array<ParticleSound>        Sounds;
  262. var (Sound)            EParticleCollisionSound        SpawningSound;
  263. var (Sound)            range                        SpawningSoundIndex;
  264. var (Sound)            range                        SpawningSoundProbability;
  265. var (Sound)            EParticleCollisionSound        CollisionSound;
  266. var (Sound)            range                        CollisionSoundIndex;
  267. var (Sound)            range                        CollisionSoundProbability;
  268.  
  269. var (Spawning)        float                        ParticlesPerSecond;
  270. var (Spawning)        float                        InitialParticlesPerSecond;
  271. var (Spawning)        bool                        AutomaticInitialSpawning;
  272.     
  273. var (Texture)        EParticleDrawStyle            DrawStyle;
  274. var (Texture)        texture                        Texture;
  275. var (Texture)        int                            TextureUSubdivisions;
  276. var (Texture)        int                            TextureVSubdivisions;
  277. var (Texture)        bool                        BlendBetweenSubdivisions;
  278. var    (Texture)        bool                        UseSubdivisionScale;
  279. var (Texture)        array<float>                SubdivisionScale;
  280. var (Texture)        int                            SubdivisionStart;
  281. var (Texture)        int                            SubdivisionEnd;
  282. var (Texture)        bool                        UseRandomSubdivision;
  283.  
  284. var (Tick)            float                        SecondsBeforeInactive;
  285. var (Tick)            float                        MinSquaredVelocity;
  286.  
  287. var    (Time)            range                        InitialTimeRange;
  288. var (Time)            range                        LifetimeRange;
  289. var (Time)            range                        InitialDelayRange;
  290.  
  291. var (Trigger)        bool                        TriggerDisabled;
  292. var (Trigger)        bool                        ResetOnTrigger;
  293. var (Trigger)        range                        SpawnOnTriggerRange;
  294. var (Trigger)        float                        SpawnOnTriggerPPS;
  295.  
  296. var (Velocity)        rangevector                    StartVelocityRange;
  297. var (Velocity)        range                        StartVelocityRadialRange;
  298. var (Velocity)        vector                        MaxAbsVelocity;
  299. var (Velocity)        rangevector                    VelocityLossRange;
  300. var (Velocity)        int                            AddVelocityFromOtherEmitter;
  301. var (Velocity)        rangevector                    AddVelocityMultiplierRange;
  302. var (Velocity)        EParticleVelocityDirection    GetVelocityDirectionFrom;
  303. var (Velocity)        bool                        UseVelocityScale;
  304. var (Velocity)        array<ParticleVelocityScale> VelocityScale;
  305. var (Velocity)        float                        VelocityScaleRepeats;
  306.  
  307. var (Warmup)        float                        WarmupTicksPerSecond;
  308. var (Warmup)        float                        RelativeWarmupTime;
  309.  
  310. var transient        emitter                        Owner;
  311. var    transient        bool                        Initialized;
  312. var transient        bool                        Inactive;
  313. var transient        float                        InactiveTime;
  314. var transient        array<Particle>                Particles;
  315. var transient        int                            ParticleIndex;            // index into circular list of particles
  316. var transient        int                            ActiveParticles;        // currently active particles
  317. var transient        float                        PPSFraction;            // used to keep track of fractional PPTick
  318. var transient        box                            BoundingBox;
  319.  
  320. var transient        vector                        RealExtentMultiplier;
  321. var    transient        bool                        RealDisableFogging;
  322. var transient        bool                        AllParticlesDead;
  323. var transient        bool                        WarmedUp;
  324. var    transient        int                            OtherIndex;
  325. var transient        float                        InitialDelay;
  326. var transient        vector                        GlobalOffset;
  327. var transient        float                        TimeTillReset;
  328. var transient        int                            PS2Data;
  329. var transient        int                            MaxActiveParticles;
  330. var transient        int                            CurrentCollisionSoundIndex;
  331. var transient        int                            CurrentSpawningSoundIndex;
  332. var transient        int                            CurrentMeshSpawningIndex;
  333. var transient        float                        MaxSizeScale;
  334. var transient        int                            KillPending;
  335. var transient        int                            DeferredParticles;
  336. var transient        vector                        RealMeshNormal;
  337. var transient        array<vector>                MeshVertsAndNormals;
  338. var transient        int                            CurrentSpawnOnTrigger;
  339.  
  340. native function SpawnParticle( int Amount );
  341. native function Trigger();
  342.  
  343. defaultproperties
  344. {
  345.     Texture=S_Emitter
  346.     SecondsBeforeInactive=1
  347.     DrawStyle=PTDS_Translucent
  348.     MaxParticles=10
  349.     FadeOutFactor=(X=1,Y=1,Z=1,W=1)
  350.     FadeInFactor=(X=1,Y=1,Z=1,W=1)
  351.     SpinCCWorCW=(X=0.5,Y=0.5,Z=0.5)
  352.     ExtentMultiplier=(X=1,Y=1,Z=1)
  353.     AutomaticInitialSpawning=1
  354.     UseRegularSizeScale=True
  355.     RespawnDeadParticles=True
  356.     StartSizeRange=(X=(Min=100,Max=100),Y=(Min=100,Max=100),Z=(Min=100,Max=100))
  357.     DampingFactorRange=(X=(Min=1,Max=1),Y=(Min=1,Max=1),Z=(Min=1,Max=1))
  358.     StartMassRange=(Min=1,Max=1)
  359.     LifetimeRange=(Min=4,Max=4)
  360.     AddLocationFromOtherEmitter=-1
  361.     AddVelocityFromOtherEmitter=-1
  362.     SpawnFromOtherEmitter=-1
  363.     AlphaTest=1
  364.     AcceptsProjectors=false
  365.     ColorMultiplierRange=(X=(Min=1,Max=1),Y=(Min=1,Max=1),Z=(Min=1,Max=1))
  366.     ZTest=true
  367.     ZWrite=false
  368.     AddVelocityMultiplierRange=(X=(Min=1,Max=1),Y=(Min=1,Max=1),Z=(Min=1,Max=1))
  369.     TriggerDisabled=true
  370.     VelocityScaleRange=(X=(Min=1,Max=1),Y=(Min=1,Max=1),Z=(Min=1,Max=1))
  371.     MeshScaleRange=(X=(Min=1,Max=1),Y=(Min=1,Max=1),Z=(Min=1,Max=1))
  372.     UniformMeshScale=true
  373.     UniformVelocityScale=true
  374.     MeshNormal=(X=0,Y=0,Z=1)
  375.     SkeletalScale=(X=1,Y=1,Z=1)
  376.     RelativeBoneIndexRange=(Min=0,Max=1)
  377. }