9
0
mirror of https://github.com/Xiao-MoMi/craft-engine.git synced 2025-12-22 16:39:28 +00:00

added MEG & BM support

This commit is contained in:
XiaoMoMi
2025-04-01 03:42:17 +08:00
parent 61762e314d
commit 8ecc78b28a
21 changed files with 240 additions and 123 deletions

View File

@@ -7,6 +7,7 @@ repositories {
maven("https://repo.rapture.pw/repository/maven-releases/") // slime world
maven("https://repo.infernalsuite.com/repository/maven-snapshots/") // slime world
maven("https://repo.momirealms.net/releases/")
maven("https://mvn.lumine.io/repository/maven-public/") // model engine
}
dependencies {
@@ -23,6 +24,10 @@ dependencies {
compileOnly("com.sk89q.worldedit:worldedit-bukkit:7.2.19")
// SlimeWorld
compileOnly("com.infernalsuite.asp:api:4.0.0-SNAPSHOT")
// ModelEngine
compileOnly("com.ticxo.modelengine:ModelEngine:R4.0.8")
// BetterModels
compileOnly("io.github.toxicity188:BetterModel:1.4.2")
}
java {

View File

@@ -0,0 +1,22 @@
package net.momirealms.craftengine.bukkit.compatibility.bettermodel;
import net.momirealms.craftengine.core.entity.Entity;
import net.momirealms.craftengine.core.entity.furniture.AbstractExternalModel;
public class BetterModelModel extends AbstractExternalModel {
public BetterModelModel(String id) {
super(id);
}
@Override
public String plugin() {
return "BetterModel";
}
@Override
public void bindModel(Entity entity) {
org.bukkit.entity.Entity bukkitEntity = (org.bukkit.entity.Entity) entity.literalObject();
BetterModelUtils.bindModel(bukkitEntity, id());
}
}

View File

@@ -0,0 +1,16 @@
package net.momirealms.craftengine.bukkit.compatibility.bettermodel;
import kr.toxicity.model.api.BetterModel;
import kr.toxicity.model.api.data.renderer.BlueprintRenderer;
import org.bukkit.entity.Entity;
public class BetterModelUtils {
public static void bindModel(Entity base, String id) {
BlueprintRenderer renderer = BetterModel.inst().modelManager().renderer(id);
if (renderer == null) {
throw new NullPointerException("Could not find BetterModel blueprint " + id);
}
renderer.create(base);
}
}

View File

@@ -0,0 +1,22 @@
package net.momirealms.craftengine.bukkit.compatibility.modelengine;
import net.momirealms.craftengine.core.entity.Entity;
import net.momirealms.craftengine.core.entity.furniture.AbstractExternalModel;
public class ModelEngineModel extends AbstractExternalModel {
public ModelEngineModel(String id) {
super(id);
}
@Override
public String plugin() {
return "ModelEngine";
}
@Override
public void bindModel(Entity entity) {
org.bukkit.entity.Entity bukkitEntity = (org.bukkit.entity.Entity) entity.literalObject();
ModelEngineUtils.bindModel(bukkitEntity, id());
}
}

View File

@@ -0,0 +1,15 @@
package net.momirealms.craftengine.bukkit.compatibility.modelengine;
import com.ticxo.modelengine.api.ModelEngineAPI;
import com.ticxo.modelengine.api.model.ActiveModel;
import com.ticxo.modelengine.api.model.ModeledEntity;
import org.bukkit.entity.Entity;
public class ModelEngineUtils {
public static void bindModel(Entity base, String id) {
ModeledEntity modeledEntity = ModelEngineAPI.createModeledEntity(base);
ActiveModel activeModel = ModelEngineAPI.createActiveModel(id);
modeledEntity.addModel(activeModel, true);
}
}