From 6ad6ee969467dd3d351c64b6b32e9cc270fae05c Mon Sep 17 00:00:00 2001 From: liach <7806504+liach@users.noreply.github.com> Date: Mon, 31 May 2021 11:18:53 -0500 Subject: [PATCH] Some collision stuff, fixes #2443 (#2444) Signed-off-by: liach Co-authored-by: liach --- .../minecraft/util/shape/VoxelShape.mapping | 3 +++ .../world/BlockCollisionSpliterator.mapping | 18 ++++++++++++--- .../net/minecraft/world/CollisionView.mapping | 22 ++++++++++++++++++- unpick-definitions/jdk.unpick | 17 ++++++++++++++ 4 files changed, 56 insertions(+), 4 deletions(-) create mode 100644 unpick-definitions/jdk.unpick diff --git a/mappings/net/minecraft/util/shape/VoxelShape.mapping b/mappings/net/minecraft/util/shape/VoxelShape.mapping index d350ada758..34ae6116de 100644 --- a/mappings/net/minecraft/util/shape/VoxelShape.mapping +++ b/mappings/net/minecraft/util/shape/VoxelShape.mapping @@ -59,3 +59,6 @@ CLASS net/minecraft/class_265 net/minecraft/util/shape/VoxelShape ARG 11 z2 METHOD method_20538 getFace (Lnet/minecraft/class_2350;)Lnet/minecraft/class_265; ARG 1 facing + METHOD method_33661 getClosestPointTo (Lnet/minecraft/class_243;)Ljava/util/Optional; + COMMENT {@return the closest point in the shape to {@code target}} + ARG 1 target diff --git a/mappings/net/minecraft/world/BlockCollisionSpliterator.mapping b/mappings/net/minecraft/world/BlockCollisionSpliterator.mapping index f4dcaf5e92..1bd6d1e1f1 100644 --- a/mappings/net/minecraft/world/BlockCollisionSpliterator.mapping +++ b/mappings/net/minecraft/world/BlockCollisionSpliterator.mapping @@ -6,7 +6,7 @@ CLASS net/minecraft/class_5329 net/minecraft/world/BlockCollisionSpliterator FIELD field_25172 pos Lnet/minecraft/class_2338$class_2339; FIELD field_25173 boxShape Lnet/minecraft/class_265; FIELD field_25174 world Lnet/minecraft/class_1941; - FIELD field_25175 checkEntity Z + FIELD field_25175 checkWorldBorder Z FIELD field_25669 blockPredicate Ljava/util/function/BiPredicate; METHOD (Lnet/minecraft/class_1941;Lnet/minecraft/class_1297;Lnet/minecraft/class_238;)V ARG 1 world @@ -20,11 +20,23 @@ CLASS net/minecraft/class_5329 net/minecraft/world/BlockCollisionSpliterator METHOD method_29283 getChunk (II)Lnet/minecraft/class_1922; ARG 1 x ARG 2 z - METHOD method_29284 isInWorldBorder (Lnet/minecraft/class_2784;Lnet/minecraft/class_238;)Z + METHOD method_29284 isIn (Lnet/minecraft/class_2784;Lnet/minecraft/class_238;)Z ARG 0 border ARG 1 box METHOD method_29285 offerBlockShape (Ljava/util/function/Consumer;)Z - METHOD method_29286 offerEntityShape (Ljava/util/function/Consumer;)Z + ARG 1 action + METHOD method_29286 offerWorldBorderShape (Ljava/util/function/Consumer;)Z + ARG 1 action METHOD method_30031 (Lnet/minecraft/class_2680;Lnet/minecraft/class_2338;)Z ARG 0 state ARG 1 pos + METHOD method_30130 collidesSlightlyLarger (Lnet/minecraft/class_265;Lnet/minecraft/class_238;)Z + COMMENT {@return whether the world border collides with the slightly expanded entity bounding box} + ARG 0 worldBorderShape + ARG 1 entityBox + METHOD method_30131 collidesSlightlySmaller (Lnet/minecraft/class_265;Lnet/minecraft/class_238;)Z + COMMENT {@return whether the world border collides with the slightly shrinked entity bounding box} + ARG 0 worldBorderShape + ARG 1 entityBox + METHOD tryAdvance (Ljava/util/function/Consumer;)Z + ARG 1 action diff --git a/mappings/net/minecraft/world/CollisionView.mapping b/mappings/net/minecraft/world/CollisionView.mapping index 019dd6a6dd..811524103e 100644 --- a/mappings/net/minecraft/world/CollisionView.mapping +++ b/mappings/net/minecraft/world/CollisionView.mapping @@ -13,18 +13,38 @@ CLASS net/minecraft/class_1941 net/minecraft/world/CollisionView METHOD method_22338 getChunkAsView (II)Lnet/minecraft/class_1922; ARG 1 chunkX ARG 2 chunkZ + METHOD method_26968 (Lnet/minecraft/class_1297;)Z + ARG 0 e + METHOD method_26969 (Lnet/minecraft/class_1297;)Z + ARG 0 e + METHOD method_26970 (Lnet/minecraft/class_1297;)Z + ARG 0 e METHOD method_30030 getBlockCollisions (Lnet/minecraft/class_1297;Lnet/minecraft/class_238;Ljava/util/function/BiPredicate;)Ljava/util/stream/Stream; ARG 1 entity ARG 2 box - METHOD method_30635 isBlockSpaceEmpty (Lnet/minecraft/class_1297;Lnet/minecraft/class_238;Ljava/util/function/BiPredicate;)Z + ARG 3 predicate + METHOD method_30635 hasBlockCollision (Lnet/minecraft/class_1297;Lnet/minecraft/class_238;Ljava/util/function/BiPredicate;)Z ARG 1 entity ARG 2 box + ARG 3 predicate + METHOD method_33593 (DDDLnet/minecraft/class_238;)Lnet/minecraft/class_238; + ARG 6 box + METHOD method_33594 findClosestCollision (Lnet/minecraft/class_1297;Lnet/minecraft/class_265;Lnet/minecraft/class_243;DDD)Ljava/util/Optional; + ARG 1 entity + ARG 2 shape + ARG 3 target + ARG 4 x + ARG 6 y + ARG 8 z + METHOD method_33595 (Lnet/minecraft/class_265;)Ljava/util/stream/Stream; + ARG 0 collision METHOD method_8587 isSpaceEmpty (Lnet/minecraft/class_1297;Lnet/minecraft/class_238;)Z ARG 1 entity ARG 2 box METHOD method_8590 isSpaceEmpty (Lnet/minecraft/class_1297;Lnet/minecraft/class_238;Ljava/util/function/Predicate;)Z ARG 1 entity ARG 2 box + ARG 3 filter METHOD method_8600 getCollisions (Lnet/minecraft/class_1297;Lnet/minecraft/class_238;Ljava/util/function/Predicate;)Ljava/util/stream/Stream; ARG 1 entity ARG 2 box diff --git a/unpick-definitions/jdk.unpick b/unpick-definitions/jdk.unpick new file mode 100644 index 0000000000..29c136fbc1 --- /dev/null +++ b/unpick-definitions/jdk.unpick @@ -0,0 +1,17 @@ +v2 + +flag spliterator_characteristics java/util/Spliterator ORDERED +flag spliterator_characteristics java/util/Spliterator DISTINCT +flag spliterator_characteristics java/util/Spliterator SORTED +flag spliterator_characteristics java/util/Spliterator SIZED +flag spliterator_characteristics java/util/Spliterator NONNULL +flag spliterator_characteristics java/util/Spliterator IMMUTABLE +flag spliterator_characteristics java/util/Spliterator CONCURRENT +flag spliterator_characteristics java/util/Spliterator SUBSIZED + +target_method java/util/Spliterator characteristics ()I + return spliterator_characteristics +target_method java/util/Spliterator hasCharacteristics (I)Z + param 0 spliterator_characteristics +target_method java/util/Spliterators$AbstractSpliterator (JI)V + param 1 spliterator_characteristics