Comment Enregistrer Vos Ressources
Nous allons voir comment enregistrer vos ressources (modèle et animation) avec l'API CraftStudio
@Mod.EventBusSubscriber
@Mod(name = "TestMod", modid = Mod_Test.MODID)
public class Mod_Test
{
public static final String MODID = "testmod";
@SidedProxy(clientSide = "chemin.vers.ClientProxy", serverSide = "chemin.vers.CommonProxy")
private static CommonProxy proxy;
@Instance(Mod_Test.MODID)
private static Mod_Test instance;
public static Mod_Test getInstance() {
return Mod_Test.instance;
}
@SubscribeEvent
@SideOnly(Side.CLIENT)
public static void registerModels(RegistryEvent.Register<CSReadedModel> e) {
Mod_Test.proxy.registerModels();
}
@SubscribeEvent
@SideOnly(Side.CLIENT)
public static void registerAnims(RegistryEvent.Register<CSReadedAnim> e) {
Mod_Test.proxy.registerAnims();
}
}Comme vous avez pu le voir dans notre classe principale, nous allons rajouter deux méthodes:
@SubscribeEvent
@SideOnly(Side.CLIENT)
public static void registerModels(RegistryEvent.Register<CSReadedModel> e) {}
@SubscribeEvent
@SideOnly(Side.CLIENT)
public static void registerAnimations(RegistryEvent.Register<CSReadedAnim> e) {}Ces deux méthodes servent à enregistrer nos ressources pour pouvoir correctement les utiliser tout au long du projet. A la manière où l'on enregistre un bloc, un item, ou une entité dans le registry de forge.
Une fois créées, nous allons devoir appeler deux méthodes similaire qui doivent être ajoutées à vos proxy
public class CommonProxy
{
public void registerModels() {}
public void registerAnims() {}
// Vos autres méthodes...
}public class ClientProxy extends CommonProxy
{
CSRegistryHelper registry = new CSRegistryHelper(Mod_Test.MODID);
@Override
public void registerModels() {
super.registerModels();
registry.register(ResourceType.MODEL, RenderType.ENTITY, "votre_modele");
}
@Override
public void registerAnims() {
super.registerAnims();
registry.register(ResourceType.ANIM, RenderType.ENTITY, "votre_animation");
}
}Dans votre ClientProxy,
Commencez par instancier la classe CSRegistryHelper en définissant comme paramètre l'id de votre mod (modid)
Puis appelez-la pour pouvoir enregistrer vos ressources avec la méthode register dans les fonctions adéquates.
registry.register(resourceTypeIn, renderTypeIn, resourceIn);resourceTypeIn défini si votre ressource est un modèle ou une animation via ResourceType.MODEL ou ResourceType.ANIM
renderTypeIn défini si votre ressource est un bloc ou une entité via RenderType.BLOCK ou RenderType.ENTITY
resourceIn est le nom de votre ressource dans les assets de votre mod
Vos ressources doivent suivre une hiérarchie prédéfinie, dans vos assets, pour pouvoir être correctement reconnues par l'API.
- assets
- votre_modid
- craftstudio
- animations
- blocks
- votre_animation.csjsmodelanim
- entity
- votre_animation.csjsmodelanim
- blocks
- models
- blocks
- votre_modele.csjsmodel
- entity
- votre_modele.csjsmodel
- blocks
- animations
- craftstudio
- votre_modid