Запись данных в переменные Tile Entity

Версия Minecraft
1.7.10
124
1
0
Имеются 3 переменных double, 1 float и 1 integer. При установке блока в них нужно записать данные, передаваемые из другого файла (алгоритм установки сразу нескольких блоков). Как мне это реализовать?

Вот мой Tile Entity:
Код:
public class TileEntityRail extends TileEntity{
 private double xMove;
 private double yMove;
 private double zMove;
 
 private float rotate;
 
 private int section;

 @Override
 public void writeToNBT(NBTTagCompound nbt) {
 super.writeToNBT(nbt);
 
 nbt.setDouble("xMove", xMove);
 nbt.setDouble("yMove", yMove);
 nbt.setDouble("zMove", zMove);
 
 nbt.setFloat("rotate", rotate);
 
 nbt.setInteger("section", section);
 }
 
 @Override
 public void readFromNBT(NBTTagCompound nbt) {
 super.readFromNBT(nbt);
 
 this.xMove = nbt.getDouble("xMove");
 this.yMove = nbt.getDouble("yMove");
 this.zMove = nbt.getDouble("zMove");
 
 this.rotate = nbt.getFloat("rotate");
 
 this.section = nbt.getInteger("section");
 }
}
 
124
1
0
Dahaka написал(а):
Причем тут nbt? Опиши проблему конкретнее.

мне нужно сохранить это 6 переменных в блок. на этом форуме мне сказали через tileentity и nbt делать. я сделал методы записи и чтения из nbt, но не знаю как записать первоначальные значения в эти переменные (значения записываются при установке блока, потом только читаются)
 
398
4
7
Откуда передать?
Например, можешь сделать свои поля публичными и в методе onPostBlockPlaced в них писать. Но, похоже тут никто не понял откуда и когда тебе нужно это записывать, поэтому ничего конкретного посоветовать нельзя.
 
124
1
0
Asd73 написал(а):
Откуда передать?
Например, можешь сделать свои поля публичными и в методе onPostBlockPlaced в них писать. Но, похоже тут никто не понял откуда и когда тебе нужно это записывать, поэтому ничего конкретного посоветовать нельзя.

у меня имеется файл, который ставит эти блоки по определённому алгоритму. при его работе создаются эти 6 значений (координаты блока не учитываю - они ставятся через world.setBlock). эти значения мне необходимо записать в соответствующие поля в tileentity. Так-то я имею представление, как это сделать: при установке этого блока (у него своя модель) в clientproxy имеется переменная доступа к tileentity. можно создать ArrayList и записывать все это туда, но я прост думал, что есть какой-то способ короче все это сделать, ну как вижу никто ничего не понимает...
 
398
4
7
Тебе стоит подучить джаву, ты похоже не понимаешь что такое объект в джаве.
А по твоему вопросу можно сделать так:

Код:
world.setBlock(x, y, z, твойБлок);
TileEntity tile = world.getTileEntity(x, y, z);
if (tile instanceof TileEntityRail) {
     ((TileEntityRail)tile).xMove = ...;
     ((TileEntityRail)tile).yMove = ...;
}
И, разумеется, сделать эти поля публичными.


mnsbabydoll написал(а):
Так-то я имею представление, как это сделать: при установке этого блока (у него своя модель) в clientproxy имеется переменная доступа к tileentity. можно создать ArrayList и записывать все это туда, но я прост думал, что есть какой-то способ короче все это сделать, ну как вижу никто ничего не понимает...

А вот это я совсем не понял.
 
Сверху