Skip to content

Commit

Permalink
Added Left Click Mine (1.21) (#168)
Browse files Browse the repository at this point in the history
* Added Auto Mine

* Unnecessary Block Reach Check

* Added `LeftClickMine`
  • Loading branch information
AS1100K authored Jul 22, 2024
1 parent ca48ed9 commit 832f960
Showing 1 changed file with 71 additions and 1 deletion.
72 changes: 71 additions & 1 deletion azalea-client/src/mining.rs
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,15 @@ impl Plugin for MinePlugin {
.add_event::<StopMiningBlockEvent>()
.add_event::<MineBlockProgressEvent>()
.add_event::<AttackBlockEvent>()
.add_systems(GameTick, continue_mining_block.before(PhysicsSet))
.add_systems(
GameTick,
(
continue_mining_block,
handle_auto_mine
)
.chain()
.before(PhysicsSet)
)
.add_systems(
Update,
(
Expand Down Expand Up @@ -66,6 +74,68 @@ impl Client {
position,
});
}

/// When enabled, the bot will mine any block that it is looking at if it is reachable.
pub fn left_click_mine(&self, enabled: bool) {
let mut ecs = self.ecs.lock();
let mut entity_mut = ecs.entity_mut(self.entity);

if enabled {
entity_mut.insert(LeftClickMine);
} else {
entity_mut.remove::<LeftClickMine>();
}
}
}

#[derive(Component)]
pub struct LeftClickMine;

#[allow(clippy::type_complexity)]
fn handle_auto_mine(
mut query: Query<
(
&HitResultComponent,
Entity,
Option<&Mining>,
&InventoryComponent,
&MineBlockPos,
&MineItem,
),
With<LeftClickMine>,
>,
mut start_mining_block_event: EventWriter<StartMiningBlockEvent>,
mut stop_mining_block_event: EventWriter<StopMiningBlockEvent>
) {
for (
hit_result_component,
entity,
mining,
inventory,
current_mining_pos,
current_mining_item,
) in &mut query.iter_mut()
{
let block_pos = hit_result_component.block_pos;

if (mining.is_none()
|| !is_same_mining_target(
block_pos,
inventory,
current_mining_pos,
current_mining_item,
)) && !hit_result_component.miss
{
start_mining_block_event.send(StartMiningBlockEvent {
entity,
position: block_pos,
});
} else if mining.is_some() && hit_result_component.miss {
stop_mining_block_event.send(StopMiningBlockEvent {
entity
});
}
}
}

/// Information about the block we're currently mining. This is only present if
Expand Down

0 comments on commit 832f960

Please sign in to comment.