Вызывать гуи , когда сижу на блоке.

BestFoxy

Каменная лига
Сообщения
706
Лучшие ответы
19
Симпатии
32
#1
Версия Minecraft
1.7.10
Подтверждение
Я максимально подробно описал проблему, включая исходный код файлов, краш лог, изображения и другую информацию, которая может помочь пользователям форума решить мой вопрос!
Всем привет,такая проблема нужно при пкм по блоку садиться на него, а после если нажать пкм откроется инвентарь блока.
Вот так сажусь на блок
Java:
@Override
        public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
            EntitySit sit = new EntitySit(world);
            sit.setPosition((double)x + 0.5D, (double)y + 0.5D, (double)z + 0.5D);
            if (!world.isRemote) {
                world.spawnEntityInWorld(sit);
                player.mountEntity(sit);
            }
            return super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ);
        }
Вот так вызываю гуи
player.openGui(Main.getInstance(), Main.PALATKA_GUI, world, x, y, z);
 

Doc

Золотая лига
Сообщения
2,341
Лучшие ответы
126
Симпатии
302
#2
Проверить, если player сидит на Sit - то открыть гуи.
Иначе сесть.
 

BestFoxy

Каменная лига
Сообщения
706
Лучшие ответы
19
Симпатии
32
#3
Вот так вот сделал,но при пкм сразу сажусь и сразу открывается гуи,как сделать чтобы всё постепенно ?
Java:
@Override
        public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
            EntitySit sit = new EntitySit(world);
            sit.setPosition((double)x + 0.5D, (double)y + 0.5D, (double)z + 0.5D);
            if (!world.isRemote) {
                world.spawnEntityInWorld(sit);
                player.mountEntity(sit);
            }
            if(!world.getBlock(x, y, z).isOpaqueCube()){
                player.openGui(Main.getInstance(), Main.PALATKA_GUI, world, x, y, z);
            }
            return super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ);
        }
 
Последнее редактирование:

mbutakov_

Каменная лига
Сообщения
226
Лучшие ответы
6
Симпатии
11
#4
В onBlockActivated.
Идёт проверка,если игрок сидит то открывается гуй если нет то садится
Java:
            if(EntitySit.isSit(player, x, y, z)){
                player.openGui(твой мод.INSTANCE, твоё гуй, world, x, y, z);
            }else{
                EntitySit.sit(player, x, y, z);
Хватит клянчить код,ты много вопросов в день задаёшь,и иногда по глупым темам на которые ответ есть на форуме.
 

BestFoxy

Каменная лига
Сообщения
706
Лучшие ответы
19
Симпатии
32
#5
Гуи не открывается
 

mbutakov_

Каменная лига
Сообщения
226
Лучшие ответы
6
Симпатии
11
#6
код скинь как ты добавил.
 

BestFoxy

Каменная лига
Сообщения
706
Лучшие ответы
19
Симпатии
32
#7
Java:
@Override
      public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
          EntitySit sit = new EntitySit(world);
          sit.setPosition((double)x + 0.5D, (double)y + 0.5D, (double)z + 0.5D);
          if (!world.isRemote) {
              world.spawnEntityInWorld(sit);
              player.mountEntity(sit);
          }
          if(EntitySit.isSit(player, x, y, z)){
              player.openGui(Main.getInstance(), Main.PALATKA_GUI, world, x, y, z);
          }else{
              EntitySit.sit(player, x, y, z);
          }
          return super.onBlockActivated(world, x, y, z, player, side, hitX, hitY, hitZ);
      }
 

mbutakov_

Каменная лига
Сообщения
226
Лучшие ответы
6
Симпатии
11
#8
Зачем?.У тебя же есть класс EnitySit,тогда просто импорти и всё
Код:
EntitySit sit = new EntitySit(world);
Попробуй убрать ! с if (!wolrd.isRemote)
 
Последнее редактирование:

mbutakov_

Каменная лига
Сообщения
226
Лучшие ответы
6
Симпатии
11
#9
Вот так работает?
Java:
@Override
      public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) {
       TileEntityТвоего блока palatka = (TileEntityТвоего блока )world.getTileEntity(x, y, z);
          if (world.isRemote) {
              return true;
          }
          if(EntitySit.isSit(player, x, y, z)){
              player.openGui(Main.getInstance(), Main.PALATKA_GUI, world, x, y, z);
          }else{
              EntitySit.sit(player, x, y, z);
          }
         return true;
      }
Попробуй ещё вот-так
 
Последнее редактирование:

mbutakov_

Каменная лига
Сообщения
226
Лучшие ответы
6
Симпатии
11
#11
Интересно... у тебя не работает,а у меня работает.
 

BestFoxy

Каменная лига
Сообщения
706
Лучшие ответы
19
Симпатии
32
#12
Покажи свой EntitySit.
 

mbutakov_

Каменная лига
Сообщения
226
Лучшие ответы
6
Симпатии
11
#13
И к чему это писать ? Сообщение по фармить ?
BestFoxy вот вернись к тому что у тебя просто он открывался при нажатии,и пытайся как-то что-то делать и придумывать.
 

BestFoxy

Каменная лига
Сообщения
706
Лучшие ответы
19
Симпатии
32
#14
BestFoxy вот вернись к тому что у тебя просто он открывался при нажатии,и пытайся как-то что-то делать и придумывать.
был уже вариант, я садился и инвентарь сразу открывался , но это все же не то , что мне нужно
 
Сверху