- 5,018
- 47
- 783
Здравствуйте. Проблема чисто вопроса кода. Значит имеется некая переменная int, которая привязывается к координатам в мире или если точнее, к позиции. Неважно.
Так вот, эта переменная сохраняется такая в массив, обычный такой List значит. Для каждой позиции соответственно создается новое теплое местечко в массиве и присваивается индекс. Когда число , хранящееся в этом индексе, скажем, выполняет свою задачу, его надобно удалить, чтобы не занимало место. Более того оно не только место занимает, но и продолжает тикать, что естественно не есть хорошо. Так вот надо бы ее удалить из массива, и сделать это можно лишь способом remove(index). То есть мне необходимо знать индекс, под которым сохраняется блок в этот лист.
Казалось бы, создай счетчик и пусть он считает каким по счету блок был добавлен в мир. Но ведь он обнулится после перезахода, а его сохранять это лишнее ненужное костыльное телодвижение...
В общем нужно каким то образом получить индекс, под которым pos сохранился в лист. К слову это блок листвы, игроков много, так что количества блоков в мире будет тыщами измеряться. И каждый должен локально оттикать и удалится.
Либо же нужно парсить поз в инт. Я пробовал вот так, оно бы конечно сработало на ура, если бы pos не исчислялся числами большими чем int))
Так вот, эта переменная сохраняется такая в массив, обычный такой List значит. Для каждой позиции соответственно создается новое теплое местечко в массиве и присваивается индекс. Когда число , хранящееся в этом индексе, скажем, выполняет свою задачу, его надобно удалить, чтобы не занимало место. Более того оно не только место занимает, но и продолжает тикать, что естественно не есть хорошо. Так вот надо бы ее удалить из массива, и сделать это можно лишь способом remove(index). То есть мне необходимо знать индекс, под которым сохраняется блок в этот лист.
Казалось бы, создай счетчик и пусть он считает каким по счету блок был добавлен в мир. Но ведь он обнулится после перезахода, а его сохранять это лишнее ненужное костыльное телодвижение...
В общем нужно каким то образом получить индекс, под которым pos сохранился в лист. К слову это блок листвы, игроков много, так что количества блоков в мире будет тыщами измеряться. И каждый должен локально оттикать и удалится.
Либо же нужно парсить поз в инт. Я пробовал вот так, оно бы конечно сработало на ура, если бы pos не исчислялся числами большими чем int))
Java:
int indexPos;
@Override
public void onBlockAdded(World world, BlockPos pos, IBlockState state) {
world.scheduleBlockUpdate(pos, this, 1, 0);
long lPos = pos.toLong();
String sPos = Long.toString(lPos);
System.out.println("sPos " + sPos);
int iPos = Integer.parseInt(sPos);
System.out.println("iPos " + iPos);
time.add(iPos, new TimerForPos(pos,0));
indexPos = iPos;
}
Последнее редактирование: