Résolu Un tileEntity pour Deux Block
-
Alors voila je ne sais pas trop comment expliquer mais j’ai un block qui a deux état activé et désactivé, quand il est activé celui ci doit s’allumer et pour sa qu’un seul moyen créer un autre block et remplacer le premier a l’image du furnace j’ai trouvé sa :
/** * Update which block the furnace is using depending on whether or not it is burning */ public static void updateFurnaceBlockState(boolean p_149931_0_, World p_149931_1_, int p_149931_2_, int p_149931_3_, int p_149931_4_) { int l = p_149931_1_.getBlockMetadata(p_149931_2_, p_149931_3_, p_149931_4_); TileEntity tileentity = p_149931_1_.getTileEntity(p_149931_2_, p_149931_3_, p_149931_4_); field_149934_M = true; if (p_149931_0_) { p_149931_1_.setBlock(p_149931_2_, p_149931_3_, p_149931_4_, Blocks.lit_furnace); } else { p_149931_1_.setBlock(p_149931_2_, p_149931_3_, p_149931_4_, Blocks.furnace); } field_149934_M = false; p_149931_1_.setBlockMetadataWithNotify(p_149931_2_, p_149931_3_, p_149931_4_, l, 2); if (tileentity != null) { tileentity.validate(); p_149931_1_.setTileEntity(p_149931_2_, p_149931_3_, p_149931_4_, tileentity); } }
Mais sa ne fonctionne pas…
-
C’est simple, dans la classe où tu déclares tes blocs, tu crées deux blocs, un pour éteint et un allumé, par exemple:
public static Block lampOff; public static Block lampOn;
puis tu adaptes la méthode que tu as mis au dessus avec tes noms de blocs.
Autre chose, est-tu sûr d’avoir appelé cette méthode quelque part ? -
Nan mais je l’ai adapté j’ai mis ce code dans displayrandomtick mais sa bug alors que des base tout fonctionne.
-
Non, tu peux passer par la méthode getLightValue. Perso j’ai un four sur un seul bloc ce qui permet d’utiliser moins d’id : https://github.com/FFMT/Privatizer/blob/master/privatizer_src/fr/mcnanotech/privatizer/common/BlockPrivate.java#L486
Le four est le bloc de metadata 3. -
Ça fonctionne très bien merci ! Sujet résolut.