• Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes
  • S'inscrire
  • Se connecter
  • S'inscrire
  • Se connecter
  • Recherche
  • Récent
  • Mots-clés
  • Populaire
  • Utilisateurs
  • Groupes

Résolu Bucket et Liquide

1.8.x
1.8
6
29
5.2k
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.
  • robin4002
    robin4002 Moddeurs confirmés Rédacteurs Administrateurs dernière édition par 12 avr. 2016, 09:53

    if(world.getBlockState(new BlockPos(entity.posX, entity.posY, entity.posZ).getBlock() == BlockMod.tarmacLiquid || world.getBlockState(new BlockPos(entity.posX, entity.posY, entity.posZ).up().getBlock() == BlockMod.tarmacLiquid)
    devrait être suffisant.

    1 réponse Dernière réponse Répondre Citer 0
    • LeBossMax2
      LeBossMax2 dernière édition par 13 avr. 2016, 08:16

      Merci ! Comme ça, ça lag moins !

      J’ai un dernier petit problème, je pence pas que ce soir trais important mais bon. Quand je prend mon liquide en item, sa texture c’est un block noir et rose (au lieux de l’item plat du liquide).
      Voici le code que j’ai mit pour définir le model du liquide (pris sur un tuto):

      Item item = Item.getItemFromBlock(fluid);
              final ModelResourceLocation resLoc = new ModelResourceLocation(ModMaxyFactory.MOD_ID + ":" + fluid.getUnlocalizedName().substring(5), "tarmacliquid");
              ModelBakery.addVariantName(item);
              ModelLoader.setCustomMeshDefinition(item, new ItemMeshDefinition()
              {
                  @Override
                  public ModelResourceLocation getModelLocation(ItemStack stack)
                  {
                      return resLoc;
                  }
              });
              ModelLoader.setCustomStateMapper(fluid, new StateMapperBase()
              {
                  @Override
                  protected ModelResourceLocation getModelResourceLocation(IBlockState p_178132_1_)
                  {
                      return resLoc;
                  }
              });

      et voici le blockstate de mon liquide :

      {
          "forge_marker": 1,
          "defaults": {
              "model": "forge:fluid",
              "transform": "forge:default-item"
          },
          "variants": {
              "tarmacliquid" : [{
                  "custom": { "fluid": "fluid_tarmac" }
              }]
          }
      }

      Dites moi si il y a des choses à changer.

      1 réponse Dernière réponse Répondre Citer 0
      • E
        elx9000 dernière édition par 15 avr. 2016, 10:16

        Salut, pourrais-tu me passer tout ton code de liquide pour que je puisse voir de mon côté, merci.  😉

        1 réponse Dernière réponse Répondre Citer 0
        • LeBossMax2
          LeBossMax2 dernière édition par 15 avr. 2016, 14:47

          @‘elx9000’:

          Salut, pourrais-tu me passer tout ton code de liquide pour que je puisse voir de mon côté, merci.  😉

          Il n’y a pas grand chose de plus que je pourrais ajouter. C’est deux lignes peuvent peut-être être utiles :

          fluidTarmac = new Fluid("fluid_tarmac", new ResourceLocation("maxyfactory:blocks/tarmac"), new ResourceLocation("maxyfactory:blocks/tarmac_flowing")).setTemperature(800);
          tarmacLiquid = ((BlockFluidClassic) new TarmacLiquid(FluidMod.fluidTarmac, MaterialMod.liquid).setUnlocalizedName("tarmacLiquid")).setTickRate(20).setQuantaPerBlock(5).setTemperature(800);

          TarmacLiquid est just un extends de BlockFluidClassic.(La class de forge qui permet de faire des liquides simplement)

          1 réponse Dernière réponse Répondre Citer 0
          • E
            elx9000 dernière édition par 15 avr. 2016, 15:26

            Merci je vais voir ce que je peux faire

            1 réponse Dernière réponse Répondre Citer 0
            • E
              elx9000 dernière édition par 16 avr. 2016, 18:29

              Pourrais - tu me passer exactement tout ton code (même la plus petite ligne), j’ai beaucoup de mal à recréer ton fluide.

              Merci d’avance.

              1 réponse Dernière réponse Répondre Citer 0
              • LeBossMax2
                LeBossMax2 dernière édition par 16 avr. 2016, 19:20

                Dans FMLPreInitializationEvent, il y a :
                :::

                Fluid fluidTarmac = new Fluid("fluid_tarmac", new ResourceLocation("maxyfactory:blocks/tarmac"), new ResourceLocation("maxyfactory:blocks/tarmac_flowing")).setTemperature(800);
                FluidRegistry.registerFluid(fluidTarmac);
                Block tarmacLiquid = ((BlockFluidClassic) new BlockFluidClassic(FluidMod.fluidTarmac, MaterialMod.liquid).setUnlocalizedName("tarmacLiquid")).setTickRate(20).setQuantaPerBlock(5).setTemperature(800);
                GameRegistry.registerBlock(tarmacLiquid, "tarmacLiquid");
                Item itemTarmacLiquid = Item.getItemFromBlock(tarmacLiquid);
                final ModelResourceLocation resLoc = new ModelResourceLocation("maxyfactory:fluid_tarmac", "tarmacliquid");
                ModelBakery.addVariantName(item);
                ModelLoader.setCustomMeshDefinition(itemTarmacLiquid, new ItemMeshDefinition()
                {
                    @Override
                    public ModelResourceLocation getModelLocation(ItemStack stack)
                    {
                        return resLoc;
                    }
                });
                ModelLoader.setCustomStateMapper(itemTarmacLiquid, new StateMapperBase()
                {
                    @Override
                    protected ModelResourceLocation getModelResourceLocation(IBlockState p_178132_1_)
                    {
                        return resLoc;
                    }
                });

                :::

                Dans FMLInitializationEvent (coté client), il y a ça :
                :::

                Item itemTarmacLiquid = Item.getItemFromBlock(tarmacLiquid);
                Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemTarmacLiquid, 0, new ModelResourceLocation("maxyfactory:" + itemTarmacLiquid.getUnlocalizedName().substring(5), "inventory"));

                :::

                1 réponse Dernière réponse Répondre Citer 0
                • E
                  elx9000 dernière édition par 16 avr. 2016, 21:24

                  Ok merci, je travaille dessus

                  1 réponse Dernière réponse Répondre Citer 0
                  • LeBossMax2
                    LeBossMax2 dernière édition par 18 avr. 2016, 17:43

                    J’ai trouvé la solution, c’était tout bête : il fallait enlever ce qui il a dans init car cela rajoute une localisation du model et ça fait un bug.
                    Merci à tous pour votre aide !

                    1 réponse Dernière réponse Répondre Citer 0
                    • 1
                    • 2
                    • 2 / 2
                    21 sur 29
                    • Premier message
                      21/29
                      Dernier message
                    Design by Woryk
                    Contact / Mentions Légales

                    MINECRAFT FORGE FRANCE © 2018

                    Powered by NodeBB