mirror of
https://github.com/Xiao-MoMi/craft-engine.git
synced 2025-12-26 02:19:23 +00:00
避免重复座椅
This commit is contained in:
@@ -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<Collider> colliders = new ObjectArrayList<>(furnitureHitBoxConfigs.length);
|
||||
this.hitboxes = new FurnitureHitBox[furnitureHitBoxConfigs.length];
|
||||
// 辅助map,用于排除重复的座椅
|
||||
LazyReference<Map<Vector3f, Seat<FurnitureHitBox>>> 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<FurnitureHitBox>[] seats = hitbox.seats();
|
||||
for (int index = 0; index < seats.length; index++) {
|
||||
Map<Vector3f, Seat<FurnitureHitBox>> 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());
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user