Survivalcraft API 1.8.2.3 v1.8.2.3
Survivalcraft 2.4
载入中...
搜索中...
未找到
ShapeshiftParticleSystem.cs
浏览该文件的文档.
1using Engine;
3
4namespace Game {
5 public class ShapeshiftParticleSystem : ParticleSystem<ShapeshiftParticleSystem.Particle> {
6 public class Particle : Game.Particle {
7 public float Time;
8
9 public float Duration;
10
12 }
13
14 public Random m_random = new();
15
16 public float m_generationSpeed;
17
18 public float m_toGenerate;
19
20 public bool Stopped { get; set; }
21
22 public Vector3 Position { get; set; }
23
24 public BoundingBox BoundingBox { get; set; }
25
26 public ShapeshiftParticleSystem() : base(40) {
27 Texture = ContentManager.Get<Texture2D>("Textures/ShapeshiftParticle");
29 }
30
31 public override bool Simulate(float dt) {
32 bool flag = false;
35 for (int i = 0; i < Particles.Length; i++) {
36 Particle particle = Particles[i];
37 if (particle.IsActive) {
38 flag = true;
39 particle.Time += dt;
40 if (particle.Time <= particle.Duration) {
41 particle.Position += particle.Velocity * dt;
42 particle.FlipX = m_random.Bool();
43 particle.FlipY = m_random.Bool();
44 particle.TextureSlot = (int)MathUtils.Min(9.900001f * particle.Time / particle.Duration, 8f);
45 }
46 else {
47 particle.IsActive = false;
48 }
49 }
50 else if (!Stopped) {
51 while (m_toGenerate >= 1f) {
52 particle.IsActive = true;
53 particle.Position.X = m_random.Float(BoundingBox.Min.X, BoundingBox.Max.X);
54 particle.Position.Y = m_random.Float(BoundingBox.Min.Y, BoundingBox.Max.Y);
55 particle.Position.Z = m_random.Float(BoundingBox.Min.Z, BoundingBox.Max.Z);
56 particle.Velocity = new Vector3(0f, m_random.Float(0.5f, 1.5f), 0f);
57 particle.Color = Color.White;
58 particle.Size = new Vector2(0.4f);
59 particle.Time = 0f;
60 particle.Duration = m_random.Float(0.75f, 1.5f);
61 m_toGenerate -= 1f;
62 }
63 }
64 else {
65 m_toGenerate = 0f;
66 }
67 }
69 if (Stopped && !flag) {
70 return true;
71 }
72 return false;
73 }
74 }
75}
Engine.Vector3 Vector3
static float Remainder(float x, float y)
static int Min(int x1, int x2)
static object Get(Type type, string name)
ParticleSystem(int particlesCount)
static Color White