Résolu Problème création de bloc simple.
-
modegypte->blockstates->cuivre_bloc.json
%(#333333)[```java
{
]
“variants”: {
“normal”: “modegypte:cuivre_bloc”
}
%(#333333)[}modegypte->models->block->cuivre_bloc.json ```java { "parent": "block/cube_all", "textures": { "all": "modegypte:blocks/bloc_Cuivre" } }
modegypte->models->item->cuivre_bloc.json
%(#333333)[```java
{
]
“parent”: “modegypte:block/cuivre_bloc”,
“display”: {
“thirdperson”: {
“rotation”: [ 10, -45, 170 ,]
“translation”: [ 0, 1.5, -2.75 ,]
“scale”: [ 0.375, 0.375, 0.375 ]
}
}
%(#333333)[}modegypte->textures->blokcs->bloc_Cuivre.png
-
"modegypte->textures->blokcs->bloc_Cuivre.png "
blokcs ?Sur eclipse sélectionne src/main/resources et appuies sur F5.
-
modegypte->textures->blokcs->bloc_Cuivre.png
Oui blocks, pourquoi?Ca ne change rien, et je vois ‘bloc_Cuivre.png’ sur Eclipse.
-
@‘VoraX’:
modegypte->textures->blokcs->bloc_Cuivre.png
Oui blocks, pourquoi?Ca ne change rien, et je vois ‘bloc_Cuivre.png’ sur Eclipse.
T’aurais pas inversé le “c” et le “k” ?
-
C’est renommé en ‘blocks’ maintenant. Mais bien-sûr, ça continue.
-
Apparemment il y a toujours une erreur dans le json : "Not a JSON Object: “modegypte:cuivre_bloc”
par contre je ne sais pas à quelle erreur ça correspond,vérifies tes trois json avec le site qu’à donné robin.EDIT : Si je vois ce que c’est, tu as juste mis le nom du fichier sans dire ce que c’est (un model), il faut que tu mettes comme ça (pour le json dans blockstates) :
{ "variants": { "normal": { "model": "modegypte:cuivre_bloc" } } }
-
J’ai vérifié les 3 ils sont bons, ils sont bien en json aussi.
-
Tu as bien vu mon edit ? Et t’es sur que c’est bon ? Parce que dans ce que t’a posté il y a une heure, ce n’est pas bon.
-
Ah, je vois que mes 750 de ping ne pardonnent pas…
Et Eclipse non plus. -
@‘VoraX’:
Ah, je vois que mes 750 de ping ne pardonnent pas…
Et Eclipse non plus.Ah oui quand même, la campagne je parie.
Et c’est pas eclipse le méchant ici, c’est Mojang et son système de json qui va m’obliger à faire un TESR pour pas passer des heures sur un bloc avec des faces indépendantes les unes des autres…Sinon pour ta texture, ça ne marche toujours pas ? Car je ne vois pas d’erreur dans le log.
-
Oui et non, et il y a une boucle sur la ligne France Telecom, et ils ne se bougent pas, y’en a qui ont attendu 2 ans au lieu d’une semaine…
C’est sûr qu’ils pourraient penser aux moddeurs…Ca ne marche toujours pas.
EDIT: Le bloc se pose avec la texture, mais dans ma main, il n’y a pas de texture.
-
Il y a déjà du progrès.
Tu peux renvoyer ta classe principale ?(750 de ping même en fin de ligne ce n’est pas possible. Sur les lignes les plus longues le ping monte jusqu’à 120 ms. Si tu es en wifi le problème vient sûrement de là. plus de 500 de ping entre la box et et le nra je ne pense pas qu’il arriverait à transmettre le moindre paquet).
-
Alors (étant donné que ton 3e json est bon), ça doit être un problème de registry de la texture (donc comme robin l’a dit, envoi ta classe principale, ou sinon ton proxy client si t’a mis ton rendu d’item ici).
C’est vrai qu’avec 750, les pages internet doivent souvent bug, et moi je pourrais pas survivre sans YouTube…
-
C’est tout de même un minimum encourageant, depuis le temps que j’essaie d’avoir un bloc… “Simple”. Je finirai par y arriver.
Classe principale nommée ‘ModEgypte.java’:
package fr.vorax.egypte.common; import fr.vorax.egypte.proxy.CommonProxy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.registry.GameRegistry; @Mod(modid = "modegypte", name = "Mod Egypte", version = "1.0.0") public class ModEgypte { @Instance("modegypte") public static ModEgypte instance; @SidedProxy(clientSide = "fr.vorax.egypte.proxy.ClientProxy", serverSide = "fr.vorax.egypte.proxy.CommonProxy") public static CommonProxy proxy; public static Item cuivreLingot; public static Block cuivreBloc; @EventHandler public void preInit(FMLPreInitializationEvent event) { cuivreLingot = new CuivreLingot().setUnlocalizedName("cuivreLingot").setCreativeTab(CreativeTabs.tabMaterials); GameRegistry.registerItem(cuivreLingot, "cuivre_Lingot"); cuivreBloc = new CuivreBloc(Material.iron).setUnlocalizedName("cuivrebloc").setCreativeTab(CreativeTabs.tabBlock); GameRegistry.registerBlock(cuivreBloc, "cuivre_bloc"); } @EventHandler public void preInit(FMLInitializationEvent event) { proxy.registerRender(); if(event.getSide().isClient()) { Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(cuivreLingot, 0, new ModelResourceLocation("modegypte:cuivre_Lingot", "inventory")); } } @EventHandler public void init(FMLPostInitializationEvent event) { } }
Sans le vpn:
[size=x-small–- PING xx.xxx.xx.xxx (xx.xxx.xx.xxx) 56(84) bytes of data. —]
[size=x-small64 bytes from xx.xxx.xx.xxx: icmp_seq=1 ttl=52 time=7][size=x-small33][size=x-small ms]
[size=x-small64 bytes from xx][font=Verdana.xxx][font=Verdana.xx][font=Verdana.xxx]: icmp_seq=2 ttl=52 time=7[size=x-small19][size=x-small ms]
[size=x-small64 bytes from xx][font=Verdana.xxx][font=Verdana.xx][font=Verdana.xxx]: icmp_seq=3 ttl=52 time=709[size=x-smallms]
[size=x-small64 bytes from xx][font=Verdana.xxx][font=Verdana.xx][font=Verdana.xxx]: icmp_seq=4 ttl=52 time=7[size=x-small09][size=x-small ms][size=x-small–- xx.xxx.xx.xxx ping statistics —]
packets transmitted
4
received
4
packet loss
0 %
time
3003 ms -
C’est normal que la méthode dinit s’appelle preinit ?
Et que celle de post init s’appelle init ?
Pour ton Item, il faut que tu enregistres de la même manière que ton lingot (avec le ModelMesher), en changant juste les noms.Et ben dit donc la co, étonnant qu’il n’y ai pas de perte.
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
Ah j’ai jamais fais attention à ça, puisque mon premier item avait fonctionné. Bizarre. Du coup j’ai rectifié ça.
Classe principale:
package fr.vorax.egypte.common; import fr.vorax.egypte.proxy.CommonProxy; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraftforge.fml.common.Mod; import net.minecraftforge.fml.common.Mod.EventHandler; import net.minecraftforge.fml.common.Mod.Instance; import net.minecraftforge.fml.common.SidedProxy; import net.minecraftforge.fml.common.event.FMLInitializationEvent; import net.minecraftforge.fml.common.event.FMLPostInitializationEvent; import net.minecraftforge.fml.common.event.FMLPreInitializationEvent; import net.minecraftforge.fml.common.registry.GameRegistry; @Mod(modid = "modegypte", name = "Mod Egypte", version = "1.0.0") public class ModEgypte { @Instance("modegypte") public static ModEgypte instance; @SidedProxy(clientSide = "fr.vorax.egypte.proxy.ClientProxy", serverSide = "fr.vorax.egypte.proxy.CommonProxy") public static CommonProxy proxy; public static Item cuivreLingot; public static Block cuivreBloc; @EventHandler public void preInit(FMLPreInitializationEvent event) { cuivreLingot = new CuivreLingot().setUnlocalizedName("cuivreLingot").setCreativeTab(CreativeTabs.tabMaterials); GameRegistry.registerItem(cuivreLingot, "cuivre_Lingot"); cuivreBloc = new CuivreBloc(Material.iron).setUnlocalizedName("cuivrebloc").setCreativeTab(CreativeTabs.tabBlock); GameRegistry.registerBlock(cuivreBloc, "cuivre_bloc"); } @EventHandler public void Init(FMLInitializationEvent event) { proxy.registerRender(); if(event.getSide().isClient()) { Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(cuivreLingot, 0, new ModelResourceLocation("modegypte:cuivre_Lingot", "inventory")); } } @EventHandler public void postInit(FMLPostInitializationEvent event) { } }
Il faut que j’enregistre le bloc sous forme d’item? Mais il faut faire comment du coup? Je n’ai pas trop compris ce qu’il faut faire.
-
Tu reprends ça : “Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(cuivreLingot, 0, new ModelResourceLocation(“modegypte:cuivre_Lingot”, “inventory”));” sauf que tu remplaces tout ce qui se réfère à ton Item par ton bloc.
Envoyé de mon RAINBOW LITE 4G en utilisant Tapatalk
-
Et il faut utiliser Item.getItemFromBlock(tonBloc) pour avoir l’item associé au bloc.
-
[font=Ubuntu, sans-serif‘Minecraft.getMinecraft().getRender][font=Ubuntu, sans-serifItem]font=Ubuntu, sans-serif.getItemModelMesher().register(cuivreLingot, 0, new ModelResourceLocation(“modegypte:cuivre_Lingot”, “inventory”));’
Au .register, c’est souligné en rouge, il me propose seulement 'Change type of ‘cuivreBloc’ to ‘item’ ’ .
Je pense que cela vient du fait que je n’ai pas mis la ligne de Robin, mais seulement, je ne sais pas où l’insérer exactement dans cette ligne.%(#333333)[```java
package fr.vorax.egypte.common;
]import fr.vorax.egypte.proxy.CommonProxy;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.client.Minecraft;
import net.minecraft.client.resources.model.ModelResourceLocation;
import net.minecraft.creativetab.CreativeTabs;
import net.minecraft.item.Item;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.common.Mod.EventHandler;
import net.minecraftforge.fml.common.Mod.Instance;
import net.minecraftforge.fml.common.SidedProxy;
import net.minecraftforge.fml.common.event.FMLInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPostInitializationEvent;
import net.minecraftforge.fml.common.event.FMLPreInitializationEvent;
import net.minecraftforge.fml.common.registry.GameRegistry;
@Mod(modid = “modegypte”, name = “Mod Egypte”, version = “1.0.0”)
public class ModEgypte
{
@Instance(“modegypte”)
public static ModEgypte instance;
@SidedProxy(clientSide = “fr.vorax.egypte.proxy.ClientProxy”, serverSide = “fr.vorax.egypte.proxy.CommonProxy”)
public static CommonProxy proxy;
public static Item cuivreLingot;
public static Block cuivreBloc;
@EventHandler
public void preInit(FMLPreInitializationEvent event)
{
cuivreLingot = new CuivreLingot().setUnlocalizedName(“cuivreLingot”).setCreativeTab(CreativeTabs.tabMaterials);
GameRegistry.registerItem(cuivreLingot, “cuivre_Lingot”);
cuivreBloc = new CuivreBloc(Material.iron).setUnlocalizedName(“cuivrebloc”).setCreativeTab(CreativeTabs.tabBlock);
GameRegistry.registerBlock(cuivreBloc, “cuivre_bloc”);
}
@EventHandler
public void Init(FMLInitializationEvent event)
{
proxy.registerRender();
if(event.getSide().isClient())
{
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(cuivreLingot, 0, new ModelResourceLocation(“modegypte:cuivre_Lingot”, “inventory”));
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(cuivreBloc, 0, new ModelResourceLocation(“modegypte:cuivre_bloc”, “inventory”));
}
}
@EventHandler
public void postInit(FMLPostInitializationEvent event)
{
}
}[font=Ubuntu, sans-serif -
Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(Item.getItemFromBlock(cuivreLingot), 0, new ModelResourceLocation(“modegypte:cuivre_Lingot”, “inventory”));