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); }
public Vector3 GetAndReset(float x, float z, WaterSample.ComputationsMode mode = WaterSample.ComputationsMode.Normal) { Vector3 vector; return(this.GetAndReset(x, z, mode, out vector)); }
public Vector3 GetAndReset(Vector3 origin, WaterSample.ComputationsMode mode = WaterSample.ComputationsMode.Normal) { return(this.GetAndReset(origin.x, origin.z, mode)); }