diff options
| author | mat <27899617+mat-1@users.noreply.github.com> | 2022-08-29 20:41:01 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-29 20:41:01 -0500 |
| commit | f42d630544165d11a544224ac273d6aaf89d8095 (patch) | |
| tree | 94bd73771ecb582d89a87cdca8e21b2d6573ef12 /azalea-brigadier/src | |
| parent | 2ea804401f54a45765860201d10d0569d07862ec (diff) | |
| download | azalea-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 'azalea-brigadier/src')
| -rwxr-xr-x | azalea-brigadier/src/lib.rs | 1 | ||||
| -rw-r--r-- | azalea-brigadier/src/suggestion/mod.rs | 1 | ||||
| -rw-r--r-- | azalea-brigadier/src/suggestion/suggestions.rs | 21 |
3 files changed, 18 insertions, 5 deletions
diff --git a/azalea-brigadier/src/lib.rs b/azalea-brigadier/src/lib.rs index a294eb19..c2ac7e14 100755 --- a/azalea-brigadier/src/lib.rs +++ b/azalea-brigadier/src/lib.rs @@ -8,3 +8,4 @@ pub mod modifier; pub mod parse_results; pub mod string_reader; pub mod tree; +pub mod suggestion; diff --git a/azalea-brigadier/src/suggestion/mod.rs b/azalea-brigadier/src/suggestion/mod.rs index ab3a5964..4c9a9547 100644 --- a/azalea-brigadier/src/suggestion/mod.rs +++ b/azalea-brigadier/src/suggestion/mod.rs @@ -1,6 +1,7 @@ mod suggestions; use crate::{context::StringRange, message::Message}; +pub use suggestions::*; #[derive(Debug, Clone, Hash, Eq, PartialEq)] pub struct Suggestion { diff --git a/azalea-brigadier/src/suggestion/suggestions.rs b/azalea-brigadier/src/suggestion/suggestions.rs index 6c325039..1fe361f1 100644 --- a/azalea-brigadier/src/suggestion/suggestions.rs +++ b/azalea-brigadier/src/suggestion/suggestions.rs @@ -13,18 +13,18 @@ impl Suggestions { if input.is_empty() { return Suggestions::default(); } else if input.len() == 1 { - return input[0]; + return input[0].clone(); }; - let texts = HashSet::new(); + let mut texts = HashSet::new(); for suggestions in input { - texts.extend(suggestions.suggestions); + texts.extend(suggestions.suggestions.clone()); } - Suggestions::create(command, texts) + Suggestions::create(command, &texts) } - pub fn create(command: &str, suggestions: &[Suggestions]) { + pub fn create(command: &str, suggestions: &HashSet<Suggestion>) -> Self { if suggestions.is_empty() { return Suggestions::default(); }; @@ -34,5 +34,16 @@ impl Suggestions { start = suggestion.range.start().min(start); end = suggestion.range.end().max(end); } + let range = StringRange::new(start, end); + let mut texts = HashSet::new(); + for suggestion in suggestions { + texts.insert(suggestion.expand(command, &range)); + } + let mut sorted: Vec<Suggestion> = texts.into_iter().collect(); + sorted.sort_by(|a, b| a.text.cmp(&b.text)); + Suggestions { + range, + suggestions: sorted, + } } } |
