Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ FindPath()

bool Terraria.GameContent.Generation.TrackGenerator.FindPath ( int minLength,
int maxLength )
inlineprivate

Definition at line 167 of file TrackGenerator.cs.

168 {
169 int length = _length;
170 while (_length < _history.Length - 100)
171 {
172 TrackSlope slope = ((_history[_length - 1].Slope != TrackSlope.Up) ? TrackSlope.Down : TrackSlope.Straight);
173 AppendToHistory(slope);
175 if (trackPlacementState == TrackPlacementState.Invalid)
176 {
177 break;
178 }
179 length = _length;
180 TrackPlacementState trackPlacementState2 = trackPlacementState;
181 while (trackPlacementState2 != 0)
182 {
183 trackPlacementState2 = CreateTunnel();
184 if (trackPlacementState2 == TrackPlacementState.Invalid)
185 {
186 break;
187 }
188 length = _length;
189 }
190 if (_length >= maxLength)
191 {
192 break;
193 }
194 }
195 _length = Math.Min(maxLength, length);
196 if (_length < minLength)
197 {
198 return false;
199 }
200 SmoothTrack();
202 }
static byte Min(byte val1, byte val2)
Definition Math.cs:912
void AppendToHistory(TrackSlope slope, TrackMode mode=TrackMode.Normal)
TrackPlacementState GetHistorySegmentPlacementState(int startIndex, int length)

References Terraria.GameContent.Generation.TrackGenerator._history, Terraria.GameContent.Generation.TrackGenerator._length, Terraria.GameContent.Generation.TrackGenerator.AppendToHistory(), Terraria.GameContent.Generation.TrackGenerator.CreateTunnel(), Terraria.GameContent.Generation.TrackGenerator.GetHistorySegmentPlacementState(), System.length, System.Math.Min(), Terraria.GameContent.Generation.TrackGenerator.TrackHistory.Slope, Terraria.GameContent.Generation.TrackGenerator.SmoothTrack(), and Terraria.GameContent.Generation.TrackGenerator.TryRewriteHistoryToAvoidTiles().

Referenced by Terraria.GameContent.Generation.TrackGenerator.Place().