MFF

    Minecraft Forge France
    • Récent
    • Mots-clés
    • Populaire
    • Utilisateurs
    • Groupes
    • Forge Events
      • Automatique
      • Foncé
      • Clair
    • S'inscrire
    • Se connecter

    Rendu complexe de bloc via TESR

    Planifier Épinglé Verrouillé Déplacé Les blocs
    1.6.x
    215 Messages 31 Publieurs 75.2k Vues 1 Watching
    Charger plus de messages
    • Du plus ancien au plus récent
    • Du plus récent au plus ancien
    • Les plus votés
    Répondre
    • Répondre à l'aide d'un nouveau sujet
    Se connecter pour répondre
    Ce sujet a été supprimé. Seuls les utilisateurs avec les droits d'administration peuvent le voir.
    • S Hors-ligne
      sisidney
      dernière édition par

      Merci beaucoup !
      J’ai donc réussi a faire pivoté la hit-box en fonction de la direction du bloc mais cependant j’ai encore un petit souci (c’est promit , c’est le dernier) lorsque je met le curseur a coté du bloc sa me le sélectionne quand même. Peut tu me dire comment je pourrai réglé ce souci , j’ai était jeté un coup d’œil du coté de la vine mais rien de bien intéressent.
      Voici un petit screen shot :
      http://zupimages.net/viewer.php?id=14/15/s0xp.png

      Cordialement Sidney

      1 réponse Dernière réponse Répondre Citer 0
      • robin4002R Hors-ligne
        robin4002 Moddeurs confirmés Rédacteurs Administrateurs
        dernière édition par

        Étrange, je ne vois pas comment régler ça, désolé 😕

        1 réponse Dernière réponse Répondre Citer 0
        • S Hors-ligne
          sisidney
          dernière édition par

          Ok pas grave. Merci quand même !! 🙂

          1 réponse Dernière réponse Répondre Citer 0
          • jglrxavpokJ Hors-ligne
            jglrxavpok Modérateurs
            dernière édition par

            @‘sisidney’:

            Merci beaucoup !
            J’ai donc réussi a faire pivoté la hit-box en fonction de la direction du bloc mais cependant j’ai encore un petit souci (c’est promit , c’est le dernier) lorsque je met le curseur a coté du bloc sa me le sélectionne quand même. Peut tu me dire comment je pourrai réglé ce souci , j’ai était jeté un coup d’œil du coté de la vine mais rien de bien intéressent.
            Voici un petit screen shot :
            http://zupimages.net/viewer.php?id=14/15/s0xp.png

            Cordialement Sidney

            Es-tu sûr d’avoir utilisé le même principe pour la méthode getSelectedBoundingBoxFromPool?
            Sinon, met dans une méthode (peu importe laquelle) et fais Control+Espace (sous Eclipse, en tout cas) pour avoir la liste des méthodes disponibles.
            Cherches-en celles qui renvoient AxisAlignedBB et essaie d’appliquer le même traitement que pour les deux méthodes citées dans les précédents posts.

            Modérateur sur MFF. 
            Mon Github: http://github.com/jglrxavpok
            Mon compte Steam si vous voulez jouer à CS:GO ou TF2 avec moi: https://steamcommunity.com/id/jglrxavpok/

            1 réponse Dernière réponse Répondre Citer 0
            • S Hors-ligne
              sisidney
              dernière édition par

              Ok merci 🙂 Je vais regardé ça !

              1 réponse Dernière réponse Répondre Citer 0
              • Cuty-StarkC Hors-ligne
                Cuty-Stark
                dernière édition par

                [size=largeBonjour,

                Tout d’abord, merci à tous ceux qui ont écrit les tutoriaux et fait les vidéos de votre chaîne. Sans tout cela, j’aurais été incapable de réaliser ce que vous pouvez voir ci-dessous: un scorpion et un coffre. Ce sont une entité et un bloc :). En plus, ces tutoriels fonctionnent pour la 1.7.x ! Donc, un grand merci <3.

                Malheureusement, j’ai un problème… Eh oui :/. Comme vous pouvez-le voir sur le screenshot, un petit cadre noir s’affiche autour de mon coffre. Pour faire cela, j’ai écris ces deux méthodes dans la classe de mon block:

                
                //Cadre (fine ligne noir) autour du block
                @SideOnly(Side.CLIENT)
                public AxisAlignedBB getSelectedBoundingBoxFromPool(World world, int x, int y, int z)
                {
                return AxisAlignedBB.getAABBPool().getAABB((double)x + this.minX, (double)y + this.minY, (double)z + this.minZ, (double)x + 2.10D, (double)y + 1.20D, (double)z + 1.65D);
                }
                
                //Empeche les mobs de traverser le cardre ci-dessus
                public AxisAlignedBB getCollisionBoundingBoxFromPool(World world, int x, int y, int z)
                {
                return AxisAlignedBB.getAABBPool().getAABB((double)x + this.minX, (double)y + this.minY, (double)z + this.minZ, (double)x + 2.10D, (double)y + 1.20D, (double)z + 1.65D);
                }
                
                

                Cependant, elles ne permettent pas d’empêcher un joueur ou un mob de les traverser. Hors, j’aimerais qu’on ne puisse pas traverser mon coffre. Regardez:

                Donc, je vous demande: ] Existe-t-il une méthode pour remplir les blocks couvert par le coffre, et empêcher ainsi qu’on puisse les traverser ?
                %(#000000)[Merci d’avance pour votre aide !

                Au revoir :)]

                1 réponse Dernière réponse Répondre Citer 0
                • isadorI Hors-ligne
                  isador Moddeurs confirmés Modérateurs
                  dernière édition par

                  Le ne me souvient plus de la méthode exacte donc je te cherche ça quand je go au pc

                  1 réponse Dernière réponse Répondre Citer 0
                  • robin4002R Hors-ligne
                    robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                    dernière édition par

                    Déjà traité dans la section support pour les moddeurs. Il faut poser un second bloc en même temps et l’enleve quand un des deux est détruit (onBlockPlacedBy et blockBreak).

                    1 réponse Dernière réponse Répondre Citer 0
                    • M Hors-ligne
                      MrAzErTy31
                      dernière édition par

                      Bonjour j’ai un petit problème, quand je regarde dans l’inventaire (le rendu du block) ou que je me give le block, le jeu crash instantanément … Je ne sais aps pourquoi, j’ai pourtant suvi le tutoriel là la lettre … Ps: Je suis en Forge 1.7.2

                      Crash :

                      
                      Time: 18/05/14 10:15
                      Description: Rendering item
                      
                      java.lang.NullPointerException: Rendering item
                      at net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer.bindTexture(TileEntitySpecialRenderer.java:21)
                      at fr.mrazerty31.MoreFurnitures.proxy.TileEntityChairSpecialRender.renderTileEntityChairAt(TileEntityChairSpecialRender.java:38)
                      at fr.mrazerty31.MoreFurnitures.proxy.TileEntityChairSpecialRender.renderInventory(TileEntityChairSpecialRender.java:25)
                      at fr.mrazerty31.MoreFurnitures.proxy.TESRInventoryRenderer.renderInventoryBlock(TESRInventoryRenderer.java:49)
                      at cpw.mods.fml.client.registry.RenderingRegistry.renderInventoryBlock(RenderingRegistry.java:125)
                      at net.minecraft.src.FMLRenderAccessLibrary.renderInventoryBlock(FMLRenderAccessLibrary.java:59)
                      at net.minecraft.client.renderer.RenderBlocks.renderBlockAsItem(RenderBlocks.java:8378)
                      at net.minecraft.client.renderer.entity.RenderItem.renderItemIntoGUI(RenderItem.java:447)
                      at net.minecraft.client.renderer.entity.RenderItem.renderItemAndEffectIntoGUI(RenderItem.java:560)
                      at net.minecraft.client.gui.inventory.GuiContainer.func_146977_a(GuiContainer.java:291)
                      at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:118)
                      at net.minecraft.client.renderer.InventoryEffectRenderer.drawScreen(InventoryEffectRenderer.java:44)
                      at net.minecraft.client.gui.inventory.GuiContainerCreative.drawScreen(GuiContainerCreative.java:672)
                      at net.minecraft.client.renderer.EntityRenderer.updateCameraAndRender(EntityRenderer.java:1143)
                      at net.minecraft.client.Minecraft.runGameLoop(Minecraft.java:1022)
                      at net.minecraft.client.Minecraft.run(Minecraft.java:910)
                      at net.minecraft.client.main.Main.main(Main.java:112)
                      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:134)
                      at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                      
                      A detailed walkthrough of the error, its code path and all known details is as follows:
                      ---------------------------------------------------------------------------------------
                      
                      -- Head --
                      Stacktrace:
                      at net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer.bindTexture(TileEntitySpecialRenderer.java:21)
                      at fr.mrazerty31.MoreFurnitures.proxy.TileEntityChairSpecialRender.renderTileEntityChairAt(TileEntityChairSpecialRender.java:38)
                      at fr.mrazerty31.MoreFurnitures.proxy.TileEntityChairSpecialRender.renderInventory(TileEntityChairSpecialRender.java:25)
                      at fr.mrazerty31.MoreFurnitures.proxy.TESRInventoryRenderer.renderInventoryBlock(TESRInventoryRenderer.java:49)
                      at cpw.mods.fml.client.registry.RenderingRegistry.renderInventoryBlock(RenderingRegistry.java:125)
                      at net.minecraft.src.FMLRenderAccessLibrary.renderInventoryBlock(FMLRenderAccessLibrary.java:59)
                      at net.minecraft.client.renderer.RenderBlocks.renderBlockAsItem(RenderBlocks.java:8378)
                      at net.minecraft.client.renderer.entity.RenderItem.renderItemIntoGUI(RenderItem.java:447)
                      
                      -- Item being rendered --
                      Details:
                      Item Type: net.minecraft.item.ItemBlock@56c96a62
                      Item Aux: 0
                      Item NBT: null
                      Item Foil: false
                      Stacktrace:
                      at net.minecraft.client.renderer.entity.RenderItem.renderItemAndEffectIntoGUI(RenderItem.java:560)
                      at net.minecraft.client.gui.inventory.GuiContainer.func_146977_a(GuiContainer.java:291)
                      at net.minecraft.client.gui.inventory.GuiContainer.drawScreen(GuiContainer.java:118)
                      at net.minecraft.client.renderer.InventoryEffectRenderer.drawScreen(InventoryEffectRenderer.java:44)
                      at net.minecraft.client.gui.inventory.GuiContainerCreative.drawScreen(GuiContainerCreative.java:672)
                      
                      -- Screen render details --
                      Details:
                      Screen name: net.minecraft.client.gui.inventory.GuiContainerCreative
                      Mouse location: Scaled: (225, 128). Absolute: (450, 222)
                      Screen size: Scaled: (427, 240). Absolute: (854, 480). Scale factor of 2
                      
                      -- Affected level --
                      Details:
                      Level name: MpServer
                      All players: 1 total; [EntityClientPlayerMP['Player624'/49, l='MpServer', x=-482,50, y=5,62, z=-279,50]]
                      Chunk stats: MultiplayerChunkCache: 225, 225
                      Level seed: 0
                      Level generator: ID 01 - flat, ver 0\. Features enabled: false
                      Level generator options:
                      Level spawn location: World: (-489,4,-277), Chunk: (at 7,0,11 in -31,-18; contains blocks -496,0,-288 to -481,255,-273), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,0,-512 to -1,255,-1)
                      Level time: 144 game time, 144 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: 8 total; [EntitySlime['Slime'/7788, l='MpServer', x=-490,80, y=4,00, z=-225,43], EntitySlime['Slime'/8138, l='MpServer', x=-459,50, y=4,00, z=-228,72], EntitySlime['Slime'/7202, l='MpServer', x=-451,81, y=4,00, z=-225,55], EntitySlime['Slime'/20525, l='MpServer', x=-561,81, y=4,00, z=-343,31], EntitySlime['Slime'/7200, l='MpServer', x=-453,54, y=4,00, z=-238,64], EntitySlime['Slime'/9123, l='MpServer', x=-517,09, y=4,00, z=-278,41], EntityClientPlayerMP['Player624'/49, l='MpServer', x=-482,50, y=5,62, z=-279,50], EntitySlime['Slime'/10016, l='MpServer', x=-461,97, y=4,77, z=-330,11]]
                      Retry entities: 0 total; []
                      Server brand: fml,forge
                      Server type: Integrated singleplayer server
                      Stacktrace:
                      at net.minecraft.client.multiplayer.WorldClient.addWorldInfoToCrashReport(WorldClient.java:412)
                      at net.minecraft.client.Minecraft.addGraphicsAndWorldToCrashReport(Minecraft.java:2521)
                      at net.minecraft.client.Minecraft.run(Minecraft.java:932)
                      at net.minecraft.client.main.Main.main(Main.java:112)
                      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:134)
                      at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
                      
                      – System Details --
                      Details:
                      Minecraft Version: 1.7.2
                      Operating System: Windows 7 (amd64) version 6.1
                      Java Version: 1.7.0_21, Oracle Corporation
                      Java VM Version: Java HotSpot(TM) 64-Bit Server VM (mixed mode), Oracle Corporation
                      Memory: 946895344 bytes (903 MB) / 1056309248 bytes (1007 MB) up to 1056309248 bytes (1007 MB)
                      JVM Flags: 3 total; -Xincgc -Xmx1024M -Xms1024M
                      AABB Pool Size: 9251 (518056 bytes; 0 MB) allocated, 155 (8680 bytes; 0 MB) used
                      IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
                      FML: MCP v9.01-pre FML v7.2.156.1060 Minecraft Forge 10.12.1.1060 4 mods loaded, 4 mods active
                      mcp{8.09} [Minecraft Coder Pack] (minecraft.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
                      FML{7.2.156.1060} [Forge Mod Loader] (forgeSrc-1.7.2-10.12.1.1060.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
                      Forge{10.12.1.1060} [Minecraft Forge] (forgeSrc-1.7.2-10.12.1.1060.jar) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
                      morefurnitures{0.0.1} [More Furnitures] (bin) Unloaded->Constructed->Pre-initialized->Initialized->Post-initialized->Available->Available->Available->Available
                      Launched Version: 1.6
                      LWJGL: 2.9.0
                      OpenGL: GeForce GT 630/PCIe/SSE2 GL version 4.4.0, NVIDIA Corporation
                      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)
                      Vec3 Pool Size: 353 (19768 bytes; 0 MB) allocated, 65 (3640 bytes; 0 MB) used
                      Anisotropic Filtering: Off (1)
                      #@!@# Game crashed! Crash report saved to: #@!@# C:\Users\Guillaume\Desktop\Programmation\Programmes\Minecraft\Mods\New 1.7.2\More Furnitures\eclipse\.\crash-reports\crash-2014-05-18_10.15.43-client.txt
                      AL lib: (EE) alc_cleanup: 1 device not closed
                      
                      

                      Mes mods :

                      >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
                      CraftYourMenu : http://minecraftforgefrance.fr/showth…

                      1 réponse Dernière réponse Répondre Citer 0
                      • isadorI Hors-ligne
                        isador Moddeurs confirmés Modérateurs
                        dernière édition par

                        Problème au niveau du proxy

                        1 réponse Dernière réponse Répondre Citer 0
                        • M Hors-ligne
                          MrAzErTy31
                          dernière édition par

                          Je vais voir si j’ai bien tout mis ^^ Merci de ta réponse 🙂


                          Je ne vois rien dans le Client Proxy qui pourrait causer un crash Oo

                          Mon ClientProxy.java :

                          
                          package fr.mrazerty31.MoreFurnitures.proxy;
                          
                          import cpw.mods.fml.client.registry.ClientRegistry;
                          import cpw.mods.fml.client.registry.RenderingRegistry;
                          import fr.mrazerty31.MoreFurnitures.MoreFurnitures;
                          import fr.mrazerty31.MoreFurnitures.TileEntityChair;
                          import fr.mrazerty31.MoreFurnitures.proxy.TESRInventoryRenderer.TESRIndex;
                          
                          public class ClientProxy extends CommonProxy
                          {
                          public static int renderInventoryTESRId;
                          
                          @Override
                          public void registerRender()
                          {
                          renderInventoryTESRId = RenderingRegistry.getNextAvailableRenderId();
                          RenderingRegistry.registerBlockHandler(new TESRInventoryRenderer());
                          }
                          
                          @Override
                          public void registerTileEntityRender()
                          {
                          ClientRegistry.bindTileEntitySpecialRenderer(TileEntityChair.class, new TileEntityChairSpecialRender());
                          TESRInventoryRenderer.blockByTESR.put(new TESRIndex(MoreFurnitures.woodenChair, 0), new TileEntityChairSpecialRender());
                          }
                          }
                          
                          

                          Mes mods :

                          >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
                          CraftYourMenu : http://minecraftforgefrance.fr/showth…

                          1 réponse Dernière réponse Répondre Citer 0
                          • kevin_68K Hors-ligne
                            kevin_68 Moddeurs confirmés
                            dernière édition par

                            Le problème est très simple:
                            [1.6.x] Rendu complexe de bloc via TESR
                            “j’ai pourtant suvi le tutoriel là la lettre … Ps: Je suis en Forge 1.7.2”

                            Si tu l’as suivi à la lettre c’est normal que ça ne fontionne pas en 1.7 vu que le tuto est pour 1.6

                            Sinon je pourrais voir ton TileEntitySpecialRender


                            Mettez à jours vers la dernière version stable (1.8.9 voir même…

                            1 réponse Dernière réponse Répondre Citer 0
                            • M Hors-ligne
                              MrAzErTy31
                              dernière édition par

                              Je te le donne :

                              
                              package fr.mrazerty31.MoreFurnitures.proxy;
                              
                              import net.minecraft.client.renderer.tileentity.TileEntitySpecialRenderer;
                              import net.minecraft.tileentity.TileEntity;
                              import net.minecraft.util.ResourceLocation;
                              
                              import org.lwjgl.opengl.GL11;
                              
                              import fr.mrazerty31.MoreFurnitures.ModelChair;
                              import fr.mrazerty31.MoreFurnitures.TileEntityChair;
                              
                              public class TileEntityChairSpecialRender extends TileEntitySpecialRenderer implements IInventoryRenderer
                              {
                              private final ModelChair model = new ModelChair();
                              public static final ResourceLocation textureLocation = new ResourceLocation("morefurnitures", "textures/blocks/woodenchair.png");
                              
                              public TileEntityChairSpecialRender()
                              {
                              
                              }
                              
                              @Override
                              public void renderInventory(double x, double y, double z)
                              {
                              this.renderTileEntityChairAt(null, x, y, z, 0.0F);
                              }
                              
                              @Override
                              public void renderTileEntityAt(TileEntity te, double x, double y, double z, float tick)
                              {
                              this.renderTileEntityChairAt((TileEntityChair)te, x, y, z, tick);
                              }
                              
                              public void renderTileEntityChairAt(TileEntityChair te, double x, double y, double z, float tick)
                              {
                              GL11.glPushMatrix();
                              GL11.glTranslated(x + 0.5F, y + 1.5F, z + 0.5F);
                              this.bindTexture(textureLocation);
                              GL11.glRotatef(180F, 0.0F, 0.0F, 1.0F);
                              this.model.render(0.0625F);
                              GL11.glPopMatrix();
                              }
                              }
                              
                              

                              Ps : Je n’ai pas mis l’instance dans le constructeur car je n’ai pas trouvé le fonction.

                              Mes mods :

                              >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
                              CraftYourMenu : http://minecraftforgefrance.fr/showth…

                              1 réponse Dernière réponse Répondre Citer 0
                              • robin4002R Hors-ligne
                                robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                dernière édition par

                                public TileEntityChairSpecialRender()
                                {
                                this.func_147497_a(TileEntityRendererDispatcher.instance);
                                }
                                

                                Mets ça dans le constructeur, ça devrait être bon.

                                1 réponse Dernière réponse Répondre Citer 0
                                • M Hors-ligne
                                  MrAzErTy31
                                  dernière édition par

                                  Ca marche :DD Merci beaucoup encore une fois !!!

                                  Mes mods :

                                  >! GGButtonMod : http://minecraftforgefrance.fr/showthread.php?tid=1280
                                  CraftYourMenu : http://minecraftforgefrance.fr/showth…

                                  1 réponse Dernière réponse Répondre Citer 0
                                  • pulganP Hors-ligne
                                    pulgan
                                    dernière édition par

                                    Question dans le tuto tu dit ne suivez que la partie Création du modèle sur techne sauf que après tu parle du fichier en java alors il faut le mettre en java car dans la partie création c’est écrit de le mettre en png

                                    1 réponse Dernière réponse Répondre Citer 0
                                    • robin4002R Hors-ligne
                                      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                      dernière édition par

                                      Oui en effet, il faut aussi exporter le modèle en .java, c’est sous entendu par cette phrase :

                                      Une fois votre modèle exporté en java

                                      Il ne faut pas suivre la partie ou je modifie le modèle pour l’appliquer à un mob.

                                      1 réponse Dernière réponse Répondre Citer 0
                                      • P Hors-ligne
                                        Portuar
                                        dernière édition par

                                        Escusez moi j’ai juste un problème quand j’applique les directions, seul deux côtés sont “bon” els autres sont à l’envers. Ah et je vodurait aussi que la direction s’apllique dans 8 direction c’est à dire que le block pivote de 45°.

                                        1 réponse Dernière réponse Répondre Citer 0
                                        • robin4002R Hors-ligne
                                          robin4002 Moddeurs confirmés Rédacteurs Administrateurs
                                          dernière édition par

                                          Il faut gérer ça avec la fonction onBlockPlayerBy et il faut modifier la fonction glRotate.

                                          1 réponse Dernière réponse Répondre Citer 0
                                          • P Hors-ligne
                                            Portuar
                                            dernière édition par

                                            Ouai sa j’avais compris mais je n’arrive pas à comprendre ce calcul : int direction = MathHelper.floor_double((double)(living.rotationYaw * 4.0F / 360.0F) + 2.5D) & 3;

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 6
                                            • 10
                                            • 11
                                            • 4 / 11
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB