-
Notifications
You must be signed in to change notification settings - Fork 497
/
CoreIconProvider.java
44 lines (35 loc) · 1.34 KB
/
CoreIconProvider.java
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
package buildcraft.core.client;
import net.minecraft.client.renderer.texture.TextureAtlasSprite;
import net.minecraft.client.renderer.texture.TextureMap;
import net.minecraft.util.ResourceLocation;
import buildcraft.api.tiles.IControllable.Mode;
public enum CoreIconProvider {
ENERGY("buildcraftcore:items/icons/energy"),
SLOT("buildcraftcore:gui/slot"),
LOCK("buildcraftcore:items/icons/lock"),
TURNED_OFF("buildcraftcore:triggers/action_machinecontrol_off"),
LOOPING("buildcraftcore:triggers/action_machinecontrol_loop");
private final ResourceLocation location;
private TextureAtlasSprite sprite;
CoreIconProvider(String location) {
this.location = new ResourceLocation(location);
}
public static void registerSprites(TextureMap map) {
for (CoreIconProvider icon : values()) {
icon.registerSprite(map);
}
}
private void registerSprite(TextureMap map) {
sprite = null;
sprite = map.getTextureExtry(location.toString());
if (sprite == null) sprite = map.registerSprite(location);
}
public TextureAtlasSprite getSprite() {
return sprite;
}
public static CoreIconProvider getForControlMode(Mode mode) {
if (mode == Mode.Off) return TURNED_OFF;
if (mode == Mode.Loop) return LOOPING;
return null;
}
}