Par1ItemStack.stackSize; a une dysfonctionnement
-
ok je vais essayer!
Non sa ne marche pas bon autant exposer un autre problème ^^', alors voila je voudrais que mon item s’anime si mon boolean est true et ce boolean c’est is.use mais apparemment sa ne fonctionne pas voila mon tileEntity
package portuar.cubicBeyond.client.blocks.decondenseur; import net.minecraft.entity.passive.EntityPig; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; public class TileEntityDecondenseur extends TileEntity { public int coolDown = 100; public float motorAngle, prevMotorAngle; public boolean isUse; public int itemId; public void readFromNBT(NBTTagCompound nbtTag) { super.readFromNBT(nbtTag); isUse = nbtTag.getBoolean("isUse"); itemId = nbtTag.getInteger("itemId"); } public void writeToNBT(NBTTagCompound nbtTag) { super.writeToNBT(nbtTag); nbtTag.setBoolean("isUse", isUse); nbtTag.setInteger("itemId", itemId); } public void updateEntity() { if(this.isUse == true) { this.prevMotorAngle = this.motorAngle; this.motorAngle += 0.05F; this.coolDown–; if(this.coolDown < 0) { if(this.itemId == 1) { EntityPig entity = new EntityPig(this.worldObj); entity.setLocationAndAngles(this.xCoord, this.yCoord + 1, this.zCoord, 0, 0); this.worldObj.spawnEntityInWorld(entity); this.itemId = 0; } this.coolDown = 100; this.isUse = false; } } } } -
Dans ton tile entity ajoute :
public Packet getDescriptionPacket() { NBTTagCompound nbttagcompound = new NBTTagCompound(); this.writeToNBT(nbttagcompound); return new Packet132TileEntityData(this.xCoord, this.yCoord, this.zCoord, 4, nbttagcompound); } public void onDataPacket(INetworkManager net, Packet132TileEntityData pkt) { this.readFromNBT(pkt.data); }Pour que les valeurs soit synchronisées client / serveur
-
Je ne peux pas importez INetworkManager et Packet132TileEntityData
ps : je suis en 1.7 -
version 1.7 :
public Packet getDescriptionPacket() { NBTTagCompound nbttagcompound = new NBTTagCompound(); this.writeToNBT(nbttagcompound); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 4, nbttagcompound); } public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity updateTileEntity) { this.readFromNBT(updateTileEntity.func_148857_g()); } -
Ouai sa fonctionne mais ne change absolument rien au deux problèmes.
-
Sinon tu peux faire :
player.getCurrentEquippedItem().damageItem(1, player); if(player.getCurrentEquippedItem().stackSize == 0) { player.setCurrentEquippedItem(null); }Si c’est toujours pas bon, je vois vraiment pas

-
nop toujours pas :S
-
Met les syso un peut partout pour voir ou ça bloque
-
Mais sa bloque pas c’est juste un beug ^^
-
oue mais avec les syso on vera quelle partie bug
-
mais enfete c’est même pas un beug juste pas la bonne fonction je pense.
-
Envoi tout le code par pastebin stp
-
je n’utilise pas pastebin
-
Sur pastebin.com tu n’es pas obligé d’avoir un compte…
-
Mon tile entity :
Mon block :
Ps : j’ai fais un Sytem.out.println et j’ai u problème quand isUse est true et bah il varie en réalité entre true et false ce qui empeche l’animation.
-
@‘Superloup10’:
version 1.7 :
public Packet getDescriptionPacket() { NBTTagCompound nbttagcompound = new NBTTagCompound(); this.writeToNBT(nbttagcompound); return new S35PacketUpdateTileEntity(this.xCoord, this.yCoord, this.zCoord, 4, nbttagcompound); } public void onDataPacket(NetworkManager net, S35PacketUpdateTileEntity updateTileEntity) { this.readFromNBT(updateTileEntity.func_148857_g()); }Mets ce code dans ton tile entity pour avoir une synchro client / serveur de tes variables.
Mets aussi world/markBlockForUpdate(x, y, z); dans ta fonction onBlockClicked -
Bon je ne sais pas si ce que tu m’as donnés fonctionnent (j’ai testé mais rien ne chnage) parcontre mon PS cité ci-dessus est rectifié tout fonction apar cette histoire d’item et de c’est 1 stack et aussi de l’animation qui se fait pour tout les blocks en même temps.
