Exemple #1
0
        public Vector3 GetAndReset(float x, float z, WaterSample.ComputationsMode mode, out Vector3 forces)
        {
            if (mode != WaterSample.ComputationsMode.ForceCompletion)
            {
                if (mode == WaterSample.ComputationsMode.Normal)
                {
                    if (!this._Finished && !float.IsNaN(this._PreviousResult.x))
                    {
                        forces = this._PreviousForces;
                        return(this._PreviousResult);
                    }
                    this._PreviousResult = this._Displaced;
                    this._PreviousForces = this._Forces;
                }
            }
            else if (!this._Finished)
            {
                this._Finished = true;
                this.ComputationStep(true);
            }
            this._Finished = true;
            if (!this._Enqueued)
            {
                WaterAsynchronousTasks.Instance.AddWaterSampleComputations(this);
                this._Enqueued = true;
                this._Water.OnSamplingStarted();
            }
            Vector3 displaced = this._Displaced;

            displaced.y      += this._Water.transform.position.y;
            forces            = this._Forces;
            this._X           = x;
            this._Z           = z;
            this._Displaced.x = x;
            this._Displaced.y = 0f;
            this._Displaced.z = z;
            this._Forces.x    = 0f;
            this._Forces.y    = 0f;
            this._Forces.z    = 0f;
            this._Time        = this._Water.Time;
            this._Finished    = false;
            return(displaced);
        }
Exemple #2
0
        public Vector3 GetAndReset(float x, float z, WaterSample.ComputationsMode mode = WaterSample.ComputationsMode.Normal)
        {
            Vector3 vector;

            return(this.GetAndReset(x, z, mode, out vector));
        }
Exemple #3
0
 public Vector3 GetAndReset(Vector3 origin, WaterSample.ComputationsMode mode = WaterSample.ComputationsMode.Normal)
 {
     return(this.GetAndReset(origin.x, origin.z, mode));
 }