@@ -0,0 +1,952 @@
+package net.tridentsdk.world.opt;%0A%0Apublic class BlockState %7B%0A%0A    private int id;%0A    private byte data;%0A%0A    public BlockState(int id, byte data) %7B%0A        this.id = id;%0A        this.data = data;%0A    %7D%0A%0A    public int getId() %7B%0A        return this.id;%0A    %7D%0A%0A    public byte getData() %7B%0A        return this.data;%0A    %7D%0A%0A    public int toRaw() %7B%0A        return (id %3C%3C 4) %7C (data & 0xF);%0A    %7D%0A%0A    public char toChar() %7B%0A        return (char) (id %3C%3C 4 %7C data);%0A    %7D%0A%0A    @Override%0A    public boolean equals(Object o) %7B%0A        return this == o %7C%7C o instanceof BlockState && id == ((BlockState) o).id && data == ((BlockState) o).data;%0A%0A    %7D%0A%0A    @Override%0A    public int hashCode() %7B%0A        int result = id;%0A        result = 31 * result + (int) data;%0A        return result;%0A    %7D%0A%0A    @Override%0A    public String toString() %7B%0A        return %22BlockState%7B%22 +%0A                %22id=%22 + id +%0A                %22, data=%22 + data +%0A                '%7D';%0A    %7D%0A%0A%7D

Add back used block state