Posted September 13, 20169 yr So...I made a crop block and seeds, and there needed to be 5 colored variants of them, so I handled that with metadata, using a PropertyEnum for color, and PropertyInteger for age, but now that I'm moving on the models/blockstate files, I'm not sure what to do; what's the best/most efficient way of handling this? I'd really like to not have to create 40 model files. <__< Bonus question, how would I use a single set of greyscale stage textures for each color and apply colorations to them? Enum
September 13, 20169 yr Metadata is limited to 4 bits (16 possible values), you can't have 5 colours and 8 ages in a single Block . The age takes up 3 bits, leaving only 1 spare bit. You'll need to create a Block for each colour and only store the age in the metadata. You can register an IBlockColor to colour a block model at runtime, but each model element to be coloured must specify a tint index (see the wiki). If you also want the item model to be coloured, you'll need to register an IItemColor . Register your IBlockColor / IItemColor implementations with the BlockColors / ItemColors instances in init, you can get these from Minecraft . I have some examples of this here. Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
September 13, 20169 yr Author Metadata is limited to 4 bits (16 possible values), you can't have 5 colours and 8 ages in a single Block . The age takes up 3 bits, leaving only 1 spare bit. You'll need to create a Block for each colour and only store the age in the metadata. You can register an IBlockColor to colour a block model at runtime, but each model element to be coloured must specify a tint index (see the wiki). If you also want the item model to be coloured, you'll need to register an IItemColor . Register your IBlockColor / IItemColor implementations with the BlockColors / ItemColors instances in init, you can get these from Minecraft . I have some examples of this here. What would be the result of storing more than 4 bits, because the crops are the correct colors when planted and grow fully, they just don't have a model/texture.
September 13, 20169 yr What would be the result of storing more than 4 bits, because the crops are the correct colors when planted and grow fully, they just don't have a model/texture. Returning a value greater than 15 from Block#getMetaFromState will either break things or be truncated to 15. Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
September 13, 20169 yr IIRC, it gets truncated binarily to 4 bits. That is, 16 and 0 would be identical. Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable. If you think this is the case, JUST REPORT ME. Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice. Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked. DO NOT PM ME WITH PROBLEMS. No help will be given.
September 13, 20169 yr Author I'm only taking the color into account with getMetaFromState, so why is growing working? ~ And I haven't added a withProperty for the age in getStateFromMeta either... ~ So I'm a little confused as to why the crop is functioning right now. Edit: Crop block
September 15, 20169 yr Where do you specify the tint index in forge's format? Blockstate The tint index is part of the model and can't be specified in the blockstates file (even with Forge's format). You need to copy the block/cross model, add a tint index to each face and then use this model instead of the vanilla one in your blockstates file. Please don't PM me to ask for help. Asking your question in a public thread preserves it for people who are having the same problem in the future.
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.