private void setup() {
        this.imageData = new byte[this.tileWidth * this.tileWidth * 4];
        this.compassIconImageData = new int[this.tileWidth * this.tileWidth];
        this.tileImage = 1;

        try {
            BufferedImage ioexception = ImageIO.read(Minecraft.class.getResource(Minecraft.ITEMS_TEXTURE));

            if (this.texturePackBase != null) {
                ioexception = ImageIO.read(this.texturePackBase.getResourceAsStream(Minecraft.ITEMS_TEXTURE));
            }

            int x = this.iconIndex % 16 * this.tileWidth;
            int y = this.iconIndex / 16 * this.tileWidth;

            ioexception.getRGB(x, y, this.tileWidth, this.tileWidth, this.compassIconImageData, 0, this.tileWidth);
            this.baseImageData = new byte[this.imageData.length];
            int tileWidth2 = this.tileWidth * this.tileWidth;

            for (int i = 0; i < tileWidth2; ++i) {
                int j = this.compassIconImageData[i] >> 24 & 255;
                int k = this.compassIconImageData[i] >> 16 & 255;
                int l = this.compassIconImageData[i] >> 8 & 255;
                int i1 = this.compassIconImageData[i] >> 0 & 255;

                if (this.anaglyphEnabled) {
                    int j1 = (k * 30 + l * 59 + i1 * 11) / 100;
                    int k1 = (k * 30 + l * 70) / 100;
                    int l1 = (k * 30 + i1 * 70) / 100;

                    k = j1;
                    l = k1;
                    i1 = l1;
                }

                this.baseImageData[i * 4 + 0] = (byte) k;
                this.baseImageData[i * 4 + 1] = (byte) l;
                this.baseImageData[i * 4 + 2] = (byte) i1;
                this.baseImageData[i * 4 + 3] = (byte) j;
            }
        } catch (IOException ioexception) {
            ioexception.printStackTrace();
        }

    }