aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/gtPlusPlus/xmod/gregtech/api/objects/GregtechMaterialStack.java
blob: 107202a027d48c259f22ace035e4202738527185 (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
package gtPlusPlus.xmod.gregtech.api.objects;

import gtPlusPlus.xmod.gregtech.api.enums.GregtechOrePrefixes.GT_Materials;

public class GregtechMaterialStack implements Cloneable {
    public long mAmount;
    public GT_Materials mMaterial;

    public GregtechMaterialStack(final GT_Materials aMaterial, final long aAmount) {
        this.mMaterial = aMaterial == null ? GT_Materials._NULL : aMaterial;
        this.mAmount = aAmount;
    }

    public GregtechMaterialStack copy(final long aAmount) {
        return new GregtechMaterialStack(this.mMaterial, aAmount);
    }

    @Override
    public GregtechMaterialStack clone() {
        return new GregtechMaterialStack(this.mMaterial, this.mAmount);
    }

    @Override
    public boolean equals(final Object aObject) {
        if (aObject == this) {
            return true;
        }
        if (aObject == null) {
            return false;
        }
        if (aObject instanceof GT_Materials) {
            return aObject == this.mMaterial;
        }
        if (aObject instanceof GregtechMaterialStack) {
            return (((GregtechMaterialStack) aObject).mMaterial == this.mMaterial)
                    && ((this.mAmount < 0)
                            || (((GregtechMaterialStack) aObject).mAmount < 0)
                            || (((GregtechMaterialStack) aObject).mAmount == this.mAmount));
        }
        return false;
    }

    @Override
    public String toString() {
        return ((this.mMaterial.mMaterialList.size() > 1) && (this.mAmount > 1) ? "(" : "")
                + this.mMaterial.getToolTip(true)
                + ((this.mMaterial.mMaterialList.size() > 1) && (this.mAmount > 1) ? ")" : "")
                + (this.mAmount > 1 ? this.mAmount : "");
    }

    @Override
    public int hashCode() {
        return this.mMaterial.hashCode();
    }
}