• 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 Colorer un layer d'un bloc?

1.9.x et 1.10.x
1.9.4
3
4
1.1k
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.
  • Mapper
    Mapper dernière édition par 24 oct. 2016, 15:07

    Salut,

    Dans l’optique de réduire au maximum le poids de mes textures, je cherche à savoir s’il est possible de changer la teinte d’un layer sur un bloc.

    Je m’explique. J’ai fait un bloc qui est composé de deux models de block basique (taille standard), un bloc avec la texture de base et un bloc qui n’a qu’une texture transparente sur la face du dessus. En jeu ça donne ça (le bloc avec la ligne blanche):

    http://imgur.com/BM8aNjW (si la prévisualisation ne marche pas, imgur a tendance à ne pas aimer le hotlinking maintenant…)

    La ligne blanche est une texture à part, appliquée sur un layer différent (en gros il y a 2 blocks dans le json du model).

    De la sorte, j’ai juste besoin de faire la texture du matériau de base et les lignes une fois, plutôt que de répéter à chaque type de matériau toutes les variations de lignes qu’il y aura. Ca m’économise des centaines de textures.

    Maintenant, je veux faire des lignes de différente couleurs, et plutôt que de dupliquer chaque motif de ligne pour chaque couleur, je voudrais savoir s’il y avait moyen de colorer le layer de la ligne. Je pense que ça serait un peu comme le bloc d’herbe qui est coloré en fonction du biome, mais je n’ai pas trouvé dans les sources comment Mojang fait ça (et ça utilise un système avec les biomes, là où moi je veux jute appliquer une couleur spécifique). Dans le json on peut avoir un paramètre “tintindex” mais je n’ai pas trouvé comment s’en servir malgré des heures de recherches.

    Le json du model:

    :::
    {   “parent”: “block/block”,
        “elements”: [
            {   “from”: [ 0, 0, 0 ],
                “to”: [ 16, 16, 16 ],
                “faces”: {
                    “down”:  { “uv”: [ 0, 0, 16, 16 ], “texture”: “#base”,   “cullface”: “down” },
                    “up”:    { “uv”: [ 0, 0, 16, 16 ], “texture”: “#base”,   “cullface”: “up” },
                    “north”: { “uv”: [ 0, 0, 16, 16 ], “texture”: “#base”,   “cullface”: “north” },
                    “south”: { “uv”: [ 0, 0, 16, 16 ], “texture”: “#base”,   “cullface”: “south” },
                    “west”:  { “uv”: [ 0, 0, 16, 16 ], “texture”: “#base”,   “cullface”: “west” },
                    “east”:  { “uv”: [ 0, 0, 16, 16 ], “texture”: “#base”,   “cullface”: “east” }
                }
            },
            {   “from”: [ 0, 0, 0 ],
                “to”: [ 16, 16, 16 ],
                “faces”: {
                    “up”:    { “uv”: [ 0, 0, 16, 16 ], “texture”: “#overlay”, “tintindex”: 0, “cullface”: “up” }
                }
            }
        ]
    }
    :::

    En espérant que ça soit faisable, et si oui que quelqu’un aie une idée de comment ça se passe 😄

    1 réponse Dernière réponse Répondre Citer 0
    • BrokenSwing
      BrokenSwing Moddeurs confirmés Rédacteurs dernière édition par 24 oct. 2016, 16:36

      Je vais m’y pencher dessus si personne ne répond d’ici ce soir

      1 réponse Dernière réponse Répondre Citer 0
      • Benjamin Loison
        Benjamin Loison dernière édition par 24 oct. 2016, 17:02

        Je ne sais pas si c’est son cas mais regardes Carpenter’s Mod 😉 Bonne chance c’est très recherché ! 🙂

        >! Développeur de Altis-Life (Arma III) sur Minecraft !
        >! Site web     : https://lemnoslife.com

        1 réponse Dernière réponse Répondre Citer 0
        • Mapper
          Mapper dernière édition par 24 oct. 2016, 17:19

          J’ai trouvé une solution, grâce à cet example sur le GitHub de Choonster (un membre habitué du forum officiel de Forge).

          Je peux maintenant définir la couleur de la ligne en fonction du bloc, du state etc c’est parfait 🙂

          Là j’applique une couleur jaune quand le bloc est tourné, et blanche quand il ne l’est pas. La classe que j’ai adapté pour cet exemple:

          :::
          package net.killermapper.testmod.util;

          import net.killermapper.testmod.Reference;
          import net.killermapper.testmod.blocks.BooleanBlock;
          import net.killermapper.testmod.init.InitBlocks;
          import net.minecraft.client.Minecraft;
          import net.minecraft.client.renderer.color.BlockColors;
          import net.minecraft.client.renderer.color.IBlockColor;

          public class ModColorHandler
          {
              private static final Minecraft minecraft = Minecraft.getMinecraft();

          public static void registerColorHandlers()
              {
                  final BlockColors blockColors = minecraft.getBlockColors();
                  registerBlockColorHandlers(blockColors);
              }

          private static void registerBlockColorHandlers(final BlockColors blockColors)
              {
                  final IBlockColor lineColorHandler = (state, blockAccess, pos, tintIndex) ->
                  {
                      if(blockAccess != null && pos != null)
                          if(state == InitBlocks.booleanBlock.getDefaultState().withProperty(BooleanBlock.IS_ROTATED, true) )
                          return Reference.YELLOWCOLOR;
                      return Reference.WHITECOLOR;
                  };

          blockColors.registerBlockColorHandler(lineColorHandler, InitBlocks.booleanBlock);
              }
          }
          :::

          (à initialiser dans le Init, côté client)

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

          MINECRAFT FORGE FRANCE © 2018

          Powered by NodeBB