Posted August 11, 201510 yr So i resolved the blockstates, metadata block, no errors, but i have some problems with registering i think. First my block didnt appear in the inventory nor the game, so i created a new block like always, but using the blockstate class. all the 16 block variations appear but without model or texture when placed and in the hand. My block variation class package raflex14.pixarcraft.blocks; import java.util.List; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyDirection; import net.minecraft.block.properties.PropertyEnum; import net.minecraft.block.state.BlockState; import net.minecraft.block.state.IBlockState; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.EntityLivingBase; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.util.BlockPos; import net.minecraft.util.EnumFacing; import net.minecraft.util.IStringSerializable; import net.minecraft.world.World; import net.minecraftforge.fml.relauncher.Side; import net.minecraftforge.fml.relauncher.SideOnly; import raflex14.pixarcraft.PixarCraft; public class Balloon extends Block { public enum EnumType implements IStringSerializable{ WHITE(0, "white"), BLACK(1, "black"), GRAY(2, "gray"), BLUE(3, "blue"), LIGHT_GRAY(4, "light_gray"), BROWN(5, "brown"), CYAN(6, "cyan"), GREEN(7, "green"), LIGHT_BLUE(8, "light_blue"), LIME(9, "lime"), MAGENTA(10, "magenta"), ORANGE(11, "orange"), PINK(12, "pink"), PURPLE(13, "purple"), RED(14, "red"), YELLOW(15, "yellow"); public int getMetadata() { return this.meta; } @Override public String toString() { return this.name; } public static EnumType byMetadata(int meta) { if (meta < 0 || meta >= META_LOOKUP.length) { meta = 0; } return META_LOOKUP[meta]; } public String getName() { return this.name; } private final int meta; private final String name; private static final EnumType[] META_LOOKUP = new EnumType[values().length]; private EnumType(int i_meta, String i_name) { this.meta = i_meta; this.name = i_name; } static { for (EnumType colortype : values()) { META_LOOKUP[colortype.getMetadata()] = colortype; } } } @Override protected BlockState createBlockState() { return new BlockState(this, new IProperty[] { COLORTYPE }); } public Balloon() { super(Material.cloth); this.setCreativeTab(PixarCraft.tabPixarCraftBlocks); } @Override public int getRenderType() { return 3; } public static final PropertyEnum COLORTYPE = PropertyEnum.create("colortype", Balloon.EnumType.class); @Override public int damageDropped(IBlockState state) { EnumType enumType = (EnumType)state.getValue(COLORTYPE); return enumType.getMetadata(); } @Override @SideOnly(Side.CLIENT) public void getSubBlocks(Item itemIn, CreativeTabs tab, List list) { EnumType[] allColours = EnumType.values(); for (EnumType colortype : allColours) { list.add(new ItemStack(itemIn, 1, colortype.getMetadata())); } } @Override public IBlockState getStateFromMeta(int meta) { int colourbits = (meta & 0x0c) >> 2; // 0x0c is hexadecimal, in binary 1100 EnumType colortype = EnumType.byMetadata(colourbits); return this.getDefaultState().withProperty(COLORTYPE, colortype); } @Override public int getMetaFromState(IBlockState state) { EnumType colortype = (EnumType)state.getValue(COLORTYPE); int colourbits = colortype.getMetadata() << 2; return colourbits; } @Override public IBlockState onBlockPlaced(World worldIn, BlockPos pos, EnumFacing blockFaceClickedOn, float hitX, float hitY, float hitZ, int meta, EntityLivingBase placer) { EnumType colortype = EnumType.byMetadata(meta); // find the quadrant the player is facing return this.getDefaultState().withProperty(COLORTYPE, colortype); } } My Itemblockvariation class package raflex14.pixarcraft.items; import net.minecraft.block.Block; import net.minecraft.item.ItemBlock; import net.minecraft.item.ItemStack; import raflex14.pixarcraft.blocks.Balloon; public class ItemBalloon extends ItemBlock{ public ItemBalloon(Block block) { super(block); this.setMaxDamage(0); this.setHasSubtypes(true); } @Override public int getMetadata(int metadata) { return metadata; } @Override public String getUnlocalizedName(ItemStack stack) { Balloon.EnumType colortype = Balloon.EnumType.byMetadata(stack.getMetadata()); return super.getUnlocalizedName() + "." + colortype.toString(); } } Startup Client package raflex14.pixarcraft.proxy; import net.minecraft.client.Minecraft; import net.minecraft.client.resources.model.ModelBakery; import net.minecraft.client.resources.model.ModelResourceLocation; import net.minecraft.item.Item; import net.minecraftforge.fml.common.registry.GameRegistry; import raflex14.pixarcraft.blocks.Balloon; public class StartupClientOnly { public static void preInitClientOnly() { Item itemBalloon = GameRegistry.findItem("pc", "balloon_variants"); ModelBakery.addVariantName(itemBalloon, "pc:balloon_variants_blue", "pc:balloon_variants_green", "pc:balloon_variants_red", "pc:balloon_variants_yellow", "pc:balloon_variants_cyan", "pc:balloon_variants_light_blue", "pc:balloon_variants_white", "pc:balloon_variants_black", "pc:balloon_variants_gray", "pc:balloon_variants_light_gray", "pc:balloon_variants_pink", "pc:balloon_variants_magenta", "pc:balloon_variants_lime", "pc:balloon_variants_purple", "pc:balloon_variants_brown", "pc:balloon_variants_orange"); } public static void initClientOnly() { Item itemBalloon = GameRegistry.findItem("pc", "balloon_variants"); ModelResourceLocation itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_blue", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.BLUE.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_green", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.GREEN.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_red", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.RED.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_yellow", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.YELLOW.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_cyan", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.CYAN.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_brown", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.BROWN.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_pink", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.PINK.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_magenta", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.MAGENTA.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_purple", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.PURPLE.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_light_blue", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.LIGHT_BLUE.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_gray", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.GRAY.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_light_gray", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.LIGHT_GRAY.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_black", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.BLACK.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_white", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.WHITE.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_lime", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.LIME.getMetadata(), itemModelResourceLocation); itemModelResourceLocation = new ModelResourceLocation("pc:balloon_variants_orange", "inventory"); Minecraft.getMinecraft().getRenderItem().getItemModelMesher().register(itemBalloon, Balloon.EnumType.ORANGE.getMetadata(), itemModelResourceLocation); } public static void postInitClientOnly() { } } StartupCommon package raflex14.pixarcraft.proxy; import net.minecraftforge.fml.common.registry.GameRegistry; import raflex14.pixarcraft.blocks.Balloon; import raflex14.pixarcraft.items.ItemBalloon; public class StartupCommon { public static Balloon balloon; public static void preInitCommon() { balloon = (Balloon)(new Balloon().setUnlocalizedName("balloon_variants")); GameRegistry.registerBlock(balloon, ItemBalloon.class, "balloon_variants"); } public static void initCommon() { } public static void postInitCommon() { } } And finally Blockstate { "variants": { "COLORTYPE=red": { "model": "pc:balloon_variants_model_red"}, "COLORTYPE=green": { "model": "pc:balloon_variants_model_green" }, "COLORTYPE=yellow": { "model": "pc:balloon_variants_model_yellow" }, "COLORTYPE=blue": { "model": "pc:balloon_variants_model_blue" }, "COLORTYPE=brown": { "model": "pc:balloon_variants_model_brown" }, "COLORTYPE=cyan": { "model": "pc:balloon_variants_model_cyan" }, "COLORTYPE=white": { "model": "pc:balloon_variants_model_white" }, "COLORTYPE=black": { "model": "pc:balloon_variants_model_black" }, "COLORTYPE=gray": { "model": "pc:balloon_variants_model_gray" }, "COLORTYPE=light_gray": { "model": "pc:balloon_variants_model_light_gray" }, "COLORTYPE=purple": { "model": "pc:balloon_variants_model_purple" }, "COLORTYPE=magenta": { "model": "pc:balloon_variants_model_magenta" }, "COLORTYPE=orange": { "model": "pc:balloon_variants_model_orange" }, "COLORTYPE=lime": { "model": "pc:balloon_variants_model_lime" }, "COLORTYPE=light_blue": { "model": "pc:balloon_variants_model_light_blue" }, "COLORTYPE=pink": { "model": "pc:balloon_variants_model_pink" } } }
August 11, 201510 yr I might be retarded.. but could you describe your problem with chat please? I feel like i can see the error eclipse is throwing, but just for like 0.1 second..
August 12, 201510 yr i fixed the code but the block doesnt render Then post your updated code. Also, next time, please be more specific than 'block doesn't render'. Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support. 1.12 -> 1.13 primer by williewillus. 1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support. http://www.howoldisminecraft1710.today/
August 12, 201510 yr Author I alredy posted my new code ._. all of the post is diiferent. block doesnt render = purple black no texture no model block
August 12, 201510 yr In your blockstate file try changing all the variants name (example BLACK, GREEN, ecc) with their respective name in the constructor (so BLACK will turn "black", WHITE will turn "white" and so on) Don't blame me if i always ask for your help. I just want to learn to be better
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.