Jump to content

Recommended Posts

Posted

hellow, i am stuck at my TileEntity (shown below)

 

i cant seem to figure out when i put my bucket of water in and it adds to the water lvl all the other blocks i have placed in the worl get the same water added*

(its does show up in the gui as well and when i print int to chat as a variable is does to) even tho i dint add the water bucket there.

 

the blocks where i dint add the water still know they have water becouse when i add fuel item in the fuel slot it turns on even tho i dint add the water at that block ..

so why does it share this ?? ( its practicly the same handling as the flame(burn) Time that goes from up to down)

 

 

the class:

 

package Earth.Combiner.Utilety.CoalHeaterUtilety;

import Earth.Combiner.CombinerCore;
import Earth.Combiner.Blocks.CoalHeater;
import Earth.Combiner.ItemTools.InitItemTools;
import Earth.Combiner.lib.Ints;
import cpw.mods.fml.common.registry.GameRegistry;
import cpw.mods.fml.relauncher.Side;
import cpw.mods.fml.relauncher.SideOnly;
import net.minecraft.block.Block;
import net.minecraft.block.material.Material;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.ISidedInventory;
import net.minecraft.item.Item;
import net.minecraft.item.ItemBlock;
import net.minecraft.item.ItemHoe;
import net.minecraft.item.ItemStack;
import net.minecraft.item.ItemSword;
import net.minecraft.item.ItemTool;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.nbt.NBTTagList;
import net.minecraft.src.ModLoader;
import net.minecraft.tileentity.TileEntity;
import net.minecraftforge.common.ForgeDirection;
import net.minecraftforge.common.ForgeDummyContainer;

public class TileEntityCoalHeater extends TileEntity implements ISidedInventory
{
/** toegankelijk heid van de kanten (ik denk voor andere mods zoals buildcraft enzo). */
    private static final int[] slots_top = new int[] {0};
    private static final int[] slots_bottom = new int[] {2, 1};
    private static final int[] slots_sides = new int[] {1};

    /** Hoeveleheid slots. */
    private ItemStack[] coalheatereItemStacks = new ItemStack[5];

    /** mechaniek variabelen */
    public int BurnTime;
    public static int BurnTimeB;
    public int canBurn;
    public int currentBurnTime;
    public static int waterLvl;
    public int waterAmount;
    //public int combmachineCombDCurTime;
    //public int NumberOfSlots;
    private String field_94130_e;

    public int getSizeInventory()
    {
        return this.coalheatereItemStacks.length;
    }

    public ItemStack getStackInSlot(int par1)
    {
        return this.coalheatereItemStacks[par1];
    }

    public ItemStack decrStackSize(int par1, int par2)
    {
        if (this.coalheatereItemStacks[par1] != null)
        {
            ItemStack itemstack;

            if (this.coalheatereItemStacks[par1].stackSize <= par2)
            {
                itemstack = this.coalheatereItemStacks[par1];
                this.coalheatereItemStacks[par1] = null;
                return itemstack;
            }
            else
            {
                itemstack = this.coalheatereItemStacks[par1].splitStack(par2);

                if (this.coalheatereItemStacks[par1].stackSize == 0)
                {
                    this.coalheatereItemStacks[par1] = null;
                }

                return itemstack;
            }
        }
        else
        {
            return null;
        }
    }

    /** Als je hem sloopt dropt hij de items. */
    public ItemStack getStackInSlotOnClosing(int par1)
    {
        if (this.coalheatereItemStacks[par1] != null)
        {
            ItemStack itemstack = this.coalheatereItemStacks[par1];
            this.coalheatereItemStacks[par1] = null;
            return itemstack;
        }
        else
        {
            return null;
        }
    }

    public void setInventorySlotContents(int par1, ItemStack par2ItemStack)
    {
        this.coalheatereItemStacks[par1] = par2ItemStack;

        if (par2ItemStack != null && par2ItemStack.stackSize > this.getInventoryStackLimit())
        {
            par2ItemStack.stackSize = this.getInventoryStackLimit();
        }
    }

    public String getInvName()
    {
        return this.isInvNameLocalized() ? this.field_94130_e : "Coal Heater";
    }

    public boolean isInvNameLocalized()
    {
        return this.field_94130_e != null && this.field_94130_e.length() > 0;
    }

    public void setGuiDisplayName(String par1Str)
    {
        this.field_94130_e = par1Str;
    }

    public void readFromNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.readFromNBT(par1NBTTagCompound);
        NBTTagList nbttaglist = par1NBTTagCompound.getTagList("Items");
        this.coalheatereItemStacks = new ItemStack[this.getSizeInventory()];

        for (int i = 0; i < nbttaglist.tagCount(); ++i)
        {
            NBTTagCompound nbttagcompound1 = (NBTTagCompound)nbttaglist.tagAt(i);
            byte b0 = nbttagcompound1.getByte("Slot");

            if (b0 >= 0 && b0 < this.coalheatereItemStacks.length)
            {
                this.coalheatereItemStacks[b0] = ItemStack.loadItemStackFromNBT(nbttagcompound1);
            }
        }

        this.BurnTime = par1NBTTagCompound.getShort("BurnTime");
        this.waterLvl = par1NBTTagCompound.getShort("WaterLVL");
        this.currentBurnTime = par1NBTTagCompound.getShort("CurrBurn");
        //this.combmachineCombDCurTime = par1NBTTagCompound.getShort("CombDurTime");
        //this.currentBurnTime = getBurnHeaterTime(this.coalheatereItemStacks[ints.BURNSLOT]);

