void FixedUpdate() { List <LPSystemPartPartContact> contactslist = sys.GetParticleContacts(); List <int> indices = new List <int>(); int acid = 2; int stone = 1; foreach (var contact in contactslist) { if (contact.ParticleAUserData == acid && contact.ParticleBUserData == stone) { if (!indices.Contains(contact.ParticleBIndex)) { indices.Add(contact.ParticleBIndex); } } } if (indices.Count > 0) { indices.Insert(0, indices.Count); LPAPIParticles.SetSelectedParticleFlags(sys.GetPtr(), indices.ToArray(), sludge.GetInt()); LPAPIParticles.SetSelectedParticleUserData(sys.GetPtr(), indices.ToArray(), 0); } }
void FixedUpdate() { int oil = 1; int water = 0; List <int> upindices = new List <int>(); List <int> downindices = new List <int>(); foreach (LPSystemPartPartContact cont in sys.GetParticleContacts()) { if (cont.ParticleAUserData == oil && cont.ParticleBUserData == water) { if (!upindices.Contains(cont.ParticleAIndex)) { upindices.Add(cont.ParticleAIndex); } if (!downindices.Contains(cont.ParticleBIndex)) { downindices.Add(cont.ParticleBIndex); } } } if (upindices.Count > 0) { upindices.Insert(0, upindices.Count); LPAPIParticles.ApplyForceToSelectedParticles(sys.GetPtr(), upindices.ToArray(), 0f, UpwardsForce); } if (downindices.Count > 0) { downindices.Insert(0, downindices.Count); LPAPIParticles.ApplyForceToSelectedParticles(sys.GetPtr(), downindices.ToArray(), 0f, -UpwardsForce * Mult); } }
void FixedUpdate() { List <LPSystemPartPartContact> contactslist = sys.GetParticleContacts(); List <int> indices = new List <int>(); List <int> delindices = new List <int>(); int water = 2; int lava = 1; foreach (var contact in contactslist) { if (contact.ParticleAUserData == water && contact.ParticleBUserData == lava) { if (!indices.Contains(contact.ParticleBIndex)) { indices.Add(contact.ParticleBIndex); } if (!delindices.Contains(contact.ParticleAIndex)) { delindices.Add(contact.ParticleAIndex); } } } if (indices.Count > 0) { indices.Insert(0, indices.Count); LPAPIParticles.SetSelectedParticleFlags(sys.GetPtr(), indices.ToArray(), wall.GetInt()); LPAPIParticles.SetSelectedParticleColor(sys.GetPtr(), indices.ToArray(), 100, 100, 100, 255); LPAPIParticles.SetSelectedParticleUserData(sys.GetPtr(), indices.ToArray(), 0); } if (indices.Count > 0) { delindices.Insert(0, delindices.Count); LPAPIParticles.SetSelectedParticleFlags(sys.GetPtr(), delindices.ToArray(), zombie.GetInt()); } }