aboutsummaryrefslogtreecommitdiff
path: root/bot
diff options
context:
space:
mode:
authormat <27899617+mat-1@users.noreply.github.com>2022-08-29 20:41:01 -0500
committerGitHub <noreply@github.com>2022-08-29 20:41:01 -0500
commitf42d630544165d11a544224ac273d6aaf89d8095 (patch)
tree94bd73771ecb582d89a87cdca8e21b2d6573ef12 /bot
parent2ea804401f54a45765860201d10d0569d07862ec (diff)
downloadazalea-drasl-f42d630544165d11a544224ac273d6aaf89d8095.tar.xz
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 :tada: * 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
Diffstat (limited to 'bot')
-rwxr-xr-xbot/Cargo.toml1
-rw-r--r--bot/src/main.rs44
2 files changed, 30 insertions, 15 deletions
diff --git a/bot/Cargo.toml b/bot/Cargo.toml
index 974d6f61..fa0b0c67 100755
--- a/bot/Cargo.toml
+++ b/bot/Cargo.toml
@@ -8,6 +8,7 @@ version = "0.1.0"
[dependencies]
azalea-client = {path = "../azalea-client"}
azalea-core = {path = "../azalea-core"}
+azalea-physics = {path = "../azalea-physics"}
azalea-protocol = {path = "../azalea-protocol"}
tokio = "1.19.2"
uuid = "1.1.2"
diff --git a/bot/src/main.rs b/bot/src/main.rs
index 0f3ea31a..c8f6bea7 100644
--- a/bot/src/main.rs
+++ b/bot/src/main.rs
@@ -1,12 +1,14 @@
+#![allow(unused_variables, unused_imports)]
use azalea_client::{Account, Event};
-use azalea_core::PositionXYZ;
+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:25565";
+ let address = "localhost";
// let response = azalea_client::ping::ping_server(&address.try_into().unwrap())
// .await
// .unwrap();
@@ -38,19 +40,31 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
// // println!("block state: {:?}", c);
// // }
// }
- Event::Chat(_m) => {
- let new_pos = {
- let dimension_lock = client.dimension.lock().unwrap();
- let dimension = dimension_lock.as_ref().unwrap();
- let player = client.player.lock().unwrap();
- let entity = player
- .entity(dimension)
- .expect("Player entity is not in world");
- entity.pos().add_y(0.5)
- };
-
- println!("{:?}", new_pos);
- client.move_to(new_pos).await.unwrap();
+ 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);
+ }
}
_ => {}
}