From a707e2eb82b74994a16083b31fa4576332cf1995 Mon Sep 17 00:00:00 2001 From: mat <27899617+mat-1@users.noreply.github.com> Date: Fri, 15 Dec 2023 11:26:40 -0600 Subject: Add mining to the pathfinder (#122) * basic pathfinder mining poc * mining descending and autotool * pathfinder mining descending * pathfinder fixes * allow disabling pathfinder miner and other fixes * small optimization to avoid chunk vec iter lookup sometimes * seeded rng in pathfinder bench * consistently use f32::INFINITY this brings performance much closer to how it was before * astar heuristic optimization from baritone * add downward_move * fix downward move execute * avoid liquids and falling blocks when mining * fix COST_HEURISTIC * fix to not path through flowing liquids * only reset pathfinder timeout while mining if the block is close enough * cache mining costs of block positions * fix mine_while_at_start and move PathfinderDebugParticles to its own module * add ReachBlockPosGoal in other news: azalea's sin/cos functions were broken this whole time and i never noticed * clippy and add things that i accidentally didn't commit * improve wording on doc for azalea::pathfinder --- azalea-block/src/range.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'azalea-block/src') diff --git a/azalea-block/src/range.rs b/azalea-block/src/range.rs index 6ccf4152..9b520d49 100644 --- a/azalea-block/src/range.rs +++ b/azalea-block/src/range.rs @@ -1,4 +1,7 @@ -use std::{collections::HashSet, ops::RangeInclusive}; +use std::{ + collections::HashSet, + ops::{Add, RangeInclusive}, +}; use crate::BlockState; @@ -31,3 +34,13 @@ impl BlockStates { self.set.contains(state) } } + +impl Add for BlockStates { + type Output = Self; + + fn add(self, rhs: Self) -> Self::Output { + Self { + set: self.set.union(&rhs.set).copied().collect(), + } + } +} -- cgit v1.2.3