From df888e5516485229c8bdc6112684c5fb586c8205 Mon Sep 17 00:00:00 2001 From: Brian Neumann-Fopiano Date: Thu, 11 Jun 2026 16:45:41 -0400 Subject: [PATCH] Entity Seam --- .../art/arcane/iris/engine/object/IrisEntity.java | 4 ++-- .../arcane/iris/engine/object/IrisEntitySpawn.java | 3 +-- .../arcane/iris/platform/bukkit/BukkitPlatform.java | 11 +++++++++++ 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEntity.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEntity.java index 21f42ab06..26fa942f0 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEntity.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEntity.java @@ -22,10 +22,10 @@ import art.arcane.iris.Iris; import art.arcane.iris.core.IrisSettings; import art.arcane.iris.core.link.Identifier; import art.arcane.iris.core.loader.IrisRegistrant; -import art.arcane.iris.core.nms.INMS; import art.arcane.iris.core.service.ExternalDataSVC; import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.object.annotations.*; +import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.platform.bukkit.BukkitWorld; import art.arcane.iris.spi.PlatformWorld; import art.arcane.volmlib.util.collection.KList; @@ -451,7 +451,7 @@ public class IrisEntity extends IrisRegistrant { } - return INMS.get().spawnEntity(at, getType(), getReason()); + return BukkitPlatform.spawnEntity(at, getType(), getReason()); } public boolean isSpecialType() { diff --git a/core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java b/core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java index 19cc14f58..6a75d8d44 100644 --- a/core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java +++ b/core/src/main/java/art/arcane/iris/engine/object/IrisEntitySpawn.java @@ -20,7 +20,6 @@ package art.arcane.iris.engine.object; import art.arcane.iris.platform.bukkit.BukkitPlatform; import art.arcane.iris.Iris; -import art.arcane.iris.core.nms.INMS; import art.arcane.iris.engine.data.cache.AtomicCache; import art.arcane.iris.engine.framework.Engine; import art.arcane.iris.engine.object.annotations.*; @@ -178,7 +177,7 @@ public class IrisEntitySpawn implements IRare { return null; } - Vector3d boundingBox = INMS.get().getBoundingbox(irisEntity.getType()); + Vector3d boundingBox = BukkitPlatform.entityBoundingBox(irisEntity.getType()); if (!ignoreSurfaces && boundingBox != null) { boolean isClearForSpawn = isAreaClearForSpawn(at, boundingBox); if (!isClearForSpawn) { diff --git a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitPlatform.java b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitPlatform.java index aff68e822..e07bf8c7d 100644 --- a/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitPlatform.java +++ b/core/src/main/java/art/arcane/iris/platform/bukkit/BukkitPlatform.java @@ -31,13 +31,16 @@ import art.arcane.iris.spi.PlatformScheduler; import art.arcane.iris.spi.PlatformStructureHooks; import art.arcane.iris.spi.PlatformWorld; import art.arcane.iris.util.common.scheduling.J; +import art.arcane.volmlib.util.math.Vector3d; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.Biome; import org.bukkit.block.data.BlockData; import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; import org.bukkit.util.Vector; import java.io.File; @@ -94,6 +97,14 @@ public final class BukkitPlatform implements IrisPlatform { return new Location(world, position.getX(), position.getY(), position.getZ()); } + public static Entity spawnEntity(Location at, EntityType type, CreatureSpawnEvent.SpawnReason reason) { + return INMS.get().spawnEntity(at, type, reason); + } + + public static Vector3d entityBoundingBox(EntityType type) { + return INMS.get().getBoundingbox(type); + } + @Override public String platformName() { return "bukkit";