aboutsummaryrefslogtreecommitdiff
path: root/azalea
diff options
context:
space:
mode:
authormat <27899617+mat-1@users.noreply.github.com>2025-01-10 16:45:27 -0600
committerGitHub <noreply@github.com>2025-01-10 16:45:27 -0600
commit0d16f01571ec8315f3979eae46981e559ade1cf9 (patch)
treeea43c32a57b0e6a67579d75a134dfbc009d09781 /azalea
parent615d8f9d2ac56b3244d328587243301da253eafd (diff)
downloadazalea-drasl-0d16f01571ec8315f3979eae46981e559ade1cf9.tar.xz
Fluid physics (#199)
* start implementing fluid physics * Initial implementation of fluid pushing * different travel function in water * bubble columns * jumping in water * cleanup * change ultrawarm to be required * fix for clippy
Diffstat (limited to 'azalea')
-rw-r--r--azalea/examples/testbot/commands/debug.rs15
-rw-r--r--azalea/src/auto_tool.rs10
-rw-r--r--azalea/src/pathfinder/mining.rs4
-rw-r--r--azalea/src/pathfinder/simulation.rs1
4 files changed, 25 insertions, 5 deletions
diff --git a/azalea/examples/testbot/commands/debug.rs b/azalea/examples/testbot/commands/debug.rs
index 0718bcab..1e0846f4 100644
--- a/azalea/examples/testbot/commands/debug.rs
+++ b/azalea/examples/testbot/commands/debug.rs
@@ -114,7 +114,20 @@ pub fn register(commands: &mut CommandDispatcher<Mutex<CommandSource>>) {
println!("getblock xyz {x} {y} {z}");
let block_pos = BlockPos::new(x, y, z);
let block = source.bot.world().read().get_block_state(&block_pos);
- source.reply(&format!("Block at {block_pos:?} is {block:?}"));
+ source.reply(&format!("Block at {block_pos} is {block:?}"));
+ 1
+ })),
+ )));
+ commands.register(literal("getfluid").then(argument("x", integer()).then(
+ argument("y", integer()).then(argument("z", integer()).executes(|ctx: &Ctx| {
+ let source = ctx.source.lock();
+ let x = get_integer(ctx, "x").unwrap();
+ let y = get_integer(ctx, "y").unwrap();
+ let z = get_integer(ctx, "z").unwrap();
+ println!("getfluid xyz {x} {y} {z}");
+ let block_pos = BlockPos::new(x, y, z);
+ let block = source.bot.world().read().get_fluid_state(&block_pos);
+ source.reply(&format!("Fluid at {block_pos} is {block:?}"));
1
})),
)));
diff --git a/azalea/src/auto_tool.rs b/azalea/src/auto_tool.rs
index 768d3089..9aea23d7 100644
--- a/azalea/src/auto_tool.rs
+++ b/azalea/src/auto_tool.rs
@@ -1,8 +1,7 @@
-use azalea_block::{Block, BlockState};
+use azalea_block::{fluid_state::FluidKind, Block, BlockState};
use azalea_client::{inventory::Inventory, Client};
use azalea_entity::{FluidOnEyes, Physics};
use azalea_inventory::{components, ItemStack, Menu};
-use azalea_registry::Fluid;
#[derive(Debug)]
pub struct BestToolResult {
@@ -34,7 +33,12 @@ pub fn best_tool_in_hotbar_for_block(block: BlockState, menu: &Menu) -> BestTool
let mut physics = Physics::default();
physics.set_on_ground(true);
- accurate_best_tool_in_hotbar_for_block(block, menu, &physics, &FluidOnEyes::new(Fluid::Empty))
+ accurate_best_tool_in_hotbar_for_block(
+ block,
+ menu,
+ &physics,
+ &FluidOnEyes::new(FluidKind::Empty),
+ )
}
pub fn accurate_best_tool_in_hotbar_for_block(
diff --git a/azalea/src/pathfinder/mining.rs b/azalea/src/pathfinder/mining.rs
index 62963306..8c1b2e1d 100644
--- a/azalea/src/pathfinder/mining.rs
+++ b/azalea/src/pathfinder/mining.rs
@@ -1,6 +1,8 @@
use std::{cell::UnsafeCell, ops::RangeInclusive};
-use azalea_block::{properties::Waterlogged, BlockState, BlockStateIntegerRepr, BlockStates};
+use azalea_block::{
+ block_state::BlockStateIntegerRepr, properties::Waterlogged, BlockState, BlockStates,
+};
use azalea_inventory::Menu;
use nohash_hasher::IntMap;
diff --git a/azalea/src/pathfinder/simulation.rs b/azalea/src/pathfinder/simulation.rs
index 630dd591..1f29ad24 100644
--- a/azalea/src/pathfinder/simulation.rs
+++ b/azalea/src/pathfinder/simulation.rs
@@ -38,6 +38,7 @@ impl SimulatedPlayerBundle {
attributes: Attributes {
speed: AttributeInstance::new(0.1),
attack_speed: AttributeInstance::new(4.0),
+ water_movement_efficiency: AttributeInstance::new(0.0),
},
inventory: Inventory::default(),
}