Mod  Résolu Créer une TNT

Discussion dans 'Support modding' créé par Flow Arg, 8 Juin 2019.

  1. Flow Arg

    Flow Arg Nouveau

    Inscrit:
    8 Juin 2019
    Messages:
    12
    J'aime reçus:
    0
    Il a l'air d'avoir aimé, je lance le jeu
     
  2. Flow Arg

    Flow Arg Nouveau

    Inscrit:
    8 Juin 2019
    Messages:
    12
    J'aime reçus:
    0

    ça a marché mais peut tu réexpliquer un peu plus clairement pour que ce soit la texture de ma tnt au lieu de la texture de la tnt vanilla quand la tnt est amorcé ? Merci de m'avoir aidé jusque là !
     
    #12 Flow Arg, 8 Juin 2019
    Dernière édition: 8 Juin 2019
  3. ShE3py

    ShE3py Développeur en autodidacte

    Inscrit:
    26 Septembre 2015
    Messages:
    978
    J'aime reçus:
    163
    Je pense que dans ton cas, il te suffit juste de créer une entité qui hérite d'EntityTNTPrimed, une classe qui s'occupe de son rendu qui lui-même hérite de RenderTNTPrimed en changeant juste la texture :
    Code:
    public class EntityChickenTNTPrimed extends EntityTNTPrimed {
       public EntityChickenTNTPrimed(World world) {
           super(world);
       }
      
       public EntityChickenTNTPrimed(World world, double x, double y, double z, @Nullable EntityLivingBase igniter) {
           super(world, x, y, z, igniter);
       }
    }
    
    @SideOnly(Side.CLIENT)
    public class RenderChickenTNTPrimed extends RenderTNTPrimed {
       private static final ResourceLocation TEXTURE_LOCATION = new ResourceLocation(References.MODID, "chicken_tnt");
      
       public RenderChickenTNTPrimed() {
           super(Minecraft.getInstance().getRenderManager());
       }
      
       @Override
       protected ResourceLocation getEntityTexture(EntityChickenTNTPrimed entity) {
           return TEXTURE_LOCATION;
       }
    }

    Et bien sûr ne pas oublier d'enregistrer tout ce tralala :
    Code:
    @SubscribeEvent
    public void registerEntities(RegistryEvent.Register<EntityEntry> event) {
        event.getRegistry().register(new EntityEntry(EntityChickenTNTPrimed.class, References.MODID + ":chicken_tnt_primed"));
    }
    
    // Dans l'init côté client, le serveur n'a pas besoin de savoir comment dessiner
    RenderingRegistry.registerEntityRenderingHandler(EntityChickenTNTPrimed.class, new RenderChickenTNTPrimed());

    Bon j'écris au talent, j'espère que ça marchera. Il doit y avoir quelques noms à changer.
     
    Flow Arg apprécie ceci.
  4. Flow Arg

    Flow Arg Nouveau

    Inscrit:
    8 Juin 2019
    Messages:
    12
    J'aime reçus:
    0
    Salut, voici les résultats :
    Code:
    @SideOnly(Side.CLIENT)
    public class RenderChickenTNTPrimed extends RenderTNTPrimed
    {
        private static final ResourceLocation TEXTURE_LOCATION = new ResourceLocation(References.MODID, "chicken_tnt");
    
        public RenderChickenTNTPrimed() {
            super(Minecraft.getInstance().getRenderManager());
        }
    
        @Override
        protected ResourceLocation getEntityTexture(EntityChickenTNTPrimed entity) {
            return TEXTURE_LOCATION;
        }
    }
    Le Minecraft.getInstance et le @Override est mal passé.
    Et peux tu me dire ou écrire la deuxième partie de code car je pense que c'est dans ModBlock mais je ne sais où. Merci de m'avoir écrit tout ça !
     
  5. ShE3py

    ShE3py Développeur en autodidacte

    Inscrit:
    26 Septembre 2015
    Messages:
    978
    J'aime reçus:
    163
    Remplace le getInstance par n'importe quel getXXX, getMinecraft en 1.12 de mémoire.
    Dans l'override remplace EntityChickenTNTPrimed par EntityTNTPrimed, j'ai pas fait gaffe au generic. S'il refuse ta classe de rendu remplace l'extend par Render<EntityChickenTNTPrimed>, et copie simplement la méthode doRender de RenderTNTPrimed.

    Et pour l'enregistrement la fonction registerEntities est à mettre dans ta classe qui gère les entités, ModEntities par exemple. La ligne toute seule est à mettre dans l'init de ton proxy client.

    Bon bref, c'est pas un tuto Java non plus.
     
    Flow Arg apprécie ceci.
  6. Flow Arg

    Flow Arg Nouveau

    Inscrit:
    8 Juin 2019
    Messages:
    12
    J'aime reçus:
    0
    Je fais une pause, je m'y remet plus tard ou demain.
     
    #16 Flow Arg, 8 Juin 2019
    Dernière édition: 8 Juin 2019
  7. Flow Arg

    Flow Arg Nouveau

    Inscrit:
    8 Juin 2019
    Messages:
    12
    J'aime reçus:
    0
    Merci beaucoup à toi et à robin, j'ai réussi à résoudre ce problème grâce à vous et en cherchant quelques infos en plus sur un tuto d'un anglais ! J'ai aussi optimisé le code aussi en suivant tes conseils ! Merci beaucoup !
     

Partager cette page