MFF

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

    .2 : energy mechanic / api / "cable"

    Planifier Épinglé Verrouillé Déplacé Sans suite
    1.11.x
    39 Messages 6 Publieurs 6.4k 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.
    • robin4002R En ligne
      robin4002 Moddeurs confirmés Rédacteurs Administrateurs
      dernière édition par

      Ton setRegistryName est mal placé. Il faut faire comme ça :

      GameRegistry.<block>register(BLOCK_ROCK_GENERATOR.setRegistryName("rock_generator"));
      

      Ou alors comme ça :

      public static Block BLOCK_ROCK_GENERATOR = new BlockMachineRockGenerator(Material.IRON).setUnlocalizedName("block_rock_generator").setRegistryName("rock_generator");
      ```</block>
      1 réponse Dernière réponse Répondre Citer 0
      • SpyManS Hors-ligne
        SpyMan
        dernière édition par

        Merci maintenant ça fonctionne et aussi je souhaiterais savoir comme faire un block orientable ?

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

          Regardes la citrouille.
          Le principe est le même qu’en 1.7.10, sauf que maintenant tout passe par les blockstates.

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

            J’ai fait comme le four mais bon il s’oriente pas trop 😕

            {
            “parent”: “block/orientable”,
            “textures”:
            {
            “top”: “modid:blocks/stone_mill_top”,
            “bottom”: “modid:blocks/stone_machine_bottom”,
            “front”: “modid:blocks/stone_mill_front”,
            “side”: “modid:blocks/stone_mill_side”
            }
            }

            et aussi comme je peut specifie la texture du dessous car le “bottom ne fonctionne pas”

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

              Jsp pas pourquoi mais il cherche la variante “normal” et si je la met bah y aura pas de block orientable

              {
               "variants":
               {
                 "facing=north":
                 {
                   "model": "modid:stone_mill"
                 },
                 "facing=south":
                 {
                   "model": "modid:stone_mill",
                   "y": 180
                 },
                 "facing=west":
                 {
                   "model": "modid:stone_mill",
                   "y": 270
                 },
                 "facing=east":
                 {
                   "model": "modid:stone_mill",
                   "y": 90
                 }
               }
              }
              

              et puis si je la met pas il rend pas le block

              block model

              {
                "parent": "block/orientable",
                "textures":
                {
                  "top": "modid:blocks/stone_mill_top",
                  "bottom": "modid:blocks/stone_machine_bottom",
                  "front": "modid:blocks/stone_mill_front",
                  "side": "modid:blocks/stone_mill_side"
                }
              }
              
              1 réponse Dernière réponse Répondre Citer 0
              • AymericRedA Hors-ligne
                AymericRed
                dernière édition par

                Montres la classe de ton block.

                Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                  bon par contre elle est un peut vide

                  import net.minecraft.block.material.Material;
                  
                  public class BlockMachineStoneMill extends BlockStoneMachine
                  {
                  public BlockMachineStoneMill()
                  {
                  
                  }
                  }
                  
                  1 réponse Dernière réponse Répondre Citer 0
                  • LeBossMax2L Hors-ligne
                    LeBossMax2
                    dernière édition par

                    Dans ce cas, c’est normal : qand un block n’a pas de blockState, minecraft prend la valeur “normal”. Si tu veux que ton block soit orientable, il faut que tu joue avec les BlockStates dans la class de ton block. Il y as quelques tutos qui peuvent t’aider :

                    • Les BlockStates (1.8.x mais pour la 1.11, ça n’a pas changé)
                    • Block Orientable (1.7.x, ça à beaucoup changé depuis)
                    1 réponse Dernière réponse Répondre Citer 0
                    • AymericRedA Hors-ligne
                      AymericRed
                      dernière édition par

                      Il y a aussi la classe de la pumpkin qui pourrait t’aider (ou de n’importe quel block orientable )

                      Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                      AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                      Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                      Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

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

                        J’ai essayé de faire quelques petits testes mais j’y arrive pas 😕 en aillant jeté un coup d’œil dans la class de la pumpkin et du four

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

                          Envoies ton code actuel.

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

                            package net.spyman.advprocess.common.blocks;
                            
                            import net.minecraft.block.BlockHorizontal;
                            import net.minecraft.block.material.Material;
                            import net.minecraft.block.properties.PropertyDirection;
                            import net.minecraft.block.state.IBlockState;
                            import net.minecraft.util.EnumFacing;
                            import net.minecraft.util.math.BlockPos;
                            import net.minecraft.world.World;
                            
                            public class BlockMachineStoneMill extends BlockStoneMachine
                            {
                            public static final PropertyDirection FACING = BlockHorizontal.FACING;
                            
                            public BlockMachineStoneMill()
                            {
                            this.setDefaultState(this.blockState.getBaseState().withProperty(FACING, EnumFacing.NORTH));
                            }
                            
                            private void setDefaultFacing(World worldIn, BlockPos pos, IBlockState state)
                            {
                            if (!worldIn.isRemote)
                            {
                            IBlockState iblockstate = worldIn.getBlockState(pos.north());
                            IBlockState iblockstate1 = worldIn.getBlockState(pos.south());
                            IBlockState iblockstate2 = worldIn.getBlockState(pos.west());
                            IBlockState iblockstate3 = worldIn.getBlockState(pos.east());
                            EnumFacing enumfacing = (EnumFacing)state.getValue(FACING);
                            
                            if (enumfacing == EnumFacing.NORTH && iblockstate.isFullBlock() && !iblockstate1.isFullBlock())
                            {
                            enumfacing = EnumFacing.SOUTH;
                            }
                            else if (enumfacing == EnumFacing.SOUTH && iblockstate1.isFullBlock() && !iblockstate.isFullBlock())
                            {
                            enumfacing = EnumFacing.NORTH;
                            }
                            else if (enumfacing == EnumFacing.WEST && iblockstate2.isFullBlock() && !iblockstate3.isFullBlock())
                            {
                            enumfacing = EnumFacing.EAST;
                            }
                            else if (enumfacing == EnumFacing.EAST && iblockstate3.isFullBlock() && !iblockstate2.isFullBlock())
                            {
                            enumfacing = EnumFacing.WEST;
                            }
                            
                            worldIn.setBlockState(pos, state.withProperty(FACING, enumfacing), 2);
                            }
                            }
                            }
                            
                            1 réponse Dernière réponse Répondre Citer 0
                            • SpyManS Hors-ligne
                              SpyMan
                              dernière édition par

                              ya pas juste une petite solution ??

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

                                Il te manque ces fonctions :

                                public IBlockState withRotation(IBlockState state, Rotation rot)
                                {
                                return state.withProperty(FACING, rot.rotate((EnumFacing)state.getValue(FACING)));
                                }
                                
                                /**
                                * Returns the blockstate with the given mirror of the passed blockstate. If inapplicable, returns the passed
                                * blockstate.
                                */
                                public IBlockState withMirror(IBlockState state, Mirror mirrorIn)
                                {
                                return state.withRotation(mirrorIn.toRotation((EnumFacing)state.getValue(FACING)));
                                }
                                
                                /**
                                * Called by ItemBlocks just before a block is actually set in the world, to allow for adjustments to the
                                * IBlockstate
                                */
                                public IBlockState getStateForPlacement(World worldIn, BlockPos pos, EnumFacing facing, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer)
                                {
                                return this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite());
                                }
                                
                                /**
                                * Convert the given metadata into a BlockState for this Block
                                */
                                public IBlockState getStateFromMeta(int meta)
                                {
                                return this.getDefaultState().withProperty(FACING, EnumFacing.getHorizontal(meta));
                                }
                                
                                /**
                                * Convert the BlockState into the correct metadata value
                                */
                                public int getMetaFromState(IBlockState state)
                                {
                                return ((EnumFacing)state.getValue(FACING)).getHorizontalIndex();
                                }
                                
                                protected BlockStateContainer createBlockState()
                                {
                                return new BlockStateContainer(this, new IProperty[] {FACING});
                                }
                                
                                1 réponse Dernière réponse Répondre Citer 0
                                • SpyManS Hors-ligne
                                  SpyMan
                                  dernière édition par

                                  Ok merci je savais pas quil fallait toutes ces fonctions et aussi quand on casse le block il y a des particles sauf que je les ai sur l’un de mes blocks mais pas sur lautre, sur lautre cest le rose/noir de la texture buggé
                                  y a t-il un moyen de changer cela ?

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

                                    Regardes dans le fichier json, normalement il faut ajouter un truc du genre “particle”:“la texture”.

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

                                      C’est un peu particulier pour les blocs en 1.10+

                                      Il faut désormais un ItemBlock, voilà quelques bouts de codes que j’utilise

                                      Ceci dans le constructeur d’un block “mère” en gros ta classe mère pour tout tes blocs

                                      
                                      setBlockName(this, unlocalizedName);
                                      final ItemBlock itemBlock = new ItemBlock(this);
                                      itemBlock.setRegistryName(this.getRegistryName());
                                       GameRegistry.register(this);
                                      GameRegistry.register(itemBlock);
                                      
                                      

                                      Et pour la fonction setBlockName()

                                      public static void setBlockName(Block blockIn, String unlocalizedName) {
                                              blockIn.setRegistryName("tonModID", unlocalizedName);
                                              blockIn.setUnlocalizedName(unlocalizedName);
                                          }
                                      

                                      Ensuite tu déclare tes blocs de la plus simple des manières:

                                      
                                      public static final Block testBlock= new BlockTest("nom_Unlocalized");
                                      
                                      

                                      Et voilà tu enregistre les rendu pour les .json avec normalement:

                                         Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register();
                                      

                                      Et paf tu as de beaux chocapics avec le nouveau système de registry() de forge

                                      Si je t'ai filé un coup de main n'oublie pas le + / -
                                      Par contre évite les demandes d'aides en MP, tu sera sympa'

                                      La JavaDoc c'est comme le PQ, ça sert à ce démerder tous seul. -Victor Hugo- 2017

                                      Une superbe API pour animer vos super modèles CraftStudio dans Minecraft !

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

                                        Ok merci jai mes paticles maintenant 😄
                                        et aussi quelqun sait-t-il comment creer des “cable” ? car moi j’en n’ai absolument aucunes idées

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

                                          Même pas une petite idée ?

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

                                            Pas besoin de double post, on est pas ici h24.
                                            Et si j’ai une petite vu que j’en ait déjà fait, mais cest long et relativement compliqué et il y a plusieurs manières, plus ou moins bien, déjà il te faut des blocks avec tile entity, et pour la manière la plus simple, tu fait une variable qtenergie, et dans la fonction update tu regarde si ya des câbles autour, si oui tu leur donne.

                                            Si je vous ai aidé, n'oubliez pas d’être heureux, j'aiderai encore +

                                            AymericRed, moddeur expérimenté qui aide sur ce forum et qui peut accepter de faire un mod Forge rémunéré de temps en temps.

                                            Mes tutos : Table de craft, plugin NEI, plugin JEI, modifier l'overlay
                                            Je suis un membre apprécié et joueur, j'ai déjà obtenu 6 points de réputation.

                                            1 réponse Dernière réponse Répondre Citer 0
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • Premier message
                                              Dernier message
                                            Design by Woryk
                                            ContactMentions Légales

                                            MINECRAFT FORGE FRANCE © 2024

                                            Powered by NodeBB