Skip to content

Commit 795b627

Browse files
committed
readd this incase someone uses it
1 parent 03f65b4 commit 795b627

1 file changed

Lines changed: 92 additions & 0 deletions

File tree

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package turniplabs.halplibe.util;
2+
3+
import net.fabricmc.loader.api.FabricLoader;
4+
import net.fabricmc.loader.api.ModContainer;
5+
import net.fabricmc.loader.api.metadata.ModMetadata;
6+
7+
import java.util.ArrayList;
8+
import java.util.HashMap;
9+
import java.util.List;
10+
import java.util.Map;
11+
12+
public class DirectoryManager {
13+
public static final Map<String, HashMap<String, String>> resourceDirectoryMap = new HashMap<>();
14+
public static final List<String> allKeys = new ArrayList<>();
15+
public static final String BLOCK_TEXTURES = registerKey("halplibe:block_textures");
16+
public static final String ITEM_TEXTURES = registerKey("halplibe:item_textures");
17+
public static final String PARTICLE_TEXTURES = registerKey("halplibe:particle_textures");
18+
public static final String LANGUAGE = registerKey("halplibe:language");
19+
public static final String SOUND = registerKey("halplibe:sound");
20+
public static final String MUSIC = registerKey("halplibe:music");
21+
public static final String STREAMING = registerKey("halplibe:streaming");
22+
public static final String CAVE_MUSIC = registerKey("halplibe:cave_music");
23+
public static final String ARMOR = registerKey("halplibe:armor");
24+
public static final FabricLoader fl = FabricLoader.getInstance();
25+
26+
static {
27+
refreshDirectories();
28+
}
29+
30+
public static void refreshDirectories() {
31+
for (ModContainer container : fl.getAllMods()) {
32+
String id = container.getMetadata().getId();
33+
ModMetadata metadata = container.getMetadata();
34+
for (String key : allKeys) {
35+
if (metadata.containsCustomValue(key)) {
36+
assignDirectory(key, id, metadata.getCustomValue(key).getAsString());
37+
}
38+
}
39+
}
40+
}
41+
42+
public static String registerKey(String key) {
43+
allKeys.add(key);
44+
return key;
45+
}
46+
47+
public static void assignDirectory(String key, String modID, String path) {
48+
resourceDirectoryMap.putIfAbsent(modID, new HashMap<>());
49+
resourceDirectoryMap.get(modID).put(key, path);
50+
}
51+
52+
public static String getDirectory(String key, String modID, String formattedDefault) {
53+
resourceDirectoryMap.putIfAbsent(modID, new HashMap<>());
54+
return resourceDirectoryMap.get(modID).getOrDefault(key, String.format(formattedDefault, modID));
55+
}
56+
57+
public static String getBlockTextureDirectory(String modID) {
58+
return getDirectory(BLOCK_TEXTURES, modID, "/assets/%s/textures/block/");
59+
}
60+
61+
public static String getItemTextureDirectory(String modID) {
62+
return getDirectory(ITEM_TEXTURES, modID, "/assets/%s/textures/item/");
63+
}
64+
65+
public static String getParticleTextureDirectory(String modID) {
66+
return getDirectory(PARTICLE_TEXTURES, modID, "/assets/%s/textures/particle/");
67+
}
68+
69+
public static String getLanguageDirectory(String modID) {
70+
return getDirectory(LANGUAGE, modID, "/lang/%s/");
71+
}
72+
73+
public static String getSoundDirectory(String modID) {
74+
return getDirectory(SOUND, modID, "/assets/%s/sound/");
75+
}
76+
77+
public static String getMusicDirectory(String modID) {
78+
return getDirectory(MUSIC, modID, "/assets/%s/music/");
79+
}
80+
81+
public static String getCaveMusicDirectory(String modID) {
82+
return getDirectory(CAVE_MUSIC, modID, "/assets/%s/cavemusic/");
83+
}
84+
85+
public static String getStreamingDirectory(String modID) {
86+
return getDirectory(STREAMING, modID, "/assets/%s/streaming/");
87+
}
88+
89+
public static String getArmorDirectory(String modID) {
90+
return getDirectory(ARMOR, modID, "/assets/%s/textures/armor/");
91+
}
92+
}

0 commit comments

Comments
 (0)