MFF

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

    Problème de méthodes

    Planifier Épinglé Verrouillé Déplacé Résolu 1.12.x
    1.12.2
    5 Messages 2 Publieurs 317 Vues 2 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.
    • Ck_LukyC Hors-ligne
      Ck_Luky
      dernière édition par

      Re-bonjour a tous,
      j’ai un autre problème… (et oui, encore une fois…)
      Je suis entrain de coder une nouvelle dalle, comme je ne sais pas comment faire j’ai téléchargé le git hub d’un tutoriel de modding sur youtube d’un anglais ( désolé je ne me souvient plus du nom de la chaine ).
      Voici mes trois classes :
      Classe SlabBase :

      package fr.luky.feurimod.blocks;
      
      import fr.luky.feurimod.ModFeurimod;
      import fr.luky.feurimod.init.ModBlocks;
      import net.minecraft.block.Block;
      import net.minecraft.block.BlockSlab;
      import net.minecraft.block.material.Material;
      import net.minecraft.block.properties.IProperty;
      import net.minecraft.block.properties.PropertyEnum;
      import net.minecraft.block.state.BlockStateContainer;
      import net.minecraft.block.state.IBlockState;
      import net.minecraft.item.Item;
      import net.minecraft.item.ItemStack;
      import net.minecraft.util.IStringSerializable;
      import net.minecraft.util.math.BlockPos;
      import net.minecraft.world.World;
      
      import java.util.Random;
      
      public class FeurimodSlabBase extends BlockSlab {
      
          Block half;
      
          public static final PropertyEnum<Variant> VARIANT = PropertyEnum.<Variant>create("variant", Variant.class);
      
          public FeurimodSlabBase(String name, Material materialIn, float hardness, float resistance, int harvestLevel, String harvestType) {
              super(materialIn);
      
              setRegistryName(name).setUnlocalizedName(name).setCreativeTab(ModFeurimod.feurimodTab);
              setHardness(hardness);
              setResistance(resistance);
              setHarvestLevel(harvestType, harvestLevel);
              this.useNeighborBrightness = !this.isDouble();
      
              IBlockState state = this.blockState.getBaseState().withProperty(VARIANT, Variant.DEFAULT);
              if (!this.isDouble()) state = state.withProperty(HALF, EnumBlockHalf.BOTTOM);
              setDefaultState(state);
      
              this.half = half;
      
              ModBlocks.INSTANCE.getBlocks().add(this);
          }
      
          @Override
          public Item getItemDropped(IBlockState state, Random rand, int fortune) {
              return Item.getItemFromBlock(half);
          }
      
          @Override
          public ItemStack getItem(World worldIn, BlockPos pos, IBlockState state) {
              return new ItemStack(half);
          }
      
          @Override
          public IBlockState getStateFromMeta(int meta) {
              IBlockState state = this.blockState.getBaseState().withProperty(VARIANT, Variant.DEFAULT);
              if (!this.isDouble()) state = state.withProperty(HALF, ((meta&8) != 0) ? EnumBlockHalf.TOP : EnumBlockHalf.BOTTOM);
              return state;
          }
      
          @Override
          public int getMetaFromState(IBlockState state) {
              int meta = 0;
              if (!this.isDouble() && state.getValue(HALF) == EnumBlockHalf.TOP) meta |= 8;
              return meta;
          }
      
          @Override
          protected BlockStateContainer createBlockState() {
              if (!this.isDouble()) return new BlockStateContainer(this, new IProperty[]{VARIANT, HALF});
              else return new BlockStateContainer(this, new IProperty[]{VARIANT});
          }
      
          @Override
          public String getUnlocalizedName(int meta) {
              return super.getUnlocalizedName();
          }
      
          @Override
          public IProperty<?> getVariantProperty() {
              return VARIANT;
          }
      
          @Override
          public Comparable<?> getTypeForItem(ItemStack stack) {
              return Variant.DEFAULT;
          }
      
          public static enum Variant implements IStringSerializable {
              DEFAULT;
      
      
              @Override
              public String getName() {
                  return "default";
              }
          }
      }
      

      Classe HalfSlabBase :

      package fr.luky.feurimod.blocks;
      
      import net.minecraft.block.material.Material;
      
      public class FeurimodSlabHalfBase extends FeurimodSlabBase {
      
          public FeurimodSlabHalfBase(String name, Material materialIn, float hardness, float resistance, int harvestLevel, String harvestType) {
              super(name, materialIn, hardness, resistance, harvestLevel, harvestType);
          }
      
          @Override
          public boolean isDouble() {
              return true;
          }
      }
      

      et enfin ma classe DoubleSlabeBase :

      package fr.luky.feurimod.blocks;
      
      import net.minecraft.block.material.Material;
      
      public class FeurimodSlabDoubleBase extends FeurimodSlabBase {
      
          public FeurimodSlabDoubleBase(String name, Material materialIn, float hardness, float resistance, int harvestLevel, String harvestType) {
              super(name, materialIn, hardness, resistance, harvestLevel, harvestType);
          }
      
          @Override
          public boolean isDouble() {
              return true;
          }
      }
      

      Mon problème vien de ma classe SlabBase ou l’ide me dit qu’il manque la méthode isDouble().
      Comment faire pour résoudre ce problème ??
      Merci d’avance, Luky.

      Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
      Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

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

        Bonjour !

        Ta class FeurimodSlabBase est héritée de BlockSlab qui contient la méthode abstract boolean isDouble() mais je ne la vois nulle part dans FeurimodSlabBase. A mon sens, le problème vient de là 🤔

        Bonne soirée !

        Les petits mods d'Epharos : [Trading Players] -> https://www.minecraftforgefrance.fr/topic/6023/trading-players-les-petits-mods-d-epharos

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

          Bonjour @Epharos ,
          C’est bien ce que je pensait😁
          Mais du coup je suis obligé de mettre TRUE ou FALSE dans ma classe FeurimodSlabBase…
          Que dois-je mettre ???

          Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
          Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

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

            Finalement le problème est résolu : j’avais juste oublié la mention abstract dans Public class FeurimodSlabBase… (il freut le mettre entre public et class)

            Merci @Epharos pour votre aide et bonne journée à tous 😁😁

            Je travail actuellement sur le Feurimod, un mod à l'origine pour un serveur entre potes en 1.12.2, mais le projet de serveur aillant été abandonné, je le termine pour mon propre plaisir.
            Je suis un membre apprécié et joueur, j'ai déjà obtenu 3 points de réputation.

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

              C’était la deuxième possibilité en effet de mettre ta class en abstraite, mais j’étais pas certain de cette façon de faire 😛

              Les petits mods d'Epharos : [Trading Players] -> https://www.minecraftforgefrance.fr/topic/6023/trading-players-les-petits-mods-d-epharos

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

              MINECRAFT FORGE FRANCE © 2024

              Powered by NodeBB