Posted May 29, 20178 yr I am working on a mod where custom keys can be registered. These keys have a name and an rgb value. As of now, I have the key item being rendered with custom colors as a mask. I would like to get a "lock" block to render with a color like the key to be more obvious in saying "this is that key's lock". The only issue is that I have no clue on how to do that. There are not quite any tutorials on how to do that. Thank you!
May 29, 20178 yr I'd assume you're using the IItemColor interface to color your items, correct? If so, there is a corresponding IBlockColor interface that works essentially exactly the same. The main differences are that the method you need to implement is colorMultiplier(IBlockState, IBlockAccess, BlockPos, Int) rather than getColor(ItemStack, Int) and instead of registering with Minecraft.getMinecraft.getItemColors.registerItemColorHandler you register with Minecraft.getMinecraft.getBlockColors.registerBlockColorHandler Hope that helps! Edited May 29, 20178 yr by tripl3dogdare Github: http://github.com/tripl3dogdare Youtube: http://youtube.com/tripl3dogdare Twitter: http://twitter.com/tripl3dogdare Twitter RP: http://twitter.com/TheWitchesEye
May 30, 20178 yr Author @tripl3dogdare For the most part, yes. The only issue I am having is this: I only have one texture layer for my model, and as before, cannot find a tutorial to make multiple I know you can use `layer0` and `layer1` for items, but for blocks, I have no clue. This is my current model: { "forge_marker": 1, "defaults": { "model": "cube", "textures": { "down": "alutils:blocks/lock_top", "up": "alutils:blocks/lock_top", "north": "alutils:blocks/lock_side_0", "east": "alutils:blocks/lock_side_0", "south": "alutils:blocks/lock_side_0", "west": "alutils:blocks/lock_side_0" } }, "variants": { "inventory": [ { "transform": "forge:default-block" } ], "normal": { "model": "cube" } } } I am trying to get the sides (north, east, south, and west) to have the mask on it. Thanks!
May 30, 20178 yr @LousyLynx You'll want to look into the "tintindex" parameter in the block model JSON, it defines what tint index (the int in the method signature) the block should be tinted on. Here's a link to the spec for that file: http://minecraft.gamepedia.com/Model#Block_models Github: http://github.com/tripl3dogdare Youtube: http://youtube.com/tripl3dogdare Twitter: http://twitter.com/tripl3dogdare Twitter RP: http://twitter.com/TheWitchesEye
May 30, 20178 yr Author @tripl3dogdare It doesn't seem to be being called. Here is how I have the IBlockColor setup: Minecraft.getMinecraft().getBlockColors().registerBlockColorHandler(new IBlockColor() { @Override public int colorMultiplier(IBlockState state, @Nullable IBlockAccess worldIn, @Nullable BlockPos pos, int tintIndex) { ALUtils.getLog().info("Tint: " + tintIndex); if(tintIndex == 0) { Key k = ALConfig.keys.get(state.getBlock().getMetaFromState(state)); return k.getR() << 16 | k.getG() << 8 | k.getB(); } return -1; } }, ALBlocks.LOCK.getBlock()); And here is the model: { "__comment": "Model generated using MrCrayfish's Model Creator (http://mrcrayfish.com/modelcreator/)", "textures": { "0": "alutils:blocks/lock_side_0", "1": "alutils:blocks/lock_top", "2": "alutils:blocks/lock_side_1" }, "elements": [ { "name": "Cube", "from": [ 0.1, 0.0, 0.1 ], "to": [ 15.9, 15.8, 15.9 ], "faces": { "north": { "texture": "#0", "uv": [ 0.0, 0.0, 15.8, 15.8 ] }, "east": { "texture": "#0", "uv": [ 0.0, 0.0, 15.8, 15.8 ] }, "south": { "texture": "#0", "uv": [ 0.0, 0.0, 15.8, 15.8 ] }, "west": { "texture": "#0", "uv": [ 0.0, 0.0, 15.8, 15.8 ] }, "up": { "texture": "#1", "uv": [ 0.0, 0.0, 15.8, 15.8 ] }, "down": { "texture": "#1", "uv": [ 0.0, 0.0, 15.8, 15.8 ] } } }, { "name": "Cube", "from": [ 0.0, 0.0, 0.0 ], "to": [ 16.0, 16.0, 16.0 ], "faces": { "north": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ], "tintindex": 0 }, "east": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ], "tintindex": 0 }, "south": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ], "tintindex": 0 }, "west": { "texture": "#2", "uv": [ 0.0, 0.0, 16.0, 16.0 ], "tintindex": 0 }, "up": { "texture": "#-1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] }, "down": { "texture": "#-1", "uv": [ 0.0, 0.0, 16.0, 16.0 ] } } } ] } I get no output ("Tint: 0") and the model still has no mask...
May 30, 20178 yr @LousyLynx Hmm... I remember having issues with this myself. Luckily, I just remembered how to fix it, I think! It's definitely true that this is an unusually painful process for blocks, and there's little to no documentation. In your block class, override this method: getBlockLayer() It should return BlockRenderLayer.CUTOUT and then the model should work, if I remember right from when I last did this. If it doesn't, let me know - I still have source code laying around, so I can dig though it a bit and see what else is relevant (it's been a month or two since I worked with this, so I don't remember off the top of my head). Github: http://github.com/tripl3dogdare Youtube: http://youtube.com/tripl3dogdare Twitter: http://twitter.com/tripl3dogdare Twitter RP: http://twitter.com/TheWitchesEye
May 30, 20178 yr Author @tripl3dogdare Yeah, it is still not working Thanks for the help so far, though!
May 30, 20178 yr @LousyLynx Sorry, not much I can do right now... If you still need help later, I can take a look. Wish I could be of more use. Github: http://github.com/tripl3dogdare Youtube: http://youtube.com/tripl3dogdare Twitter: http://twitter.com/tripl3dogdare Twitter RP: http://twitter.com/TheWitchesEye
May 30, 20178 yr Author @tripl3dogdare I got it to work. I for some reason did not have my model correctly mapped in my blockstate. And as for making the mask ontop of the original model, I just made the "base" cube slightly smaller than the outer layer, which had the mask. Thanks for your help!
May 30, 20178 yr On 5/30/2017 at 10:04 PM, LousyLynx said: @tripl3dogdare I got it to work. I for some reason did not have my model correctly mapped in my blockstate. And as for making the mask ontop of the original model, I just made the "base" cube slightly smaller than the outer layer, which had the mask. Thanks for your help! Glad you got it working! Github: http://github.com/tripl3dogdare Youtube: http://youtube.com/tripl3dogdare Twitter: http://twitter.com/tripl3dogdare Twitter RP: http://twitter.com/TheWitchesEye
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.