Les choses étranges du code de Minecraft
-
Quand on comprend pas le code c’est normal de dire des trucs chelou comme ça
-
(Quelque peu hors-sujet mais le Moteur MyBB vient de m’envoyer un MP de suivi pour ce sujet… MP commençant par "SCAREX, "…)
-
What ? Screenshot ?
-
@‘robin4002’:
What ? Screenshot ?
:::
::: -
Scarex aurait-il des acces root? xD
-
Euh j’étais pas au courant
Envoyé de mon SM-G920F en utilisant Tapatalk
-
Je crois que cette fonctionnalité a un soucis x)
-
protected ModelResourceLocation(int p_i46078_1_, String … p_i46078_2_) { super(0, new String[] {p_i46078_2_[0], p_i46078_2_[1]}); this.variant = StringUtils.isEmpty(p_i46078_2_[2]) ? "normal" : p_i46078_2_[2].toLowerCase(); }
Un argument inutile dans le constructeur
-
Regarde que ce soit pas une correction forge
-
C’est à dire ? Comment faire ?
-
Je pensais que c’était un patch forge, mais en fait non, donc c’est Mojang
-
Ma nouvelle découverte concerne le code de forge cette fois-ci, je vous laisse découvrir le code afin de ne pas spoiler :
private static Map<pair<item, integer="">, Class> tileItemMap = Maps.newHashMap(); public static void renderTileItem(Item item, int metadata) { Class tileClass = tileItemMap.get(Pair.of(item, metadata)); if (tileClass != null) { TileEntitySpecialRenderer r = TileEntityRendererDispatcher.instance.getSpecialRendererByClass(tileClass); if (r != null) { r.renderTileEntityAt(null, 0, 0, 0, 0, -1); } } } /** * @deprecated Will be removed as soon as possible, hopefully 1.9. */ @Deprecated public static void registerTESRItemStack(Item item, int metadata, Class TileClass) { tileItemMap.put(Pair.of(item, metadata), TileClass); }
Ceci est du code de minecraft 1.10.2, ici nous pouvons voir qu’il faut enregistrer un TESR avec une TileEntity afin de faire le rendu spécial d’un item. Donc si vous voulez faire un rendu spécial, vous devez créer une TileEntity avec rien dedans (de plus vous ne pouvez pas créer une TileEntity pour plusieurs items à rendre car vous n’avez pas l’instance de l’item en paramètre, donc 1 rendu spécial = une tile entity).</pair<item,>
-
Car cette fonction n’est prévu que pour les TESR normalement et non pour les autres items.
-
Oui mais pourquoi ne pas avoir fait un système de rendu spécialement pour les items plutôt que d’utiliser le système pour les blocks ?
-
Pour les items tu es sensé utiliser les jsons.
-
Le problème c’est que je veux créer un bouclier et pour ça minecraft n’utilise pas les jsons, donc je vais utiliser cette méthode à la place
-
Dans net/minecraft/entity/monster, une classe (non de Mojang) quelque peu inutile. Jugez par vous-même :
// Auto generated package-info by MCP @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault package net.minecraft.entity.monster; import mcp.MethodsReturnNonnullByDefault; import javax.annotation.ParametersAreNonnullByDefault;
EDIT : j’ai oublier, il n’est pas avant la 1.10
-
@‘Axaurus’:
Dans net/minecraft/entity/monster, une classe (non de Mojang) quelque peu inutile. Jugez par vous-même :
// Auto generated package-info by MCP @ParametersAreNonnullByDefault @MethodsReturnNonnullByDefault package net.minecraft.entity.monster; import mcp.MethodsReturnNonnullByDefault; import javax.annotation.ParametersAreNonnullByDefault;
EDIT : j’ai oublier, il n’est pas avant la 1.10
C’est marqué en commentaire en haut du fichier, ça donne des infos sur les méthodes présentes dans les classes du package ‘net.minecraft.entity.monster’
-
Effectivement ces annotations sont générées automatiquement, en revanche je vois pas l’utilité de les mettre dans la classe vu qu’elles sont déjà dans le package-info
-
Peut-être, mais alors juste peut-être, que ce sont des annotations plutôt destinées à des analyseurs statiques, qui peuvent lever des warnings avant même la compilation si l’analyse montre qu’il y a des null potentiels dans les paramètres ou les valeurs de retours.