public GetSurfaceLevel ( IntVector2 p ) : int | ||
p | IntVector2 | |
Результат | int |
static void CreateWorkbenches(EnvironmentObject env) { int posx = env.Width / 2 - 10; int posy = env.Height / 2 - 10; var surface = env.GetSurfaceLevel(new IntVector2(posx, posy)); { var p = new IntVector3(posx, posy, surface); ClearFloor(env, p); var item = CreateItem(env, ItemID.SmithsWorkbench, MaterialID.Iron, p); item.IsInstalled = true; } posx += 4; { var p = new IntVector3(posx, posy, surface); ClearFloor(env, p); var item = CreateItem(env, ItemID.CarpentersWorkbench, MaterialID.Oak, p); item.IsInstalled = true; } posx += 4; { var p = new IntVector3(posx, posy, surface); ClearFloor(env, p); var item = CreateItem(env, ItemID.MasonsWorkbench, MaterialID.Iron, p); item.IsInstalled = true; } posx = env.Width / 2 - 10; posy += 4; { var p = new IntVector3(posx, posy, surface); ClearFloor(env, p); var item = CreateItem(env, ItemID.SmelterWorkbench, MaterialID.Iron, p); item.IsInstalled = true; } posx += 4; { var p = new IntVector3(posx, posy, surface); ClearFloor(env, p); var item = CreateItem(env, ItemID.GemcuttersWorkbench, MaterialID.Iron, p); item.IsInstalled = true; } }
IntGrid2Z? FindStartLocation(EnvironmentObject env, IntVector3 pos) { const int size = 3; var center = pos; foreach (var p in IntVector2.SquareSpiral(center.ToIntVector2(), env.Width / 2)) { if (env.Size.Plane.Contains(p) == false) continue; var z = env.GetSurfaceLevel(p); var r = new IntGrid2Z(p.X - size, p.Y - size, size * 2, size * 2, z); if (TestStartArea(env, r)) return r; } return null; }