mirror of
https://github.com/TombEngine/TombEngine.git
synced 2025-04-28 15:57:59 +03:00
Advanced particles (#1555)
* Update to bug report form * Update bug_report.yaml * Update AUTHORS.md - Tomo (general coding, special FX coding, bug fixing) * Update CHANGELOG.md * Update CHANGELOG.md * Update bug_report.yaml * Expose ObjectSlot * Docs * Code Update * FinalPush * Update CHANGELOG.md * Update CHANGELOG.md * Update CHANGELOG.md * Expose startRot * Expose startRot * Remove Space. * FirstCommit * Cast gameobj to int * Update * WIP * WIP * wip * Checks * WIP * WIP * WIP * Enum * Enum revision * Update CHANGELOG.md * Revisions due to Develop changes * CodeCleanup * Revision to Code as per revised structure. * Add friction and YVel * Revisions * LUA Docs * RevisionDocs * x * Revisions * Docs * Docs * Docs * Docs * Make wind default * Light effect * LightFinish * Added Sounds * Add sound docs * Update particle anim types file * Update EffectsFunctions.cpp * Update EffectsFunctions.cpp * FixAngle * Fix StartRot * Cleanup * Add Savegame fields * Add loadgame data. * Fix bug on develop related to save value of xVel * Address Comments --------- Co-authored-by: Stranger1992 <84292688+Stranger1992@users.noreply.github.com> Co-authored-by: Nemoel-Tomo <tomo_669@hotmail.com> Co-authored-by: Jakub <kubabilinski03@gmail.com> Co-authored-by: Jakub <80340234+Jakub768@users.noreply.github.com> Co-authored-by: Lwmte <3331699+Lwmte@users.noreply.github.com> Co-authored-by: Sezz <sezzary@outlook.com>
This commit is contained in:
parent
ba99f41fa0
commit
e54fba1e4a
72 changed files with 993 additions and 50 deletions
|
@ -29,6 +29,8 @@ TombEngine releases are located in this repository (alongside with Tomb Editor):
|
|||
- You must use this version: https://github.com/TombEngine/Resources/raw/refs/heads/main/Wad2%20Objects/Interactables/TEN_Waterfall_Emitter.wad2
|
||||
|
||||
### Lua API changes
|
||||
|
||||
* Implemented advanced particles allowing animations and other effects.
|
||||
* Added Collision.Probe class for basic room collision detection.
|
||||
* Added diary module.
|
||||
* Added View.GetFlyByPosition() and View.GetFlyByRotation() functions to get flyby sequence parameters at a specified time point.
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
@ -128,6 +129,10 @@
|
|||
<td class="summary">Emit a particle.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" ><a href="#EmitAdvancedParticle">EmitAdvancedParticle(particleData)</a></td>
|
||||
<td class="summary">Emit a particle with extensive configuration options including animations.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" ><a href="#EmitShockwave">EmitShockwave(pos, innerRadius, outerRadius, color, lifetime, speed, angle, hurtsLara)</a></td>
|
||||
<td class="summary">Emit a shockwave, similar to that seen when a harpy projectile hits something.</td>
|
||||
</tr>
|
||||
|
@ -164,6 +169,13 @@
|
|||
<td class="summary">Get the wind vector for the current game frame.</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h2><a href="#Tables">Tables</a></h2>
|
||||
<table class="function_list">
|
||||
<tr>
|
||||
<td class="name" ><a href="#particleData">particleData</a></td>
|
||||
<td class="summary">Structure for EmitAdvancedParticle table.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
@ -327,6 +339,61 @@
|
|||
</span> )</pre>
|
||||
</ul>
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "EmitAdvancedParticle"></a>
|
||||
<strong>EmitAdvancedParticle(particleData)</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
Emit a particle with extensive configuration options including animations.
|
||||
|
||||
|
||||
|
||||
<h3>Parameters:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">particleData</span>
|
||||
<span class="types"><a class="type" href="../1 modules/Effects.html#particleData">particleData</a></span>
|
||||
The table holding all the particle data.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
<h3>Usage:</h3>
|
||||
<ul>
|
||||
<pre class="example"><span class="keyword">local</span> particle = {
|
||||
position = GetMoveableByName(<span class="string">"camera_target_6"</span>) :GetPosition(),
|
||||
velocity = Vec3(<span class="number">0</span>, <span class="number">0</span>, <span class="number">10</span>),
|
||||
objectID = TEN.Objects.ObjID.CUSTOM_BAR_GRAPHIC,
|
||||
spriteIndex = <span class="number">0</span>,
|
||||
lifetime = <span class="number">10</span>,
|
||||
maxYVelocity = <span class="number">0</span>,
|
||||
gravity = <span class="number">0</span>,
|
||||
friction = <span class="number">10</span>,
|
||||
startRotation = <span class="number">0</span>,
|
||||
rotationSpeed = <span class="number">0</span>,
|
||||
startSize = <span class="number">80</span>,
|
||||
endSize = <span class="number">80</span>,
|
||||
wind = <span class="keyword">false</span>,
|
||||
startColor = TEN.Color(<span class="number">128</span>, <span class="number">128</span>, <span class="number">128</span>),
|
||||
endColor = TEN.Color(<span class="number">128</span>, <span class="number">128</span>, <span class="number">128</span>),
|
||||
blendMode = TEN.Effects.BlendID.ADDITIVE,
|
||||
damage = <span class="keyword">true</span>,
|
||||
poison = <span class="keyword">false</span>,
|
||||
burn = <span class="keyword">false</span>,
|
||||
damageHit = <span class="number">80</span>,
|
||||
sound = <span class="number">197</span>,
|
||||
light = <span class="keyword">true</span>,
|
||||
lightRadius = <span class="number">6</span>,
|
||||
lightFlicker = <span class="number">5</span>,
|
||||
animated = <span class="keyword">true</span>,
|
||||
frameRate = .<span class="number">25</span>,
|
||||
animationType = TEN.Effects.ParticleAnimationType.LOOP,
|
||||
}
|
||||
EmitAdvancedParticle(particle)</pre>
|
||||
</ul>
|
||||
|
||||
</dd>
|
||||
<dt>
|
||||
<a name = "EmitShockwave"></a>
|
||||
|
@ -641,6 +708,161 @@
|
|||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<h2 class="section-header "><a name="Tables"></a>Tables</h2>
|
||||
|
||||
<dl class="function">
|
||||
<dt>
|
||||
<a name = "particleData"></a>
|
||||
<strong>particleData</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
Structure for EmitAdvancedParticle table.
|
||||
|
||||
|
||||
|
||||
<h3>Fields:</h3>
|
||||
<ul>
|
||||
<li><span class="parameter">position</span>
|
||||
<span class="types"><a class="type" href="../3 primitive classes/Vec3.html#">Vec3</a></span>
|
||||
World position.
|
||||
</li>
|
||||
<li><span class="parameter">velocity</span>
|
||||
<span class="types"><a class="type" href="../3 primitive classes/Vec3.html#">Vec3</a></span>
|
||||
Velocity.
|
||||
</li>
|
||||
<li><span class="parameter">spriteSeqID</span>
|
||||
<span class="types"><a class="type" href="../4 enums/Objects.ObjID.html#">ObjID</a></span>
|
||||
ID of the sprite sequence object. <strong>Default: Objects.ObjID.DEFAULT_SPRITES</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">spriteIndex</span>
|
||||
<span class="types"><span class="type">int</span></span>
|
||||
ID of the sprite in the sprite sequence object.<strong>Default: 0</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">lifetime</span>
|
||||
<span class="types"><span class="type">float</span></span>
|
||||
Lifespan in seconds. <strong>Default: 2</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">maxYVelocity</span>
|
||||
<span class="types"><span class="type">float</span></span>
|
||||
Specifies ithe maximum Y velocity for the particle. <strong>Default: 0</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">gravity</span>
|
||||
<span class="types"><span class="type">float</span></span>
|
||||
Specifies if the particle will fall over time. Positive values ascend, negative values descend. Recommended range: [-1000 and 1000]. <strong>Default: 0</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">friction</span>
|
||||
<span class="types"><span class="type">float</span></span>
|
||||
Specifies the friction with which the particle will slow down over time. <strong>Default: 0</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">startRot</span>
|
||||
<span class="types"><span class="type">float</span></span>
|
||||
Rotation at start of life. <strong>Default: random</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">rotationSpeed</span>
|
||||
<span class="types"><span class="type">float</span></span>
|
||||
Rotational velocity in degrees. <strong>Default: 0</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">startSize</span>
|
||||
<span class="types"><span class="type">float</span></span>
|
||||
Size at start of life. <strong>Default: 10</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">endSize</span>
|
||||
<span class="types"><span class="type">float</span></span>
|
||||
Size at end of life. The particle will linearly shrink or grow toward this size over its lifespan. <strong>Default: 0</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">startColor</span>
|
||||
<span class="types"><a class="type" href="../3 primitive classes/Color.html#">Color</a></span>
|
||||
Color at start of life. <strong>Default: Color(255, 255, 255)</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">endColor</span>
|
||||
<span class="types"><a class="type" href="../3 primitive classes/Color.html#">Color</a></span>
|
||||
Color to fade toward. This will finish long before the end of the particle's life due to internal math. <strong>Default: Color(255, 255, 255)</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">blendMode</span>
|
||||
<span class="types"><a class="type" href="../4 enums/Effects.BlendID.html#">BlendID</a></span>
|
||||
Render blend mode. <strong>TEN.Effects.BlendID.ALPHABLEND</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">damage</span>
|
||||
<span class="types"><span class="type">bool</span></span>
|
||||
Specify if the particle will harm the player on collision. <strong>Default: false</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">poison</span>
|
||||
<span class="types"><span class="type">bool</span></span>
|
||||
Specify if the particle will poison the player on collision. <strong>Default: false</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">burn</span>
|
||||
<span class="types"><span class="type">bool</span></span>
|
||||
Specify if the particle will burn the player on collision. <strong>Default: false</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">wind</span>
|
||||
<span class="types"><span class="type">bool</span></span>
|
||||
Specify if the particle will be affected by wind in outside rooms. <strong>Default: false</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">damageHit</span>
|
||||
<span class="types"><span class="type">int</span></span>
|
||||
Specify the damage particle will harm the player on collision. <strong>Default: 2</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">light</span>
|
||||
<span class="types"><span class="type">bool</span></span>
|
||||
Specify if the particle will be emit a light based on its color. Recommended for single particles. <strong>Default: false</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">lightRadius</span>
|
||||
<span class="types"><span class="type">int</span></span>
|
||||
measured in "clicks" or 256 world units. <strong>Default: 0</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">lightFlicker</span>
|
||||
<span class="types"><span class="type">int</span></span>
|
||||
The interval at which light should flicker. <strong>Default: 0</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">sound</span>
|
||||
<span class="types"><span class="type">int</span></span>
|
||||
ID to play. Corresponds to the value in the sound XML file or Tomb Editor's "Sound Infos" window. Looping sounds recommended. <strong>Default: None</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">animated</span>
|
||||
<span class="types"><span class="type">bool</span></span>
|
||||
Specify if the particle will be animated. <strong>Default: false</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">animationType</span>
|
||||
<span class="types"><a class="type" href="../4 enums/Effects.ParticleAnimationType.html#">ParticleAnimationType</a></span>
|
||||
Specify the the type of animation the particle will use. <strong>Default: TEN.Effects.ParticleAnimationType.LOOP</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
<li><span class="parameter">frameRate</span>
|
||||
<span class="types"><span class="type">float</span></span>
|
||||
The framerate with which the particle will be animated. <strong>Default: 1</strong>
|
||||
(<em>optional</em>)
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <here>Effects.BlendID</here></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <here>Effects.EffectID</here></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
169
Documentation/doc/4 enums/Effects.ParticleAnimationType.html
Normal file
169
Documentation/doc/4 enums/Effects.ParticleAnimationType.html
Normal file
|
@ -0,0 +1,169 @@
|
|||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
<html>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
|
||||
<head>
|
||||
<title>TombEngine 1.7.2 (Developer) Lua API</title>
|
||||
<link rel="stylesheet" href="../ldoc.css" type="text/css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="container">
|
||||
|
||||
<div id="product">
|
||||
<div id="product_logo"></div>
|
||||
<div id="product_name"><big><b></b></big></div>
|
||||
<div id="product_description"></div>
|
||||
</div> <!-- id="product" -->
|
||||
|
||||
|
||||
<div id="main">
|
||||
|
||||
|
||||
<!-- Menu -->
|
||||
|
||||
<div id="navigation">
|
||||
<br/>
|
||||
<h1> TombEngine</h1>
|
||||
|
||||
<ul>
|
||||
<li><a href="../index.html">Index</a></li>
|
||||
</ul>
|
||||
|
||||
<h2>1 Modules</h2>
|
||||
<ul class="nowrap">
|
||||
<li> <a href="../1 modules/Effects.html">Effects</a></li>
|
||||
<li> <a href="../1 modules/Flow.html">Flow</a></li>
|
||||
<li> <a href="../1 modules/Input.html">Input</a></li>
|
||||
<li> <a href="../1 modules/Inventory.html">Inventory</a></li>
|
||||
<li> <a href="../1 modules/Logic.html">Logic</a></li>
|
||||
<li> <a href="../1 modules/Objects.html">Objects</a></li>
|
||||
<li> <a href="../1 modules/Sound.html">Sound</a></li>
|
||||
<li> <a href="../1 modules/Strings.html">Strings</a></li>
|
||||
<li> <a href="../1 modules/Util.html">Util</a></li>
|
||||
<li> <a href="../1 modules/View.html">View</a></li>
|
||||
</ul>
|
||||
<h2>2 Classes</h2>
|
||||
<ul class="nowrap">
|
||||
<li> <a href="../2 classes/Flow.Level.html">Flow.Level</a></li>
|
||||
<li> <a href="../2 classes/Flow.Settings.html">Flow.Settings</a></li>
|
||||
<li> <a href="../2 classes/Flow.Statistics.html">Flow.Statistics</a></li>
|
||||
<li> <a href="../2 classes/Objects.AIObject.html">Objects.AIObject</a></li>
|
||||
<li> <a href="../2 classes/Objects.Camera.html">Objects.Camera</a></li>
|
||||
<li> <a href="../2 classes/Objects.LaraObject.html">Objects.LaraObject</a></li>
|
||||
<li> <a href="../2 classes/Objects.Moveable.html">Objects.Moveable</a></li>
|
||||
<li> <a href="../2 classes/Objects.Room.html">Objects.Room</a></li>
|
||||
<li> <a href="../2 classes/Objects.Sink.html">Objects.Sink</a></li>
|
||||
<li> <a href="../2 classes/Objects.SoundSource.html">Objects.SoundSource</a></li>
|
||||
<li> <a href="../2 classes/Objects.Static.html">Objects.Static</a></li>
|
||||
<li> <a href="../2 classes/Objects.Volume.html">Objects.Volume</a></li>
|
||||
<li> <a href="../2 classes/Strings.DisplayString.html">Strings.DisplayString</a></li>
|
||||
<li> <a href="../2 classes/View.DisplaySprite.html">View.DisplaySprite</a></li>
|
||||
</ul>
|
||||
<h2>3 Primitive Classes</h2>
|
||||
<ul class="nowrap">
|
||||
<li> <a href="../3 primitive classes/Flow.Fog.html">Flow.Fog</a></li>
|
||||
<li> <a href="../3 primitive classes/Flow.InventoryItem.html">Flow.InventoryItem</a></li>
|
||||
<li> <a href="../3 primitive classes/Flow.LensFlare.html">Flow.LensFlare</a></li>
|
||||
<li> <a href="../3 primitive classes/Flow.SkyLayer.html">Flow.SkyLayer</a></li>
|
||||
<li> <a href="../3 primitive classes/Flow.Starfield.html">Flow.Starfield</a></li>
|
||||
<li> <a href="../3 primitive classes/Color.html">Color</a></li>
|
||||
<li> <a href="../3 primitive classes/Rotation.html">Rotation</a></li>
|
||||
<li> <a href="../3 primitive classes/Time.html">Time</a></li>
|
||||
<li> <a href="../3 primitive classes/Vec2.html">Vec2</a></li>
|
||||
<li> <a href="../3 primitive classes/Vec3.html">Vec3</a></li>
|
||||
</ul>
|
||||
<h2>4 Enums</h2>
|
||||
<ul class="nowrap">
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <here>Effects.ParticleAnimationType</here></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
<li> <a href="../4 enums/Input.ActionID.html">Input.ActionID</a></li>
|
||||
<li> <a href="../4 enums/Objects.AmmoType.html">Objects.AmmoType</a></li>
|
||||
<li> <a href="../4 enums/Objects.HandStatus.html">Objects.HandStatus</a></li>
|
||||
<li> <a href="../4 enums/Objects.WeaponType.html">Objects.WeaponType</a></li>
|
||||
<li> <a href="../4 enums/Objects.MoveableStatus.html">Objects.MoveableStatus</a></li>
|
||||
<li> <a href="../4 enums/Objects.ObjID.html">Objects.ObjID</a></li>
|
||||
<li> <a href="../4 enums/Objects.RoomFlagID.html">Objects.RoomFlagID</a></li>
|
||||
<li> <a href="../4 enums/Objects.RoomReverb.html">Objects.RoomReverb</a></li>
|
||||
<li> <a href="../4 enums/Sound.SoundTrackType.html">Sound.SoundTrackType</a></li>
|
||||
<li> <a href="../4 enums/Strings.DisplayStringOption.html">Strings.DisplayStringOption</a></li>
|
||||
<li> <a href="../4 enums/Util.LogLevel.html">Util.LogLevel</a></li>
|
||||
<li> <a href="../4 enums/View.AlignMode.html">View.AlignMode</a></li>
|
||||
<li> <a href="../4 enums/View.CameraType.html">View.CameraType</a></li>
|
||||
<li> <a href="../4 enums/View.PostProcessMode.html">View.PostProcessMode</a></li>
|
||||
<li> <a href="../4 enums/View.ScaleMode.html">View.ScaleMode</a></li>
|
||||
</ul>
|
||||
<h2>5 Lua utility modules</h2>
|
||||
<ul class="nowrap">
|
||||
<li> <a href="../5 lua utility modules/Diary.html">Diary</a></li>
|
||||
<li> <a href="../5 lua utility modules/EventSequence.html">EventSequence</a></li>
|
||||
<li> <a href="../5 lua utility modules/Timer.html">Timer</a></li>
|
||||
<li> <a href="../5 lua utility modules/Type.html">Type</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="content">
|
||||
|
||||
<h1>Enum <code>Effects.ParticleAnimationType</code></h1>
|
||||
<p>Constants for particle animation type constants.</p>
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
|
||||
<h2><a href="#Tables">Tables</a></h2>
|
||||
<table class="function_list">
|
||||
<tr>
|
||||
<td class="name" ><a href="#Effects.ParticleAnimationType">Effects.ParticleAnimationType</a></td>
|
||||
<td class="summary">Table of Effects.ParticleAnimationType type constants.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<br/>
|
||||
<br/>
|
||||
|
||||
|
||||
<h2 class="section-header "><a name="Tables"></a>Tables</h2>
|
||||
|
||||
<dl class="function">
|
||||
<dt>
|
||||
<a name = "Effects.ParticleAnimationType"></a>
|
||||
<strong>Effects.ParticleAnimationType</strong>
|
||||
</dt>
|
||||
<dd>
|
||||
|
||||
<p>Table of Effects.ParticleAnimationType type constants. To be used with particles.</p>
|
||||
|
||||
<ul>
|
||||
<li><code>LOOP</code> - Frames loop sequentially.</li>
|
||||
<li><code>ONE_SHOT</code> - Frames play once and freeze on the last frame.</li>
|
||||
<li><code>BACK_AND_FORTH</code> - Frames bounce back and forth.</li>
|
||||
<li><code>LIFE_TIME_SPREAD</code> - Frames are distributed over the particle's lifetime</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
|
||||
|
||||
</div> <!-- id="content" -->
|
||||
</div> <!-- id="main" -->
|
||||
<div id="about">
|
||||
<i>generated by <a href="https://github.com/hispidence/TEN-LDoc">TEN-LDoc</a> (a fork of <a href="http://github.com/stevedonovan/LDoc">LDoc 1.4.6</a>)</i>
|
||||
</div> <!-- id="about" -->
|
||||
</div> <!-- id="container" -->
|
||||
</body>
|
||||
</html>
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <here>Flow.ErrorMode</here></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <here>Flow.FreezeMode</here></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <here>Flow.GameStatus</here></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="../4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="../4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="../4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="../4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="../4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="../4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
|
|
@ -79,6 +79,7 @@
|
|||
<li> <a href="4 enums/Collision.MaterialType.html">Collision.MaterialType</a></li>
|
||||
<li> <a href="4 enums/Effects.BlendID.html">Effects.BlendID</a></li>
|
||||
<li> <a href="4 enums/Effects.EffectID.html">Effects.EffectID</a></li>
|
||||
<li> <a href="4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></li>
|
||||
<li> <a href="4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></li>
|
||||
<li> <a href="4 enums/Flow.FreezeMode.html">Flow.FreezeMode</a></li>
|
||||
<li> <a href="4 enums/Flow.GameStatus.html">Flow.GameStatus</a></li>
|
||||
|
@ -296,6 +297,10 @@ local door = GetMoveableByName("door_type4_14")
|
|||
<td class="name" ><a href="4 enums/Effects.EffectID.html">Effects.EffectID</a></td>
|
||||
<td class="summary">Constants for effect IDs.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" ><a href="4 enums/Effects.ParticleAnimationType.html">Effects.ParticleAnimationType</a></td>
|
||||
<td class="summary">Constants for particle animation type constants.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="name" ><a href="4 enums/Flow.ErrorMode.html">Flow.ErrorMode</a></td>
|
||||
<td class="summary">Constants for error modes.</td>
|
||||
|
|
|
@ -30,6 +30,7 @@
|
|||
#include "Sound/sound.h"
|
||||
#include "Specific/clock.h"
|
||||
#include "Specific/level.h"
|
||||
#include "Specific/trutils.h"
|
||||
|
||||
using namespace TEN::Collision::Point;
|
||||
using namespace TEN::Effects::Blood;
|
||||
|
@ -188,6 +189,86 @@ void SetSpriteSequence(Particle& particle, GAME_OBJECT_ID objectID)
|
|||
particle.SpriteID = (int)round(Lerp(0.0f, spriteCount, normalizedAge));
|
||||
}
|
||||
|
||||
void SetAdvancedSpriteSequence(Particle& particle, GAME_OBJECT_ID objectID, ParticleAnimType animationType, float frameRate)
|
||||
{
|
||||
// Ensure valid lifespan
|
||||
if (particle.life <= 0)
|
||||
{
|
||||
particle.on = false;
|
||||
ParticleDynamics[particle.dynamic].On = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// Calculate particle's age and normalized progress
|
||||
float particleAge = particle.sLife - particle.life; // Elapsed time since spawn
|
||||
float normalizedAge = particleAge / particle.sLife; // Progress as a fraction [0.0, 1.0]
|
||||
|
||||
// Retrieve sprite sequence information
|
||||
//int firstFrame = Objects[objectID].meshIndex; // Starting sprite index
|
||||
int totalFrames = -Objects[objectID].nmeshes; // Total frames (assuming nmeshes is negative)
|
||||
if (totalFrames <= 0)
|
||||
{
|
||||
particle.SpriteSeqID = objectID;
|
||||
particle.SpriteID = 0; // Default to the first frame if no valid frames exist
|
||||
return;
|
||||
}
|
||||
|
||||
particle.SpriteSeqID = objectID;
|
||||
|
||||
// Handle animation modes
|
||||
switch (animationType)
|
||||
{
|
||||
case ParticleAnimType::Loop: // Frames loop sequentially
|
||||
{
|
||||
float frameDuration = frameRate > 0 ? 1.0f / frameRate : 1.0f / totalFrames; // Duration per frame
|
||||
int currentFrame = (int)(particleAge / frameDuration) % totalFrames; // Wrap frames
|
||||
particle.SpriteID = currentFrame;
|
||||
break;
|
||||
}
|
||||
|
||||
case ParticleAnimType::OneShot: // Frames play once, then freeze on the last frame
|
||||
{
|
||||
float totalDuration = frameRate > 0 ? totalFrames / frameRate : particle.sLife;
|
||||
int currentFrame = (int)(particleAge / (totalDuration / totalFrames));
|
||||
if (currentFrame >= totalFrames)
|
||||
currentFrame = totalFrames - 1; // Clamp to the last frame
|
||||
particle.SpriteID = currentFrame;
|
||||
break;
|
||||
}
|
||||
|
||||
case ParticleAnimType::BackAndForth: // Frames go forward and then backward
|
||||
{
|
||||
float frameDuration = frameRate > 0 ? 1.0f / frameRate : 1.0f / totalFrames;
|
||||
int totalFrameSteps = totalFrames * 2 - 2; // Forward and backward frames (avoiding double-count of last frame)
|
||||
int step = (int)(particleAge / frameDuration) % totalFrameSteps;
|
||||
int currentFrame = step < totalFrames ? step : totalFrames - (step - totalFrames) - 1;
|
||||
particle.SpriteID = currentFrame;
|
||||
break;
|
||||
}
|
||||
|
||||
case ParticleAnimType::LifetimeSpread: // Distribute all frames evenly over lifetime
|
||||
{
|
||||
int currentFrame = (int)(normalizedAge * totalFrames);
|
||||
if (currentFrame >= totalFrames)
|
||||
currentFrame = totalFrames - 1; // Clamp to the last frame
|
||||
particle.SpriteID = currentFrame;
|
||||
break;
|
||||
}
|
||||
|
||||
case ParticleAnimType::None: // Distribute all frames evenly over lifetime
|
||||
{
|
||||
particle.SpriteID = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
default: // Default behavior: keep the first frame
|
||||
particle.SpriteID = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void UpdateWibble()
|
||||
{
|
||||
// Update oscillator seed.
|
||||
|
@ -351,8 +432,56 @@ void UpdateSparks()
|
|||
if (spark.flags & SP_EXPLOSION)
|
||||
SetSpriteSequence(spark, ID_EXPLOSION_SPRITES);
|
||||
|
||||
|
||||
if (spark.flags & SP_ANIMATED)
|
||||
{
|
||||
ParticleAnimType animationType = static_cast<ParticleAnimType>(spark.animationType);
|
||||
GAME_OBJECT_ID spriteObject = static_cast<GAME_OBJECT_ID>(spark.SpriteSeqID);
|
||||
SetAdvancedSpriteSequence(spark, spriteObject, animationType, spark.framerate);
|
||||
}
|
||||
|
||||
if (spark.flags & SP_SOUND)
|
||||
SoundEffect(spark.sound, &Pose(Vector3(spark.x, spark.y, spark.z)), SoundEnvironment::Always);
|
||||
|
||||
if (spark.flags & SP_LIGHT)
|
||||
{
|
||||
float radius = spark.lightRadius * spark.size / spark.sSize;
|
||||
// Decrease flicker timer if set
|
||||
if (spark.lightFlicker > 0)
|
||||
{
|
||||
spark.lightFlicker--;
|
||||
|
||||
if (spark.lightFlicker <= 0)
|
||||
{
|
||||
// Apply random flicker effect
|
||||
int random = GetRandomControl();
|
||||
int colorOffset = (random % 21) - 10; // Random change between -10 and +10
|
||||
|
||||
byte r = std::clamp(spark.r + colorOffset, 0, 255);
|
||||
byte g = std::clamp(spark.g + colorOffset, 0, 255);
|
||||
byte b = std::clamp(spark.b + colorOffset, 0, 255);
|
||||
|
||||
// Reset flicker timer
|
||||
spark.lightFlicker = spark.lightFlickerS;
|
||||
|
||||
// Emit flickering light
|
||||
SpawnDynamicPointLight(Vector3(spark.x, spark.y, spark.z), ScriptColor(r, g, b), radius, false, GetHash(std::string()));
|
||||
}
|
||||
else
|
||||
{
|
||||
// Normal light emission while flicker is counting down
|
||||
SpawnDynamicPointLight(Vector3(spark.x, spark.y, spark.z), ScriptColor(spark.r, spark.g, spark.b), radius, false, GetHash(std::string()));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
// If flicker is disabled or 0, just emit normal light
|
||||
SpawnDynamicPointLight(Vector3(spark.x, spark.y, spark.z), ScriptColor(spark.r, spark.g, spark.b), radius, false, GetHash(std::string()));
|
||||
}
|
||||
}
|
||||
|
||||
if ((spark.flags & SP_FIRE && LaraItem->Effect.Type == EffectType::None) ||
|
||||
(spark.flags & SP_DAMAGE) ||
|
||||
(spark.flags & SP_DAMAGE) ||
|
||||
(spark.flags & SP_POISON))
|
||||
{
|
||||
int ds = spark.size * (spark.scalar / 2.0);
|
||||
|
@ -367,10 +496,10 @@ void UpdateSparks()
|
|||
ItemBurn(LaraItem);
|
||||
|
||||
if (spark.flags & SP_DAMAGE)
|
||||
DoDamage(LaraItem, 2);
|
||||
DoDamage(LaraItem, spark.damage);
|
||||
|
||||
if (spark.flags & SP_POISON)
|
||||
Lara.Status.Poison += 5;
|
||||
Lara.Status.Poison += spark.damage;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -42,6 +42,18 @@ enum SpriteEnumFlag
|
|||
SP_PLASMAEXP = (1 << 13),
|
||||
SP_POISON = (1 << 14),
|
||||
SP_COLOR = (1 << 15),
|
||||
SP_ANIMATED = (1 << 16),
|
||||
SP_LIGHT = (1 << 17),
|
||||
SP_SOUND = (1 << 18),
|
||||
};
|
||||
|
||||
enum ParticleAnimType
|
||||
{
|
||||
None,
|
||||
OneShot,
|
||||
Loop,
|
||||
BackAndForth,
|
||||
LifetimeSpread
|
||||
};
|
||||
|
||||
// Used by Particle.nodeNumber.
|
||||
|
@ -130,8 +142,8 @@ struct Particle
|
|||
short rotAdd; // TODO: Due to legacy conventions, assigned values must be shifted >> 4.
|
||||
|
||||
short gravity;
|
||||
unsigned short flags; // SP_enum
|
||||
|
||||
unsigned int flags; // SP_enum
|
||||
|
||||
float sSize;
|
||||
float dSize;
|
||||
float size;
|
||||
|
@ -160,6 +172,16 @@ struct Particle
|
|||
unsigned char extras;
|
||||
signed char dynamic;
|
||||
unsigned char nodeNumber; // ParticleNodeOffsetIDs enum.
|
||||
|
||||
int damage;
|
||||
float framerate;
|
||||
ParticleAnimType animationType;
|
||||
|
||||
int lightRadius;
|
||||
int lightFlicker;
|
||||
int lightFlickerS;
|
||||
|
||||
int sound;
|
||||
|
||||
int PrevX;
|
||||
int PrevY;
|
||||
|
@ -245,6 +267,7 @@ void ClearInactiveEffects(std::vector<TEffect>& effects)
|
|||
Particle* GetFreeParticle();
|
||||
|
||||
void SetSpriteSequence(Particle& particle, GAME_OBJECT_ID objectID);
|
||||
void SetAdvancedSpriteSequence(Particle& particle, GAME_OBJECT_ID objectID, ParticleAnimType animationType, float frameRate);
|
||||
|
||||
void DetatchSpark(int num, SpriteEnumFlag type);
|
||||
void UpdateSparks();
|
||||
|
|
|
@ -1149,11 +1149,13 @@ const std::vector<byte> SaveGame::Build()
|
|||
|
||||
Save::ParticleInfoBuilder particleInfo{ fbb };
|
||||
|
||||
particleInfo.add_animation_type(particle->animationType);
|
||||
particleInfo.add_b(particle->b);
|
||||
particleInfo.add_col_fade_speed(particle->colFadeSpeed);
|
||||
particleInfo.add_d_b(particle->dB);
|
||||
particleInfo.add_sprite_index(particle->SpriteSeqID);
|
||||
particleInfo.add_sprite_id(particle->SpriteID);
|
||||
particleInfo.add_damage(particle->damage);
|
||||
particleInfo.add_d_g(particle->dG);
|
||||
particleInfo.add_d_r(particle->dR);
|
||||
particleInfo.add_d_size(particle->dSize);
|
||||
|
@ -1161,11 +1163,15 @@ const std::vector<byte> SaveGame::Build()
|
|||
particleInfo.add_extras(particle->extras);
|
||||
particleInfo.add_fade_to_black(particle->fadeToBlack);
|
||||
particleInfo.add_flags(particle->flags);
|
||||
particleInfo.add_framerate(particle->framerate);
|
||||
particleInfo.add_friction(particle->friction);
|
||||
particleInfo.add_fx_obj(particle->fxObj);
|
||||
particleInfo.add_g(particle->g);
|
||||
particleInfo.add_gravity(particle->gravity);
|
||||
particleInfo.add_life(particle->life);
|
||||
particleInfo.add_light_radius(particle->lightRadius);
|
||||
particleInfo.add_light_flicker(particle->lightFlicker);
|
||||
particleInfo.add_light_flicker_s(particle->lightFlickerS);
|
||||
particleInfo.add_max_y_vel(particle->maxYvel);
|
||||
particleInfo.add_node_number(particle->nodeNumber);
|
||||
particleInfo.add_on(particle->on);
|
||||
|
@ -1180,9 +1186,10 @@ const std::vector<byte> SaveGame::Build()
|
|||
particleInfo.add_s_life(particle->sLife);
|
||||
particleInfo.add_s_r(particle->sR);
|
||||
particleInfo.add_s_size(particle->sSize);
|
||||
particleInfo.add_sound(particle->sound);
|
||||
particleInfo.add_blend_mode((int)particle->blendMode);
|
||||
particleInfo.add_x(particle->x);
|
||||
particleInfo.add_x_vel(particle->sSize);
|
||||
particleInfo.add_x_vel(particle->xVel);
|
||||
particleInfo.add_y(particle->y);
|
||||
particleInfo.add_y_vel(particle->yVel);
|
||||
particleInfo.add_z(particle->z);
|
||||
|
@ -2224,6 +2231,14 @@ static void ParseEffects(const Save::SaveGame* s)
|
|||
particle->roomNumber = particleInfo->room_number();
|
||||
particle->nodeNumber = particleInfo->node_number();
|
||||
particle->targetPos = ToVector3(particleInfo->target_pos());
|
||||
particle->animationType = (ParticleAnimType)particleInfo->animation_type();
|
||||
particle->damage = particleInfo->damage();
|
||||
particle->framerate = particleInfo->framerate();
|
||||
particle->lightRadius = particleInfo->light_radius();
|
||||
particle->lightFlicker = particleInfo->light_flicker();
|
||||
particle->lightFlickerS = particleInfo->light_flicker_s();
|
||||
particle->sound = particleInfo->sound();
|
||||
|
||||
}
|
||||
|
||||
for (int i = 0; i < s->bats()->size(); i++)
|
||||
|
|
|
@ -312,6 +312,7 @@ static constexpr char ScriptReserved_EnableEvent[] = "EnableEvent";
|
|||
static constexpr char ScriptReserved_DisableEvent[] = "DisableEvent";
|
||||
|
||||
static constexpr char ScriptReserved_EmitParticle[] = "EmitParticle";
|
||||
static constexpr char ScriptReserved_EmitAdvancedParticle[] = "EmitAdvancedParticle";
|
||||
static constexpr char ScriptReserved_EmitLightningArc[] = "EmitLightningArc";
|
||||
static constexpr char ScriptReserved_EmitShockwave[] = "EmitShockwave";
|
||||
static constexpr char ScriptReserved_EmitLight[] = "EmitLight";
|
||||
|
@ -384,6 +385,7 @@ static constexpr char ScriptReserved_EndReason[] = "EndReason";
|
|||
static constexpr char ScriptReserved_EventType[] = "EventType";
|
||||
static constexpr char ScriptReserved_AlignMode[] = "AlignMode";
|
||||
static constexpr char ScriptReserved_ScaleMode[] = "ScaleMode";
|
||||
static constexpr char ScriptReserved_ParticleAnimationType[] = "ParticleAnimationType";
|
||||
|
||||
static constexpr char ScriptReserved_LevelVars[] = "LevelVars";
|
||||
static constexpr char ScriptReserved_GameVars[] = "GameVars";
|
||||
|
|
|
@ -2,26 +2,26 @@
|
|||
|
||||
#include "Renderer/RendererEnums.h"
|
||||
|
||||
/// Constants for blend mode IDs.
|
||||
// @enum Effects.BlendID
|
||||
// @pragma nostrip
|
||||
|
||||
/// Table of Effects.BlendID constants.
|
||||
//
|
||||
// - `OPAQUE`
|
||||
// - `ALPHA_TEST`
|
||||
// - `ADDITIVE`
|
||||
// - `NO_DEPTH_TEST`
|
||||
// - `SUBTRACTIVE`
|
||||
// - `EXCLUDE`
|
||||
// - `SCREEN`
|
||||
// - `LIGHTEN`
|
||||
// - `ALPHA_BLEND`
|
||||
//
|
||||
// @table Effects.BlendID
|
||||
|
||||
namespace TEN::Scripting::Effects
|
||||
{
|
||||
/// Constants for blend mode IDs.
|
||||
// @enum Effects.BlendID
|
||||
// @pragma nostrip
|
||||
|
||||
/// Table of Effects.BlendID constants.
|
||||
//
|
||||
// - `OPAQUE`
|
||||
// - `ALPHA_TEST`
|
||||
// - `ADDITIVE`
|
||||
// - `NO_DEPTH_TEST`
|
||||
// - `SUBTRACTIVE`
|
||||
// - `EXCLUDE`
|
||||
// - `SCREEN`
|
||||
// - `LIGHTEN`
|
||||
// - `ALPHA_BLEND`
|
||||
//
|
||||
// @table Effects.BlendID
|
||||
|
||||
static const auto BLEND_IDS = std::unordered_map<std::string, BlendMode>
|
||||
{
|
||||
{ "OPAQUE", BlendMode::Opaque },
|
||||
|
|
|
@ -2,26 +2,26 @@
|
|||
|
||||
#include "Game/items.h"
|
||||
|
||||
/// Constants for effect IDs.
|
||||
// @enum Effects.EffectID
|
||||
// @pragma nostrip
|
||||
|
||||
/// Table of Effects.EffectID constants.
|
||||
// To be used with @{Objects.Moveable.SetEffect} and @{Objects.Moveable.GetEffect} functions.
|
||||
//
|
||||
// - `NONE`
|
||||
// - `FIRE`
|
||||
// - `SPARKS`
|
||||
// - `SMOKE`
|
||||
// - `ELECTRIC_IGNITE`
|
||||
// - `RED_IGNITE`
|
||||
// - `CADAVER`
|
||||
// - `CUSTOM`
|
||||
//
|
||||
// @table Effects.EffectID
|
||||
|
||||
namespace TEN::Scripting::Effects
|
||||
{
|
||||
/// Constants for effect IDs.
|
||||
// @enum Effects.EffectID
|
||||
// @pragma nostrip
|
||||
|
||||
/// Table of Effects.EffectID constants.
|
||||
// To be used with @{Objects.Moveable.SetEffect} and @{Objects.Moveable.GetEffect} functions.
|
||||
//
|
||||
// - `NONE`
|
||||
// - `FIRE`
|
||||
// - `SPARKS`
|
||||
// - `SMOKE`
|
||||
// - `ELECTRIC_IGNITE`
|
||||
// - `RED_IGNITE`
|
||||
// - `CADAVER`
|
||||
// - `CUSTOM`
|
||||
//
|
||||
// @table Effects.EffectID
|
||||
|
||||
static const auto EFFECT_IDS = std::unordered_map<std::string, EffectType>
|
||||
{
|
||||
{ "NONE", EffectType::None },
|
||||
|
@ -37,3 +37,4 @@ namespace TEN::Scripting::Effects
|
|||
{ "REDIGNITE", EffectType::RedIgnite }
|
||||
};
|
||||
}
|
||||
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include "Scripting/Internal/ScriptUtil.h"
|
||||
#include "Scripting/Internal/TEN/Effects/BlendIDs.h"
|
||||
#include "Scripting/Internal/TEN/Effects/EffectIDs.h"
|
||||
#include "Scripting/Internal/TEN/Effects/ParticleAnimTypes.h"
|
||||
#include "Scripting/Internal/TEN/Types/Color/Color.h"
|
||||
#include "Scripting/Internal/TEN/Types/Vec3/Vec3.h"
|
||||
#include "Scripting/Internal/TEN/Types/Vec2/Vec2.h"
|
||||
|
@ -210,6 +211,156 @@ namespace TEN::Scripting::Effects
|
|||
if (TestEnvironment(RoomEnvFlags::ENV_FLAG_WIND, part.roomNumber))
|
||||
part.flags |= SP_WIND;
|
||||
}
|
||||
|
||||
/// Emit a particle with extensive configuration options including animations.
|
||||
// @function EmitAdvancedParticle
|
||||
// @tparam ParticleData ParticleData The table holding all the particle data.
|
||||
// @usage
|
||||
// local particle = {
|
||||
// position = GetMoveableByName("camera_target_6") :GetPosition(),
|
||||
// velocity = Vec3(0, 0, 10),
|
||||
// spriteSeqID = TEN.Objects.ObjID.CUSTOM_BAR_GRAPHIC,
|
||||
// spriteID = 0,
|
||||
// lifetime = 10,
|
||||
// maxYVelocity = 0,
|
||||
// gravity = 0,
|
||||
// friction = 10,
|
||||
// startRotation = 0,
|
||||
// rotationSpeed = 0,
|
||||
// startSize = 80,
|
||||
// endSize = 80,
|
||||
// startColor = TEN.Color(128, 128, 128),
|
||||
// endColor = TEN.Color(128, 128, 128),
|
||||
// blendMode = TEN.Effects.BlendID.ADDITIVE,
|
||||
// wind = false,
|
||||
// damage = true,
|
||||
// poison = false,
|
||||
// burn = false,
|
||||
// damageHit = 80,
|
||||
// sound = 197,
|
||||
// light = true,
|
||||
// lightRadius = 6,
|
||||
// lightFlicker = 5,
|
||||
// animated = true,
|
||||
// frameRate = .25,
|
||||
// animationType = TEN.Effects.ParticleAnimationType.LOOP,
|
||||
// }
|
||||
// EmitAdvancedParticle(particle)
|
||||
static void EmitAdvancedParticle(sol::table ParticleData)
|
||||
{
|
||||
constexpr auto DEFAULT_START_SIZE = 10.0f;
|
||||
constexpr auto DEFAULT_LIFE = 2.0f;
|
||||
constexpr auto SECS_PER_FRAME = 1.0f / (float)FPS;
|
||||
|
||||
auto convertedSpriteSeqID = ParticleData.get_or("spriteSeqID", ID_DEFAULT_SPRITES);
|
||||
if (!CheckIfSlotExists(convertedSpriteSeqID, "EmitParticle() script function."))
|
||||
return;
|
||||
|
||||
auto& part = *GetFreeParticle();
|
||||
|
||||
part.on = true;
|
||||
part.SpriteSeqID = convertedSpriteSeqID;
|
||||
part.SpriteID = ParticleData.get_or("spriteID", 0);
|
||||
|
||||
auto bMode = ParticleData.get_or("blendMode", BlendMode::AlphaBlend);
|
||||
part.blendMode = bMode;
|
||||
|
||||
Vec3 pos = ParticleData["position"];
|
||||
part.x = pos.x;
|
||||
part.y = pos.y;
|
||||
part.z = pos.z;
|
||||
part.roomNumber = FindRoomNumber(Vector3i(pos.x, pos.y, pos.z));
|
||||
|
||||
Vec3 vel = ParticleData["velocity"];
|
||||
part.xVel = short(vel.x * 32);
|
||||
part.yVel = short(vel.y * 32);
|
||||
part.zVel = short(vel.z * 32);
|
||||
|
||||
float rotAdd = ParticleData.get_or("rotationSpeed", 0.0f);
|
||||
float rotAng = ParticleData.get_or("startRotation", TO_DEGREES(Random::GenerateAngle()));
|
||||
part.rotAng = ANGLE(rotAng) >> 4;
|
||||
part.rotAdd = ANGLE(rotAdd) >> 4;
|
||||
|
||||
part.sSize =
|
||||
part.size = ParticleData.get_or("startSize", DEFAULT_START_SIZE);
|
||||
part.dSize = ParticleData.get_or("endSize", 0.0f);
|
||||
part.scalar = 2;
|
||||
|
||||
part.gravity = (short)std::clamp((float) ParticleData.get_or("gravity", 0.0f), (float)SHRT_MIN, (float)SHRT_MAX);
|
||||
part.friction = ParticleData.get_or("friction", 0);
|
||||
part.maxYvel = ParticleData.get_or("maxYVelocity", 0);
|
||||
|
||||
auto convertedStartColor = ParticleData.get_or("startColor", ScriptColor(255, 255, 255));
|
||||
part.sR = convertedStartColor.GetR();
|
||||
part.sG = convertedStartColor.GetG();
|
||||
part.sB = convertedStartColor.GetB();
|
||||
|
||||
auto convertedEndColor = ParticleData.get_or("endColor", ScriptColor(255, 255, 255));
|
||||
part.dR = convertedEndColor.GetR();
|
||||
part.dG = convertedEndColor.GetG();
|
||||
part.dB = convertedEndColor.GetB();
|
||||
|
||||
float convertedLife = std::max(0.1f, (float) ParticleData.get_or("lifetime", DEFAULT_LIFE));
|
||||
part.life =
|
||||
part.sLife = (int)round(convertedLife / SECS_PER_FRAME);
|
||||
part.colFadeSpeed = part.life / 2;
|
||||
part.fadeToBlack = part.life / 3;
|
||||
|
||||
part.flags = SP_SCALE | SP_ROTATE | SP_DEF | SP_EXPDEF;
|
||||
|
||||
part.damage = ParticleData.get_or("damageHit", 2);
|
||||
|
||||
bool convertedApplyPoison = ParticleData.get_or("poison", false);
|
||||
if (convertedApplyPoison)
|
||||
part.flags |= SP_POISON;
|
||||
|
||||
bool convertedApplyDamage = ParticleData.get_or("damage", false);
|
||||
if (convertedApplyDamage)
|
||||
part.flags |= SP_DAMAGE;
|
||||
|
||||
bool convertedApplyBurn = ParticleData.get_or("burn", false);
|
||||
if (convertedApplyBurn)
|
||||
part.flags |= SP_FIRE;
|
||||
|
||||
int convertedApplySound = ParticleData.get_or("sound", -1);
|
||||
if (convertedApplySound > 0)
|
||||
{
|
||||
part.flags |= SP_SOUND;
|
||||
part.sound = convertedApplySound;
|
||||
}
|
||||
bool convertedApplyLight = ParticleData.get_or("light", false);
|
||||
if (convertedApplyLight)
|
||||
{
|
||||
part.flags |= SP_LIGHT;
|
||||
int lightRadius = ParticleData.get_or("lightRadius", 0);
|
||||
part.lightRadius = lightRadius * BLOCK(0.25f);
|
||||
int flicker = ParticleData.get_or("lightFlicker", 0);
|
||||
|
||||
if (flicker > 0)
|
||||
{
|
||||
part.lightFlicker = ParticleData.get_or("lightFlicker", 0);
|
||||
part.lightFlickerS = ParticleData.get_or("lightFlicker", 0);
|
||||
}
|
||||
}
|
||||
bool animatedSpr = ParticleData.get_or("animated", false);
|
||||
if (animatedSpr)
|
||||
{
|
||||
ParticleAnimType applyAnim = ParticleData.get_or("animationType", ParticleAnimType::Loop);
|
||||
float applyFramerate = ParticleData.get_or("frameRate", 1.0f);
|
||||
part.flags |= SP_ANIMATED;
|
||||
part.framerate = applyFramerate;
|
||||
part.animationType = ParticleAnimType(std::clamp(int(applyAnim), int(ParticleAnimType::None), int(ParticleAnimType::LifetimeSpread)));
|
||||
|
||||
}
|
||||
|
||||
bool convertedApplyWind = ParticleData.get_or("wind", false);
|
||||
if (convertedApplyWind)
|
||||
{
|
||||
if (TestEnvironment(RoomEnvFlags::ENV_FLAG_WIND, part.roomNumber))
|
||||
part.flags |= SP_WIND;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/***Emit a shockwave, similar to that seen when a harpy projectile hits something.
|
||||
@function EmitShockwave
|
||||
|
@ -299,11 +450,11 @@ namespace TEN::Scripting::Effects
|
|||
TriggerBlood(pos.x, pos.y, pos.z, -1, ValueOr<int>(count, 1));
|
||||
}
|
||||
|
||||
/// Emit air bubble in a water room.
|
||||
// @function EmitAirBubble
|
||||
// @tparam Vec3 pos World position where the effect will be spawned. Must be in a water room.
|
||||
// @tparam[opt] float size Sprite size. __Default: 32__
|
||||
// @tparam[opt] float amp Oscillation amplitude. __Default: 32__
|
||||
/// Emit air bubble in a water room.
|
||||
// @function EmitAirBubble
|
||||
// @tparam Vec3 pos World position where the effect will be spawned. Must be in a water room.
|
||||
// @tparam[opt] float size Sprite size. __Default: 32__
|
||||
// @tparam[opt] float amp Oscillation amplitude. __Default: 32__
|
||||
static void EmitAirBubble(const Vec3& pos, TypeOrNil<float> size, TypeOrNil<float> amp)
|
||||
{
|
||||
constexpr auto DEFAULT_SIZE = 128.0f;
|
||||
|
@ -362,6 +513,7 @@ namespace TEN::Scripting::Effects
|
|||
|
||||
tableEffects.set_function(ScriptReserved_EmitLightningArc, &EmitLightningArc);
|
||||
tableEffects.set_function(ScriptReserved_EmitParticle, &EmitParticle);
|
||||
tableEffects.set_function(ScriptReserved_EmitAdvancedParticle, &EmitAdvancedParticle);
|
||||
tableEffects.set_function(ScriptReserved_EmitShockwave, &EmitShockwave);
|
||||
tableEffects.set_function(ScriptReserved_EmitLight, &EmitLight);
|
||||
tableEffects.set_function(ScriptReserved_EmitSpotLight, &EmitSpotLight);
|
||||
|
@ -375,5 +527,38 @@ namespace TEN::Scripting::Effects
|
|||
auto handler = LuaHandler{ state };
|
||||
handler.MakeReadOnlyTable(tableEffects, ScriptReserved_BlendID, BLEND_IDS);
|
||||
handler.MakeReadOnlyTable(tableEffects, ScriptReserved_EffectID, EFFECT_IDS);
|
||||
handler.MakeReadOnlyTable(tableEffects, ScriptReserved_ParticleAnimationType, PARTICLE_ANIM_TYPES);
|
||||
}
|
||||
}
|
||||
|
||||
/// Structure for EmitAdvancedParticle table.
|
||||
// @table ParticleData
|
||||
// @tfield Vec3 position World position.
|
||||
// @tfield Vec3 velocity Velocity.
|
||||
// @tfield[opt] Objects.ObjID spriteSeqID ID of the sprite sequence object. __Default: Objects.ObjID.DEFAULT_SPRITES__
|
||||
// @tfield[opt] int spriteID ID of the sprite in the sprite sequence object.__Default: 0__
|
||||
// @tfield[opt] float lifetime Lifespan in seconds. __Default: 2__
|
||||
// @tfield[opt] float maxYVelocity Specifies ithe maximum Y velocity for the particle. __Default: 0__
|
||||
// @tfield[opt] float gravity Specifies if the particle will fall over time. Positive values ascend, negative values descend. Recommended range: [-1000 and 1000]. __Default: 0__
|
||||
// @tfield[opt] float friction Specifies the friction with which the particle will slow down over time. __Default: 0__
|
||||
// @tfield[opt] float startRotation Rotation at start of life. __Default: random__
|
||||
// @tfield[opt] float rotationSpeed Rotational velocity in degrees. __Default: 0__
|
||||
// @tfield[opt] float startSize Size at start of life. __Default: 10__
|
||||
// @tfield[opt] float endSize Size at end of life. The particle will linearly shrink or grow toward this size over its lifespan. __Default: 0__
|
||||
// @tfield[opt] Color startColor Color at start of life. __Default: Color(255, 255, 255)__
|
||||
// @tfield[opt] Color endColor Color to fade toward. This will finish long before the end of the particle's life due to internal math. __Default: Color(255, 255, 255)__
|
||||
// @tfield[opt] Effects.BlendID blendMode Render blend mode. __TEN.Effects.BlendID.ALPHA_BLEND__
|
||||
// @tfield[opt] bool damage Specify if the particle will harm the player on collision. __Default: false__
|
||||
// @tfield[opt] bool poison Specify if the particle will poison the player on collision. __Default: false__
|
||||
// @tfield[opt] bool burn Specify if the particle will burn the player on collision. __Default: false__
|
||||
// @tfield[opt] bool wind Specify if the particle will be affected by wind in outside rooms. __Default: false__
|
||||
// @tfield[opt] int damageHit Specify the damage particle will harm the player on collision. __Default: 2__
|
||||
// @tfield[opt] bool light Specify if the particle will be emit a light based on its color. Caution: Recommended only for a single particle. Having too many particles with lights can overflow the light system. __Default: false__
|
||||
// @tfield[opt] int lightRadius measured in "clicks" or 256 world units. __Default: 0__
|
||||
// @tfield[opt] int lightFlicker The interval at which light should flicker. __Default: 0__
|
||||
// @tfield[opt] int sound ID to play. Corresponds to the value in the sound XML file or Tomb Editor's "Sound Infos" window. Looping sounds recommended. Caution: Recommended only for a single particle. Having too many particles with sounds can overflow the sound system. __Default: None__
|
||||
// @tfield[opt] bool animated Specify if the particle will be animated. __Default: false__
|
||||
// @tfield[opt] Effects.ParticleAnimationType animationType Specify the the type of animation the particle will use. __Default: TEN.Effects.ParticleAnimationType.LOOP__
|
||||
// @tfield[opt] float frameRate The framerate with which the particle will be animated. __Default: 1__
|
||||
|
||||
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
#pragma once
|
||||
|
||||
#include "Game/effects/effects.h"
|
||||
|
||||
namespace TEN::Scripting::Effects
|
||||
{
|
||||
/// Constants for particle animation type constants.
|
||||
// @enum Effects.ParticleAnimationType
|
||||
// @pragma nostrip
|
||||
|
||||
/// Table of Effects.ParticleAnimationType type constants. To be used with particles.
|
||||
//
|
||||
// - `LOOP` - Frames loop sequentially.
|
||||
// - `ONE_SHOT` - Frames play once and freeze on the last frame.
|
||||
// - `BACK_AND_FORTH` - Frames bounce back and forth.
|
||||
// - `LIFE_TIME_SPREAD` - Frames are distributed over the particle's lifetime
|
||||
//
|
||||
// @table Effects.ParticleAnimationType
|
||||
|
||||
static const auto PARTICLE_ANIM_TYPES = std::unordered_map<std::string, ParticleAnimType>
|
||||
{
|
||||
{ "LOOP", ParticleAnimType::Loop },
|
||||
{ "ONE_SHOT", ParticleAnimType::OneShot },
|
||||
{ "BACK_AND_FORTH", ParticleAnimType::BackAndForth },
|
||||
{ "LIFE_TIME_SPREAD", ParticleAnimType::LifetimeSpread } // TODO: Rename to LIFETIME_SPREAD.
|
||||
};
|
||||
}
|
|
@ -4954,6 +4954,13 @@ struct ParticleInfoT : public flatbuffers::NativeTable {
|
|||
int32_t node_number = 0;
|
||||
std::unique_ptr<TEN::Save::Vector3> target_pos{};
|
||||
int32_t sprite_id = 0;
|
||||
int32_t damage = 0;
|
||||
float framerate = 0.0f;
|
||||
int32_t animation_type = 0;
|
||||
int32_t light_radius = 0;
|
||||
int32_t light_flicker = 0;
|
||||
int32_t light_flicker_s = 0;
|
||||
int32_t sound = 0;
|
||||
};
|
||||
|
||||
struct ParticleInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
||||
|
@ -4999,7 +5006,14 @@ struct ParticleInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
|||
VT_ROOM_NUMBER = 74,
|
||||
VT_NODE_NUMBER = 76,
|
||||
VT_TARGET_POS = 78,
|
||||
VT_SPRITE_ID = 80
|
||||
VT_SPRITE_ID = 80,
|
||||
VT_DAMAGE = 82,
|
||||
VT_FRAMERATE = 84,
|
||||
VT_ANIMATION_TYPE = 86,
|
||||
VT_LIGHT_RADIUS = 88,
|
||||
VT_LIGHT_FLICKER = 90,
|
||||
VT_LIGHT_FLICKER_S = 92,
|
||||
VT_SOUND = 94
|
||||
};
|
||||
int32_t x() const {
|
||||
return GetField<int32_t>(VT_X, 0);
|
||||
|
@ -5118,6 +5132,27 @@ struct ParticleInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
|||
int32_t sprite_id() const {
|
||||
return GetField<int32_t>(VT_SPRITE_ID, 0);
|
||||
}
|
||||
int32_t damage() const {
|
||||
return GetField<int32_t>(VT_DAMAGE, 0);
|
||||
}
|
||||
float framerate() const {
|
||||
return GetField<float>(VT_FRAMERATE, 0.0f);
|
||||
}
|
||||
int32_t animation_type() const {
|
||||
return GetField<int32_t>(VT_ANIMATION_TYPE, 0);
|
||||
}
|
||||
int32_t light_radius() const {
|
||||
return GetField<int32_t>(VT_LIGHT_RADIUS, 0);
|
||||
}
|
||||
int32_t light_flicker() const {
|
||||
return GetField<int32_t>(VT_LIGHT_FLICKER, 0);
|
||||
}
|
||||
int32_t light_flicker_s() const {
|
||||
return GetField<int32_t>(VT_LIGHT_FLICKER_S, 0);
|
||||
}
|
||||
int32_t sound() const {
|
||||
return GetField<int32_t>(VT_SOUND, 0);
|
||||
}
|
||||
bool Verify(flatbuffers::Verifier &verifier) const {
|
||||
return VerifyTableStart(verifier) &&
|
||||
VerifyField<int32_t>(verifier, VT_X) &&
|
||||
|
@ -5159,6 +5194,13 @@ struct ParticleInfo FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table {
|
|||
VerifyField<int32_t>(verifier, VT_NODE_NUMBER) &&
|
||||
VerifyField<TEN::Save::Vector3>(verifier, VT_TARGET_POS) &&
|
||||
VerifyField<int32_t>(verifier, VT_SPRITE_ID) &&
|
||||
VerifyField<int32_t>(verifier, VT_DAMAGE) &&
|
||||
VerifyField<float>(verifier, VT_FRAMERATE) &&
|
||||
VerifyField<int32_t>(verifier, VT_ANIMATION_TYPE) &&
|
||||
VerifyField<int32_t>(verifier, VT_LIGHT_RADIUS) &&
|
||||
VerifyField<int32_t>(verifier, VT_LIGHT_FLICKER) &&
|
||||
VerifyField<int32_t>(verifier, VT_LIGHT_FLICKER_S) &&
|
||||
VerifyField<int32_t>(verifier, VT_SOUND) &&
|
||||
verifier.EndTable();
|
||||
}
|
||||
ParticleInfoT *UnPack(const flatbuffers::resolver_function_t *_resolver = nullptr) const;
|
||||
|
@ -5287,6 +5329,27 @@ struct ParticleInfoBuilder {
|
|||
void add_sprite_id(int32_t sprite_id) {
|
||||
fbb_.AddElement<int32_t>(ParticleInfo::VT_SPRITE_ID, sprite_id, 0);
|
||||
}
|
||||
void add_damage(int32_t damage) {
|
||||
fbb_.AddElement<int32_t>(ParticleInfo::VT_DAMAGE, damage, 0);
|
||||
}
|
||||
void add_framerate(float framerate) {
|
||||
fbb_.AddElement<float>(ParticleInfo::VT_FRAMERATE, framerate, 0.0f);
|
||||
}
|
||||
void add_animation_type(int32_t animation_type) {
|
||||
fbb_.AddElement<int32_t>(ParticleInfo::VT_ANIMATION_TYPE, animation_type, 0);
|
||||
}
|
||||
void add_light_radius(int32_t light_radius) {
|
||||
fbb_.AddElement<int32_t>(ParticleInfo::VT_LIGHT_RADIUS, light_radius, 0);
|
||||
}
|
||||
void add_light_flicker(int32_t light_flicker) {
|
||||
fbb_.AddElement<int32_t>(ParticleInfo::VT_LIGHT_FLICKER, light_flicker, 0);
|
||||
}
|
||||
void add_light_flicker_s(int32_t light_flicker_s) {
|
||||
fbb_.AddElement<int32_t>(ParticleInfo::VT_LIGHT_FLICKER_S, light_flicker_s, 0);
|
||||
}
|
||||
void add_sound(int32_t sound) {
|
||||
fbb_.AddElement<int32_t>(ParticleInfo::VT_SOUND, sound, 0);
|
||||
}
|
||||
explicit ParticleInfoBuilder(flatbuffers::FlatBufferBuilder &_fbb)
|
||||
: fbb_(_fbb) {
|
||||
start_ = fbb_.StartTable();
|
||||
|
@ -5338,8 +5401,22 @@ inline flatbuffers::Offset<ParticleInfo> CreateParticleInfo(
|
|||
int32_t room_number = 0,
|
||||
int32_t node_number = 0,
|
||||
const TEN::Save::Vector3 *target_pos = 0,
|
||||
int32_t sprite_id = 0) {
|
||||
int32_t sprite_id = 0,
|
||||
int32_t damage = 0,
|
||||
float framerate = 0.0f,
|
||||
int32_t animation_type = 0,
|
||||
int32_t light_radius = 0,
|
||||
int32_t light_flicker = 0,
|
||||
int32_t light_flicker_s = 0,
|
||||
int32_t sound = 0) {
|
||||
ParticleInfoBuilder builder_(_fbb);
|
||||
builder_.add_sound(sound);
|
||||
builder_.add_light_flicker_s(light_flicker_s);
|
||||
builder_.add_light_flicker(light_flicker);
|
||||
builder_.add_light_radius(light_radius);
|
||||
builder_.add_animation_type(animation_type);
|
||||
builder_.add_framerate(framerate);
|
||||
builder_.add_damage(damage);
|
||||
builder_.add_sprite_id(sprite_id);
|
||||
builder_.add_target_pos(target_pos);
|
||||
builder_.add_node_number(node_number);
|
||||
|
@ -9810,6 +9887,13 @@ inline void ParticleInfo::UnPackTo(ParticleInfoT *_o, const flatbuffers::resolve
|
|||
{ auto _e = node_number(); _o->node_number = _e; }
|
||||
{ auto _e = target_pos(); if (_e) _o->target_pos = std::unique_ptr<TEN::Save::Vector3>(new TEN::Save::Vector3(*_e)); }
|
||||
{ auto _e = sprite_id(); _o->sprite_id = _e; }
|
||||
{ auto _e = damage(); _o->damage = _e; }
|
||||
{ auto _e = framerate(); _o->framerate = _e; }
|
||||
{ auto _e = animation_type(); _o->animation_type = _e; }
|
||||
{ auto _e = light_radius(); _o->light_radius = _e; }
|
||||
{ auto _e = light_flicker(); _o->light_flicker = _e; }
|
||||
{ auto _e = light_flicker_s(); _o->light_flicker_s = _e; }
|
||||
{ auto _e = sound(); _o->sound = _e; }
|
||||
}
|
||||
|
||||
inline flatbuffers::Offset<ParticleInfo> ParticleInfo::Pack(flatbuffers::FlatBufferBuilder &_fbb, const ParticleInfoT* _o, const flatbuffers::rehasher_function_t *_rehasher) {
|
||||
|
@ -9859,6 +9943,13 @@ inline flatbuffers::Offset<ParticleInfo> CreateParticleInfo(flatbuffers::FlatBuf
|
|||
auto _node_number = _o->node_number;
|
||||
auto _target_pos = _o->target_pos ? _o->target_pos.get() : 0;
|
||||
auto _sprite_id = _o->sprite_id;
|
||||
auto _damage = _o->damage;
|
||||
auto _framerate = _o->framerate;
|
||||
auto _animation_type = _o->animation_type;
|
||||
auto _light_radius = _o->light_radius;
|
||||
auto _light_flicker = _o->light_flicker;
|
||||
auto _light_flicker_s = _o->light_flicker_s;
|
||||
auto _sound = _o->sound;
|
||||
return TEN::Save::CreateParticleInfo(
|
||||
_fbb,
|
||||
_x,
|
||||
|
@ -9899,7 +9990,14 @@ inline flatbuffers::Offset<ParticleInfo> CreateParticleInfo(flatbuffers::FlatBuf
|
|||
_room_number,
|
||||
_node_number,
|
||||
_target_pos,
|
||||
_sprite_id);
|
||||
_sprite_id,
|
||||
_damage,
|
||||
_framerate,
|
||||
_animation_type,
|
||||
_light_radius,
|
||||
_light_flicker,
|
||||
_light_flicker_s,
|
||||
_sound);
|
||||
}
|
||||
|
||||
inline SoundtrackT *Soundtrack::UnPack(const flatbuffers::resolver_function_t *_resolver) const {
|
||||
|
|
|
@ -375,6 +375,13 @@ table ParticleInfo {
|
|||
node_number: int32;
|
||||
target_pos: Vector3;
|
||||
sprite_id: int32;
|
||||
damage: int32;
|
||||
framerate: float;
|
||||
animation_type: int32;
|
||||
light_radius: int32;
|
||||
light_flicker: int32;
|
||||
light_flicker_s: int32;
|
||||
sound: int32;
|
||||
}
|
||||
|
||||
table Soundtrack {
|
||||
|
|
|
@ -883,6 +883,7 @@ if not exist "%ScriptsDir%\Strings.lua" xcopy /Y "$(SolutionDir)Scripts\Strings.
|
|||
<ClInclude Include="Scripting\Internal\ReservedScriptNames.h" />
|
||||
<ClInclude Include="Scripting\Internal\ScriptAssert.h" />
|
||||
<ClInclude Include="Scripting\Internal\ScriptUtil.h" />
|
||||
<ClInclude Include="Scripting\Internal\TEN\Effects\ParticleAnimTypes.h" />
|
||||
<ClInclude Include="Scripting\Internal\TEN\Collision\MaterialTypes.h" />
|
||||
<ClInclude Include="Scripting\Internal\TEN\Collision\Probe.h" />
|
||||
<ClInclude Include="Scripting\Internal\TEN\Objects\Lara\HandStatuses.h" />
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue