- 1,057
- 50
- 234
Добрый день, всезнающие юзеры данного форума.
Проблема такая:
Пытаюсь объединить растения в 1 блок с метадатой, но на все блоки с метой налазит одна текстура (как правило первая)
Блок зареган в preInit.
public static Block BarnardaCDandelion1;
BarnardaCDandelion1 = new BarnardaCBlockDandelions();
GameRegistry.registerBlock(BarnardaCDandelion1, "barnardaCdandelion1");
При установки блока текстуры работают как надо
Подскажите, что делать?
Проблема такая:
Пытаюсь объединить растения в 1 блок с метадатой, но на все блоки с метой налазит одна текстура (как правило первая)
Код:
public class BarnardaCBlockDandelions extends BlockBush implements ITerraformableBlock, IShearable
{
private static String[] dandelion = new String[] {
"Dandelion1",
"Dandelion2",
"Dandelion3"
};
@SideOnly(Side.CLIENT)
private IIcon[] textures = new IIcon[this.dandelion.length];
public BarnardaCBlockDandelions()
{
super(Material.plants);
this.setBlockName("Barnarda2Dandelion");
this.setStepSound(Block.soundTypeGrass);
float var4 = 0.2F;
this.setBlockBounds(0.5F - var4, 0.0F, 0.5F - var4, 0.5F + var4, var4 * 3.0F, 0.5F + var4);
}
@Override
public void registerBlockIcons(IIconRegister iconRegister)
{
super.registerBlockIcons(iconRegister);
for (int i1 = 0; i1 < this.textures.length; ++i1)
{
this.textures[i1] = iconRegister.registerIcon(GalaxySpace.ASSET_PREFIX + ":" + "barnarda2/barnarda2dandelion" + i1);
}
}
//@Override
@SideOnly(Side.CLIENT)
public IIcon getIcon(int side, int metadata) {
metadata &= 7;
return textures[MathHelper.clamp_int(metadata, 0, 5)];
}
@Override
public Item getItemDropped(int meta, Random random, int par3)
{
return null;
}
public int quantityDropped(Random random)
{
return 0;
}
@Override
public int damageDropped(int metadata) {
return metadata;
}
@Override
public void onBlockPlacedBy(World world, int x, int y, int z, EntityLivingBase entity, ItemStack is) {
world.setBlockMetadataWithNotify(x, y, z, is.getItemDamage(), 3);
}
@Override
public void getSubBlocks(Item block, CreativeTabs creativeTabs, List list)
{
for (int i = 0; i < this.dandelion.length; ++i)
{
list.add(new ItemStack(block, 1, i));
}
}
@Override
@SideOnly(Side.CLIENT)
public CreativeTabs getCreativeTabToDisplayOn()
{
return CreativeTabsGS.GSBlocksTab;
}
@Override
public boolean isTerraformable(World world, int x, int y, int z) {
return false;
}
@Override
public boolean canPlaceBlockOnSide(World world, int x, int y, int z, int side)
{
return this.isValidPosition(world, x, y, z, -1);
}
public boolean isValidPosition(World world, int x, int y, int z, int metadata)
{
Block block = world.getBlock(x, y - 1, z);
if (world.getBlock(x, y - 1, z) == Blocks.air)
{
return false;
}
return block == BRBlocks.BarnardaCGrass || block == BRBlocks.BarnardaCDirt;
}
@Override
public boolean isShearable(ItemStack item, IBlockAccess world, int x, int y, int z) {
return true;
}
@Override
public ArrayList<ItemStack> onSheared(ItemStack item, IBlockAccess world, int x, int y, int z, int fortune) {
ArrayList<ItemStack> ret = new ArrayList<ItemStack>();
ret.add(new ItemStack(this, 1, world.getBlockMetadata(x, y, z)));
return ret;
}
}
Блок зареган в preInit.
public static Block BarnardaCDandelion1;
BarnardaCDandelion1 = new BarnardaCBlockDandelions();
GameRegistry.registerBlock(BarnardaCDandelion1, "barnardaCdandelion1");
При установки блока текстуры работают как надо
Подскажите, что делать?