Entity Seam

This commit is contained in:
Brian Neumann-Fopiano
2026-06-11 16:45:41 -04:00
parent ca10edef0c
commit df888e5516
3 changed files with 14 additions and 4 deletions
@@ -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() {
@@ -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) {
@@ -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";