Résolu Texture qui ne s'affiche pas
-
Yope tout le monde,
voici mon petit problème :
Au début, j’avais créé un item et la texture marchait très bien mais depuis que je l’ai définis comme étant un *ToolMaterial *(plus précisément une Pickaxe), la texture est devenue le fameux cube inconnus !
Et pour en rajouter une couche, si je fais le craft et que je met ma sourie sur l’objet à droite, le jeu crash
:::
[19:22:56] [Client thread/INFO] [STDOUT]: [net.minecraft.init.Bootstrap:printToSYSOUT:660]: –-- Minecraft Crash Report ----
// On the bright side, I bought you a teddy bear!Time: 22/06/15 19:22
Description: Rendering screenjava.lang.NullPointerException: Rendering screen
at net.minecraft.item.ItemStack.getTooltip(ItemStack.java:872)
at net.minecraft.client.gui.GuiScreen.renderToolTip(GuiScreen.java:163)
at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:186)
at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:462)
at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1134)
at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1107)
at net.minecraft.client.Minecraft.run(Minecraft.java:376)
at net.minecraft.client.main.Main.main(Main.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)A detailed walkthrough of the error, its code path and all known details is as follows:
– Head –
Stacktrace:
at net.minecraft.item.ItemStack.getTooltip(ItemStack.java:872)
at net.minecraft.client.gui.GuiScreen.renderToolTip(GuiScreen.java:163)
at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:186)
at net.minecraftforge.client.ForgeHooksClient.drawScreen(ForgeHooksClient.java:462)– Screen render details –
Details:
Screen name: net.minecraft.client.gui.inventory.GuiCrafting
Mouse location: Scaled: (248, 80). Absolute: (497, 319)
Screen size: Scaled: (427, 240). Absolute: (854, 480). Scale factor of 2– Affected level –
Details:
Level name: MpServer
All players: 1 total; [EntityPlayerSP[‘Alexandre1156’/300, l=‘MpServer’, x=-191,76, y=65,00, z=263,44]]
Chunk stats: MultiplayerChunkCache: 169, 169
Level seed: 0
Level generator: ID 00 - default, ver 1. Features enabled: false
Level generator options:
Level spawn location: -192,00,64,00,240,00 - World: (-192,64,240), Chunk: (at 0,4,0 in -12,15; contains blocks -192,0,240 to -177,255,255), Region: (-1,0; contains chunks -32,0 to -1,31, blocks -512,0,0 to -1,255,511)
Level time: 77138 game time, 6000 day time
Level dimension: 0
Level storage version: 0x00000 - Unknown?
Level weather: Rain time: 0 (now: false), thunder time: 0 (now: false)
Level game mode: Game mode: creative (ID 1). Hardcore: false. Cheats: false
Forced entities: 41 total; [EntityPig[‘Pig’/133, l=‘MpServer’, x=-209,13, y=68,00, z=187,94], EntityHorse[‘Horse’/205, l=‘MpServer’, x=-137,28, y=64,00, z=206,53], EntityChicken[‘Chicken’/208, l=‘MpServer’, x=-141,28, y=62,67, z=338,72], EntityChicken[‘Chicken’/209, l=‘MpServer’, x=-143,16, y=62,68, z=338,69], EntitySheep[‘Sheep’/211, l=‘MpServer’, x=-129,25, y=64,00, z=335,13], EntityBat[‘Bat’/150, l=‘MpServer’, x=-205,25, y=32,10, z=189,25], EntityHorse[‘Donkey’/151, l=‘MpServer’, x=-205,78, y=78,00, z=296,63], EntityBat[‘Bat’/92, l=‘MpServer’, x=-257,25, y=27,00, z=196,56], EntityBat[‘Bat’/93, l=‘MpServer’, x=-253,66, y=18,80, z=205,89], EntityBat[‘Bat’/94, l=‘MpServer’, x=-261,65, y=24,06, z=250,43], EntityHorse[‘Donkey’/95, l=‘MpServer’, x=-268,97, y=68,00, z=328,94], EntityBat[‘Bat’/160, l=‘MpServer’, x=-177,31, y=41,10, z=253,25], EntityCow[‘Cow’/225, l=‘MpServer’, x=-119,06, y=64,00, z=276,13], EntitySheep[‘Sheep’/226, l=‘MpServer’, x=-129,03, y=64,00, z=275,09], EntitySheep[‘Sheep’/227, l=‘MpServer’, x=-118,03, y=63,00, z=303,91], EntitySheep[‘Sheep’/230, l=‘MpServer’, x=-113,66, y=78,00, z=333,16], EntityBat[‘Bat’/105, l=‘MpServer’, x=-239,31, y=43,06, z=214,80], EntityBat[‘Bat’/107, l=‘MpServer’, x=-249,48, y=17,22, z=206,17], EntityHorse[‘Donkey’/108, l=‘MpServer’, x=-247,81, y=65,00, z=251,38], EntityPlayerSP[‘Alexandre1156’/300, l=‘MpServer’, x=-191,76, y=65,00, z=263,44], EntityHorse[‘Horse’/178, l=‘MpServer’, x=-145,97, y=64,00, z=193,91], EntityHorse[‘Horse’/179, l=‘MpServer’, x=-154,75, y=63,00, z=213,56], EntityHorse[‘Horse’/180, l=‘MpServer’, x=-152,25, y=63,00, z=217,34], EntityBat[‘Bat’/14836, l=‘MpServer’, x=-179,40, y=29,40, z=190,56], EntityHorse[‘Horse’/181, l=‘MpServer’, x=-157,03, y=64,00, z=208,41], EntityBat[‘Bat’/182, l=‘MpServer’, x=-142,23, y=11,42, z=231,96], EntityHorse[‘Horse’/183, l=‘MpServer’, x=-145,34, y=63,00, z=239,13], EntityHorse[‘Donkey’/184, l=‘MpServer’, x=-151,66, y=64,00, z=247,78], EntityHorse[‘Horse’/185, l=‘MpServer’, x=-153,56, y=63,00, z=243,94], EntityHorse[‘Horse’/186, l=‘MpServer’, x=-156,72, y=64,00, z=252,56], EntityHorse[‘Horse’/187, l=‘MpServer’, x=-158,41, y=64,00, z=251,81], EntityBat[‘Bat’/123, l=‘MpServer’, x=-225,25, y=42,10, z=209,25], EntityHorse[‘Horse’/188, l=‘MpServer’, x=-157,59, y=65,00, z=273,00], EntityBat[‘Bat’/124, l=‘MpServer’, x=-229,50, y=42,88, z=214,49], EntitySquid[‘Squid’/17788, l=‘MpServer’, x=-126,98, y=59,15, z=326,21], EntitySheep[‘Sheep’/189, l=‘MpServer’, x=-145,97, y=64,00, z=289,94], EntityBat[‘Bat’/125, l=‘MpServer’, x=-206,94, y=22,06, z=231,36], EntitySquid[‘Squid’/17789, l=‘MpServer’, x=-130,88, y=59,00, z=324,95], EntityBat[‘Bat’/19069, l=‘MpServer’, x=-173,04, y=42,49, z=226,70], EntitySheep[‘Sheep’/190, l=‘MpServer’, x=-151,97, y=64,00, z=293,06], EntityHorse[‘Donkey’/126, l=‘MpServer’, x=-224,53, y=65,00, z=246,25]]
Retry entities: 0 total; []
Server brand: fml,forge
Server type: Integrated singleplayer server
Stacktrace:
at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:392)
at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2600)
at net.minecraft.client.Minecraft.run(Minecraft.java:398)
at net.minecraft.client.main.Main.main(Main.java:117)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at net.minecraftforge.gradle.GradleStartCommon.launch(Unknown Source)
at GradleStart.main(Unknown Source)– System Details –
Details:
Minecraft Version: 1.8
Operating System: Windows 8.1 (amd64) version 6.3
Java Version: 1.8.0_40, Oracle Corporation
Java VM Version: Java HotSpot 64-Bit Server VM (mixed mode), Oracle Corporation
Memory: 598325664 bytes (570 MB) / 1038876672 bytes (990 MB) up to 1038876672 bytes (990 MB)
JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
IntCache: cache: 0, tcache: 0, allocated: 13, tallocated: 95
FML: MCP v9.10 FML v8.0.73.1361 Minecraft Forge 11.14.1.1361 4 mods loaded, 4 mods active
mcp{9.05} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
FML{8.0.73.1361} [Forge Mod Loader] (forgeSrc-1.8-11.14.1.1361.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Forge{11.14.1.1361} [Minecraft Forge] (forgeSrc-1.8-11.14.1.1361.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
mt{1.0.0} [Multi-Tools] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
Loaded coremods (and transformers):
Launched Version: 1.8
LWJGL: 2.9.1
OpenGL: Intel HD Graphics 4600 GL version 4.2.0 - Build 10.18.10.3496, Intel
GL Caps: Using GL 1.3 multitexturing.
Using GL 1.3 texture combiners.
Using framebuffer objects because OpenGL 3.0 is supported and separate blending is supported.
Shaders are available because OpenGL 2.1 is supported.
VBOs are available because OpenGL 1.5 is supported.Using VBOs: Yes
Is Modded: Definitely; Client brand changed to ‘fml,forge’
Type: Client (map_client.txt)
Resource Packs: []
Current Language: English (US)
Profiler Position: N/A (disabled)
:::Après, je voulais vous demander, comment apprendre à apprendre ?
Et enfin, comment bien lire un Crash Report ? (sa devrait faire l’objet d’un tutorial tien !)Merci !
-
Il ne faut pas définir un item comme un ToolMaterial c’est deux chose bien distincte, le ToolMaterial qui ce définie avant l’item :
public static ToolMaterial enumToolMaterialTest = EnumHelper.addToolMaterial("TEST", 4, 1750, 10.0F, 5.0F, 8);
[Exemple pour le diamant appelé EMERALD dans les matériaux]
EMERALD(3, 1561, 8.0F, 3.0F, 10);
Puis l’item (sans oublier de l’enregistrer à la suite):
public static Item testPickaxe = new BasePickaxe(enumToolMaterialTest);
Et finalement la classe “BasePickaxe” pour l’exemple qui doit ressembler à ça et être toujours extends d’ “ItemPickaxe”:
public class BasePickaxe extends ItemPickaxe { public BasePickaxe(ToolMaterial material) { super(material); } }
-
Bonne idée pour le tuto, c’est vrai que pas mal de personnes ne savent pas le lire.
Il faut que tu mettes dans ton .json que ton item est extends Tool. Je ne connais pas le nom du fichier json mais regarde comment c’est fait pour les outils vanilla. Pour le crash report, envoi la classe de ton item.
-
Au niveau des crash reports il faut surtout regarder les classes que pointent le rapport. Et aussi le type d erreur, quand il s agit d un npe c est pratique de le savoir car c est facile à résoudre.
-
C’est prévu pour ces grandes vacances. Je me rends compte que pleins de gens ne savent pas lire un stacktrace pourtant c’est super facile.
Il y a l’exception puis la classe dans laquelle l’exception s’est produite puis ça remonte toutes les classes qui ont abouti à l’appel de ce qui a déclenché l’exception jusqu’à la classe Main de l’application.Avec le stacktrace on trouve rapidement où se trouve l’erreur (souvent sur la première classe du stacktrace, dès fois faut un peu remonter) et ensuite suffit de lire la doc de l’exception pour régler le problème.
-
D’abord, merci à vous 4 pour vos réponses (très) rapide !
→EmotionFox: J’ai fait un peu près la même chose, enfaîte, j’ai “créé” l’item A, ensuite le *ToolMaterial *B et j’ai dit que l’item A = ToolMaterial B (pour faire court) mais merci quand même, tu m’as permis d’alléger un peu le code et de mieux me retrouver
→SCAREX: C’est vrai que j’étais assez étonné de voir qu’aucun tutoriel n’as été fait sur comment bien lire un crash report alors que ça fait quand même partie d’un des problèmes n°1 dans les mods.
Vous n’allez pas le croire mais en trifouillant dans le .json et voyant que mes techniques ne marche pas, j’ai remis comme avant et ça remarche o_0
L’hypothèse qui me vient à l’esprit, et peut-être que j’ai pas mis le “s” à item (on vois bien le débutant que je suis).Ensuite, personne n’as répondus pour la question “comment apprendre à apprendre”, peut-être qu’elle est trop longue à répondre.
Bref, merci d’avoir accorder un peu de votre temps et (peut-être) a une prochaine fois !
Merki encore !
(je laisse le post non-résolu pendant un petit temps pour voir si quelqu’un à la fameuse question).
-
Je ne l’avais pas vu, j’ai lu le message en diagonal.
Le modding tout comme la programmation s’apprend sur le tas, en pratiquant. Le mieux est de commencer par apprendre le langage Java. Il existe de très nombreux tutoriels sur le web, il faut lire les différents cours qui explique à quoi sert les différentes choses et ensuite il faut passer à la pratique (soit en faisait des petits tp soit en suivant directement nos tutoriels de modding en lisant bien le code et en essayant de comprendre ce que fait chaque choses).
-
Merci encore robin4002 pour m’avoir un peu plus éclairé !
Je met le post en résolus