Ejemplo n.º 1
0
 public Particle(ParticleParameters parameters)
 {
     createGameObject(parameters.type);
     setInitialPosition(parameters.birth);
     setRandomTimeToLive();
     setRandomTrajectory();
 }
Ejemplo n.º 2
0
        //Special draw method to draw particles
        public void Draw(SpriteBatch spriteBatch, ParticleParameters particleParams)
        {
            Rectangle sourceRectangle = Texture.Bounds;
            Vector2   origin          = new Vector2(Texture.Width / 2f, Texture.Height / 2f);

            spriteBatch.Draw(Texture, particleParams.Pos, sourceRectangle, particleParams.ParticleCol,
                             particleParams.Rot, origin, particleParams.Scale, SpriteEffects.None, 0f);
        }
 private void UpdateParticleData()
 {
     if (spawnedParticleList.Count > 0)
     {
         currentParameters = GetParticleParameters();
         RegisterParticleData();
     }
 }
            public static ParticleParameters GetWithAmount(int amount)
            {
                ParticleParameters parameter = new ParticleParameters();

                parameter.position = new Vector3[amount];
                parameter.scale    = new Vector3[amount];
                parameter.rotation = new Vector4[amount];
                parameter.color    = new Vector3[amount];
                return(parameter);
            }
        public ParticleParameters GetParticleParameters()
        {
            int count = spawnedParticleList.Count;
            ParticleParameters parameters = ParticleParameters.GetWithAmount(count);

            for (int i = 0; i < count; i++)
            {
                Particle tmp = spawnedParticleList[i];
                parameters.position[i] = tmp.position;
                parameters.rotation[i] = tmp.rotation;
                parameters.scale[i]    = tmp.scale;
                parameters.color[i]    = tmp.color;
            }
            return(parameters);
        }
Ejemplo n.º 6
0
            public Particle(IGame game, float x, float y, ParticleParameters parameters)
            {
                Dead = false;

                this.game            = game;
                this.Type            = parameters.Type;
                this.width           = parameters.width;
                this.height          = parameters.height;
                this.Alpha           = parameters.Alpha;
                this.AngularVelocity = parameters.AngularVelocity;
                this.Color           = parameters.Color;
                this.Image           = parameters.Image;
                this.LinearVelocity  = parameters.LinearVelocity;
                this.TTL             = parameters.TTL;
                this.VelocityAlpha   = parameters.VelocityAlpha;
                this.radius          = parameters.radius;
                this.x = x;
                this.y = y;
            }
Ejemplo n.º 7
0
 public static extern bool SetParticleParams(IntPtr physEnt, ref ParticleParameters parameters);
Ejemplo n.º 8
0
 extern public static bool GetParticleParams(IntPtr physEnt, ref ParticleParameters parameters);
 public bool SetParameters(ref ParticleParameters parameters)
 {
     return NativePhysicsMethods.SetParticleParams(Handle, ref parameters);
 }
Ejemplo n.º 10
0
    private void createParticle()
    {
        var parameters = new ParticleParameters(primitiveType, birthType);

        particles.Add(new Particle(parameters));
    }
Ejemplo n.º 11
0
 public bool SetParameters(ref ParticleParameters parameters)
 {
     return PhysicsInterop.SetParticleParams(Handle, ref parameters);
 }
Ejemplo n.º 12
0
 public bool GetParameters(ref ParticleParameters parameters)
 {
     return(PhysicsInterop.GetParticleParams(Handle, ref parameters));
 }
Ejemplo n.º 13
0
 public bool GetParameters(ref ParticleParameters parameters)
 {
     return(NativePhysicsMethods.GetParticleParams(Handle, ref parameters));
 }
