1
2
Fork 0
mirror of https://github.com/mat-1/azalea.git synced 2025-08-02 14:26:04 +00:00
azalea/bot/src/main.rs
mat f42d630544
Physics (#11)
* 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
2022-08-29 20:41:01 -05:00

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(())
}