aboutsummaryrefslogtreecommitdiff
path: root/main/java/gregtech/api/enums/TC_Aspects.java
blob: 79a9b6178205e43ea5ffddbc86265807de23f788 (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
105
106
107
108
package gregtech.api.enums;

import java.util.List;

public enum TC_Aspects {
	  AER(1)
	, ALIENIS(20)
	, AQUA(3)
	, ARBOR(1)
	, AURAM(16)
	, BESTIA(6)
	, COGNITO(2)
	, CORPUS(2)
	, ELECTRUM(24)
	, EXAMINIS(32)
	, FABRICO(2)
	, FAMES(2)
	, GELUM(1)
	, GRANUM(4)
	, HERBA(2)
	, HUMANUS(8)
	, IGNIS(4)
	, INSTRUMENTUM(4)
	, ITER(6)
	, LIMUS(3)
	, LUCRUM(32)
	, LUX(4)
	, MACHINA(16)
	, MAGNETO(24)
	, MESSIS(3)
	, METALLUM(8)
	, METO(2)
	, MORTUUS(16)
	, MOTUS(4)
	, NEBRISUM(48)
	, ORDO(8)
	, PANNUS(6)
	, PERDITIO(2)
	, PERFODIO(4)
	, PERMUTATIO(12)
	, POTENTIA(16)
	, PRAECANTIO(16)
	, RADIO(48)
	, SANO(24)
	, SENSUS(4)
	, SPIRITUS(24)
	, STRONTIO(64)
	, TELUM(6)
	, TERRA(1)
	, TEMPESTAS(64)
	, TENEBRAE(24)
	, TUTAMEN(12)
	, VACUOS(6)
	, VENENUM(16)
	, VICTUS(4)
	, VINCULUM(16)
	, VITIUM(48)
	, VITREUS(3)
	, VOLATUS(12)
	;
	
	/**
	 * The Thaumcraft Aspect Object of the Mod itself.
	 */
	public Object mAspect;
	public int mValue;
		
	private TC_Aspects(int aValue){
		mValue = aValue;
	}
		
	public static class TC_AspectStack {
		public TC_Aspects mAspect;
		public long mAmount;
		
		
		public TC_AspectStack(TC_Aspects aAspect, long aAmount) {
			mAspect = aAspect;
			mAmount = aAmount;
		}
		
		public TC_AspectStack copy() {
			return new TC_AspectStack(mAspect, mAmount);
		}
		
		public TC_AspectStack copy(long aAmount) {
			return new TC_AspectStack(mAspect, aAmount);
		}
		
		public List<TC_AspectStack> addToAspectList(List<TC_AspectStack> aList) {
			if (mAmount == 0) return aList;
			for (TC_AspectStack tAspect : aList) if (tAspect.mAspect == mAspect) {tAspect.mAmount += mAmount; return aList;}
			aList.add(copy());
			return aList;
		}
		
		public boolean removeFromAspectList(List<TC_AspectStack> aList) {
			for (TC_AspectStack tAspect : aList) if (tAspect.mAspect == mAspect) {
				if (tAspect.mAmount >= mAmount) {
					tAspect.mAmount -= mAmount;
					if (tAspect.mAmount == 0) aList.remove(tAspect);
					return true;
				}
			}
			return false;
		}
	}
}