Двойной блок

Версия Minecraft
1.7.10
57
2
0
В майне есть блок тростника, но он один, у подобных одинаковая текстура и его можно ставить друг на друга. Мне нужно так же, но чтобы блок был строго 2-х "этажным" и у верхнего была другая текстура. Пробовал реализовать через два класса, не вышло(наследники BlockBush). Может сделать через TileEntity, но я в нём не шарю, да и в рунете(и не только) гайда для 1.7.10 не нашёл. Также пробовал через blockBounds с текстурой 16x32:

Код блока:

Java:
package io.batrat.plants;

import net.minecraft.block.BlockBush;

public class Cattail_0 extends BlockBush {
    protected Cattail_0(){
        this.setBlockBounds(0f, 0f, 0f, 1f, 2f, 1f);
        this.setBlockName("cattail_0");
        this.setBlockTextureName("plants:cattail_0");
    }
}

Текстура блока:

cattail_0.png
 
5,018
47
783
это не так делается. Посмотри как устроены розы, в первую очередь . Если что то непонятно - уже потом создавай тему.
 
Последнее редактирование:

jopi

Попрошайка
1,421
30
260
Может поможет. Юзал для 1.5.2, Он просто сделает хитбокс блока высотой 2F, и текстуру твою лучше будет сделать моделью высотой в 2 блока.

Java:
public void setBlockBoundsBasedOnState(IBlockAccess world, int x, int y, int z) {
    this.setBlockBounds(0.0F, 0.0F, 0.0F, 1.0F, 2F, 1.0F);
}

public AxisAlignedBB getCollisionBoundingBoxFromPool(World par1World, int par2, int par3, int par4) {
    this.setBlockBoundsBasedOnState(par1World, par2, par3, par4);
    return super.getCollisionBoundingBoxFromPool(par1World, par2, par3, par4);
}

@SideOnly(Side.CLIENT)
public AxisAlignedBB getSelectedBoundingBoxFromPool(World par1World, int par2, int par3, int par4) {
    this.setBlockBoundsBasedOnState(par1World, par2, par3, par4);
    return super.getSelectedBoundingBoxFromPool(par1World, par2, par3, par4);
}
 

timaxa007

Модератор
5,831
409
672
@jopi, не думаю. Он делает именно растение в два блока, а не размер блока в два блока. Ему ещё текстуру накладывать надо, а у тебя нету, так что не сильно поможет твой код.
 
5,018
47
783
Как называется класс розы? Класса BlockRose нет, есть BlockTallGrass. Мне не понятно, особенно когда переменные названы по типу: p_149691_1_ или field_149870_b
Потому что это 1.7.
Переходи на 1.12 - там таких почти нет
 

timaxa007

Модератор
5,831
409
672
@BatRat, если просто унаследовать, то такое всегда возможно, смотри его исходники и решай унаследовать или копи-пастить. Ты должен понимать, что тебе надо. Каждый может делать по своему, что нужно ему от этого блока.
 
1,057
50
234
Через мету можно...
 
Но прикол-то в том, что в классе bDoublePlant конструктор не содержит текстуры, а я её указал в своём классе. И там сложно(очень) разобраться с названиями переменных.

UPD.: Почти невозможно
как решил эту проблему?
 
Сверху