[1.7.10][Forge]: Project "SMT" (Заморожен)

timaxa007

Модератор
5,831
409
672
[1.7.10][Forge]: Project "SMT"

Dragon2488 написал(а):
ТайлЭнтити чисто для блока -_-
Если-что, я знал об этом. Просто типа хотел сделать что-то вроде буфера-блока для рюкзака, а теперь я думаю о том: чтобы рюкзак связывался с сундуком (может пригодиться для магической части моего мода). А теперь я подумываю о том, что-бы создать Entity (т.е. Моба) которого можно спавнить и класть в него предметы.
У меня есть ещё одна мысль, как ещё можно создать рюкзак, но мне просто нужно время (которого у меня мало из-за жары).
 

timaxa007

Модератор
5,831
409
672
[1.7.10][Forge]: Project "SMT"

RaVeN написал(а):
так объясните как это по пикселям двигать
Код:
for(int i = 0; i < 3; i++)//Циклами остальной инвентарь
    for(int j = 0; j < 9; j++)
        addSlotToContainer(new Slot(player.inventory, j + i * 9 + 9, 29/*тоже самое, x*/ + j * 18, 24/*y*/ + i * 18));
Я тебе объяснить не смогу, потому не знаю как ответить тебе.
 
[1.7.10][Forge]: Project "SMT"

Ну RaVeN хочет узнать как двигать, если он посмотрит в конструктор, то поймет за что отвечает каждый параметр.
 
[1.7.10][Forge]: Project "SMT"

Ни хера не понял, тебе нужно просто весь инвентарь куда-то подвинуть или что?
 

timaxa007

Модератор
5,831
409
672
[1.7.10][Forge]: Project "SMT"

Пример, типа без цикла:
8724af504d3651ab19006c592ce15953.jpg

Код:
this.addSlotToContainer(new Slot(te,0,26,30));
this.addSlotToContainer(new Slot(te,1,44,30));
this.addSlotToContainer(new Slot(te,2,26,48));
this.addSlotToContainer(new Slot(te,3,44,48));

this.addSlotToContainer(new Slot(te,4,80,30));
this.addSlotToContainer(new Slot(te,5,98,30));
this.addSlotToContainer(new Slot(te,6,80,48));
this.addSlotToContainer(new Slot(te,7,98,48));

this.addSlotToContainer(new Slot(te,8,134,30));
this.addSlotToContainer(new Slot(te,9,152,30));
this.addSlotToContainer(new Slot(te,10,134,48));
this.addSlotToContainer(new Slot(te,11,152,48));
Размеры самих ячеек ставятся автоматически (не помню, сколько на сколько).
 

timaxa007

Модератор
5,831
409
672
[1.7.10][Forge]: Project "SMT"

RaVeN написал(а):
timaxa007 написал(а):
Пример, типа без цикла:
8724af504d3651ab19006c592ce15953.jpg

Код:
this.addSlotToContainer(new Slot(te,0,26,30));
this.addSlotToContainer(new Slot(te,1,44,30));
this.addSlotToContainer(new Slot(te,2,26,48));
this.addSlotToContainer(new Slot(te,3,44,48));

this.addSlotToContainer(new Slot(te,4,80,30));
this.addSlotToContainer(new Slot(te,5,98,30));
this.addSlotToContainer(new Slot(te,6,80,48));
this.addSlotToContainer(new Slot(te,7,98,48));

this.addSlotToContainer(new Slot(te,8,134,30));
this.addSlotToContainer(new Slot(te,9,152,30));
this.addSlotToContainer(new Slot(te,10,134,48));
this.addSlotToContainer(new Slot(te,11,152,48));
Размеры самих ячеек ставятся автоматически (не помню, сколько на сколько).
te чего переменная?IInventory
Типа того, "TileEntityBlockGrills te".
 
771
5
[1.7.10][Forge]: Project "SMT"

RaVeN написал(а):
timaxa007 написал(а):
Пример, типа без цикла:
8724af504d3651ab19006c592ce15953.jpg

Код:
this.addSlotToContainer(new Slot(te,0,26,30));
this.addSlotToContainer(new Slot(te,1,44,30));
this.addSlotToContainer(new Slot(te,2,26,48));
this.addSlotToContainer(new Slot(te,3,44,48));

this.addSlotToContainer(new Slot(te,4,80,30));
this.addSlotToContainer(new Slot(te,5,98,30));
this.addSlotToContainer(new Slot(te,6,80,48));
this.addSlotToContainer(new Slot(te,7,98,48));

this.addSlotToContainer(new Slot(te,8,134,30));
this.addSlotToContainer(new Slot(te,9,152,30));
this.addSlotToContainer(new Slot(te,10,134,48));
this.addSlotToContainer(new Slot(te,11,152,48));
Размеры самих ячеек ставятся автоматически (не помню, сколько на сколько).
te чего переменная?IInventory
Твой тайл, расширающий IInventory.
 
1,990
18
105
[1.7.10][Forge]: Project "SMT"

Брр. Тайл нужен для слота, чтобы ему знать, какому хранилищу он принадлежит.
 

timaxa007

Модератор
5,831
409
672
[1.7.10][Forge]: Project "SMT"

dimka написал(а):
Не хочешь исходники на github выложить?
Кто? Если это я, то пока-что нет так как в исходниках много мусора и не всегда код бывает компилируемым. Когда чужой клиент перестанет жаловаться на материалы на блоках, вот тогда выложу.
-----------------------------------------------------------
[Видео удалено.]
Уже у меня получилось сделать GUI со слотами, но слоты рюкзака не работают. Скорее всего это связано об отсутствии апдейта рюкзака и думаю что придётся (научиться создавать и) добавить новых пакетов для рюкзаков (для сервера это скорее всего будет обязательное добавление).
 