        if (par1NBTTagCompound.hasKey("Coal Heater"))
        {
            this.field_94130_e = par1NBTTagCompound.getString("Coal Heater");
        }
    }

    public void writeToNBT(NBTTagCompound par1NBTTagCompound)
    {
        super.writeToNBT(par1NBTTagCompound);
        par1NBTTagCompound.setShort("BurnTime", (short)this.BurnTime);
        par1NBTTagCompound.setShort("WaterLVL", (short)this.waterLvl);
        par1NBTTagCompound.setShort("CurrBurn", (short)this.currentBurnTime);
        //par1NBTTagCompound.setShort("CombDurTime", (short)this.combmachineCombDCurTime);
        NBTTagList nbttaglist = new NBTTagList();

        for (int i = 0; i < this.coalheatereItemStacks.length; ++i)
        {
            if (this.coalheatereItemStacks[i] != null)
            {
                NBTTagCompound nbttagcompound1 = new NBTTagCompound();
                nbttagcompound1.setByte("Slot", (byte)i);
                this.coalheatereItemStacks[i].writeToNBT(nbttagcompound1);
                nbttaglist.appendTag(nbttagcompound1);
            }
        }

        par1NBTTagCompound.setTag("Items", nbttaglist);

        if (this.isInvNameLocalized())
        {
            par1NBTTagCompound.setString("Coal Heater", this.field_94130_e);
        }
    }

    public int getInventoryStackLimit()
    {
        return 64;
    }

    /*
    @SideOnly(Side.CLIENT)
    public int getCombDurProgressScaled(int par1)
    {
    	return this.combmachineCombDCurTime * par1 / 200;
    }
    */

    @SideOnly(Side.CLIENT)
    public int getHeatTimeRemainingScaled(int par1)
    {
        if (this.currentBurnTime == 0)
        {
            this.currentBurnTime = 200;
        }

        return this.BurnTime * par1 / this.currentBurnTime;
    }
    
    @SideOnly(Side.CLIENT)
    public int getWaterLVLScaled(int par1)
    {
    	return this.waterLvl * par1 / 10000;
    }
    
    public boolean hasWater()
    {
    	return this.waterLvl > 0;
    }
    
    public boolean isHeating()
    {
        return this.BurnTime > 0;
    }
    

    /** Als hij "fuel" en een recipe heeft */
    public void updateEntity()
    {
    	boolean flag = this.BurnTime > 0;
        boolean flag1 = false;
        
        
        if (this.BurnTime > 0)
        {
            --this.BurnTime;
        }
        
        if (!this.hasWater())
        {
        	this.BurnTime = 0;
        }
        
        if (this.isHeating() && this.hasWater())
        {
        	if (TileSteam.SteamCount < TileSteam.getMaxSteamCount())
        	{
        		TileSteam.SteamCount = TileSteam.SteamCount + 17;
        		this.waterLvl = waterLvl - 1;
        	}
            
        }
        
        

        if (!this.worldObj.isRemote)
        {
        	if (this.waterLvl <= 9000)
            {
            	this.loseWater();
            }
            if (this.BurnTime == 0)
            {
            	if(this.hasWater() && TileSteam.SteamCount < TileSteam.getMaxSteamCount())
            	{
            		this.currentBurnTime = this.BurnTime = getBurnHeaterTime(this.coalheatereItemStacks[ints.BURNSLOT]);
                    
            		if (this.BurnTime > 0)
            		{
            			flag1 = true;

            			if (this.coalheatereItemStacks[ints.BURNSLOT] != null)
            			{
            				--this.coalheatereItemStacks[ints.BURNSLOT].stackSize;

            				if (this.coalheatereItemStacks[ints.BURNSLOT].stackSize == 0)
            				{
            					this.coalheatereItemStacks[ints.BURNSLOT] = this.coalheatereItemStacks[ints.BURNSLOT].getItem().getContainerItemStack(coalheatereItemStacks[ints.BURNSLOT]);
            				}
            			}
            		}              
            	}
            }
            if (flag != this.BurnTime > 0 && hasWater())
            {
                flag1 = true;                
            }
            else
            {
            	flag1 = false;
            }
            
            if(flag1)
            {
            	//this.onInventoryChanged();
            	CoalHeater.updateCombMachineBlockState(this.BurnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
            }
            else
            {
            	CoalHeater.updateCombMachineBlockState(this.BurnTime > 0, this.worldObj, this.xCoord, this.yCoord, this.zCoord);
            }
        }

        if (flag1)
        {
            //this.onInventoryChanged();
        }
    }
    
    private boolean canTakeWater()
    {
    	if (this.coalheatereItemStacks[ints.WATERSLOT] == null)
        {
            return false;
        }
    	else
    	{
    		ItemStack itemstack = CoalHearterRecipes.smelting().getWaterBucket(this.coalheatereItemStacks[ints.WATERSLOT]);
            if (itemstack == null) return false;
            int result = coalheatereItemStacks[ints.WATERSLOT].stackSize + itemstack.stackSize;
            return (result <= getInventoryStackLimit() && result <= itemstack.getMaxStackSize());
    	}
    }

    /** Hier pakt hij de recipe en of hij aan mag of niet. */
    /*
    private boolean canHeat()
    {
        if (this.coalheatereItemStacks[ints.BURNSLOT] == null)
        {
            return false;
        }
        else
        {
        	ItemStack itemstack = CoalHearterRecipes.smelting().getCombiningResultOneSlot(this.coalheatereItemStacks[ints.BURNSLOT]);
            if (itemstack == null) return false;
            if (this.coalheatereItemStacks[ints.OUTPUT] == null) return true;
            if (!this.coalheatereItemStacks[ints.OUTPUT].isItemEqual(itemstack)) return false;
            int result = coalheatereItemStacks[ints.OUTPUT].stackSize + itemstack.stackSize;
            return (result <= getInventoryStackLimit() && result <= itemstack.getMaxStackSize());
        }
    }
    */

    /** Hier gebruikt hij de recipe en maakt er een output van. */
    public void loseWater()
    {
    	if (this.canTakeWater())
        {
            ItemStack itemstack = CoalHearterRecipes.smelting().getWaterBucket(this.coalheatereItemStacks[ints.WATERSLOT]);
            
            this.waterLvl = this.waterLvl + getWater(this.coalheatereItemStacks[ints.WATERSLOT]);
            // Output
            if (this.coalheatereItemStacks[ints.BUCKETOUT] == null)
            {
                this.coalheatereItemStacks[ints.BUCKETOUT] = itemstack.copy();
            }
            else if (this.coalheatereItemStacks[ints.BUCKETOUT].isItemEqual(itemstack))
            {
            	coalheatereItemStacks[ints.BUCKETOUT].stackSize += itemstack.stackSize;
            }
            // Input
            --this.coalheatereItemStacks[ints.WATERSLOT].stackSize;
            
            ModLoader.getMinecraftInstance().thePlayer.addChatMessage("Test mode:" + this.waterLvl);
            

            if (this.coalheatereItemStacks[ints.WATERSLOT].stackSize <= 0)
            {
           	 	this.coalheatereItemStacks[ints.WATERSLOT] = null;
            }
            
        }
    }

    public static int getBurnHeaterTime(ItemStack par0ItemStack)
    {
        if (par0ItemStack == null)
        {
            return 0;
        }
        else
        {
            int i = par0ItemStack.getItem().itemID;
            Item item = par0ItemStack.getItem();

            if (par0ItemStack.getItem() instanceof ItemBlock && Block.blocksList[i] != null)
            {
                Block block = Block.blocksList[i];

                if (block == Block.woodSingleSlab)
                {
                    return 150;
                }

                if (block.blockMaterial == Material.wood)
                {
                    return 300;
                }

                if (block == Block.field_111034_cE)
                {
                    return 16000;
                }
            }

            if (i == InitItemTools.WoodScrap.itemID) return 800;
            if (i == InitItemTools.CompWoodScrap.itemID) return 1600;
            if (i == InitItemTools.CompCoalScrap.itemID) return 2400;
           // if (i == Item.coal.itemID) return 1600;
            return GameRegistry.getFuelValue(par0ItemStack);
        }
    }
    
    public static int getWater(ItemStack waterstack)
    {
    	if (waterstack == null)
        {
            return 0;
        }
    	else
    	{
    		int i = waterstack.getItem().itemID;
    		if (i == Item.bucketWater.itemID) return 1000;

    		return GameRegistry.getFuelValue(waterstack);
    	}
    }


    public boolean isUseableByPlayer(EntityPlayer par1EntityPlayer)
    {
        return this.worldObj.getBlockTileEntity(this.xCoord, this.yCoord, this.zCoord) != this ? false : par1EntityPlayer.getDistanceSq((double)this.xCoord + 0.5D, (double)this.yCoord + 0.5D, (double)this.zCoord + 0.5D) <= 64.0D;
    }

    public void openChest() {}

    public void closeChest() {}
    
    public static boolean isItemFuel(ItemStack par0ItemStack)
    {
        return getBurnHeaterTime(par0ItemStack) > 0;
    }
    
    public static boolean isWaterBucket(ItemStack par0ItemStack)
    {
    	return getWater(par0ItemStack) > 0;
    }
    
    public boolean isItemValidForSlot(int par1, ItemStack par2ItemStack)
    {
        return par1 == 2 ? false : (par1 == 1 ? isItemFuel(par2ItemStack) : true);
    }
    
    public boolean isItemValidForBucket(int par1, ItemStack par2ItemStack)
    {
        return par1 == 2 ? false : (par1 == 1 ? isWaterBucket(par2ItemStack) : true);
    }
    
    public int[] getAccessibleSlotsFromSide(int par1)
    {
        return par1 == 0 ? slots_bottom : (par1 == 1 ? slots_top : slots_sides);
    }

    public boolean canInsertItem(int par1, ItemStack par2ItemStack, int par3)
    {
        return this.isItemValidForSlot(par1, par2ItemStack);
    }

    public boolean canExtractItem(int par1, ItemStack par2ItemStack, int par3)
    {
        return par3 != 0 || par1 != 1 || par2ItemStack.itemID == Item.bucketEmpty.itemID;
    }
}

 

