using NativeEngine;
namespace Sandbox;
///
/// A SceneObject used to render particles.
/// We need to be careful with what we do here, because this object is created for in-engine particles
/// as well as custom scene object particles.
/// With custom particles there's no automatic Simulate, or deletion.. You're completely on your own. This
/// is perhaps a good thing though, it's maybe what you want to happen. To be completely isolated and completely
/// in control. But at the same time maybe it's not and it's something we need to sort out.
///
[Obsolete]
public class SceneParticles : SceneObject
{
internal SceneParticles() { }
internal SceneParticles( HandleCreationData _ ) { }
///
/// Create scene particles.
///
/// The scene world to create the particles in.
/// Path to the particle system file.
[Obsolete]
public SceneParticles( SceneWorld world, string particleSystem )
{
}
///
/// Create scene particles.
///
/// The scene world to create the particles in.
/// Particle system resource.
[Obsolete]
public SceneParticles( SceneWorld world, ParticleSystem particleSystem )
{
}
///
/// Whether to render the particles or not.
///
public bool RenderParticles { get; set; }
///
/// Stop (or start) the particle system emission.
///
public bool EmissionStopped { get; set; }
///
/// Particle collisions use this physics world to perform traces.
///
public PhysicsWorld PhysicsWorld { get; set; }
///
/// Whether given control point has any data set.
///
/// The control point index. Range is 0-63.
public bool IsControlPointSet( int index ) => default;
///
/// Returns the position set on a given control point.
///
/// The control point index. Range is 0-63.
public Vector3 GetControlPointPosition( int index ) => default;
///
/// Set position on given control point.
///
/// The control point index. Range is 0-63.
/// The position to set.
public void SetControlPoint( int i, Vector3 position ) { }
///
/// Set rotation on given control point.
///
/// The control point index. Range is 0-63.
/// The rotation to set.
public void SetControlPoint( int i, Rotation rotation ) { }
///
/// Set transform on given control point.
///
/// The control point index. Range is 0-63.
/// The transform to set.
public void SetControlPoint( int i, Transform transform ) { }
///
/// Set snapshot on given control point.
///
/// The control point index. Range is 0-63.
/// The snapshot to set.
public void SetControlPoint( int i, ParticleSnapshot snapshot ) { }
///
/// Set model on given control point.
///
/// The control point index. Range is 0-63.
/// The model to set.
public void SetControlPoint( int i, Model model ) { }
///
/// Set vector on given named value.
///
/// The name of the key.
/// The value to set.
public void SetNamedValue( string name, Vector3 value ) { }
///
/// Simulate the particles for given amount of time.
///
/// Amount of time has passed since last simulation.
public void Simulate( float f ) { }
internal override void OnNativeInit( CSceneObject ptr ) { }
internal override void OnNativeDestroy() { }
///
/// The amount of particles
///
public int ActiveParticlesSelf => default;
///
/// The amount of particles including child systems
///
public int ActiveParticlesTotal => default;
///
/// The total allowed particle count
///
public int MaximumParticles => default;
///
/// Manually emit a bunch of particles
///
public void Emit( int count ) { }
///
/// True if particle system has reached the end
///
public bool Finished => default;
///
/// Get or set the simulation time
///
public float SimulationTime { get; set; }
}