summaryrefslogtreecommitdiff
path: root/common/darkknight/jewelrycraft/tileentity/TileEntityJewelrsCraftingTable.java
blob: c46d7e35b011dab63e37b2c247a2c5b845122da0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
package darkknight.jewelrycraft.tileentity;

import net.minecraft.item.ItemStack;
import net.minecraft.nbt.NBTTagCompound;
import net.minecraft.network.INetworkManager;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.Packet132TileEntityData;
import net.minecraft.tileentity.TileEntity;

public class TileEntityJewelrsCraftingTable extends TileEntity
{
    public boolean hasJewel, hasModifier, hasEndItem, isDirty;
    public ItemStack jewel, modifier, endItem;
    public int       timer;
    
    public TileEntityJewelrsCraftingTable()
    {
        this.jewel = new ItemStack(0, 0, 0);
        this.modifier = new ItemStack(0, 0, 0);
        this.endItem = new ItemStack(0, 0, 0);
        this.hasJewel = false;
        this.hasModifier = false;
        this.hasEndItem = false;
        this.timer = 0;
        this.isDirty = false;
    }
    
    @Override
    public void writeToNBT(NBTTagCompound nbt)
    {
        super.writeToNBT(nbt);
        nbt.setBoolean("hasJewel", hasJewel);
        nbt.setBoolean("hasModifier", hasModifier);
        nbt.setBoolean("hasEndItem", hasEndItem);
        nbt.setInteger("timer", timer);
        NBTTagCompound tag = new NBTTagCompound();
        NBTTagCompound tag1 = new NBTTagCompound();
        NBTTagCompound tag2 = new NBTTagCompound();
        this.jewel.writeToNBT(tag);
        nbt.setCompoundTag("jewel", tag);
        this.modifier.writeToNBT(tag1);
        nbt.setCompoundTag("modifier", tag1);
        this.endItem.writeToNBT(tag2);
        nbt.setCompoundTag("endItem", tag2);
    }
    
    @Override
    public void readFromNBT(NBTTagCompound nbt)
    {
        super.readFromNBT(nbt);
        this.hasJewel = nbt.getBoolean("hasJewel");
        this.hasModifier = nbt.getBoolean("hasModifier");
        this.hasEndItem = nbt.getBoolean("hasEndItem");
        this.timer = nbt.getInteger("timer");
        this.jewel = new ItemStack(0, 0, 0);
        this.jewel.readFromNBT(nbt.getCompoundTag("jewel"));
        this.modifier = new ItemStack(0, 0, 0);
        this.modifier.readFromNBT(nbt.getCompoundTag("modifier"));
        this.endItem = new ItemStack(0, 0, 0);
        this.endItem.readFromNBT(nbt.getCompoundTag("endItem"));
    }
    
    @Override
    public void updateEntity()
    {
        super.updateEntity();
        if(isDirty){
            worldObj.markBlockForUpdate(xCoord, yCoord, zCoord);
            isDirty = true;
        }
        if (this.hasJewel && this.hasModifier && !this.hasEndItem)
        {
            if (timer > 0)
                timer--;
            System.out.println(timer);
            if (timer == 0)
            {
                this.hasEndItem = true;
                this.endItem = jewel.copy();
                this.hasJewel = false;
                //                this.jewel = new ItemStack(0, 0, 0);
                this.hasModifier = false;
                //                this.modifier = new ItemStack(0, 0, 0);
            }
        }
    }
    
    @Override
    public Packet getDescriptionPacket() 
    {
        Packet132TileEntityData packet = (Packet132TileEntityData) super.getDescriptionPacket();
        NBTTagCompound dataTag = packet != null ? packet.data : new NBTTagCompound();
        writeToNBT(dataTag);
        return new Packet132TileEntityData(xCoord, yCoord, zCoord, 1, dataTag);
    }

    @Override
    public void onDataPacket(INetworkManager net, Packet132TileEntityData pkt) 
    {
        super.onDataPacket(net, pkt);
        NBTTagCompound tag = pkt != null ? pkt.data : new NBTTagCompound();
        readFromNBT(tag);
    }
}