diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2025-01-10 16:45:27 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-01-10 16:45:27 -0600 |
| commit | 0d16f01571ec8315f3979eae46981e559ade1cf9 (patch) | |
| tree | ea43c32a57b0e6a67579d75a134dfbc009d09781 /azalea | |
| parent | 615d8f9d2ac56b3244d328587243301da253eafd (diff) | |
| download | azalea-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.rs | 15 | ||||
| -rw-r--r-- | azalea/src/auto_tool.rs | 10 | ||||
| -rw-r--r-- | azalea/src/pathfinder/mining.rs | 4 | ||||
| -rw-r--r-- | azalea/src/pathfinder/simulation.rs | 1 |
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(), } |
