Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Жаль... Спасибо за ответ!svk2140 написал(а):Нет, конечно невозможно.
Minecraft beta 1.8
Minecraft.getMinecraft().displayGuiScreen(new MyGui(entity));
player.openContainer = new MyContainer(entity);
Мне аж жалко стало ;DDahaka написал(а):Это был сарказм)
svk2140 написал(а):Мне аж жалко стало ;DDahaka написал(а):Это был сарказм)
Вернусь.. сейчас тестирую код тимахи потом отпишусь о результатахCMTV написал(а):svk2140 написал(а):Мне аж жалко стало ;DDahaka написал(а):Это был сарказм)
Да уж. Будем надеяться, что он еще вернется в тему... Лучше так не шутить.
Отправил ему ЛС. Должно на почту прийти)
Minecraft.getMinecraft().displayGuiScreen(new MyGui(entity);
player.openContainer = new ContainerYPT(entity);
timaxa007 написал(а):Если ты про открытие Gui и Container, то вроде как использовать в методе interactFirst для Entity.
drgmes написал(а):Ентити твой? Или майновский?
private IInventory inventoryEntityMagicChest = new InventoryBasic("InventoryEntityMagicChest", false, 9 * 3);
@Override
public boolean interactFirst(EntityPlayer player) {
if (player instanceof EntityPlayerMP) {
//Синхранизация с NBT Entity на клиенте.
SMTMagic.network.sendTo(getDescriptionPacket(), (EntityPlayerMP)player);
//Открываем нашё Container.
player.openContainer = new EntityMagicChestContainer(this, player);
//Создаём пакет для отправки на клиент, чтобы открыть Gui.
MessageOpenGuiEntityMagicChest packetOpenGui = new MessageOpenGuiEntityMagicChest();
packetOpenGui.entityID = this.getEntityId();
SMTMagic.network.sendTo(packetOpenGui, (EntityPlayerMP)player);
}
return true;
}
public IInventory getInventory() {
return inventoryEntityMagicChest;
}
@SideOnly(Side.CLIENT)
private void act(MessageOpenGuiEntityMagicChest packet) {
Minecraft mc = Minecraft.getMinecraft();
Entity entity = mc.theWorld.getEntityByID(packet.entityID);
if (entity instanceof EntityMagicChest) {
mc.displayGuiScreen(new EntityMagicChestGui((EntityMagicChest)entity, mc.thePlayer));
}
}
public class EntityMagicChestGui extends net.minecraft.client.gui.inventory.GuiContainer {
private static final ResourceLocation furnaceGuiTextures = new ResourceLocation("textures/gui/container/furnace.png");
private final EntityMagicChest entityMagicChest;
public EntityMagicChestGui(EntityMagicChest entityMagicChest, EntityPlayer player) {
super(new EntityMagicChestContainer(entityMagicChest, player));
this.entityMagicChest = entityMagicChest;
}
@Override
public void drawGuiContainerForegroundLayer(int mouseX, int mouseY) {
if (entityMagicChest != null) {
String s = entityMagicChest.getCommandSenderName();
fontRendererObj.drawString(s, xSize / 2 - fontRendererObj.getStringWidth(s) / 2, 6, 4210752);
}
fontRendererObj.drawString(I18n.format("container.inventory", new Object[0]), 8, ySize - 96 + 2, 4210752);
}
@Override
public void drawGuiContainerBackgroundLayer(float parTick, int mouseX, int mouseY) {
GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F);
mc.getTextureManager().bindTexture(furnaceGuiTextures);
int k = (width - xSize) / 2;
int l = (height - ySize) / 2;
drawTexturedModalRect(k, l, 0, 0, xSize, ySize);
if (entityMagicChest != null) {
}
}
}
public class EntityMagicChestContainer extends net.minecraft.inventory.Container {
private final EntityMagicChest entityMagicChest;
public EntityMagicChestContainer(EntityMagicChest entityMagicChest, EntityPlayer player) {
this.entityMagicChest = entityMagicChest;
if (entityMagicChest != null) {
addSlotToContainer(new Slot(entityMagicChest.getInventory(), 0, 56, 17));
addSlotToContainer(new Slot(entityMagicChest.getInventory(), 1, 56, 53));
addSlotToContainer(new SlotFurnace(player, entityMagicChest.getInventory(), 2, 116, 35));
}
int i;
for (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));
}
}
for (i = 0; i < 9; ++i) {
addSlotToContainer(new Slot(player.inventory, i, 8 + i * 18, 142));
}
}
//transferStackInSlot
@Override
public boolean canInteractWith(EntityPlayer player) {
return entityMagicChest != null ? player.getDistanceToEntity(entityMagicChest) <= 64.0D : false;
}
}
public class SMTMagic {
...
public static SimpleNetworkWrapper network;
@EventHandler
public void preInit(FMLPreInitializationEvent event) {
network = NetworkRegistry.INSTANCE.newSimpleChannel(MODID);
network.registerMessage(MessageOpenGuiEntityMagicChest.Handler.class, MessageOpenGuiEntityMagicChest.class, 0, Side.CLIENT);
}
}
public class MessageOpenGuiEntityMagicChest implements IMessage {
public int entityID;
public MessageOpenGuiEntityMagicChest() {}
@Override
public void toBytes(ByteBuf buf) {
buf.writeInt(entityID);
}
@Override
public void fromBytes(ByteBuf buf) {
entityID = buf.readInt();
}
public static class Handler implements IMessageHandler<MessageOpenGuiEntityMagicChest, IMessage> {
@Override
public IMessage onMessage(MessageOpenGuiEntityMagicChest packet, MessageContext message) {
if (FMLCommonHandler.instance().getSide().isClient())
act(packet);
else
act(message.getServerHandler().playerEntity, packet);
return null;
}
@SideOnly(Side.CLIENT)
private void act(MessageOpenGuiEntityMagicChest packet) {
Minecraft mc = Minecraft.getMinecraft();
Entity entity = mc.theWorld.getEntityByID(packet.entityID);
if (entity instanceof EntityMagicChest) {
mc.displayGuiScreen(new EntityMagicChestGui((EntityMagicChest)entity, mc.thePlayer));
}
}
private void act(EntityPlayerMP player, MessageOpenGuiEntityMagicChest packet) {
Entity entity = player.worldObj.getEntityByID(packet.entityID);
if (entity instanceof EntityMagicChest) {
player.openContainer = new EntityMagicChestContainer((EntityMagicChest)entity, player);
}
}
}
}
if (player instanceof EntityPlayerMP) {
//Синхранизация с NBT Entity на клиенте.
SMTMagic.network.sendTo(getDescriptionPacket(), (EntityPlayerMP)player);