Wiki 9Minecraft Craftstudio Api Wiki
Craftstudio Api WikiDocumentation › Comment Enregistrer Vos Ressources

Comment Enregistrer Vos Ressources

Nous allons voir comment enregistrer vos ressources (modèle et animation) avec l'API CraftStudio


Classe Principale

@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.

Vérifiez bien quelles soit statiques pour pouvoir correctement ajouter vos ressources à l'API !

Une fois créées, nous allons devoir appeler deux méthodes similaire qui doivent être ajoutées à vos proxy


Les Proxys

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


La gestion des Assets

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
        • models
          • blocks
            • votre_modele.csjsmodel
          • entity
            • votre_modele.csjsmodel