mirror of
https://github.com/mat-1/azalea.git
synced 2025-08-02 14:26:04 +00:00
* Put physics module in azalea-entity * port aabb * add more stuff to PositionXYZ * azalea-physics * important collision things * more physics stuff * backup because i'm about to delete shapes * more shape stuff * CubeVoxelShape * no compile errors??? insane * impl VoxelShape for ArrayVoxelShape * Shapes stuff * collide_x but it doesn't work yet * binary_search * it compiles * Entity has bounding box * Update discrete_voxel_shape.rs * Entity::make_bounding_box * ok i'm about to merge az-entity and az-world might be a terrible idea which is why i'm committing first * ok so i moved entity to world * on_pos and move_entity compiles * add send_position * move collision stuff to collision module in az-physics * dimension is no longer an Option * start trying to do collision for the client * collision works 🎉 * start adding palette resizing * get_and_set (pain) * it compiles but probably won't work * add a test * remove printlns * add more tests for palette stuff * ClientboundMoveVec3Packet -> ClientboundMoveEntityPosPacket i think i changed this on accident once * palette resizing works todo: remove the printlns * Remove printlns in palette.rs * fix issues from merge * fixes + work a bit more on physics * Better entities (#19) * well it compiles * add tests to entity storage * add suggestions in azalea-brigadier * this probably causes ub * fix brigadiersuggestions * get rid of entityid * test From<EntityMut> for EntityRef * don't mention other libraries since there's too many * fix warnings * do todos in brigadier suggestions * work on physics * more physics stuff * remove trait feature on az-block i think rust gets confused and compiles the macro without the feature * bump ahash * aes tests in az-crypto * optimize aes's deps * fix crashes * fix section_index for negative numbers and test * fix BlockPos protocol implementation * remove some debug prints * prepare to add ai_step * make ai step work * clippy
76 lines
2.8 KiB
Rust
76 lines
2.8 KiB
Rust
#![allow(unused_variables, unused_imports)]
|
|
use azalea_client::{Account, Event};
|
|
use azalea_core::{PositionXYZ, Vec3};
|
|
use azalea_physics::collision::{HasCollision, MoverType};
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
|
println!("Hello, world!");
|
|
|
|
// let address = "95.111.249.143:10000";
|
|
let address = "localhost";
|
|
// let response = azalea_client::ping::ping_server(&address.try_into().unwrap())
|
|
// .await
|
|
// .unwrap();
|
|
|
|
// println!("{}", response.description.to_ansi(None));
|
|
let account = Account::offline("bot");
|
|
let (mut client, mut rx) = account.join(&address.try_into().unwrap()).await.unwrap();
|
|
println!("connected");
|
|
|
|
while let Some(e) = &rx.recv().await {
|
|
match e {
|
|
// TODO: have a "loaded" or "ready" event that fires when all chunks are loaded
|
|
Event::Login => {}
|
|
// Event::GameTick => {
|
|
// let world = client.world();
|
|
// if let Some(b) = world.find_one_entity(|e| {
|
|
// e.uuid == uuid::uuid!("6536bfed-8695-48fd-83a1-ecd24cf2a0fd")
|
|
// }) {
|
|
// // let world = state.world.as_ref().unwrap();
|
|
// // world.
|
|
// println!("{:?}", b);
|
|
// }
|
|
// // world.get_block_state(state.player.entity.pos);
|
|
// // println!("{}", p.message.to_ansi(None));
|
|
// // if p.message.to_ansi(None) == "<py5> ok" {
|
|
// // let state = client.state.lock();
|
|
// // let world = state.world.as_ref().unwrap();
|
|
// // let c = world.get_block_state(&BlockPos::new(5, 78, -2)).unwrap();
|
|
// // println!("block state: {:?}", c);
|
|
// // }
|
|
// }
|
|
Event::Chat(m) => {
|
|
// let new_pos = {
|
|
// let dimension_lock = client.dimension.lock().unwrap();
|
|
// let player = client.player.lock().unwrap();
|
|
// let entity = player
|
|
// .entity(&dimension_lock)
|
|
// .expect("Player entity is not in world");
|
|
// entity.pos().add_y(-0.5)
|
|
// };
|
|
|
|
// println!("{:?}", new_pos);
|
|
// client.set_pos(new_pos).await.unwrap();
|
|
// client.move_entity()
|
|
|
|
// println!("{}", m.to_ansi(None));
|
|
if let Err(e) = client
|
|
.move_entity(&Vec3 {
|
|
x: 0.,
|
|
y: -0.5,
|
|
z: 0.,
|
|
})
|
|
.await
|
|
{
|
|
eprintln!("{:?}", e);
|
|
}
|
|
}
|
|
_ => {}
|
|
}
|
|
}
|
|
|
|
println!("done");
|
|
|
|
Ok(())
|
|
}
|