- 5,018
- 47
- 783
Здравствуйте! В общем, имеется некий блок, у которого есть два стейта - один инт - стадия роста, а другой EnumAxis. Собственно говоря, мне необходимо чтобы в мету нормально сохранялось и поворот, и мета роста. Но в мете можно вернуть только одно значение.
И вот никак у меня в голове не укладывается, как можно увязать и сохранить в мету обе переменных.
На данный момент у меня только дефолтный метод, который сохраняет лишь мету поворота... Сижу уже полдня над такой фигней, никак не придумаю.
Вот как наоборот получить - я понял, а сохранить...
И вот никак у меня в голове не укладывается, как можно увязать и сохранить в мету обе переменных.
На данный момент у меня только дефолтный метод, который сохраняет лишь мету поворота... Сижу уже полдня над такой фигней, никак не придумаю.
Java:
public int getMetaFromState(IBlockState state)
{
int meta = 0;
EnumFacing.Axis axis = (EnumFacing.Axis)state.getValue(AXIS);
if (axis == EnumFacing.Axis.X)
{
meta |= 4;
}
else if (axis == EnumFacing.Axis.Z)
{
meta |= 8;
return meta;
}
return meta;
}
Вот как наоборот получить - я понял, а сохранить...
Java:
public IBlockState getStateFromMeta(int meta)
{
EnumFacing.Axis enumfacing$axis = EnumFacing.Axis.Y;
int i = meta & 12;
if (i == 4)
{
enumfacing$axis = EnumFacing.Axis.X;
}
else if (i == 8)
{
enumfacing$axis = EnumFacing.Axis.Z;
}
return (this.getDefaultState().withProperty(AXIS, enumfacing$axis).withProperty(STAGE, meta));
}