675
2
[1.7.10][Forge]: Project "SMT"

Как мне кажется, нужно просто писать содержимое рюкзака NBT'шку.
Вот сырцы другого мода на рюкзаки.
 
2,955
12
[1.7.10][Forge]: Project "SMT"

И не быть идиотом, пытавшимся создать тайл для предмета. Ече раз повторб тайл энтити только для блока, так как просто блок не может писать и читать нбт, а тайл энтити может. Предметы по дефольту могут читать и писать в нбт, им тайл энтити не нужен, да и ты его не сделаешь.
 
905
5
[1.7.10][Forge]: Project "SMT"

Dragon2488 написал(а):
И не быть идиотом, пытавшимся создать тайл для предмета. Ече раз повторб тайл энтити только для блока, так как просто блок не может писать и читать нбт, а тайл энтити может. Предметы по дефольту могут читать и писать в нбт, им тайл энтити не нужен, да и ты его не сделаешь.
А еще блоки не тикают и все являются одним объектом, что серьезно усложняет некоторое дерьмо.
 
2,955
12
[1.7.10][Forge]: Project "SMT"

RaVeN написал(а):
Majestic написал(а):
RaVeN написал(а):
timaxa007 написал(а):
Пример, типа без цикла:
8724af504d3651ab19006c592ce15953.jpg

Код:
this.addSlotToContainer(new Slot(te,0,26,30));
this.addSlotToContainer(new Slot(te,1,44,30));
this.addSlotToContainer(new Slot(te,2,26,48));
this.addSlotToContainer(new Slot(te,3,44,48));

this.addSlotToContainer(new Slot(te,4,80,30));
this.addSlotToContainer(new Slot(te,5,98,30));
this.addSlotToContainer(new Slot(te,6,80,48));
this.addSlotToContainer(new Slot(te,7,98,48));

this.addSlotToContainer(new Slot(te,8,134,30));
this.addSlotToContainer(new Slot(te,9,152,30));
this.addSlotToContainer(new Slot(te,10,134,48));
this.addSlotToContainer(new Slot(te,11,152,48));
Размеры самих ячеек ставятся автоматически (не помню, сколько на сколько).
te чего переменная?IInventory
Твой тайл, расширающий IInventory.
то бишь  тайл для итема нужен?!
За такой вопрос я бы вообще его так стукнул, что он бы 3 дня не показывался. Ну блин, даже если прочитать, Tile намекает, что только для блока.
 
60
0
[1.7.10][Forge]: Project "SMT"

laz2727 написал(а):
Dragon2488 написал(а):
И не быть идиотом, пытавшимся создать тайл для предмета. Ече раз повторб тайл энтити только для блока, так как просто блок не может писать и читать нбт, а тайл энтити может. Предметы по дефольту могут читать и писать в нбт, им тайл энтити не нужен, да и ты его не сделаешь.
А еще блоки не тикают и все являются одним объектом, что серьезно усложняет неДа с чего вдругкоторое дерьмо.
Почему блоки не тикают?
[1.6.4]
Код:
 @Override
 public void onBlockAdded(World par1World, int par2, int par3, int par4)
 {
 par1World.scheduleBlockUpdate(par2, par3, par4, this.blockID, 20);
 }
 
 @Override
 public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
 {
 System.out.println("test tick");
 par1World.scheduleBlockUpdate(par2, par3, par4, this.blockID, 20);
 }
 

timaxa007

Модератор
5,831
409
672
[1.7.10][Forge]: Project "SMT"

dimka написал(а):
laz2727 написал(а):
Dragon2488 написал(а):
И не быть идиотом, пытавшимся создать тайл для предмета. Ече раз повторб тайл энтити только для блока, так как просто блок не может писать и читать нбт, а тайл энтити может. Предметы по дефольту могут читать и писать в нбт, им тайл энтити не нужен, да и ты его не сделаешь.
А еще блоки не тикают и все являются одним объектом, что серьезно усложняет неДа с чего вдругкоторое дерьмо.
Почему блоки не тикают?
[1.6.4]
Код:
 @Override
 public void onBlockAdded(World par1World, int par2, int par3, int par4)
 {
 par1World.scheduleBlockUpdate(par2, par3, par4, this.blockID, 20);
 }
 
 @Override
 public void updateTick(World par1World, int par2, int par3, int par4, Random par5Random)
 {
 System.out.println("test tick");
 par1World.scheduleBlockUpdate(par2, par3, par4, this.blockID, 20);
 }
updateTick - это для блока, но когда у блока есть типа TileEntity, то все апдейт тики делаються через TileEntity этого блока:
Код:
public void updateEntity() {}
[merge_posts_bbcode]Добавлено: 27.05.2014 14:14:39[/merge_posts_bbcode]

Try4W написал(а):
Как мне кажется, нужно просто писать содержимое рюкзака NBT'шку.
Так я и делаю, но у меня он не сохраняет.
Try4W написал(а):
Вот сырцы другого мода на рюкзаки.
Может потом посмотрю, я тупо копировать не буду, есть пока-что не пойму как работать с подобным.
 
675
2
[1.7.10][Forge]: Project "SMT"

А ты не копируй, просто посмотри, как сделано там.
 
Сверху