refactor for around box validity
This commit is contained in:
parent
3fdea357fc
commit
c1f0bcc956
2 changed files with 6 additions and 5 deletions
|
@ -78,14 +78,14 @@ static class Arts
|
||||||
meshes["uiPlay"].Draw(
|
meshes["uiPlay"].Draw(
|
||||||
mat_unlit,
|
mat_unlit,
|
||||||
Matrix.TR(
|
Matrix.TR(
|
||||||
V.XYZ(0, 0, Mono.SD_Z + 0.5f + 0.1f),
|
V.XYZ(0, 0, Mono.SD_Z - 0.5f + 0.1f),
|
||||||
Quat.FromAngles(90, 0, 0)
|
Quat.FromAngles(90, 0, 0)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
meshes["uiCursor"].Draw(
|
meshes["uiCursor"].Draw(
|
||||||
mat_unlit,
|
mat_unlit,
|
||||||
Matrix.TR(
|
Matrix.TR(
|
||||||
V.XYZ(0, 0, Mono.SD_Z + 0.5f + 0.2f),
|
V.XYZ(0, 0, Mono.SD_Z - 0.5f + 0.2f),
|
||||||
Quat.FromAngles(90, 0, 0)
|
Quat.FromAngles(90, 0, 0)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
|
@ -13,8 +13,9 @@ static class Mono
|
||||||
|
|
||||||
public static Pose box_pose = new(0, -3 * U.cm, -10 * U.cm);
|
public static Pose box_pose = new(0, -3 * U.cm, -10 * U.cm);
|
||||||
public static float box_scale = 1.333f * U.cm;
|
public static float box_scale = 1.333f * U.cm;
|
||||||
public const int SD_X = 2, SD_Y = 1, SD_Z = 2;
|
public const int SD_X = 3, SD_Y = 2, SD_Z = 3;
|
||||||
public static SpatialArray<int>
|
public static SpatialArray<int>
|
||||||
|
box_space = new(SD_X-1, SD_Y-1, SD_Z-1, -1),
|
||||||
s_array = new(SD_X, SD_Y, SD_Z, -1),
|
s_array = new(SD_X, SD_Y, SD_Z, -1),
|
||||||
tail_fill = new(SD_X, SD_Y, SD_Z, -1);
|
tail_fill = new(SD_X, SD_Y, SD_Z, -1);
|
||||||
|
|
||||||
|
@ -163,7 +164,7 @@ static class Mono
|
||||||
snake[0] += snake_dir;
|
snake[0] += snake_dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
in_box.Step(s_array.InRange(snake[0]));
|
in_box.Step(box_space.InRange(snake[0]));
|
||||||
if (in_box.delta != 0) // 1 just in -1 just out
|
if (in_box.delta != 0) // 1 just in -1 just out
|
||||||
{
|
{
|
||||||
holes.Add(snake[0], snake_dir);
|
holes.Add(snake[0], snake_dir);
|
||||||
|
@ -222,7 +223,7 @@ static class Mono
|
||||||
XYZi dir = directions[dir_indices[i]];
|
XYZi dir = directions[dir_indices[i]];
|
||||||
XYZi dir_cell = cell + dir;
|
XYZi dir_cell = cell + dir;
|
||||||
int tail_dist = tail_fill[dir_cell];
|
int tail_dist = tail_fill[dir_cell];
|
||||||
if (tail_dist > 1 && tail_dist < min_dist)
|
if (tail_dist > 1 && tail_dist < min_dist && box_space.InRange(dir_cell))
|
||||||
{
|
{
|
||||||
min_dist = tail_dist;
|
min_dist = tail_dist;
|
||||||
min_cell = dir_cell;
|
min_cell = dir_cell;
|
||||||
|
|
Loading…
Add table
Reference in a new issue