Block avec TileEntity et multiple GUI



  • Hey 🙂

    Je peine a trouver comment faire un Block qui possède une TileEntity et qui possèdent plusieurs GUI.

    Le block tout d'abbord :
    Dois-je étendre Block ? ou BlockContainer ?

    BlockContainer extend Block.
    BlockContainer me demande de définir une methode createNewTileEntity(World, int).
    Seulement dans la classe Block j'ai une méthode createTileEntity(World, int).

    Qu'elle est différence si ce n'est le nom ?!

    Block possède une methode breakBlock() qui vérifie si le block possède une TileEntity et est du type BlockContainer.
    Si c'est le cas, il supprimer la TileEntity associée au bloc.

    BlockContainer surcharge la méthode breakBlock : il appel la méthode super.breakBlock puis supprime la TileEntity assossié au block. Alors que s'il y en a une elle a forcément été supprimer dans le super.breakBlock.
    Donc ça ne sert a rien de refaire un removeTileEntity ensuite _

    Quelqu'un peut-il m'expliquer ? merci 🙂


  • Administrateurs

    Utilise juste Block. BlockContainer est une classe utilisé par minecraft qui n'a aucun intérêt avec Forge.
    Forge ajoute ces propres méthodes createTileEntity(World, int) et hasTileEntity(int) pour les tile entity car celle de minecraft ne supportait pas les metadata (elle support les metadata depuis la 1.7, mais forge n'a pas retiré ça méthode depuis et celle de forge va surement rester car ça fonction hasTileEntity(int) est plus pratique que ce qu'utilise minecraft pour savoir si le bloc à un tile entity).

    Donc utilise juste createTileEntity(World, int) et hasTileEntity(int) avec comme classe mère Block.java, comme expliqué dans les tutoriels.



  • Ok merci 🙂