2using System.Collections.Generic;
16 public List<Point>
points =
new List<Point>();
31 public static int[,]
mapping =
new int[0, 0];
55 public List<Member>
members =
new List<Member>();
57 public bool CrawlUntil(
Map map, Func<Point> onStart,
int tries, Func<Result, bool> canComplete, Action onFail =
null)
63 for (
int i = 0; i < tries; i++)
66 for (
int j = 0; j < 100; j++)
68 Point point = onStart();
94 Debug.Log(
"CrawlUntil Complete:" + i);
101 Debug.Log(
"CrawlUntil Fail" + tries);
122 for (
int i = 0; i < this.
member; i++)
144 for (
int j = 0; j <
life; j++)
146 for (
int k = 0; k <
members.Count; k++)
151 int num5 = member.pos.x + num3;
152 int num6 = member.pos.z + num4;
153 if (point.Distance(num5, num6) >
radius || num5 < num || num6 < num || num5 >= num2 || num6 >= num2)
177 member.pos.Set(num5, num6);
182 result.points.Add(point2);
183 onNewVisit?.Invoke(point2);
void Populate(Point point, bool interior=false)
SourceBlock.Row sourceBlock
Result Crawl(Map map, Point _start, Action< Point > onNewVisit=null)
static Crawler Create(string id)
bool CrawlUntil(Map map, Func< Point > onStart, int tries, Func< Result, bool > canComplete, Action onFail=null)
Point GetRandomSurface(int x, int z, int radius, bool walkable=true, bool allowWater=false)
SourceBlock.Row sourceBlock
Point Set(int _x, int _z)
Point Clamp(bool useBounds=false)