Ejemplo n.º 14
0
        public override void UnParse(Stream stream)
        {
            var s = new BinaryStreamWrapper(stream, ByteOrder.BigEndian);

            s.Write(Flags);
            ParticleParameters.UnParse(stream);
            mRateCurve.UnParse(stream);
            s.Write(mRateCurveTime);
            s.Write(mRateCurveCycles);
            s.Write(mRateSpeedScale);
            mSizeCurve.UnParse(stream);
            s.Write(mSizeVary);
            mAspectCurve.UnParse(stream);
            s.Write(mAspectVary);
            s.Write(mRotationVary);
            s.Write(mRotationOffset);
            mRotationCurve.UnParse(stream);
            mAlphaCurve.UnParse(stream);
            s.Write(mAlphaVary);
            mColorCurve.UnParse(stream);
            mColorVary.UnParse(stream);
            mDrawInfo.UnParse(stream);

            s.Write(mPhysicsType);
            s.Write(mOverrideSet);
            s.Write(mTileCountU);
            s.Write(mTileCountV);
            s.Write(mAlignMode);
            s.Write(mFrameSpeed);
            s.Write(mFrameStart);
            s.Write(mFrameCount);
            s.Write(mFrameRandom);

            mDirectionalForcesSum.UnParse(stream);

            s.Write(mWindStrength);
            s.Write(mGravityStrength);
            s.Write(mRadialForce);

            mRadialForceLocation.UnParse(stream);

            s.Write(mDrag);
            s.Write(mVelocityStretch);
            s.Write(mScrewRate);

            mWiggles.UnParse(stream);
            s.Write(mScreenBloomAlphaRate);
            s.Write(mScreenBloomAlphaBase);
            s.Write(mScreenBloomSizeRate);
            s.Write(mScreenBloomSizeBase);
            mLoopBoxColorCurve.UnParse(stream);
            mLoopBoxAlphaCurve.UnParse(stream);
            mSurfaces.UnParse(stream);
            s.Write(mMapBounce);
            s.Write(mMapRepulseHeight);
            s.Write(mMapRepulseStrength);
            s.Write(mMapRepulseScoutDistance);
            s.Write(mMapRepulseVertical);

            s.Write(mMapRepulseKillHeight); //-1000000000.0f
            s.Write(mProbabilityDeath);     //0f
            mAltitudeRange.UnParse(stream); // (-10000.0f, 10000.0f)

            s.Write(mForceMapId);
            s.Write(mEmitRateMapId);
            s.Write(mEmitColorMapId);
            mRandomWalk.UnParse(stream);
            mAttractorOrigin.UnParse(stream);

            mAttractor.UnParse(stream);

            mPathPoints.UnParse(stream);

            //Version 2+
            if (mSection.Version >= 0x0002)
            {
                mVector01.UnParse(stream);
                mVector3List01.UnParse(stream);
            }

            //Version 3+
            if (mSection.Version >= 0x0003)
            {
                s.Write(mByte01);
            }

            //Version 4+
            if (mSection.Version >= 0x0004)
            {
                s.Write(mFloat01);
            }

            //Version 5+
            if (mSection.Version >= 0x0005)
            {
                if (isTheSims4)
                {
                    mVector02.UnParse(stream);
                    s.Write(mUnknown170);
                }
                else
                {
                    s.Write(mVector02.X);
                }
            }

            if (isTheSims4)
            {
                //Version 6+
                if (mSection.Version >= 0x0006)
                {
                    mUnknown140.UnParse(stream);
                }
                else
                {
                    s.Write(mUnknown140.X);
                }

                //Version 7+
                if (mSection.Version >= 0x0007)
                {
                    mUnknown150.UnParse(stream);
                }

                s.Write(mUnknown160);
                s.Write(mUnknown164);

                s.Write(mUnknown1C1);
                if (mUnknown1C1 != 0)
                {
                    mUnknown180.UnParse(stream);
                    s.Write(mUnknown1C0);

                    if (mSection.Version >= 0x0006)
                    {
                        mUnknown190.UnParse(stream);
                    }
                    else
                    {
                        s.Write(mUnknown190.X);
                    }

                    if (mSection.Version >= 0x0007)
                    {
                        mUnknown1A0.UnParse(stream);
                    }

                    s.Write(mUnknown1B0);
                    s.Write(mUnknown1B4);
                }

                if (mSection.Version >= 0x0006)
                {
                    s.Write(mUnknown208);
                    if (mUnknown208 != 0)
                    {
                        s.Write(mUnknown20C);
                        s.Write(mUnknown209);
                        s.Write(mUnknown20A);
                        s.Write(mUnknown20B);
                    }
                }
            }
        }