не открывается гуи 1.7.10

for (int i = 0; i < 3; i++) {
                    for (int j = 0; j < 3; j++) {
                            addSlotToContainer(new Slot(tileEntity, j + i * 3, 62 + j * 18, 17 + i * 18));
                    }
            }
 
то же самое
[merge_posts_bbcode]Добавлено: 20.09.2015 00:18:08[/merge_posts_bbcode]

я просто не понимаю, что это за слоты i и j

[merge_posts_bbcode]Добавлено: 20.09.2015 00:24:05[/merge_posts_bbcode]

Cделал так, заработало

for (int i = 0; i < 1; i++) {
                for (int j = 0; j < 1; j++) {
                        addSlotToContainer(new Slot(tileEntity, j + i * 1, 1 + j * 1, 1 + i * 1));
                }
            }

[merge_posts_bbcode]Добавлено: 20.09.2015 00:24:30[/merge_posts_bbcode]

но дело в том, что когда я ложу предмет в контейнер, то он исчезает при перезахде
[merge_posts_bbcode]Добавлено: 20.09.2015 00:25:15[/merge_posts_bbcode]

и слот отображается не по середине, а слева сверху

[merge_posts_bbcode]Добавлено: 20.09.2015 00:25:27[/merge_posts_bbcode]

ой
 
Alex090909 написал(а):
но дело в том, что когда я ложу предмет в контейнер, то он исчезает при перезахде
Попробуй добавить в TileEntity:
Код:
    public Packet getDescriptionPacket() {
        NBTTagCompound nbt = new NBTTagCompound();
        writeToNBT(nbt);
        return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 0, nbt);
    }

    public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet) {
        readFromNBT(packet.func_148857_g());
    }
Alex090909 написал(а):
и слот отображается не по середине, а слева сверху
Возможно у тебя размеры gui окна указаны не верно, либо меняй координаты этого слота.
 
В твоём TileEntity есть метод "writeToNBT" для сохранения и в нём не написано, чтобы он сохранял предмет.
Есть "writeToNBT", но а где "readFromNBT"?
 
[00:04:01] [Server thread/ERROR] [FML]: A TileEntity type assets.armorness.src.tileentity.TileEntityObsidianForge has throw an exception trying to write state. It will not persist. Report this to the mod author
java.lang.RuntimeException: class assets.armorness.src.tileentity.TileEntityObsidianForge is missing a mapping! This is a bug!
    at net.minecraft.tileentity.TileEntity.writeToNBT(TileEntity.java:96) ~[TileEntity.class:?]
    at assets.armorness.src.tileentity.TileEntityObsidianForge.writeToNBT(TileEntityObsidianForge.java:121) ~[TileEntityObsidianForge.class:?]
    at net.minecraft.world.chunk.storage.AnvilChunkLoader.writeChunkToNBT(AnvilChunkLoader.java:395) [AnvilChunkLoader.class:?]
    at net.minecraft.world.chunk.storage.AnvilChunkLoader.saveChunk(AnvilChunkLoader.java:204) [AnvilChunkLoader.class:?]
    at net.minecraft.world.gen.ChunkProviderServer.safeSaveChunk(ChunkProviderServer.java:287) [ChunkProviderServer.class:?]
    at net.minecraft.world.gen.ChunkProviderServer.saveChunks(ChunkProviderServer.java:340) [ChunkProviderServer.class:?]
    at net.minecraft.world.WorldServer.saveAllChunks(WorldServer.java:863) [WorldServer.class:?]
    at net.minecraft.server.MinecraftServer.saveAllWorlds(MinecraftServer.java:370) [MinecraftServer.class:?]
    at net.minecraft.server.integrated.IntegratedServer.tick(IntegratedServer.java:113) [IntegratedServer.class:?]
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:485) [MinecraftServer.class:?]
    at net.minecraft.server.MinecraftServer$2.run(MinecraftServer.java:752) [MinecraftServer$2.class:?]
[merge_posts_bbcode]Добавлено: 20.09.2015 02:04:57[/merge_posts_bbcode]

вот ошибка
Read я добавил
 
