From acfa1749eab3c2e80e65613e7acea6863d99d1c6 Mon Sep 17 00:00:00 2001 From: Andy Killorin <37423245+Speedy6451@users.noreply.github.com> Date: Sat, 23 Dec 2023 20:10:31 -0600 Subject: [PATCH] scan around the near side when trimming trees --- server/src/fell.rs | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/server/src/fell.rs b/server/src/fell.rs index 61d6974..9130724 100644 --- a/server/src/fell.rs +++ b/server/src/fell.rs @@ -1,6 +1,7 @@ -use std::ops::Mul; +use std::ops::{Mul, Add}; use log::{trace, warn, info}; +use nalgebra::Vector2; use serde::{Serialize, Deserialize}; use time::OffsetDateTime; use tokio::task::{JoinHandle, AbortHandle}; @@ -54,10 +55,13 @@ impl TreeFarm { // sweep across floor (not upper levels) to get saplings // this goes one block past the far corner and to the near corner - let area = self.size.xz().component_mul(&spacing.xz()).product(); + let near_margin = Vec3::new(1, 0, 1); + let area = self.size.xz().component_mul(&spacing.xz()).add(near_margin.xz()).product(); for tile in 0..area { - let offset = fill(self.size.component_mul(&Vec3::new(spacing.x, 1, spacing.z)), tile); - let tile = self.position + offset; + let scale = self.size.component_mul(&Vec3::new(spacing.x, 1, spacing.z)) + + near_margin; // near corner + let offset = fill(scale, tile); + let tile = self.position + offset - near_margin; turtle.goto_adjacent(tile-Vec3::y()).await; turtle.execute(TurtleCommand::SuckFront(64)).await; }