From 5fea9665ff89630119848aff80cf3069cfaf88ee Mon Sep 17 00:00:00 2001 From: XiaoMoMi Date: Mon, 22 Dec 2025 04:03:42 +0800 Subject: [PATCH] =?UTF-8?q?=E9=81=BF=E5=85=8D=E9=87=8D=E5=A4=8D=E5=BA=A7?= =?UTF-8?q?=E6=A4=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/entity/furniture/Furniture.java | 19 +++++++++++++++---- gradle.properties | 6 +++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/Furniture.java b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/Furniture.java index d810996bf..a3659e63d 100644 --- a/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/Furniture.java +++ b/core/src/main/java/net/momirealms/craftengine/core/entity/furniture/Furniture.java @@ -14,9 +14,11 @@ import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitBoxCo import net.momirealms.craftengine.core.entity.furniture.hitbox.FurnitureHitboxPart; import net.momirealms.craftengine.core.entity.player.Player; import net.momirealms.craftengine.core.entity.seat.Seat; +import net.momirealms.craftengine.core.entity.seat.SeatOwner; import net.momirealms.craftengine.core.plugin.CraftEngine; import net.momirealms.craftengine.core.plugin.entityculling.CullingData; import net.momirealms.craftengine.core.util.Key; +import net.momirealms.craftengine.core.util.LazyReference; import net.momirealms.craftengine.core.util.QuaternionUtils; import net.momirealms.craftengine.core.world.Cullable; import net.momirealms.craftengine.core.world.Vec3d; @@ -28,10 +30,7 @@ import org.jetbrains.annotations.Nullable; import org.joml.Quaternionf; import org.joml.Vector3f; -import java.util.ArrayList; -import java.util.List; -import java.util.Optional; -import java.util.UUID; +import java.util.*; import java.util.concurrent.CompletableFuture; public abstract class Furniture implements Cullable { @@ -107,12 +106,24 @@ public abstract class Furniture implements Cullable { FurnitureHitBoxConfig[] furnitureHitBoxConfigs = variant.hitBoxConfigs(); ObjectArrayList colliders = new ObjectArrayList<>(furnitureHitBoxConfigs.length); this.hitboxes = new FurnitureHitBox[furnitureHitBoxConfigs.length]; + // 辅助map,用于排除重复的座椅 + LazyReference>> seatMap = LazyReference.lazyReference(HashMap::new); for (int i = 0; i < furnitureHitBoxConfigs.length; i++) { FurnitureHitBox hitbox = furnitureHitBoxConfigs[i].create(this); this.hitboxes[i] = hitbox; for (FurnitureHitboxPart part : hitbox.parts()) { this.hitboxMap.put(part.entityId(), hitbox); } + Seat[] seats = hitbox.seats(); + for (int index = 0; index < seats.length; index++) { + Map> tempMap = seatMap.get(); + Vector3f seatPos = seats[i].config().position(); + if (tempMap.containsKey(seatPos)) { + seats[i] = tempMap.get(seatPos); + } else { + tempMap.put(seatPos, seats[i]); + } + } hitbox.collectVirtualEntityId(virtualEntityIds::addLast); colliders.addAll(hitbox.colliders()); } diff --git a/gradle.properties b/gradle.properties index 9f9a02f01..7be710339 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,7 +1,7 @@ org.gradle.jvmargs=-Xmx4G # Project settings -project_version=0.0.66.7 +project_version=0.0.66.8 config_version=65 lang_version=47 project_group=net.momirealms @@ -57,8 +57,8 @@ jimfs_version=1.3.1 authlib_version=7.0.60 concurrent_util_version=0.0.8-SNAPSHOT bucket4j_version=8.15.0 -itembridge_version=1.0.13 -levelerbridge_version=1.0.1 +itembridge_version=1.0.14 +levelerbridge_version=1.0.2 # Proxy settings systemProp.socks.proxyHost=127.0.0.1