aboutsummaryrefslogtreecommitdiff
path: root/main/java/gregtech/api/enums/TC_Aspects.java
blob: d3f74ffe2dc5fce0cc36298bb251fdfcf9ad7573 (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
package gregtech.api.enums;

import java.util.List;

public enum TC_Aspects {
	  AER
	, ALIENIS
	, AQUA
	, ARBOR
	, AURAM
	, BESTIA
	, COGNITO
	, CORPUS
	, ELECTRUM
	, EXAMINIS
	, FABRICO
	, FAMES
	, GELUM
	, GRANUM
	, HERBA
	, HUMANUS
	, IGNIS
	, INSTRUMENTUM
	, ITER
	, LIMUS
	, LUCRUM
	, LUX
	, MACHINA
	, MAGNETO
	, MESSIS
	, METALLUM
	, METO
	, MORTUUS
	, MOTUS
	, NEBRISUM
	, ORDO
	, PANNUS
	, PERDITIO
	, PERFODIO
	, PERMUTATIO
	, POTENTIA
	, PRAECANTIO
	, RADIO
	, SANO
	, SENSUS
	, SPIRITUS
	, STRONTIO
	, TELUM
	, TERRA
	, TEMPESTAS
	, TENEBRAE
	, TUTAMEN
	, VACUOS
	, VENENUM
	, VICTUS
	, VINCULUM
	, VITIUM
	, VITREUS
	, VOLATUS
	;
	
	/**
	 * The Thaumcraft Aspect Object of the Mod itself.
	 */
	public Object mAspect;
	
	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;
		}
	}
}