Posted

i know its static ... id i turn into a normal int they waterlvl jsut spikes and dusnt add it correct then i add a waterbucket ...

 

and also the gui cant work than .. of the scaled.... stuff

 

i may try it again but i know it dint work before

 

and also when its not static it wont remember my water lvl when i re open gui after (first active)  and it wont be stored when i restart mc ... or re open my map'

 

so yea when its static it does remember my lvl ...

 

realy weird stuff is going on with the int waterlvl when its not  static oh and when i add new bucket tot the non static int it uses the in 2 seperated times ..

so mc returns it as 2  seperated ints while its 1 int ... realy weird

Posted

oh w8 it seems to work now since i relocted the water handling ..

but now my gui wont show the scaled ... drawerectle ... at all not even 1 cm ...

 

so Getwaterlvlscaled dusnt work atm ...

 

 

my water lvls are seperated now thow :) thx lol

Posted

Now do packets for gui changes.

 

what do you mean by that ?? becose im confuses right now why my gui wont show my draw thingy and did before :( ...

but the waterlvs are totaly fixed now .. but my getwaterscaled dusnt seem to work in my gui now :(:S

 

what do you mean by packets ??

Posted

packet, those thing you send (pew pew pew) to the server. and the server goes "oh hey i got a message *read message* do stuff yeah mhmmmm"

 

then the server send more message to the client (pew pew pew)

 

and the client goes " oh thats great now i can show to the player what the game looks like"

 

 

yeah packet are message between server and client

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Posted

packet, those thing you send (pew pew pew) to the server. and the server goes "oh hey i got a message *read message* do stuff yeah mhmmmm"

 

then the server send more message to the client (pew pew pew)

 

and the client goes " oh thats great now i can show to the player what the game looks like"

 

 

yeah packet are message between server and client

 

 

wtf lol XDXD can you been anny more unclear :(???

 

i dont even have 1 clew now hot to make my waterlvl work again in my gui iv been stuck for 5 hours now staring at the code that did work before ..

but isnt now :( and i dont know why it sould work but it dusnt :( ...

 

it dustn even begin to draw it now .. nothing happens ..

 

greets

Posted

packet are message between 2 program via internet, server send packet to client about the information for the position and rotation of mobs, as well as their health. it also sends packet containing the chunk information. client send packet containing which key are pressed and which buttons are clicked, gotolink tells you to send pacekt to the server to tell him that this client has pressed a specific button

 

 

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

Posted

how does that help my problem :S ...

 

 

this pice of dode:

b1 = this.coalheaterInventory.getWaterLVLScaled(49);
        this.drawTexturedModalRect(k + 156, l + 63 - b1, 176, 76 - b1, 76, b1 + 2);

 

worked before when the waterLvl was static .. and the modalrect was drawing back then ..

but back then all the block i place shared the same waterlvl .. so iv changed it ..

they dont share the waterlvl anny more but my gui

 

isnt drawing my modalrect anny more :S and i dont know why .. it did before but isnt now :S

 

greets

Posted

You have to make a packet that sends the data from the server to the client telling the client what the water level is. Surely that is not complicated?!? I mean... I am a beginner and I get this stuff :/ ( I don't mean to brag, and I would explain, but I couldn't explain anything to save my life xD ... well, nevermind that statement. That was a paradox... Just don't mind these brackets k? )

I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes.

 

I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there xD

Posted

Gimme a sec... *pulls up list of tutorials that get frequently referenced*

 

Ah, here we go!

 

http://www.minecraftforge.net/wiki/Advanced_Packet_Handling

 

iv looked at that .. and its incomplete ...

 

he uses a file:

import com.example.demomod.network.DemoPacket.ProtocolException;

 

in his demopackethandler .. and that file isnt in the tutorial lol so i cant make it work with out knowing whats in that file ... ProtocolExeption.class

 

and also

 

it uses strings ??

// Send to server

PacketDispatcher.sendPacketToServer(new TestPacket("Hello World!").makePacket());

 

// send to player

PacketDispatcher.sendPacketToPlayer(new TestPacket("Hello World!").makePacket(), (Player)player);

 

and if you can use ints to sent insteat of the string .. how am i able to use that to send at my what ? tile entity ? send at my mod.class? send it where ..

 

he dusnt realy claryfy where you can send it from .. (my gues would be it can be send from every were ..)

ánd how can my gui recive it ?? i see only a send option  and the only receive option is in the packed handler ...

Posted

I used it. It worked for me. I got the concept behind it :/

 

Sorry, but no explaining tonight xD I need to sleep my brain back into working order :/

I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes.

 

I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there xD

Posted

I used it. It worked for me. I got the concept behind it :/

 

Sorry, but no explaining tonight xD I need to sleep my brain back into working order :/

 

NVM found out what was my problem xD haha lol

anny way let see how i can us this to so the waterlvl for my gui .. becose the tutorial uses strings :o

Posted

hey me again ..

 

 

// Send to server

//PacketDispatcher.sendPacketToServer(new Waterpacket("Hello World!").makePacket());

 

// send to player

//PacketDispatcher.sendPacketToPlayer(new Waterpacket("Hello World!").makePacket(), (Player)player);

 

how can i use that packet tutorial with these line to solve my problem at my gui ??

do i need to send my int waterlvl ? how do i do this ??

Posted

*Bump*

 

 

hmzz stil stuck ... i realy have no idea on how to use packets ,, to fix my gui problem :S ...

and i cant find anny thing on packets related to guis so yeah im begining to think im on the wrong path or something ...

 

can anny one hlp me with this ??

Posted

nice of you for not helping me .......................

 

i told you the gui did work before wiht out anny packages ... and the burntime (sint shared and not doing that in a packet)

 

... and that still works on every gui ..

 

my question is simple but ppl keep telling me the same thing do packets .. for it but i have no idea on how to use a packet for int but noe one is helping me at all or is beeing verry cryptic about it.

 

and now you tell me go learn more java and come back...

 

WHY did the gui work before when the waterLvl was static and dusnt now ..

and WHY dit it work with out packets .. (like the burning time) and dusnt now (while the burning time still works)

 

thats what im asking ...

 

greets

Posted

I shall jump in and help good sir! But really, it is a matter of java knowledge I am sorry to say...

 

But here is what you will want:

package com.example.demomod.network;

import net.minecraft.entity.player.EntityPlayer;

import com.google.common.io.ByteArrayDataInput;
import com.google.common.io.ByteArrayDataOutput;

import cpw.mods.fml.relauncher.Side;

public class TestPacket extends DemoPacket {

        private int randomInteger;
        
        public TestPacket(String randomInteger) {
                this.randomInteger = randomInteger;
        }

        public TestPacket() { } // Be sure to always have the default constructor in your class, or the reflection code will fail!

        @Override
        protected void write(ByteArrayDataOutput out) {
                out.writeInteger(randomInt);
        }

        @Override
        protected void read(ByteArrayDataInput in) throws ProtocolException {
                randomInt = in.readInteger();
        }

        @Override
        protected void execute(EntityPlayer player, Side side) throws ProtocolException {
                if (side.isClient()) {
                        // Crap... Umm, aside from that, I can't remember what I am doing. You basically have to make it so that the GUI gets the integer... I really can't remember... I know I have done it before, but I would have to double check code. I believe that I remember thinking it redundant.... So don't think it's redundant. I will be back with some working stuff 
                } else {
                        throw new ProtocolException("Cannot send this packet to the server!");
                }
        }
}

 

 

[** EDIT **]

 

Well, here is the packet: https://github.com/ModderPenguin/MinePG/blob/master/source/minepg/rpg_common/rpg/network/packet/PacketPlayerInfo.java

 

And here is where it gets sent: https://github.com/ModderPenguin/MinePG/blob/master/source/minepg/rpg_common/rpg/comm/ConnectionHandler.java ( Note that it is near the bottom of the class )

 

So basically, it was setting the data back to itself. Like I said, seems redundant. But it's not. It is basically telling the client what the new data is. Also, on the closing of the GUI, you would want to send the packet again ( but to the server ) etc. Basically every time you want to update the data between the two, send the packet. And yes, my packets are slightly different... Feel free to use my setup as examples. I quite like my packet setup actually, even though it was diesieben07 who I got it from. Thank him for it next time you see him xD

I am Mew. The Legendary Psychic. I behave oddly and am always playing practical jokes.

 

I have also found that I really love making extremely long and extremely but sometimes not so descriptive variables. Sort of like what I just did there xD

Posted

i actuly got tht far in the textpacket it needed ints .. iv done that my selve alredy ..

 

but now what ? i have the packet done .. at what class do i send my int ? en how can i use it in my gui ? so fix my waterlvl again (witch did work before with out packets)

 

??

 

oht btw ...

i1 = this.coalheaterInventory.getWaterLVLScaled(49);

        this.drawTexturedModalRect(k + 156, l + 14 - i1, 176, 27 - i1, 10, i1 + 27);

 

does draw my water lvl texture in my gui now (with out packets) ..

but its not scaling or moding ... its not using the i1 value at all ...

 

and this is the burntime (witch does scale and work)

 

i1 = this.coalheaterInventory.getHeatTimeRemainingScaled(12);

            this.drawTexturedModalRect(k + 78, l + 54 + 12 - i1, 176, 12 - i1, 14, i1 + 2);

 

so my question is now why doesnt the getwaterlvlscaled not work anny more (it did before)

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Extra 30% off for new and existing customers + Up to $100 % off & more.   Is Temu $100 Off Coupon Legit?  
    • Temu is known for offering incredible savings, and with the updated coupon codes acx211521 or acw373230, you can now save up to $100 on your next purchase! Additionally, Temu provides an affiliate discount of up to 40%—making it easier than ever to get high-quality products at a fraction of the price. Whether you're a new user or returning customer, these codes unlock significant savings, and I'll show you how to make the most out of them. New users at Temu receive a $100 discount on orders over $100 Use the code ["acx211521 & acw373230"] during checkout to get Temu Discount $100 Off For New Users. You n save $100 Off your first order with the coupon code available for a limited time only. The Temu promo code ACX211521 is a fantastic way for existing customers to enjoy significant savings. With a $100 discount, free shipping, and the flexibility to combine with other offers, this code ensures a rewarding shopping experience every time. Earning a Temu coupon code $100 off as a new customer is straightforward and rewarding. The easiest way is to use our $100 off Temu coupon code acx211521 "OR" acw373230 when making your first purchase. Beyond that, Temu often offers various ways for new customers to earn additional coupons. Temu Coupon Code (acx211521) $100 Off for New Users: If you’re new to Temu, you can apply acx211521 to receive $100 off your first purchase. Temu Coupon Code (acx211521) $100 Off for Existing Users: Existing customers aren’t left out! Use the same code to enjoy $100 off on your next order. By using the Temu coupon code (acx211521), you can save $100 off your first order. Temu's extensive range of products includes the latest gadgets, fashion, home decor, and more— all at fantastic prices. codes available in January 2025 Extra 30% off for new and existing customers + Up to $100 % off & more. Temu coupon codes for New users- ["acx211521 & acw373230"] Temu discount code for New customers- ["acx211521 & acw373230"] Temu $100 coupon code- ["acx211521 & acw373230"] what are Temu codes- "acx211521 & acw373230" does Temu give you $100 - ["acx211521 & acw373230"] Yes Verified Temu coupon code October 2024- {"acx211521 & acw373230"} Temu New customer offer {"acx211521 & acw373230"} Temu discount code 2025 {"acx211521 & acw373230"} 100 off coupon code Temu {"acx211521 & acw373230"} Temu 100% off any order {"acx211521 & acw373230"} 100 dollar off Temu code {"acx211521 & acw373230"} Temu coupon $100 Off for New customers There are a number of discounts and deals shoppers n take advantage of with the Teemu Coupon Bundle ["acx211521 & acw373230"]. Temu coupon $100 Off for New customers""acx211521 & acw373230"" will save you $100 on your order. To get a discount, click on the item to purchase and enter the code. You n think of it as a supercharged savings pack for all your shopping needs Temu coupon code 80% off – ["acx211521 & acw373230"] Free Temu codes 50% off – [acw373230] Temu coupon $100 Off – ["acx211521 & acw373230"] Temu buy to get £39 – ["acx211521 & acw373230"] Temu 129 coupon bundle – ["acx211521 & acw373230"] Temu buy 3 to get €99 – ["acx211521 & acw373230"] Exclusive $100 Off Temu Discount Code Temu $100 Off Coupon Code : ("acx211521 & acw373230") Temu Discount Code $100 Bundle alt=""data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAAC NiR0NAAAABGdBTUEAANbY1E9YMgAAAu9JREFUeNq9lNtLFGEYx t81AlcLM1RQK2wJTdddu4iIriIPdRFBYEn5J0QHCboNlEgFo65 CAq2LsCw8JLSGa4gSYi1ppitpmWfX1XZ1d93ZndPb+30720wS4 ZUf82PemXme33xzM7Ajq+J0opk4QVQTg4Sfoc3V2jPzdmUHiLq b5XuwrSET3W8sGHIdxeBQHo61HsJXNRl4/WIysgzL/k9kIo4RY013MzA4WoDSZCHKPzg0WzHqLsCwKw/XeizYWJWKLKt1TP8S5laWmFc+tuTwsjJrw+Lj+xAXixAXilCdt 6MyU8jvCcN5uPHegn0NGVh5JnGZdbfKkommzodZKE1ZUZ2zx2W EXYek6gx/Ee00F/2OHGy5w3f6hEgyCk/drtiLwtcCVGIFXbIQxxZjzobKtJVngv0W9LzMxhsXkpj0pFFY2/Egk3+qOm+LS3iJS+bj8E+mXVpRmsjHzcEj+KvzID6vSmHCe8yV oDlL7flmMJkA6KCFdBB8RP1au0U5AsGUAIQJ8rN2A61io9CStn +XVtIlmpthfIme0XIpSXwbh41CE8oqoIqE+kfibMvWi5rE+TqL ZQgA6nBAJWgZhT/XvBKoEgUUFvhLosOWiiRBUEWFQFAiKvg2uHDWKOwZHRdACVMoy goGKehSLlOQMiooggJyWObnb0syS/UahZ39n8MQ3ZBADlGICmy3JeVLMS4tx7i8DKVXPFwkBRWQAgqI dP40x4VdRuHIkk952jsQBHFdpKAEZVc90N2cAe+epTNoToe3jW nQ9SgVzl/zgeiXQFqXYGBCBE8Im8nxxSjcJGrbP4RXh4dpp2sidNSlkFwiZ A6f/SJ/1nIrEUSfBGPTIjgmJS/rcgcX6mtSVqHssSM0/sIRgMBiFCJeggSRVcIrgrASm0M0tw8J0OQSx6lzlrpTBGwVIjF CnOtzi/X3WwPQ3R+C724BBE+UMz0VAadLgAanAAOzSj3Lah3c7g+2hhgi AgxtrtGemXfkb/8bXdk/me2idugAAAAASUVORK5CYII=[/img]"acx211521 & acw373230")"acx211521 & acw373230" Temu $100 Off coupon code for Exsting users : ("acx211521 & acw373230") Temu coupon code $100 Off Temu $100 % OFF promo code ""acx211521 & acw373230"" will save you $100 on your order. To get a discount, click on the item to purchase and enter the code. Yes, Temu offers $100 Off coupon code “"acx211521 & acw373230"” for first time users. You n get a $100 bonus plus 30% off any purchase at Temu with the $100 Coupon Bundle at Temu if you sign up with the referral code ["acx211521 & acw373230"] and make a first purchase of $100 or more. Temu coupon code 100 off-{"acx211521 & acw373230"} Temu coupon code -{"acx211521 & acw373230"} Temu coupon code $100 Off-{"acx211521 & acw373230"} kubonus code -{"acx211521 & acw373230"} Are you looking for incredible savings on your next Temu purchase? Look no further! We've got the ultimate Temu coupon code $100 Off that will make your shopping experience even more rewarding. Our exclusive coupon code ["acx211521 & acw373230"] offers maximum benefits for shoppers in the USA, Australia, and European nations. Don't miss out on this opportunity to save big with our Temu coupon $100 Off and Temu 100 off coupon code. Whether you're a new customer or a loyal Temu shopper, we've got you covered with amazing discounts and perks. What Is The Coupon Code For Temu $100 Off? Both new and existing customers can enjoy fantastic benefits by using our $100 coupon code on the Temu app and website. Take advantage of this Temu coupon $100 Off and $100 Off Temu coupon to maximize your savings. Here are some of the incredible offers you can unlock with our coupon code ["acx211521 & acw373230"]: ["acx211521 & acw373230"]: Flat $100 Off on your purchase ["acx211521 & acw373230"]: $100 coupon pack for multiple uses ["acx211521 & acw373230"]: $100 flat discount for new customers ["acx211521 & acw373230"]: Extra $100 promo code for existing customers ["acx211521 & acw373230"]: $100 coupon for USA/Australia users Temu Coupon Code $100 Off For New Users In 2025 New users can reap the highest benefits by using our coupon code on the Temu app. Don't miss out on this Temu coupon $100 Off and Temu coupon code $100 Off opportunity. Here are the exclusive offers for new customers: ["acx211521 & acw373230"]: Flat $100 discount for new users ["acx211521 & acw373230"]: $100 coupon bundle for new customers ["acx211521 & acw373230"]: Up to $100 coupon bundle for multiple uses ["acx211521 & acw373230"]: Free shipping to 68 countries ["acx211521 & acw373230"]: Extra 30% off on any purchase for first-time users How To Redeem The Temu Coupon $100 Off For New Customers? Redeeming your Temu $100 coupon is quick and easy. Follow this step-by-step guide to use the Temu $100 Off coupon code for new users: Download the Temu app or visit their website Create a new account Browse through the wide selection of products Add your desired items to the cart Proceed to checkout Enter the coupon code ["acx211521 & acw373230"] in the designated field Apply the code and watch your total decrease by $100 Complete your purchase and enjoy your savings! Temu Coupon $100 Off For Existing Customers Existing users can also enjoy great benefits by using our coupon code on the Temu app. Take advantage of these Temu $100 coupon codes for existing users and Temu coupon $100 Off for existing customers free shipping offers: ["acx211521 & acw373230"]: $100 extra discount for existing Temu users ["acx211521 & acw373230"]: $100 coupon bundle for multiple purchases ["acx211521 & acw373230"]: Free gift with express shipping all over the USA/Australia ["acx211521 & acw373230"]: Extra 30% off on top of the existing discount ["acx211521 & acw373230"]: Free shipping to 68 countries How To Use The Temu Coupon Code $100 Off For Existing Customers? Using your Temu coupon code $100 Off as an existing customer is simple. Follow these steps to apply your Temu coupon $100 Off code: Open the Temu app or visit their website Log in to your existing account Add your desired products to your cart Go to the checkout page Locate the promo code field Enter the coupon code ["acx211521 & acw373230"] Click "Apply" to see your $100 discount Complete your purchase and enjoy your savings! Latest Temu Coupon $100 Off First Order Customers can get the highest benefits by using our coupon code during their first order. Don't miss out on these Temu coupon code $100 Off first order, Temu coupon code first order, and Temu coupon code $100 Off first time user offers: ["acx211521 & acw373230"]: Flat $100 discount for the first order ["acx211521 & acw373230"]: $100 Temu coupon code for the first order ["acx211521 & acw373230"]: Up to $100 coupon for multiple uses ["acx211521 & acw373230"]: Free shipping to 68 countries ["acx211521 & acw373230"]: Extra 30% off on any purchase for the first order How To Find The Temu Coupon Code $100 Off? Looking for the latest Temu coupon $100 Off or browsing Temu coupon $100 Off Reddit threads? We've got you covered with some insider tips on finding the best deals: Sign up for the Temu newsletter to receive verified and tested coupons directly in your inbox. Follow Temu's social media pages to stay updated on the latest coupons and promotions. Visit trusted coupon sites (like ours!) to find the most recent and working Temu coupon codes. By following these steps, you'll never miss out on amazing Temu discounts and offers! Is Temu $100 Off Coupon Legit? You might be wondering, "Is the Temu $100 Off Coupon Legit?" or "Is the Temu 100 off coupon legit?" We're here to assure you that our Temu coupon code ["acx211521 & acw373230"] is absolutely legitimate. Any customer can safely use our Temu coupon code to get $100 Off on their first order and subsequent purchases. Our code is not only legit but also regularly tested and verified to ensure it works flawlessly for all our users. What's more, our Temu coupon code is valid worldwide and doesn't have an expiration date, giving you the flexibility to use it whenever you're ready to make a purchase.  
    • Der Gutscheincode für 100€ Rabatt auf Temu lautet [acx211521] [acx211521] und bietet erhebliche Einsparungen bei einer breiten Produktpalette, darunter Mode, Elektronik und Haushaltswaren. Wenn Sie diesen Code [acx211521] an der Kasse eingeben, können Sie einen großzügigen Rabatt auf Ihre Bestellung erhalten, was Ihr Einkaufserlebnis erschwinglicher macht. Lesen Sie unbedingt die Bedingungen des Codes, um sicherzustellen, dass er für Ihren Einkauf gilt, und maximieren Sie Ihre Einsparungen bei Temu!  Acx211521 ist ein gültiger Temu-Gutscheincode für Deutschland, mit dem Sie 100 € Rabatt und 30 % Rabatt auf Ihre erste Bestellung erhalten. Dieser TEMU-Gutscheincode „acw373230“ für Deutschland mit 40 € Rabatt bietet einen beeindruckenden anfänglichen Rabatt von 100 € und 90 % Rabatt auf den Kauf jedes Artikels für neue und bestehende Kunden. Hier ist eine kurze Antwort zum Finden eines Temu-Gutscheincodes in Deutschland: • Verfügbarer Code: Verwenden Sie acx211521 für einen Rabatt auf Temu in Deutschland. • Offizielle Quellen: Besuchen Sie die Temu-Website oder -App für exklusive Angebote. • Newsletter: Abonnieren Sie Temus E-Mails für die neuesten Codes. • Soziale Medien: Folgen Sie Temu auf sozialen Plattformen für Sonderaktionen. • Empfehlungsprogramme: Laden Sie Freunde ein, Temu beizutreten und Rabattcodes zu erhalten. Geben Sie acx211521 an der Kasse ein, um Ihre Ersparnisse zu genießen.   So können Sie den 100-€-Rabatt-Gutscheincode [ACX211521] [acw373230] von Temu optimal nutzen, egal ob Sie ein neuer oder bestehender Benutzer sind! Temu ist bekannt für seine unschlagbaren Preise, schnelle Lieferung und Rabatte von bis zu 90 %. Um einen Rabatt auf Ihre erste Bestellung bei Temu zu erhalten, verwenden Sie einen der folgenden Empfehlungscodes: • Acx211521 • acw373230 Durch die Anwendung dieser Empfehlungscodes beim Bezahlvorgang können Neukunden besondere Rabatte wie 100 € Rabatt, kostenlosen Versand oder andere exklusive Angebote genießen. Geben Sie den Code einfach ein, wenn Sie beim Bezahlvorgang auf der Temu-Website oder -App dazu aufgefordert werden, um Ihre Ersparnisse freizuschalten. Schauen Sie sich unbedingt die neuesten Aktionen von Temu an, um weitere Angebote zu erhalten! Vorteile der Verwendung des Temu-Gutscheincodes [ACX211521] [acw373230],   • Bis zu 90 % Rabatt auf ausgewählte Artikel durch exklusive neue Angebote von Temu. • Pauschal 60 % Rabatt auf bereits reduzierte Produkte auf der gesamten Website.   • Zusätzliche 30 % Rabatt auf Ihren Gesamteinkauf mit dem Temu-Rabattcode.   Ja, es gibt einen Temu-Gutscheincode für Kunden aus Deutschland! Sie können den exklusiven Code [acx211521] verwenden, um einen großzügigen Rabatt auf Ihre Einkäufe zu erhalten. Dieser Gutschein bietet 100 € Rabatt plus 30 % Rabatt und ist damit eine großartige Gelegenheit, bei einer großen Auswahl an Produkten von Temu deutlich zu sparen. Geben Sie beim Bezahlvorgang einfach [acx211521] [acw373230] ein, um dieses Angebot zu nutzen und Ihr Einkaufserlebnis zu verbessern. Lassen Sie sich diese Ersparnisse nicht entgehen!   Der Gutscheincode für 100 € Rabatt bei Temu lautet [acx211521] und bietet erhebliche Ersparnisse bei einer großen Auswahl an Produkten, darunter Mode, Elektronik und Haushaltswaren. Wenn Sie diesen Code [acx211521] beim Bezahlvorgang eingeben, können Sie einen großzügigen Rabatt auf Ihre Bestellung erhalten und so Ihr Einkaufserlebnis erschwinglicher gestalten. Überprüfen Sie unbedingt die Bedingungen des Codes, um sicherzustellen, dass er für Ihren Einkauf gilt, und maximieren Sie Ihre Ersparnisse bei Temu!   Das 100-€-Gutscheinpaket bei Temu ist ein Werbeangebot, das Benutzern erhebliche Ersparnisse bei ihren Einkäufen bietet. Durch Eingabe des Codes [acx211521] oder [acx211521] in der Temu-App können Benutzer auf eine Sammlung von Rabattgutscheinen zugreifen, die auf verschiedene Artikel in ihrem Warenkorb angewendet werden können.   Dieses Paket enthält normalerweise mehrere Gutscheine mit unterschiedlichen Rabattschwellen, z. B. 15 € Rabatt auf Bestellungen über 40 €, 20 € Rabatt auf Bestellungen über 60 € usw., sodass Benutzer ihre Ersparnisse je nach Gesamtbestellwert maximieren können.   So können Sie den Temu-Gutscheincode für 100 € Rabatt [ACX211521] [acw373230] optimal nutzen, egal ob Sie ein neuer oder bestehender Benutzer sind! Temu ist bekannt für seine unschlagbaren Preise, schnelle Lieferung und Rabatte von bis zu 90 %.   Vorteile der Verwendung des Temu-Gutscheincodes [ACX211521] [acw373230],   • Bis zu 90 % Rabatt auf ausgewählte Artikel durch exklusive neue Temu-Angebote.   • Pauschal 60 % Rabatt auf bereits reduzierte Produkte auf der gesamten Site.   • Zusätzliche 30 % Rabatt auf Ihren Gesamteinkauf mit dem Temu-Rabattcode.   [acx211521] [acw373230], an der Kasse, um dieses Angebot zu nutzen und Ihr Einkaufserlebnis zu verbessern. Lassen Sie sich diese Ersparnisse nicht entgehen!   Am einfachsten ist es, unseren 100 € Rabatt Temu-Gutscheincode ACX211521 „OR“ [acw373230], bei Ihrem ersten Einkauf zu verwenden. Darüber hinaus bietet Temu Neukunden oft verschiedene Möglichkeiten, zusätzliches Geld zu verdienen   ACX211521 „OR“ [acw373230],: Neue Benutzer können bis zu 80 % extra Rabatt erhalten. • ACX211521 „OR“ ACX211521: Erhalten Sie satte 100 € Rabatt auf Ihre erste Bestellung! • ACX211521 „OR“ [acw373230],: Erhalten Sie 20 % Rabatt auf Ihre erste Bestellung; kein Mindestumsatz erforderlich. • ACX211521 „OR“ ACX211521: Erhalten Sie zusätzlich zu bestehenden Rabatten weitere 15 % Rabatt auf Ihre erste Bestellung. • ACX211521 „OR“ [acw373230],: Temu UK Genießen Sie 100 € Rabatt auf Ihren gesamten ersten Einkauf. Mit unserem exklusiven Temu-Gutscheincode 100 € Rabatt wird das Einkaufen bei Temu jetzt noch spannender. Dieses unglaubliche Angebot soll Ihnen erhebliche Einsparungen bei Ihrem nächsten Einkauf ermöglichen, egal ob Sie Neu- oder Bestandskunde sind. Für Kunden in den USA, Kanada und europäischen Ländern bietet der Gutscheincode ACX211521 „OR“ ACX211521 maximale Vorteile.   Mit dem Temu-Gutscheincode {acx211521} erhalten Sie 100 € Rabatt. [acw373230] Dieses exklusive Angebot gilt für Bestandskunden und kann für eine Ermäßigung von 100 € auf Ihren Gesamteinkauf genutzt werden. Geben Sie beim Bezahlvorgang den Gutscheincode {acx211521} ein, um den Rabatt zu erhalten.    
    • I have recently released my first ever Minecraft mod, it adds an overpowered sword with an insane grind to craft. More info on the CurseForge page: https://www.curseforge.com/minecraft/mc-mods/destroyer-of-worlds   I'd love to hear your thoughts.
    • Hi there, I am trying to run a forge server using debian with no mods in it and have been able to follow all the steps to setup the server, I am on java version 17 and run time environment 17, I have accepted the eula etc... but when I run I get this error: https://pastebin.com/h3CTQUsp Any help would be appreciated.
  • Topics

×
×
  • Create New...

Important Information

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