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
|
package gregtech.common.misc.spaceprojects.enums;
import static gregtech.api.enums.Mods.GregTech;
import static gregtech.common.misc.spaceprojects.enums.SpaceBodyType.AsteroidBelt;
import static gregtech.common.misc.spaceprojects.enums.SpaceBodyType.DwarfPlanet;
import static gregtech.common.misc.spaceprojects.enums.SpaceBodyType.GasGiant;
import static gregtech.common.misc.spaceprojects.enums.SpaceBodyType.IceGiant;
import static gregtech.common.misc.spaceprojects.enums.SpaceBodyType.NaturalSatellite;
import static gregtech.common.misc.spaceprojects.enums.SpaceBodyType.Planet;
import static gregtech.common.misc.spaceprojects.enums.SpaceBodyType.Star;
import static gregtech.common.misc.spaceprojects.enums.StarType.GClass;
import static gregtech.common.misc.spaceprojects.enums.StarType.NotAStar;
import com.gtnewhorizons.modularui.api.drawable.UITexture;
import gregtech.common.misc.spaceprojects.SpaceProjectManager;
import gregtech.common.misc.spaceprojects.interfaces.ISpaceBody;
/**
* An enum of all space bodies in the Sol Solar System. Or to be exact the more important ones
*
* @author BlueWeabo
*/
public enum SolarSystem implements ISpaceBody {
Sol(Star, GClass),
Overworld(Planet),
Moon(NaturalSatellite),
Mars(Planet),
Deimos(NaturalSatellite),
Phobos(NaturalSatellite),
Mercury(Planet),
Venus(Planet),
Jupiter(GasGiant),
Io(NaturalSatellite),
Ganymede(NaturalSatellite),
Europa(NaturalSatellite),
Callisto(NaturalSatellite),
Saturn(GasGiant),
Mimas(NaturalSatellite),
Enceladus(NaturalSatellite),
Tethys(NaturalSatellite),
Rhea(NaturalSatellite),
Titan(NaturalSatellite),
Hyperion(NaturalSatellite),
Iapetus(NaturalSatellite),
Phoebe(NaturalSatellite),
Uranus(IceGiant),
Miranda(NaturalSatellite),
Ariel(NaturalSatellite),
Umbriel(NaturalSatellite),
Titania(NaturalSatellite),
Oberon(NaturalSatellite),
Neptune(IceGiant),
Proteus(NaturalSatellite),
Triton(NaturalSatellite),
Nereid(NaturalSatellite),
Ceres(DwarfPlanet),
Pluto(DwarfPlanet),
Arrokoth(DwarfPlanet),
MakeMake(DwarfPlanet),
KuiperBelt(AsteroidBelt),
NONE(SpaceBodyType.NONE);
private final SpaceBodyType spaceBody;
private final StarType star;
private final UITexture texture;
SolarSystem(SpaceBodyType aType) {
this(aType, NotAStar);
}
SolarSystem(SpaceBodyType aType, StarType aStarType) {
star = aStarType;
spaceBody = aType;
texture = UITexture.fullImage(GregTech.ID, "solarsystem/" + getName());
SpaceProjectManager.addLocation(this);
}
@Override
public StarType getStarType() {
return star;
}
@Override
public SpaceBodyType getType() {
return spaceBody;
}
@Override
public String getName() {
return name();
}
@Override
public UITexture getTexture() {
return texture;
}
@Override
public String getUnlocalizedName() {
return "gt.solar.system." + getName().toLowerCase();
}
}
|