Jump to content

Stjubit

Members
  • Posts

    63
  • Joined

  • Last visited

Posts posted by Stjubit

  1. Thank you, helped a lot ;)

     

    Another question: I need to have all Blocks at every time. Is it better to store the coordinates of them in an external file or should i get all of them in the InitializationEvent with "Minecraft.getMinecraft().theWorld.loadedTileEntityList" and filter the BlockTileEntities out of the List? I would prefer the second way, but I would just like to know your opinion.

     

    PS: diesieben07 i saw that you're from Germany. I'm from Austria ;)

     

    Thanks,

    Julian

  2. Hello,

     

    Is there any way you can place a few Blocks of the same class, which send out different Redstone signals?

    Example: I have a block-class "Redstone Sender" and i place a few of them into my world. Now i want to make one block to provide redstone power and the other blocks don't. The problem is, if I change the isProvidingWeakPower-method of a block i get out of "world.getBlock(x,y,z)", every Block in the world changes.

     

    I hope you understand my problem.  ;)

     

    With best regards,

    Julian

  3. Thank you sooooooooo much.

    I would like to give you more than a Thanks in this forum :)

     

    For everyone who has the same / will have the same problem like me, this is how i did it:

     

    Insert an empty method in your CommonProxy-class like this:

    public void updateWirelessReceiveGuiFrequency(int frequency)
        {
    
        }
    

     

    ...and overwrite the method in your ClientProxy like this:

    @Override
        public void updateWirelessReceiveGuiFrequency(int frequency)
        {
            super.updateWirelessReceiveGuiFrequency(frequency);
    
            GuiScreen guiScreen = Minecraft.getMinecraft().currentScreen;
    
            if(guiScreen instanceof WirelessReceiverGuiContainer)
            {
                ((WirelessReceiverGuiContainer) guiScreen).updateFrequency(frequency);
            }
        }
    

     

    ...and call this method from your onMessage-method:

    @Override
            public IMessage onMessage(WirelessReceiverGuiPacket message, MessageContext ctx)
            {
                ControlCraft.PROXY.updateWirelessReceiveGuiFrequency(message.frequency);
    
                return null;
            }
    

     

    ...send the packet after your Gui has been opened:

    ControlCraft.snw.sendTo(new WirelessReceiverGuiPacket(((WirelessReceiverTileEntity) te).getFrequency()), (EntityPlayerMP) ep);
    

     

    That's all!

     

    I know diesieben07, that this question has been asked a few times to you, but I want to know it. How have you learned something like this? I haven't seen any Tutorials about things like that.

     

    Thanks for your help,

    Julian

  4. So I need to create a new ClientPacket like this:

    snw.registerMessage(WirelessReceiverGuiPacket.WirelessReceiverGuiPacketHandler.class,WirelessReceiverGuiPacket.class,1,Side.CLIENT);

     

    ...and implement it like this (more or less):

    package at.stjubit.ControlCraft.packets;
    
    import at.stjubit.ControlCraft.utilities.Constants;
    import cpw.mods.fml.common.network.ByteBufUtils;
    import cpw.mods.fml.common.network.simpleimpl.IMessage;
    import cpw.mods.fml.common.network.simpleimpl.IMessageHandler;
    import cpw.mods.fml.common.network.simpleimpl.MessageContext;
    import io.netty.buffer.ByteBuf;
    
    /**
    * Created by kauju_000 on 16.07.2015.
    */
    public class WirelessReceiverGuiPacket implements IMessage
    {
        int frequency;
    
        public WirelessReceiverGuiPacket() {}
    
        public WirelessReceiverGuiPacket(int frequency)
        {
            this.frequency = frequency;
        }
    
        @Override
        public void fromBytes(ByteBuf buf)
        {
            frequency = ByteBufUtils.readVarInt(buf, 4);
        }
    
        @Override
        public void toBytes(ByteBuf buf)
        {
            ByteBufUtils.writeVarInt(buf,frequency,4);
        }
    
        public static class WirelessReceiverGuiPacketHandler implements IMessageHandler<WirelessReceiverGuiPacket, IMessage>
        {
    
            @Override
            public IMessage onMessage(WirelessReceiverGuiPacket message, MessageContext ctx)
            {
                return null;
            }
        }
    }
    

     

    ...and open the GUI like this:

    ep.openGui(ControlCraft.INSTANCE,Constants.WIRELESS_RECEIVER_GUI_ID,world,x,y,z);
    ControlCraft.snw.sendTo(new WirelessReceiverGuiPacket(((WirelessReceiverTileEntity) te).getFrequency()), (EntityPlayerMP) ep);
    

     

    Next problem (of course):

    How can I get the GuiContainer to update the frequency in the onMessage()-method?

     

    I am stupid, sry..

  5. Thank you for your answer!

     

    This is how i made it for now:

     

    PacketHandler:

     

    public static class WirelessReceiverPacketHandler implements IMessageHandler<WirelessReceiverPacket, IMessage>
        {
            @Override
            public IMessage onMessage(WirelessReceiverPacket message, MessageContext ctx)
            {
                Container con = ctx.getServerHandler().playerEntity.openContainer;
                if(con != null && con instanceof WirelessReceiverContainer)
                {
                    ((WirelessReceiverContainer)con).setFrequency(message.frequency);
                }
    
                return null;
            }
        }
    

     

     

    The frequency is now changed to the frequency I got from the packet, but it would be strange if I wouldn't have got another problem :)

     

    The next time I open my WirelessReceiverGUI, the frequency is 0 again.

     

    Could it be, that the TileEntity is created every time I do right-click on my WirelessReceiverBlock? Because then, I would need to store my frequency-variable anywhere else.

     

    PS: I removed the initialization =0 in the TileEntity-class.

     

    Would be nice if you could help me again :)

  6. Hello, it's me again with another problem  :-\

     

    So, i startet a new project which can save and edit a frequency in a GUI. Here is a screenshot of it, so that you know what i'm doing here:

     

    0aOKFP6.png

     

     

    In the game, everything works perfect. I can increase/decrease the frequency and when i close the GUI and open it again, the frequency is still there, but when I go out of the world (not the game) and go in again, the frequency is 0, again. However, the frequency is not getting saved or not getting load correctly.

     

    Here is my Block-class:

     

    public class WirelessReceiver extends Block implements ITileEntityProvider
    {
        public WirelessReceiver(Material material)
        {
            super(material);
    
            setBlockName("WirelessReceiver");
            setCreativeTab(ControlCraft.ccTab);
            setBlockTextureName(Constants.MODID+":wireless_receiver");
            setHardness(1.0f);
        }
    
        @Override
        public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer ep, int p_149727_6_, float p_149727_7_, float p_149727_8_, float p_149727_9_)
        {
            if(world.isRemote) return true;
    
            TileEntity te = world.getTileEntity(x,y,z);
            if(te != null && te instanceof WirelessReceiverTileEntity)
            {
                ep.openGui(ControlCraft.INSTANCE,Constants.WIRELESS_RECEIVER_GUI_ID,world,x,y,z);
            }
    
            return true;
        }
    
        @Override
        public TileEntity createNewTileEntity(World world, int meta)
        {
            return new WirelessReceiverTileEntity();
        }
    
        @Override
        public boolean hasTileEntity(int metadata)
        {
            return true;
        }

     

     

    Here is my TileEntity-class:

     

    public class WirelessReceiverTileEntity extends TileEntity
    {
        int frequency=0;
    
        public WirelessReceiverTileEntity()
        {
    
        }
        
        public void setFrequency(int frequency)
        {
            this.frequency = frequency;
            this.markForUpdate();
        }
    
        public int getFrequency()
        {
            return frequency;
        }
    
        public void markForUpdate()
        {
            this.worldObj.markBlockForUpdate(xCoord,yCoord,zCoord);
            this.markDirty();
        }
    
        @Override
        public void writeToNBT(NBTTagCompound nbtTagCompound)
        {
            super.writeToNBT(nbtTagCompound);
    
            nbtTagCompound.setInteger("Frequency",frequency);
        }
    
        @Override
        public void readFromNBT(NBTTagCompound nbtTagCompound)
        {
            super.readFromNBT(nbtTagCompound);
    
            frequency = nbtTagCompound.getInteger("Frequency");
        }
    }
    

     

     

    Here is my GuiContainer:

     

    public class WirelessReceiverGuiContainer extends GuiContainer
    {
        ResourceLocation resourceLocation = new ResourceLocation(Constants.MODID+":textures/guis/wireless_receiver_gui_bg.png");
    
        WirelessReceiverTileEntity wrte;
    
        // Widgets
        GuiTextField tfFrequency;
        GuiButton btIncreaseByOne;
        GuiButton btIncreaseByTen;
        GuiButton btIncreaseByHundred;
        GuiButton btDecreaseByOne;
        GuiButton btDecreaseByTen;
        GuiButton btDecreaseByHundred;
        GuiButton btSet;
    
        public WirelessReceiverGuiContainer(WirelessReceiverTileEntity wrte, EntityPlayer ep)
        {
            super(new WirelessReceiverContainer(wrte, ep));
    
            this.wrte = wrte;
            xSize = 256;
            ySize = 57;
        }
    
        @Override
        public void initGui()
        {
            super.initGui();
    
            // TextFields
            int tfWidth = 60;
            int tfHeight=20;
            int tfX = (xSize/2)-(tfWidth/2);
            int tfY = 7;
            tfFrequency = new GuiTextField(fontRendererObj, tfX, tfY,tfWidth,tfHeight);
            tfFrequency.setText(wrte.getFrequency()+"");
            tfFrequency.setFocused(true);
            tfFrequency.setMaxStringLength(4);
            Keyboard.enableRepeatEvents(true);
    
            // Buttons (id, x, y, w, h, txt)
            int btIncOneWidth = 20;
            int btIncTenWidth = 25;
            int btIncHundredWith = 30;
            int btDecOneWidth = 20;
            int btDecTenWidth = 25;
            int btDecHundredWidth = 30;
            int btnHeight = 20;
            int btnMargin = 5;
    
            int widthSum = btIncOneWidth+btIncTenWidth+btIncHundredWith+btDecOneWidth+btDecTenWidth+btDecHundredWidth+5*btnMargin;
            int btnY = (height/2-ySize/2)+btnMargin+tfHeight+btnMargin;
    
    
            int btDecHundredX = (width-widthSum)/2-(btDecHundredWidth/2);
            btDecreaseByHundred = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_DECR_HUNDRED_ID, btDecHundredX,btnY,btDecHundredWidth,btnHeight,"-100");
    
            int btDecTenX = btDecHundredX+btDecHundredWidth+btnMargin;
            btDecreaseByTen = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_DECR_TEN_ID, btDecTenX,btnY,btDecTenWidth,btnHeight,"-10");
    
            int btDecOneX = btDecTenX+btDecTenWidth+btnMargin;
            btDecreaseByOne = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_DECR_ONE_ID, btDecOneX,btnY,btDecOneWidth,btnHeight,"-1");
    
            int btIncOneX = btDecOneX+btDecOneWidth+btnMargin;
            btIncreaseByOne = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_INCR_ONE_ID, btIncOneX,btnY,btIncOneWidth,btnHeight,"+1");
    
            int btIncTenX = btIncOneX+btIncOneWidth+btnMargin;
            btIncreaseByTen = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_INCR_TEN_ID, btIncTenX,btnY,btIncTenWidth,btnHeight,"+10");
    
            int btIncHundredX = btIncTenX+btIncTenWidth+btnMargin;
            btIncreaseByHundred = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_INCR_HUNDRED_ID, btIncHundredX,btnY,btIncHundredWith,btnHeight,"+100");
    
            int btSetWidth = 30;
            int btSetMargin = 10;
            int btSetX = (width/2)+(xSize/2)-btSetWidth-btSetMargin;
            btSet = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_SET_ID,btSetX,btnY,btSetWidth,btnHeight,"Set");
    
            buttonList.add(btIncreaseByOne);
            buttonList.add(btIncreaseByTen);
            buttonList.add(btIncreaseByHundred);
            buttonList.add(btDecreaseByOne);
            buttonList.add(btDecreaseByTen);
            buttonList.add(btDecreaseByHundred);
            buttonList.add(btSet);
        }
    
        @Override
        protected void keyTyped(char c, int keyCode)
        {
            if(c>=48 && c<=57 || c==8 || c==45 || c==43)
            {
                tfFrequency.textboxKeyTyped(c, keyCode);
            }
    
            super.keyTyped(c, keyCode);
        }
    
        @Override
        public void updateScreen()
        {
            tfFrequency.updateCursorCounter();
    
            super.updateScreen();
        }
    
        @Override
        protected void actionPerformed(GuiButton gb)
        {
            switch(gb.id)
            {
                case Constants.WIRELESS_RECEIVER_GUI_BTN_INCR_ONE_ID:
                    increaseFrequency(1); break;
                case Constants.WIRELESS_RECEIVER_GUI_BTN_INCR_TEN_ID:
                    increaseFrequency(10); break;
                case Constants.WIRELESS_RECEIVER_GUI_BTN_INCR_HUNDRED_ID:
                    increaseFrequency(100); break;
                case Constants.WIRELESS_RECEIVER_GUI_BTN_DECR_ONE_ID:
                    increaseFrequency(-1); break;
                case Constants.WIRELESS_RECEIVER_GUI_BTN_DECR_TEN_ID:
                    increaseFrequency(-10); break;
                case Constants.WIRELESS_RECEIVER_GUI_BTN_DECR_HUNDRED_ID:
                    increaseFrequency(-100); break;
                case Constants.WIRELESS_RECEIVER_GUI_BTN_SET_ID:
                    onBtnSet();
            }
    
            super.actionPerformed(gb);
        }
    
        /**
         * Increases or Decreases the Frequency-GuiTextField
         * @param amt Factor
         */
        public void increaseFrequency(int amt)
        {
            String text = tfFrequency.getText();
            if(text=="")
            {
                tfFrequency.setText(amt+"");
            }
            else
            {
                int zahl = Integer.parseInt(text)+amt;
                tfFrequency.setText(zahl+"");
            }
        }
    
        public void onBtnSet()
        {
            String text = tfFrequency.getText();
            if(!text.equals(""))
            {
                int frequency = Integer.parseInt(text);
                wrte.setFrequency(frequency);
                this.mc.thePlayer.closeScreen();
            }
        }
    
        @Override
        protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
        {
            mc.renderEngine.bindTexture(resourceLocation);
    
            GL11.glColor4f(1.0f,1.0f,1.0f,1.0f);
    
            int bgX = width/2-128;
            int bgY = height/2-28;
    
            this.drawTexturedModalRect(bgX, bgY, 0, 0, 256, 57);
        }
    
        @Override
        protected void drawGuiContainerForegroundLayer(int p_146979_1_, int p_146979_2_)
        {
            super.drawGuiContainerForegroundLayer(p_146979_1_, p_146979_2_);
    
            tfFrequency.drawTextBox();
        }
    }
    

     

     

    Here is my GuiHandler:

     

    public class WirelessReceiverGuiContainer extends GuiContainer
    {
        ResourceLocation resourceLocation = new ResourceLocation(Constants.MODID+":textures/guis/wireless_receiver_gui_bg.png");
    
        WirelessReceiverTileEntity wrte;
    
        // Widgets
        GuiTextField tfFrequency;
        GuiButton btIncreaseByOne;
        GuiButton btIncreaseByTen;
        GuiButton btIncreaseByHundred;
        GuiButton btDecreaseByOne;
        GuiButton btDecreaseByTen;
        GuiButton btDecreaseByHundred;
        GuiButton btSet;
    
        public WirelessReceiverGuiContainer(WirelessReceiverTileEntity wrte, EntityPlayer ep)
        {
            super(new WirelessReceiverContainer(wrte, ep));
    
            this.wrte = wrte;
            xSize = 256;
            ySize = 57;
        }
    
        @Override
        public void initGui()
        {
            super.initGui();
    
            // TextFields
            int tfWidth = 60;
            int tfHeight=20;
            int tfX = (xSize/2)-(tfWidth/2);
            int tfY = 7;
            tfFrequency = new GuiTextField(fontRendererObj, tfX, tfY,tfWidth,tfHeight);
            tfFrequency.setText(wrte.getFrequency()+"");
            tfFrequency.setFocused(true);
            tfFrequency.setMaxStringLength(4);
            Keyboard.enableRepeatEvents(true);
    
            // Buttons (id, x, y, w, h, txt)
            int btIncOneWidth = 20;
            int btIncTenWidth = 25;
            int btIncHundredWith = 30;
            int btDecOneWidth = 20;
            int btDecTenWidth = 25;
            int btDecHundredWidth = 30;
            int btnHeight = 20;
            int btnMargin = 5;
    
            int widthSum = btIncOneWidth+btIncTenWidth+btIncHundredWith+btDecOneWidth+btDecTenWidth+btDecHundredWidth+5*btnMargin;
            int btnY = (height/2-ySize/2)+btnMargin+tfHeight+btnMargin;
    
    
            int btDecHundredX = (width-widthSum)/2-(btDecHundredWidth/2);
            btDecreaseByHundred = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_DECR_HUNDRED_ID, btDecHundredX,btnY,btDecHundredWidth,btnHeight,"-100");
    
            int btDecTenX = btDecHundredX+btDecHundredWidth+btnMargin;
            btDecreaseByTen = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_DECR_TEN_ID, btDecTenX,btnY,btDecTenWidth,btnHeight,"-10");
    
            int btDecOneX = btDecTenX+btDecTenWidth+btnMargin;
            btDecreaseByOne = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_DECR_ONE_ID, btDecOneX,btnY,btDecOneWidth,btnHeight,"-1");
    
            int btIncOneX = btDecOneX+btDecOneWidth+btnMargin;
            btIncreaseByOne = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_INCR_ONE_ID, btIncOneX,btnY,btIncOneWidth,btnHeight,"+1");
    
            int btIncTenX = btIncOneX+btIncOneWidth+btnMargin;
            btIncreaseByTen = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_INCR_TEN_ID, btIncTenX,btnY,btIncTenWidth,btnHeight,"+10");
    
            int btIncHundredX = btIncTenX+btIncTenWidth+btnMargin;
            btIncreaseByHundred = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_INCR_HUNDRED_ID, btIncHundredX,btnY,btIncHundredWith,btnHeight,"+100");
    
            int btSetWidth = 30;
            int btSetMargin = 10;
            int btSetX = (width/2)+(xSize/2)-btSetWidth-btSetMargin;
            btSet = new GuiButton(Constants.WIRELESS_RECEIVER_GUI_BTN_SET_ID,btSetX,btnY,btSetWidth,btnHeight,"Set");
    
            buttonList.add(btIncreaseByOne);
            buttonList.add(btIncreaseByTen);
            buttonList.add(btIncreaseByHundred);
            buttonList.add(btDecreaseByOne);
            buttonList.add(btDecreaseByTen);
            buttonList.add(btDecreaseByHundred);
            buttonList.add(btSet);
        }
    
        @Override
        protected void keyTyped(char c, int keyCode)
        {
            if(c>=48 && c<=57 || c==8 || c==45 || c==43)
            {
                tfFrequency.textboxKeyTyped(c, keyCode);
            }
    
            super.keyTyped(c, keyCode);
        }
    
        @Override
        public void updateScreen()
        {
            tfFrequency.updateCursorCounter();
    
            super.updateScreen();
        }
    
        @Override
        protected void actionPerformed(GuiButton gb)
        {
            switch(gb.id)
            {
                case Constants.WIRELESS_RECEIVER_GUI_BTN_INCR_ONE_ID:
                    increaseFrequency(1); break;
                case Constants.WIRELESS_RECEIVER_GUI_BTN_INCR_TEN_ID:
                    increaseFrequency(10); break;
                case Constants.WIRELESS_RECEIVER_GUI_BTN_INCR_HUNDRED_ID:
                    increaseFrequency(100); break;
                case Constants.WIRELESS_RECEIVER_GUI_BTN_DECR_ONE_ID:
                    increaseFrequency(-1); break;
                case Constants.WIRELESS_RECEIVER_GUI_BTN_DECR_TEN_ID:
                    increaseFrequency(-10); break;
                case Constants.WIRELESS_RECEIVER_GUI_BTN_DECR_HUNDRED_ID:
                    increaseFrequency(-100); break;
                case Constants.WIRELESS_RECEIVER_GUI_BTN_SET_ID:
                    onBtnSet();
            }
    
            super.actionPerformed(gb);
        }
    
        /**
         * Increases or Decreases the Frequency-GuiTextField
         * @param amt Factor
         */
        public void increaseFrequency(int amt)
        {
            String text = tfFrequency.getText();
            if(text=="")
            {
                tfFrequency.setText(amt+"");
            }
            else
            {
                int zahl = Integer.parseInt(text)+amt;
                tfFrequency.setText(zahl+"");
            }
        }
    
        public void onBtnSet()
        {
            String text = tfFrequency.getText();
            if(!text.equals(""))
            {
                int frequency = Integer.parseInt(text);
                wrte.setFrequency(frequency);
                this.mc.thePlayer.closeScreen();
            }
        }
    
        @Override
        protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
        {
            mc.renderEngine.bindTexture(resourceLocation);
    
            GL11.glColor4f(1.0f,1.0f,1.0f,1.0f);
    
            int bgX = width/2-128;
            int bgY = height/2-28;
    
            this.drawTexturedModalRect(bgX, bgY, 0, 0, 256, 57);
        }
    
        @Override
        protected void drawGuiContainerForegroundLayer(int p_146979_1_, int p_146979_2_)
        {
            super.drawGuiContainerForegroundLayer(p_146979_1_, p_146979_2_);
    
            tfFrequency.drawTextBox();
        }
    }
    

     

     

    Finally, here is my Container: (I don't know if I need this class, but i implemented it)

     

    public class WirelessReceiverContainer extends Container
    {
        public WirelessReceiverContainer(WirelessReceiverTileEntity wrte, EntityPlayer ep)
        {
    
        }
    
        @Override
        public boolean canInteractWith(EntityPlayer entityPlayer)
        {
            return true;
        }
    }
    

     

     

    I registered my TileEntity in my CommonProxy-class as followed: (registerTileEntities() gets called in the FMLInitializationEvent-method)

     

    public void registerTileEntites()
        {
            GameRegistry.registerTileEntity(WirelessReceiverTileEntity.class,"WirelessReceiverTileEntity");
        }
    

     

     

    I hope that anybody takes the time to read through this. I would really appreciate this.

     

    Thanks,

    Julian

  7. Hello, thanks for your answer.

     

    I use Forge-Version 10.13.4.1448 for Minecraft 1.7.10 ;)

     

    I just figured out, that when I overwrite the method "drawScreen()" in my GuiContainer-class and draw the GuiTextField in that method instead of drawing it in the "drawGuiContainerForegroundLayer"-method, the coordinates are right and everything is perfect. But why is 0/0 in the drawGuiContainerForegroundLayer-method on another place than 0/0 in the drawScreen-method?

     

    Thanks for your answer!

  8. Yeah, that's exactly what I thought, too, but if you would have read my Thread, you would know, that that's not the case. Please give a useful answer, or let it be.

     

    Why is 0/0 not in the left top of the Minecraft-Screen or in the left top of the GUI-Background? It's just anywhere?!

     

    With best regards,

    Julian

  9. Hello everyone,

     

    I really don't get it, how a GuiTextField is aligned in a GuiContainer.

    I have overwritten the drawGuiContainerBackgroundLayer to display my Background Image as followed:

     

     

    @Override
        protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3)
        {
            mc.renderEngine.bindTexture(resourceLocation);
    
            GL11.glColor4f(1.0f,1.0f,1.0f,1.0f);
    
            int bgX = width/2-128;
            int bgY = height/2-28;
    
            this.drawTexturedModalRect(bgX, bgY, 0, 0, 256, 57);
        }
    

     

     

     

    Background-Image:

    uQbazEM.png

     

    So the Background-Image is centered in Minecraft, as I wanted.

     

    Now the problem:

    When I initialize my GuiTextField like so:

    tfFrequency = new GuiTextField(fontRendererObj, 0,0,tfWidth,tfHeight);

     

    ...the TextField is anywhere. Here is a Screenshot as it looks In-Game:

    3Wyuxnr.png

     

    So the coordinates 0/0 are up there. Why? Where do the coordinates of a GuiTextField start?

     

    Thanks for every help and sorry for my bad english,

    Julian

  10. Hello,

     

    I think I have a very strange problem here:

     

    I want to decrease the stackSize of an Item called "ExplodeArrow" when i right click with an Item called "ExplodeGun" and this is how i did it for now:

     

    onItemRightClick(...) in ExplodeGun.java

     

    @Override
        public ItemStack onItemRightClick(ItemStack is, World world, EntityPlayer ep)
        {
            if(!world.isRemote)
            {
                if(ep.inventory.hasItem(TestMod.explodeArrow))
                {
                    ep.inventory.consumeInventoryItem(TestMod.explodeArrow);
                    ep.swingItem();
                }
            }
    
            return is;
        }

     

     

    Now the problem:

    When i right click my ExplodeGun, the stackSize of my ExplodeArrow decreases, but it won't show up. Only if I restart my Minecraft, the decreased stackSize shows up. I hope that you know what i mean. The stackSize decreases, but you won't see it In-Game until you restart Minecraft. The very strange thing is, that when i edit my ItemStack (is) in the method like "is.stackSize++", it all works and the stackSize of the Arrow decreases In-Game, too.

     

    I hope you can help me,

    sorry for my bad english :)

    thanks to everyone,

     

    Julian

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.