mahlendur/_work/Data/Scripts/System/_intern/ParticleFX.d
Daniel Heße 892a40ff0f Initial commit with Subversion-codebase from 13/05/2022.
Cleaned up the mess, at this time, only viable data get synced (_work directory for Gothic-data, miranda for mdc-scripts.
Need to symlink files to a working directory.
2022-05-13 17:38:52 +02:00

104 lines
3.4 KiB
D

//////////////////////////////////////
//
// Particle-Effects v0.01 (<=>Docs)
// Class - Definitions
// Author: Dieter Hildebrandt
//
//////////////////////////////////////
CLASS C_ParticleFX {
// 1) Emitter: zeitliches Austoss-Verhalten, particles-per-second
VAR FLOAT ppsValue;
VAR STRING ppsScaleKeys_S;
VAR INT ppsIsLooping;
VAR INT ppsIsSmooth;
VAR FLOAT ppsFPS;
VAR STRING ppsCreateEm_S;
VAR FLOAT ppsCreateEmDelay;
// 2) Emitter: raeumliches Austoss-Verhalten
VAR STRING shpType_S; // "point, line, box, circle, sphere, mesh"
VAR STRING shpFOR_S; // "object,world"
VAR STRING shpOffsetVec_S;
VAR STRING shpDistribType_S; // "RAND, UNIFORM, WALK"
VAR FLOAT shpDistribWalkSpeed;
VAR INT shpIsVolume;
VAR STRING shpDim_S; // "", "30", "10 20 30", "30", "30", "" // line: nur 1 Dimension !=0 // shape Dimensions
VAR STRING shpMesh_S; // "cross.3ds"
VAR INT shpMeshRender_B;
VAR STRING shpScaleKeys_S; // "[1.0] [0.8 0.9 0.2] [1.0]"
VAR INT shpScaleIsLooping;
VAR INT shpScaleIsSmooth;
VAR FLOAT shpScaleFPS;
// 3) Partikel: Start Richtung/Speed:
VAR STRING dirMode_S; // "DIR, TARGET, MESH_POLY"
VAR STRING dirFOR_S; // "OBJECT, WORLD"
VAR STRING dirModeTargetFOR_S;
VAR STRING dirModeTargetPos_S; // "30 23 67"
VAR FLOAT dirAngleHead;
VAR FLOAT dirAngleHeadVar;
VAR FLOAT dirAngleElev;
VAR FLOAT dirAngleElevVar;
VAR FLOAT velAvg;
VAR FLOAT velVar;
// 4) Partikel: Lebensdauer
VAR FLOAT lspPartAvg;
VAR FLOAT lspPartVar;
// 5) Partikel: Flugverhalten (gravity, nicht-linear?, mesh-selfRot?,..)
// grav: a) nur Y, b) XYZ, c) auf Ziel zu steuern
// VAR STRING flyMode_S; // "LINEAR, LIN_SINUS,.."
// flyMeshSelfRotSpeedMin, flyMeshSelfRotSpeedMax
VAR STRING flyGravity_S;
VAR INT flyCollDet_B;
// 6) Partikel: Visualisierung
VAR STRING visName_S; // "NAME_V0_A0.TGA/.3DS" (Variation, Animation)
VAR STRING visOrientation_S; // "NONE, VELO"
VAR INT visTexIsQuadPoly; // 0=triMesh, 1=quadMesh
VAR FLOAT visTexAniFPS;
VAR INT visTexAniIsLooping; // 0=oneShot, 1=looping
// color (nur Tex, lifeSpan-Sync)
VAR STRING visTexColorStart_S;
VAR STRING visTexColorEnd_S;
// size-ani (nur Tex, lifeSpan-Sync)
VAR STRING visSizeStart_S;
VAR FLOAT visSizeEndScale;
// alpha (lifeSpan-Sync)
VAR STRING visAlphaFunc_S;
VAR FLOAT visAlphaStart;
VAR FLOAT visAlphaEnd;
// 7) misc effects
// trail
VAR FLOAT trlFadeSpeed;
VAR STRING trlTexture_S;
VAR FLOAT trlWidth;
// marks
VAR FLOAT mrkFadeSpeed;
VAR STRING mrkTexture_S;
VAR FLOAT mrkSize;
// flocking
VAR STRING flockMode;
VAR FLOAT flockStrength;
// local frame of reference override
// calculates the position of the particles each frame relative to the emitters pos/rot
// can be expensive
// WARNING: in comb with flyCollDet_B this can be a performance-hog deluxe
VAR INT useEmittersFOR;
// optional you can set a valid timeperiod in which this pfx should be rendered (e.g. "8 22": should be rendererd from 8 to 22 o clock")
var string timeStartEnd_S;
// with the next setting you can define weather this pfx is an ambient pfx, thus can be disabled in the gothic.ini with the value [ENGINE]/noAmbientPFX
var INT m_bIsAmbientPFX;
};