sk9zist :l
Исправился
- 981
- 18
- 157
Добро. Попытался сделать поворот своего блока относительно взгляда игрока, но, оказалось не просто. Не хотел писать на форум, но, самому у меня получилось только сделать частицы выпадения при ломании блока с текстурой самого моего блока (раньше они были белыми, тоесть текстуру вообще не находило. Но потом в json более менее разобрался и сделал)
Также была прочитана данная информация с нескольких тем:
(ссылки на темы расположены в обратном порядке)
Если в одной из них всё же есть решение моей проблемы - пните.
Перепробовал много вариантов:
игрался с методом onBlockPlacedBy:
метод getStateFromMeta:
метод createBlockState:
метод getMetaFromState:
Также были трудности с переменной FACING, но я нашёл вроде как сделать, вот он: (чуть не забыл)
В итоге всех экспериментов было так, что с одного направления блок был с текстурой, в остальных направлениях - без текстуры. Может ещё удавалось сделать чтобы два парралельных направления взгляда оба работали (отображали текстуру, но нельзя было проверить работоспособность, так как поворота как такового особо небыло) но, честно говоря не помню.
В данный момент при установке блоке в любом направлении на нём нет текстуры, только частицы с его текстурой при ломании.
Как решить, собсно, данную головоломку?
Также была прочитана данная информация с нескольких тем:
Вращение блока лицом к игроку при его установке
Не нашёл нигде в учебнике как вращать блок при его установке лицом к игроку. Все стороны по умолчанию идут по сторонам света, а мне надо чтобы по yaw блок открутился северной частью лицом к игроку, как печка например. Есть ли какой-нибудь код без велосипедов и костылей?
forum.mcmodding.ru
Вращение модели блока
День добрый. Хочу что бы модель блока вращалась вокруг своего центра, с определенной скоростью. В пример приведу ритуалы из BloodMagic, там круги вращаются вокруг своей оси с опрд скоростью. - У меня есть догадка - менять GL11.glRotated каждый тик (Через метод onUpdate), но это лишь...
forum.mcmodding.ru
Как сделать, чтобы модель поворачивалась в зависимости от положения игрока
Привет, всем! Нарисовал модель в программе "Model Creator by MrCrayfish", добавил ее в майн (версия 1.12.2), но никак не могу разобраться, каким образом можно заставить ее поворачиваться в зависимости от положения игрока. Т.е. если я ставлю ее на землю она всегда смотрит лицом на Юг. Может...
forum.mcmodding.ru
Поворот блока относительно игрока.
Как реализовать поворот блока относительно игрока? По принцыпу блоков деревьев.
forum.mcmodding.ru
Метадата и поворот блока
Доброго времени суток и с наступающим, дорогие форумчане! Я хочу встретить новый год с чистой совестью, а потому желаю отрефакторить определение поворота в своем кастомном блоке. Сейчас я сохраняю мету в NBT и синхронизирую это дело через TileEntity#getDescriptionPacket() public class...
forum.mcmodding.ru
Поворот блока с моделью OBJ
Делаю блок с OBJ моделью. Есть вопрос, каким образом можно сделать его поворот, когда он располагается в мире? Полазал, был один вариант, но не сработал. х) желательно с полным кодом. package erumind.init.blocks; import java.util.Random; import com.google.common.collect.Lists; import...
forum.mcmodding.ru
Если в одной из них всё же есть решение моей проблемы - пните.
Перепробовал много вариантов:
игрался с методом onBlockPlacedBy:
класс блока:
@Override
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
{
int angle = MathHelper.floor(placer.rotationYaw * 4.0F / 360.0F + 0.5D) & 3;
int change = EnumFacing.getHorizontal(angle).getOpposite().getIndex();
worldIn.setBlockState(pos, getStateFromMeta(change), 3);
}
V2:
@Override
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
{
EnumFacing facing = EnumFacing.fromAngle(placer.getRotationYawHead());
worldIn.scheduleUpdate(pos, state.getBlock(), 40);
worldIn.setBlockState(pos, state.withProperty(FACING, facing));
}
V3:
@Override
public void onBlockPlacedBy(World worldIn, BlockPos pos, IBlockState state, EntityLivingBase placer, ItemStack stack)
{
worldIn.setBlockState(pos, this.getDefaultState().withProperty(FACING, placer.getHorizontalFacing().getOpposite()), 2);
}
метод getStateFromMeta:
V1:
@Override
public IBlockState getStateFromMeta(int meta)
{
EnumFacing enumfacing = EnumFacing.getHorizontal(meta % 4);
return this.getDefaultState().withProperty(FACING, enumfacing);
}
V2:
@Override
public IBlockState getStateFromMeta(int meta)
{
EnumFacing enumfacing = EnumFacing.getFront(meta);
if (enumfacing.getAxis() == EnumFacing.Axis.Y) {
enumfacing = EnumFacing.NORTH;
}
}
метод createBlockState:
V1:
@Override
protected BlockStateContainer createBlockState()
{
return new BlockStateContainer(this, new IProperty[] {FACING});
}
V2:
@Override
protected BlockStateContainer createBlockState()
{
return new BlockStateContainer(this, FACING);
}
метод getMetaFromState:
Java:
@Override
public int getMetaFromState(final IBlockState state)
{
//return state.getValue(FACING).getHorizontalIndex();
return state.getValue(FACING).getIndex();
}
Также были трудности с переменной FACING, но я нашёл вроде как сделать, вот он: (чуть не забыл)
класс блока:
//public static final PropertyDirection FACING = BlockHorizontal.FACING;
public static final PropertyDirection FACING = PropertyDirection.create("facing");
В итоге всех экспериментов было так, что с одного направления блок был с текстурой, в остальных направлениях - без текстуры. Может ещё удавалось сделать чтобы два парралельных направления взгляда оба работали (отображали текстуру, но нельзя было проверить работоспособность, так как поворота как такового особо небыло) но, честно говоря не помню.
В данный момент при установке блоке в любом направлении на нём нет текстуры, только частицы с его текстурой при ломании.
Как решить, собсно, данную головоломку?
Последнее редактирование: