[1.7.10]Вопрос по гуи, подскажите как взаимодействовать со слотами.

Agravaine написал(а):
Код:
worldObj = Minecraft.getMinecraft().theWorld;

new TileEntitySlot().isUseableByPlayer(p_75145_1_);
Ты прикалуешься?
Ты издеваешься? Удалили эту строку, ничего не изменилось. Удалил все что связано с данной переменной. getBlockTileEntity все ровно не имеется в World. Давай поэтапно, сейчас проблемы в гуи хандлере. Не надо прыгать с класса на класс, это путает очень сильно.
 
Это тоже:
this.worldObj = Minecraft.getMinecraft().theWorld;
Это работает только на клиентской стороне, на стороне сервера даже не знаю что будет.

Лучше посмотри код в готовых несложных модах. Хотя бы в моем https://bitbucket.org/Shuleshkin/nedocomputers/src/
 
Asd73 написал(а):
Это тоже:
this.worldObj = Minecraft.getMinecraft().theWorld;
Это работает только на клиентской стороне, на стороне сервера даже не знаю что будет.

Лучше посмотри код в готовых несложных модах. Хотя бы в моем https://bitbucket.org/Shuleshkin/nedocomputers/src/
про this.worldObj = Minecraft.getMinecraft().theWorld; вкурил и заменил на public void onContainerClosed(EntityPlayer p_75134_1_)
   {
       super.onContainerClosed(p_75134_1_);

       if (!p_75134_1_.getEntityWorld().isRemote
но у меня теперь гуи не открывается совсем. все как у тебя в моде
[merge_posts_bbcode]Добавлено: 29.10.2014 00:44:32[/merge_posts_bbcode]

Есть простой пример гуи с инвентаре и одним слотом? Без функций, что бы был просто инвентарь и один слот который ничего не делает, но в который можно положить предмет
В чем сейчас беда? 
GuiHandler
Код:
package spellflex.kuroi.rpg.gui;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.world.World;
import cpw.mods.fml.common.network.IGuiHandler;

public class GuiHandler implements IGuiHandler {

    @Override
    public Object getServerGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
        switch (ID) {
        case 1:
            return new GuiContainerMod(player);
        default:
            return null;
        }
    }

    @Override
    public Object getClientGuiElement(int ID, EntityPlayer player, World world, int x, int y, int z) {
        switch (ID) {
        case 1:
            return new GuiWindow(world, x, y, z, player);
        default:
            return null;
        }
    }

}
GuiContainerMod
Код:
package spellflex.kuroi.rpg.gui;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.entity.player.InventoryPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.inventory.Slot;
import net.minecraft.item.ItemStack;

public class GuiContainerMod extends Container {

    public GuiContainerMod (EntityPlayer player){
        for (int i = 0; i < 9; i++)
            addSlotToContainer(new Slot(player.inventory, i, 8 + i * 18, 142));
        for (int i = 0; i < 3; i++)
            for (int j = 0; j < 9; j++)
                addSlotToContainer(new Slot(player.inventory, j + i * 9 + 9, 8 + j * 18, 84 + i * 18));
    }

    @Override
    public boolean canInteractWith(EntityPlayer player) {
            return true;
    }


    protected void bindPlayerInventory(InventoryPlayer inventoryPlayer) {
    }

    @Override
    public ItemStack transferStackInSlot(EntityPlayer player, int slot) {
            return null;
    }
}
GuiWindow
Код:
package spellflex.kuroi.rpg.gui;

import org.lwjgl.input.Keyboard;
import org.lwjgl.opengl.GL11;

import cpw.mods.fml.common.FMLCommonHandler;
import spellflex.kuroi.rpg.Setings;
import net.minecraft.client.gui.GuiButton;
import net.minecraft.client.gui.GuiScreen;
import net.minecraft.client.gui.inventory.GuiContainer;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.server.MinecraftServer;
import net.minecraft.util.ResourceLocation;
import net.minecraft.world.World;

public class GuiWindow extends GuiContainer
{
    EntityPlayer entity = null;
    int xSize=190;
    int ySize=190;

    

public GuiWindow(World world, int i, int j, int k, EntityPlayer entity){
    super(new GuiContainerMod((EntityPlayer)entity));
}

private static final ResourceLocation texture = new ResourceLocation(Setings.MODID + ":textures/gui/UpWeapons.png");

protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
{
    GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
this.mc.renderEngine.bindTexture(texture);
int k = (this.width - xSize) / 2;
int l = (this.height - ySize) / 2;
this.drawTexturedModalRect(k, l, 0, 0, xSize, ySize);
}

protected void drawGuiContainerForegroundLayer(int par1, int par2){
    
}

public void initGui(){
    super.initGui();
}

protected void actionPerformed(GuiButton button)
{
MinecraftServer server = FMLCommonHandler.instance().getMinecraftServerInstance();
World world = server.worldServers[0];


}

}
Сделал самую простую гуишку которая открывает инвентарь и вот таже беда но уже только в первом ряду слотов(тот что является слотами быстрого доступа) теперь только там не берутся предметы? Сейчас-то почему. Знатоки, обосрали мой тайлэнтити типа это из-за него, окей, его больше нет. Теперь что не так?
 
Agravaine написал(а):
Код:
new GuiContainerMod((EntityPlayer)entity));
Гениально.
ахаха. ну да не как у тебя. но это пример из менуала. как ты и сказал. напиши мне свой раз тебе все не так, пока что ты только критекуешь и не помогаешь, от юда вывод ты не хера не шаришь и тупо набиваешь посты.
 
