API e guia para programadores do FreeMinecraftModels
O FreeMinecraftModels e ao mesmo tempo um plugin autonomo e uma superficie de API para outros plugins.
Repositorio Maven
<repository>
<id>magmaguy-repo-releases</id>
<name>MagmaGuy's Repository</name>
<url>https://repo.magmaguy.com/releases</url>
</repository>
Dependencia
<dependency>
<groupId>com.magmaguy</groupId>
<artifactId>FreeMinecraftModels</artifactId>
<version>LATEST.VERSION.HERE</version>
<scope>provided</scope>
</dependency>
Use-o como compileOnly/provided. Nao inclua o plugin dentro do seu proprio jar.
Pontos de entrada principais
ModeledEntityManager.modelExists(String)ModeledEntityManager.reload()ModeledEntityManager.getAllEntities()ModeledEntityManager.getDynamicEntities()ModeledEntityManager.propEntities()
Tipos principais em tempo de execucao
ModeledEntityStaticEntityDynamicEntityPropEntity
Criar entidades
StaticEntity preview = StaticEntity.create("example_model", location);
DynamicEntity mobModel = DynamicEntity.create("example_model", livingEntity);
PropEntity prop = PropEntity.spawnPropEntity("example_model", location);
Os tres caminhos de criacao devolvem null se o ID de modelo pedido nao estiver carregado.
Metodos uteis em tempo de execucao
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()
Superficie de eventos
Eventos genericos de interacao:
ModeledEntityLeftClickEventModeledEntityRightClickEventModeledEntityHitboxContactEventModeledEntityHitByProjectileEvent
Tambem existem variantes tipadas para StaticEntity, DynamicEntity e PropEntity.
Notas
- O FreeMinecraftModels e uma dependencia de plugin instalado, nao uma biblioteca para incorporar.
- Se o teu plugin precisar de modelos acabados de importar, chama
ModeledEntityManager.reload()em vez de tentares reconstruir tu proprio o estado do FreeMinecraftModels.