Ejemplo n.º 1
0
    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);
        }
    }
Ejemplo n.º 2
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);
        }
    }
Ejemplo n.º 3
0
    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());
        }
    }