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
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
|
package gregtech.api.enums;
import gregtech.api.interfaces.internal.IGT_Mod;
import gregtech.api.interfaces.internal.IGT_RecipeAdder;
import gregtech.api.net.IGT_NetworkHandler;
import java.util.Arrays;
import java.util.HashSet;
import net.minecraft.item.ItemStack;
import net.minecraft.world.World;
import net.minecraftforge.fluids.FluidStack;
import net.minecraftforge.oredict.OreDictionary;
/**
* Made for static imports, this Class is just a Helper.
*
* I am doing this to have a better Table alike view on my Code, so I can change things faster using the Block Selection Mode of eclipse.
*
* Go to "Window > Preferences > Java > Editor > Content Assist > Favorites" to set static importable Constant Classes such as this one as AutoCompleteable.
*/
public class GT_Values {
// unused: A, C, D, G, H, I, J, K, N, O, Q, R, S, T
// TODO: Rename Material Units to 'U'
// TODO: Rename OrePrefixes Class to 'P'
// TODO: Rename Materials Class to 'M'
/** Empty String for an easier Call Hierarchy */
public static final String E = "";
/** Character Set with all Numbers */
public static final HashSet<Character> CN = new HashSet<Character>(Arrays.asList('0', '1', '2', '3', '4', '5', '6', '7', '8', '9'));
/** Character Set with all lowercased Characters */
public static final HashSet<Character> CL = new HashSet<Character>(Arrays.asList('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'));
/** Character Set with all uppercased Characters */
public static final HashSet<Character> CU = new HashSet<Character>(Arrays.asList('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'));
/** The first 32 Bits */
public static final int[] B = new int[] {1<<0,1<<1,1<<2,1<<3,1<<4,1<<5,1<<6,1<<7,1<<8,1<<9,1<<10,1<<11,1<<12,1<<13,1<<14,1<<15,1<<16,1<<17,1<<18,1<<19,1<<20,1<<21,1<<22,1<<23,1<<24,1<<25,1<<26,1<<27,1<<28,1<<29,1<<30,1<<31};
/**
* Renamed from "MATERIAL_UNIT" to just "M"
*
* This is worth exactly one normal Item.
* This Constant can be divided by many commonly used Numbers such as
* 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, ... 64 or 81
* without loosing precision and is for that reason used as Unit of Amount.
* But it is also small enough to be multiplied with larger Numbers.
*
* This is used to determine the amount of Material contained inside a prefixed Ore.
* For example Nugget = M / 9 as it contains out of 1/9 of an Ingot.
*/
public static final long M = 3628800;
/**
* Renamed from "FLUID_MATERIAL_UNIT" to just "L"
*
* Fluid per Material Unit (Prime Factors: 3 * 3 * 2 * 2 * 2 * 2)
*/
public static final long L = 144;
/** The Item WildCard Tag. Even shorter than the "-1" of the past */
public static final short W = OreDictionary.WILDCARD_VALUE;
/** The Voltage Tiers. Use this Array instead of the old named Voltage Variables */
public static final long[] V = new long[] {8, 32, 128, 512, 2048, 8192, 32768, 131072, 524288, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE, Integer.MAX_VALUE};
/** The short Names for the Voltages */
public static final String[] VN = new String[] {"ULV", "LV", "MV", "HV", "EV", "IV", "LuV", "ZPM", "UV", "MAX", "MAX", "MAX", "MAX", "MAX", "MAX", "MAX"};
/** The long Names for the Voltages */
public static final String[] VOLTAGE_NAMES = new String[] {"Ultra Low Voltage", "Low Voltage", "Medium Voltage", "High Voltage", "Extreme Voltage", "Insane Voltage", "Ludicrous Voltage", "ZPM Voltage", "Ultimate Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage", "Maximum Voltage"};
/** The Mod Object itself. That is the GT_Mod-Object. It's needed to open GUI's and similar. */
public static IGT_Mod GT;
/** Use this Object to add Recipes. (Recipe Adder) */
public static IGT_RecipeAdder RA;
/** For Internal Usage (Network) */
public static IGT_NetworkHandler NW;
/** This way it is possible to have a Call Hierarchy of NullPointers in ItemStack based Functions, and also because most of the time I don't know what kind of Data Type the "null" stands for */
public static final ItemStack NI = null;
/** This way it is possible to have a Call Hierarchy of NullPointers in FluidStack based Functions, and also because most of the time I don't know what kind of Data Type the "null" stands for */
public static final FluidStack NF = null;
/** Not really Constants, but they set using the Config and therefore should be constant (those are for the Debug Mode) */
public static boolean D1 = false, D2 = false;
/** If you have to give something a World Parameter but there is no World... (Dummy World) */
public static World DW;
/**
* MOD ID Strings, since they are very common Parameters.
*/
public static final String
MOD_ID = "gregtech"
, MOD_ID_IC2 = "IC2"
, MOD_ID_NC = "IC2NuclearControl"
, MOD_ID_TC = "Thaumcraft"
, MOD_ID_TF = "TwilightForest"
, MOD_ID_RC = "Railcraft"
, MOD_ID_TE = "ThermalExpansion"
, MOD_ID_AE = "appliedenergistics2"
, MOD_ID_TFC = "terrafirmacraft"
, MOD_ID_PFAA = "PFAAGeologica"
, MOD_ID_FR = "Forestry"
, MOD_ID_HaC = "harvestcraft"
, MOD_ID_APC = "AppleCore"
, MOD_ID_MaCr = "magicalcrops"
, MOD_ID_GaEn = "ganysend"
, MOD_ID_GaSu = "ganyssurface"
, MOD_ID_GaNe = "ganysnether"
, MOD_ID_BC_SILICON = "BuildCraft|Silicon"
, MOD_ID_BC_TRANSPORT = "BuildCraft|Transport"
, MOD_ID_BC_FACTORY = "BuildCraft|Factory"
, MOD_ID_BC_ENERGY = "BuildCraft|Energy"
, MOD_ID_BC_BUILDERS = "BuildCraft|Builders"
, MOD_ID_BC_CORE = "BuildCraft|Core"
, MOD_ID_GC_CORE = "GalacticraftCore"
, MOD_ID_GC_MARS = "GalacticraftMars"
, MOD_ID_GC_PLANETS = "GalacticraftPlanets"
;
/** File Paths and Resource Paths */
public static final String
TEX_DIR = "textures/"
, TEX_DIR_GUI = TEX_DIR + "gui/"
, TEX_DIR_ITEM = TEX_DIR + "items/"
, TEX_DIR_BLOCK = TEX_DIR + "blocks/"
, TEX_DIR_ENTITY = TEX_DIR + "entity/"
, TEX_DIR_ASPECTS = TEX_DIR + "aspects/"
, RES_PATH = MOD_ID + ":" + TEX_DIR
, RES_PATH_GUI = MOD_ID + ":" + TEX_DIR_GUI
, RES_PATH_ITEM = MOD_ID + ":"
, RES_PATH_BLOCK = MOD_ID + ":"
, RES_PATH_ENTITY = MOD_ID + ":" + TEX_DIR_ENTITY
, RES_PATH_ASPECTS = MOD_ID + ":" + TEX_DIR_ASPECTS
, RES_PATH_IC2 = MOD_ID_IC2.toLowerCase() + ":"
;
}
|