Dragon2488 написал(а):
В гуи хендлере тебе дают мир
Баран почитай о чем речь идет. У меня все открывается, но из слотов быстрого доступа не берутся предметы. Причем тут мир? имбицил. Если бы тут кто-то соображал из вас, то помог бы, а не оскорблял. Модератор ЛОХ.
 
Вызов гуи на клиентской стороне должен привести к невозможности перемещения предметов во всем инвентаре.
Но раз теперь у тебя не работают только нижние слоты, то причина другая.
[merge_posts_bbcode]Добавлено: 29.10.2014 08:25:52[/merge_posts_bbcode]

Класс тайла никто не обсирал.
Тайл нужен для чего? Для сохранения инвентаря, естественно. Но как он будет что-то сохранять, если даже не знает свои координаты?
 
Asd73 написал(а):
Вызов гуи на клиентской стороне должен привести к невозможности перемещения предметов во всем инвентаре.
Но раз теперь у тебя не работают только нижние слоты, то причина другая.
Да еще я забыл указать, что гуи открывается итемом, что бы все со своим тайл энтити проверкой на существование не гнобили. А по поводу Того, что происходит со слотами, я вот тоже не понимаю и поэтому обращаюсь на форум. Было бы все так просто, то решил бы сам (наверно)
[merge_posts_bbcode]Добавлено: 29.10.2014 07:27:24[/merge_posts_bbcode]

Asd73 написал(а):
Класс тайла никто не обсирал.
Тайл нужен для чего? Для сохранения инвентаря, естественно. Но как он будет что-то сохранять, если даже не знает свои координаты?
Я это понимаю, но сейчас у меня в гуи нет ничего кроме инвентаря, зачем мне передавать корды? Нет других слотов, да и хранить ничего мне не надо))
 
Когда блок кто-то ставит или блок прогружается, майнкрафт проверяет, есть ли у блока тайл, если есть, то вызывает у блока метод createNewTileEntity, полученный результат сохраняет где-то у себя и записывает в поля тайла данные (координаты, worldObj и т.д.). А потом майнкрафт когда нужно вызывает разные методы тайла. readFromNBT, writeToNBT при загрузке и сохранении, updateEntity каждый тик, и т.д.
А если ты просто создашь объект тайла, то никто все эти действия не будет выполнять, и как минимум, это приведет к тому, что инвентарь не сохраниться.
[merge_posts_bbcode]Добавлено: 29.10.2014 08:35:13[/merge_posts_bbcode]

Если хочешь, то скинь архив со всем твоим кодом, и я вечером возможно исправлю.
 
Asd73 написал(а):
Когда блок кто-то ставит или блок прогружается, майнкрафт проверяет, есть ли у блока тайл, если есть, то вызывает у блока метод createNewTileEntity, полученный результат сохраняет где-то у себя и записывает в поля тайла данные (координаты, worldObj и т.д.). А потом майнкрафт когда нужно вызывает разные методы тайла. readFromNBT, writeToNBT при загрузке и сохранении, updateEntity каждый тик, и т.д.
А если ты просто создашь объект тайла, то никто все эти действия не будет выполнять, и как минимум, это приведет к тому, что инвентарь не сохраниться.
данный инвентарь не надо сохранять, кастом слоты будут на подобии крафтера, но не крафтер, тоесть слоты будут пустые и юзать их будет итем, нет блока для данного гуи.
[merge_posts_bbcode]Добавлено: 29.10.2014 07:52:36[/merge_posts_bbcode]

Asd73 написал(а):
Если хочешь, то скинь архив со всем твоим кодом, и я вечером возможно исправлю.
https://yadi.sk/d/JOZq_sC9cMXTJ Буду очень благодарен.
 
А ты кто? Если у тебя инвентарь без блока и тайла, нафиг тебе вообще он нужен.\
А за оскорбление ты улетишь в бан, если еще раз такое увижу.
[merge_posts_bbcode]Добавлено: 29.10.2014 13:22:13[/merge_posts_bbcode]

Да ты оскорбил и не только меня, таким темпом тебе никто и помогать не будет. Нормально бы общался - сразу бы помогли.
 
Dragon2488 написал(а):
А ты кто? Если у тебя инвентарь без блока и тайла, нафиг тебе вообще он нужен.\
А за оскорбление ты улетишь в бан, если еще раз такое увижу.
[merge_posts_bbcode]Добавлено: 29.10.2014 13:22:13[/merge_posts_bbcode]

Да ты оскорбил и не только меня, таким темпом тебе никто и помогать не будет. Нормально бы общался - сразу бы помогли.
если ты почитаешь, то я общался нормально, до тех пор пока не начали оскорблять и тыкать в то, что ну ни как не сявязано с тем, что из слотов не берутся итемы. у меня открывется гуи с инвентарем игрока и двумя слотами, в которое игрок ложет оружее и свиток и оно обменивает ему мечь на другой, из свитка.
Понимаешь? и мне надо что бы это гуи открывалось через итем, от сюдого следует, что блока для этой белеберды нет.
 
Назад
Сверху