diff --git a/src/Arts.cs b/src/Arts.cs index ce371ec..96cfaf7 100644 --- a/src/Arts.cs +++ b/src/Arts.cs @@ -78,14 +78,14 @@ static class Arts meshes["uiPlay"].Draw( mat_unlit, 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) ) ); meshes["uiCursor"].Draw( mat_unlit, 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) ) ); diff --git a/src/Mono.cs b/src/Mono.cs index 9828181..37ad4cf 100644 --- a/src/Mono.cs +++ b/src/Mono.cs @@ -13,8 +13,9 @@ static class Mono public static Pose box_pose = new(0, -3 * U.cm, -10 * 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 + box_space = new(SD_X-1, SD_Y-1, SD_Z-1, -1), s_array = 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; } - 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 { holes.Add(snake[0], snake_dir); @@ -222,7 +223,7 @@ static class Mono XYZi dir = directions[dir_indices[i]]; XYZi dir_cell = cell + dir; 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_cell = dir_cell;