public void readStorageChunk(TaggedStorageChunk chunk)
    {
        lvl.handlingChanges = true;
        TaggedStorageTag tags[] = chunk.getTags();
        for(TaggedStorageTag tag : tags)
        {
            if(tag != null )
            if(tag.getTagName().startsWith("column "))
            {
                int x = Integer.parseInt(tag.getTagName().replace("column ", ""));
                String[] yValues = tag.getValue().split(";");
                for(int y = 0;y<yValues.length;y++)
                {
                    if(yValues[y].contains(":"))
                    {
                        String[] p = yValues[y].split(":");
                        blocks[x][y] = p[0];
                        attackValue[x][y] = Integer.parseInt(p[1]);
                        this.lastAttackPlayerName[x][y] = p[2];
                        if(3 < p.length)
                            lightValues[x][y] = (float)Double.parseDouble(p[3]);
                    }
                    else
                        setBlock(x,y,yValues[y]);
                }
            }
        }
        if(chunk.hasTag("id"))
            this.chunkID = chunk.getInteger("id");
        biomeID = chunk.getString("biome");
        lvl.handlingChanges = false;
    }