Block ISBRH - Problème de luminosité + questions supplémentaires
-
A ce moment la tu as juste une fonction onBlockPlaced (je crois) dans laquelle tu poses tous les autres blocks
-
Merci a tout les deux. Je ne veux pas passé par TESR car ça fait une entité et je ne cherche pas a en avoir car sur le serveur, il y en à déjà masse et je ne veux pas en rajouter encore plus. Surtout pour ce que l’on veux faire. Donc passer par Isbrh me parait le plus adapté. J’espère donc que quelqu’un a une solution au rendu sombre.
Q1 - Merci pour ton lien mais j’ai déjà vu. Mes blocs sont déjà orientable selon où regarde le joueur. Par contre je ne trouve pas comment faire un render avec ce même bloc pour faire un angle. Comme les escaliers de minecraft le font.
Q2 - C’est tout a fait ça Toutoune1008. Cependant je ne connais pas cette fonction Scarex. Quelqu’un pourrait me faire un exemple svp ?
-
Q1 Au moment où le bloc est placé, il faut que tu vérifies les blocs autour et que tu changes ta metadata (et donc le rendu) en fonction de ça.
Q2 Recherches (ctrl + f) la fonction “onBlockAdded” dans le classe BlockDoor, ce sera plus explicite que toute explication. Normalement il y l’orientation puis la pose du block au dessus dans cette fonction. -
Les TESR ajoutent juste une TileEntity, pas une entité à part entière comme un zombie. Ils sont donc moins lourd, en revanche tu as raison les TileEntity peuvent ralentir le jeu mais il faut en avoir une quantité astronomique pour voir une différence
-
Notre projet est de refaire le château de Versailles avec tout les bâtiments qui le compose ainsi que tout les jardins. Nous avons donc énormément de travail a faire et je te laisse imaginé la taille que ça va faire. Si tu veux un aperçu, tu peux aller sur la dynmap aux coordonnées -500 et -1050. Le rdc du château est en cours de construction. Donc malheureusement pour moi, il y aura une quantité astronomique de blocs sachant que nous allons aussi faire tout l’intérieure du château pièces par pièces. C’est pour cela que je préfère rester sur du Isbrh.
Parmi ceux qui m’ont répondu, vous ne savez donc pas comment on corrige le problème du bloc sombre ? Si quelqu’un d’autre le sait, hésitez pas à répondre

Q1 : est-ce bien ce code qu’il faut utiliser ?:::
public void onBlockAdded(World p_149726_1_, int p_149726_2_, int p_149726_3_, int p_149726_4_) { this.onNeighborBlockChange(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_, Blocks.air); this.field_150149_b.onBlockAdded(p_149726_1_, p_149726_2_, p_149726_3_, p_149726_4_); }:::
Q2 : est-ce bien ce code qu’il faut utiliser ?:::
public void func_150147_e(IBlockAccess p_150147_1_, int p_150147_2_, int p_150147_3_, int p_150147_4_) { int l = p_150147_1_.getBlockMetadata(p_150147_2_, p_150147_3_, p_150147_4_); if ((l & 4) != 0) { this.setBlockBounds(0.0F, 0.5F, 0.0F, 1.0F, 1.0F, 1.0F); } else { this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 0.5F, 1.0F); } }:::
-
Q1) “field_150149_b” correspond à quoi ?
Q2) Je peux pas être sur (comme elle a un nom en func_……). Mais par contre il va falloir que tu la changes (tu set les BlocksBounds des dalles). -
Q1 : Je sais pas, j’ai simplement récupéré le code, j’ai rien modifié.
Q2 : Pareil que la Q1, j’ai juste récupéré le code.
-
Q1) Si tu as copié le code et si tu le colles dans ton block, tu as forcément ce field, sinon t’aurais une erreur.
Q2) Tu l’as pris où ? Dans la slab ? -
Q1 : Non car j’ai mis des // devant chaque lignes pour pas avoir d’erreurs pour le moment. Comme ça vient du code minecraft, je ne sais pas a quoi ça correspond. D’ailleurs, les p_149726_1_ ect correspondent a quoi la ? Les metadata ?
PS : ce code est pris dans la class des escaliers (BlockStairs, ligne 483).
Q2 : J’ai pris dans ce code dans la class des escaliers aussi (BlockStairs, ligne 85)
-
public void onBlockAdded(World world, int x, int y, int z)
public void func_150147_e(IBlockAccess world, int x, int y, int z)
-
Merci Scarex. A quoi correspond la fonction “func_150147_e” stp ?
-
On peut pas savoir (je pense que ça doit-être onNeightborBlockChange()), essaye de mettre à jour tes mappings (ce qui convertit ces trucs incomprehenssibles en trucs lisibles), regarde le tuto pour installer les sources, c’est expliqué.
Pour savoir à quoi correspond le “this.field……”, retournes où tu l’as trouvé et fais ctrl + clic dessus. -
Ok merci je verrais ça plus tard du coup. Sinon, personnes ne sait pour mon problème principal ? [size=smallJ’ai mis le code ci-dessous dans la class du bloc et j’ai aussi essayer après dans la class du rendu du bloc mais cela ne change rien.]
@SideOnly(Side.CLIENT) public float getAmbientOcclusionLightValue() { return 1.0F; } -
Essaye de changer la valeur, voir ce que ça fait
-
Déjà fait aussi.
Ça rend le bloc plus lumineux mais le problème est toujours la. De plus, les 3 autres côté sont encore plus lumineux qu’avant (et ça rend super moche car on vois très très mal les rendu).
-
J’ai pas le code en face de moi, mais dans le code des dalles (et/ou escaliers), dans leur constructeur, il me semble qui y a un this.setje sais plus quoi en rapport avec ça, je te dis ça ce soir si ta pas trouvé
-
Il y a bien “this.setLightOpacity(255);” mais je viens de testé et ça fait rien.
-
Essaye “this.useNeighborBrightness = true” (j’ai ça dans ma slab) et si ça marche pas, avec la light opacity à 0 (ce que j’ai sur mes escaliers).
-
Ni l’un ni l’autre ne fonctionnent.
-
Bon ben je vois pas alors
désolé, peut-être que quelqu’un d’autre trouveraEdit : Essaye de voir du côté des BlocksLayer avec cette fonction :
@SideOnly(Side.CLIENT) public EnumWorldBlockLayer getBlockLayer() { return EnumWorldBlockLayer.SOLID; }Je te laisse voir, en exemple, le verre c’est CUTOUT, après je sais pas si ça peut résoudre le problème (cette fonction n’est pas changée par les blocks tels que les escaliers).
Et précision, le [font=Ubuntu, sans-serif“this.useNeighborBrightness = true” est bien là pour les escaliers et slabs.]