FreeMinecraftModels API 與開發者指南
FreeMinecraftModels 既是一個獨立外掛,也是提供給其他外掛使用的 API 介面層。
Maven 儲存庫
<repository>
<id>magmaguy-repo-releases</id>
<name>MagmaGuy's Repository</name>
<url>https://repo.magmaguy.com/releases</url>
</repository>
相依性
<dependency>
<groupId>com.magmaguy</groupId>
<artifactId>FreeMinecraftModels</artifactId>
<version>LATEST.VERSION.HERE</version>
<scope>provided</scope>
</dependency>
請將它作為 compileOnly / provided 使用。不要把這個外掛打包進你自己的 jar 中。
核心進入點
ModeledEntityManager.modelExists(String)ModeledEntityManager.reload()ModeledEntityManager.getAllEntities()ModeledEntityManager.getDynamicEntities()ModeledEntityManager.propEntities()
核心執行階段型別
ModeledEntityStaticEntityDynamicEntityPropEntity
建立實體
StaticEntity preview = StaticEntity.create("example_model", location);
DynamicEntity mobModel = DynamicEntity.create("example_model", livingEntity);
PropEntity prop = PropEntity.spawnPropEntity("example_model", location);
如果要求的模型 ID 尚未載入,這三種建立方式都會回傳 null。
實用執行階段方法
ModeledEntity#setDisplayName(String)ModeledEntity#setDisplayNameVisible(boolean)ModeledEntity#setLeftClickCallback(...)ModeledEntity#setRightClickCallback(...)ModeledEntity#setHitboxContactCallback(...)ModeledEntity#setModeledEntityHitByProjectileCallback(...)ModeledEntity#playAnimation(String, boolean, boolean)ModeledEntity#stopCurrentAnimations()ModeledEntity#hasAnimation(String)DynamicEntity#setSyncMovement(boolean)Bone#getBoneLocation()
事件介面
通用互動事件:
ModeledEntityLeftClickEventModeledEntityRightClickEventModeledEntityHitboxContactEventModeledEntityHitByProjectileEvent
同時也提供 StaticEntity、DynamicEntity 與 PropEntity 的型別化版本。
備註
- FreeMinecraftModels 是對已安裝外掛的相依性,不是可嵌入的函式庫。
- 如果你的外掛需要剛匯入的模型,請呼叫
ModeledEntityManager.reload(),不要嘗試自行重建 FreeMinecraftModels 的內部狀態。