Skip to content

Commit 5ff405e

Browse files
committed
feat: generate file for builtin armor trim materials and patterns
1 parent 17ba1b9 commit 5ff405e

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

DataGenerator/src/main/java/net/minestom/datagen/DataGenType.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,10 @@ public enum DataGenType {
3636
GAMEEVENT_TAGS("tags/gameplay_tags", new GameEventTagGenerator()),
3737
ITEM_TAGS("tags/item_tags", new ItemTagGenerator()),
3838

39-
DAMAGE_TYPES("damage_types", new DamageTypeGenerator()),
39+
DAMAGE_TYPES("damage_types", new GenericResourceGenerator("damage_type")),
40+
41+
TRIM_MATERIALS("trim_materials", new GenericResourceGenerator("trim_material")),
42+
TRIM_PATTERNS("trim_patterns", new GenericResourceGenerator("trim_pattern")),
4043

4144
BLOCK_LOOT_TABLES("loot_tables/block_loot_tables", new BlockLootTableGenerator()),
4245
CHEST_LOOT_TABLES("loot_tables/chest_loot_tables", new ChestLootTableGenerator()),

DataGenerator/src/main/java/net/minestom/generators/DamageTypeGenerator.java renamed to DataGenerator/src/main/java/net/minestom/generators/GenericResourceGenerator.java

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,31 @@
55
import com.google.gson.JsonObject;
66
import net.minestom.datagen.DataGenerator;
77
import net.minestom.utils.ResourceUtils;
8+
import org.jetbrains.annotations.NotNull;
89

910
import java.util.Scanner;
1011

11-
public class DamageTypeGenerator extends DataGenerator {
12+
public class GenericResourceGenerator extends DataGenerator {
1213

13-
private static final String DAMAGE_TYPE_DIR = "data/minecraft/damage_type/";
1414
private static final Gson gson = new Gson();
1515

16+
private final String name;
17+
18+
public GenericResourceGenerator(@NotNull String name) {
19+
this.name = "data/minecraft/" + name + "/";
20+
}
21+
1622
@Override
1723
public JsonElement generate() throws Exception {
18-
var damageTypesJson = new JsonObject();
24+
var result = new JsonObject();
1925

20-
// get all files from the biomes directory
21-
var files = ResourceUtils.getResourceListing(
22-
net.minecraft.server.MinecraftServer.class, DAMAGE_TYPE_DIR);
26+
// get all files from the damage types directory
27+
var files = ResourceUtils.getResourceListing(net.minecraft.server.MinecraftServer.class, name);
2328

2429
for (String fileName : files) {
2530
var file = net.minecraft.server.MinecraftServer.class
2631
.getClassLoader()
27-
.getResourceAsStream(DAMAGE_TYPE_DIR + fileName);
32+
.getResourceAsStream(name + fileName);
2833
var scanner = new Scanner(file);
2934
var content = new StringBuilder();
3035
while (scanner.hasNextLine()) {
@@ -34,12 +39,12 @@ public JsonElement generate() throws Exception {
3439

3540
// only collect valid files
3641
if (content.length() > 0 && fileName.endsWith(".json")) {
37-
var biomeKey = "minecraft:" + fileName.substring(0, fileName.length() - 5);
42+
var key = "minecraft:" + fileName.substring(0, fileName.length() - 5);
3843
var jsonObject = gson.fromJson(content.toString(), JsonObject.class);
39-
damageTypesJson.add(biomeKey, jsonObject);
44+
result.add(key, jsonObject);
4045
}
4146
}
4247

43-
return damageTypesJson;
48+
return result;
4449
}
4550
}

0 commit comments

Comments
 (0)