как с этим все тяжело, ужс
[merge_posts_bbcode]Добавлено: 20.09.2015 02:06:24[/merge_posts_bbcode]

как с этим все тяжело, ужс
 
Alex090909 написал(а):
сделал так, первый открывается, а второй нет:
Alex090909, у тебя ещё блоке отсутствует "implements ITileEntityProvider", т.е. у тебя даже окно не должно открыться, потому-что блок без TileEntity.
 
GameRegistry.registerTileEntity(TileEntityObsidianForge.class, "ContainerObsidianForge");
ДОБАВИЛ
[merge_posts_bbcode]Добавлено: 20.09.2015 02:11:07[/merge_posts_bbcode]

то же самое, только ошибку не пишет в консоле

[merge_posts_bbcode]Добавлено: 20.09.2015 02:11:37[/merge_posts_bbcode]

Вот мой Тайл:
Код:
package assets.armorness.src.tileentity;

import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.IInventory;
import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.NetworkManager;
import net.minecraft.network.Packet;
import net.minecraft.network.play.server.S35PacketUpdateTileEntity;
import net.minecraft.tileentity.TileEntity;

public class TileEntityObsidianForge extends TileEntity implements IInventory{

    private final ItemStack[] itemStacks;

    public TileEntityObsidianForge() {
            itemStacks = new ItemStack[1];
    }

    @Override
    public int getSizeInventory() {
        return 1;
    }

    @Override
    public ItemStack getStackInSlot(int p_70301_1_) {
        return itemStacks[p_70301_1_];
    }

    @Override
    public ItemStack decrStackSize(int p_70298_1_, int p_70298_2_) {
        ItemStack stack = this.getStackInSlot(p_70298_1_);
        if (stack != null) {
            if (stack.stackSize <= p_70298_2_) {
                setInventorySlotContents(p_70298_1_, (ItemStack) null);
            } else {
                stack = stack.splitStack(p_70298_2_);
                if (stack.stackSize == 0) {
                    setInventorySlotContents(p_70298_1_, (ItemStack) null);
                }
            }
        }
        markDirty();
        return stack;
    }

    @Override
    public ItemStack getStackInSlotOnClosing(int p_70304_1_) {
        if (itemStacks[p_70304_1_] != null) {
            ItemStack itemstack = itemStacks[p_70304_1_];
            itemStacks[p_70304_1_] = null;
            return itemstack;
        } else {
            return null;
        }
    }

    @Override
    public void setInventorySlotContents(int p_70299_1_, ItemStack p_70299_2_) {
        itemStacks[p_70299_1_] = p_70299_2_;
        if (p_70299_2_ != null && p_70299_2_.stackSize > this.getInventoryStackLimit()) {
            p_70299_2_.stackSize = getInventoryStackLimit();
        }
        markDirty();
    }

    @Override
    public String getInventoryName() {
        return "Obsidian Forge";
    }

    @Override
    public boolean hasCustomInventoryName() {
        return false;
    }

    @Override
    public int getInventoryStackLimit() {
        return 64;
    }

    @Override
    public void markDirty() {
    }

    @Override
    public boolean isUseableByPlayer(EntityPlayer p_70300_1_) {
        return !p_70300_1_.isDead;
    }

    @Override
    public void openInventory() {
    }

    @Override
    public void closeInventory() {
    }

    @Override
    public boolean isItemValidForSlot(int p_94041_1_, ItemStack p_94041_2_) {
        return false;
    }
    
    public Packet getDescriptionPacket(){
        S35PacketUpdateTileEntity packet = (S35PacketUpdateTileEntity)super.getDescriptionPacket();
        NBTTagCompound dataTag = packet != null ? packet.func_148857_g() : new NBTTagCompound();
        writeToNBT(dataTag);
        return new S35PacketUpdateTileEntity(xCoord, yCoord, zCoord, 1, dataTag);
    }

    public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity packet){
        super.onDataPacket(net, packet);
        NBTTagCompound tag = packet != null ? packet.func_148857_g() : new NBTTagCompound();
        readFromNBT(tag);
    }
    
}
 
Назад
Сверху