Add sound id to name mappings as generator for 1.9 thru 1.20 (#17)

* Add sound id to name mappings as generator for 1.9 thru 1.20

* Fix issues in generators

* Add generator to all versions.

* Fix versions that offset ID by one for network.
This commit is contained in:
William Gaylord
2024-03-17 16:13:19 +01:00
committed by GitHub
parent 665bf9b7c7
commit 44f49b4ab5
40 changed files with 552 additions and 2 deletions
@@ -35,6 +35,7 @@ public class DataGenerators {
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new AttributesDataGenerator()); register(new AttributesDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,31 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import dev.u9g.minecraftdatagenerator.mixin.SoundAccessor;
import net.minecraft.client.sound.SoundEvent;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", SoundEvent.REGISTRY.getRawId(soundEvent));
soundDesc.addProperty("name", ((SoundAccessor) soundEvent).id().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
SoundEvent.REGISTRY.forEach(sound -> resultsArray.add(generateSound(sound)));
return resultsArray;
}
}
@@ -35,6 +35,7 @@ public class DataGenerators {
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new AttributesDataGenerator()); register(new AttributesDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,31 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import dev.u9g.minecraftdatagenerator.mixin.SoundAccessor;
import net.minecraft.client.sound.SoundEvent;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", SoundEvent.REGISTRY.getRawId(soundEvent));
soundDesc.addProperty("name", ((SoundAccessor) soundEvent).id().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
SoundEvent.REGISTRY.forEach(sound -> resultsArray.add(generateSound(sound)));
return resultsArray;
}
}
@@ -35,6 +35,7 @@ public class DataGenerators {
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new AttributesDataGenerator()); register(new AttributesDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,32 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import dev.u9g.minecraftdatagenerator.mixin.SoundAccessor;
import net.minecraft.client.sound.SoundEvent;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", SoundEvent.REGISTRY.getRawId(soundEvent));
soundDesc.addProperty("name", ((SoundAccessor) soundEvent).id().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
SoundEvent.REGISTRY.forEach(sound -> resultsArray.add(generateSound(sound)));
return resultsArray;
}
}
@@ -34,6 +34,7 @@ public class DataGenerators {
register(new TintsDataGenerator()); register(new TintsDataGenerator());
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,33 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import dev.u9g.minecraftdatagenerator.mixin.SoundAccessor;
import net.minecraft.client.sound.SoundEvent;
import net.minecraft.util.registry.Registry;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(Registry<SoundEvent> registry, SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", registry.getRawId(soundEvent));
soundDesc.addProperty("name", ((SoundAccessor)soundEvent).id().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
Registry<SoundEvent> soundEventRegistry = Registry.SOUND_EVENT;
soundEventRegistry.forEach(sound -> resultsArray.add(generateSound(soundEventRegistry, (SoundEvent) sound)));
return resultsArray;
}
}
@@ -0,0 +1,12 @@
package dev.u9g.minecraftdatagenerator.mixin;
import net.minecraft.client.sound.SoundEvent;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(SoundEvent.class)
public interface SoundAccessor {
@Accessor("id")
Identifier id();
}
@@ -6,6 +6,7 @@
"mixins": [ "mixins": [
"MiningToolItemAccessor", "MiningToolItemAccessor",
"ReadyMixin", "ReadyMixin",
"SoundAccessor",
"StatusEffectAccessor" "StatusEffectAccessor"
], ],
"client": [ "client": [
@@ -34,6 +34,7 @@ public class DataGenerators {
register(new TintsDataGenerator()); register(new TintsDataGenerator());
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,33 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import dev.u9g.minecraftdatagenerator.mixin.SoundAccessor;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.registry.Registry;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(Registry<SoundEvent> registry, SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", registry.getRawId(soundEvent));
soundDesc.addProperty("name", ((SoundAccessor)soundEvent).id().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
Registry<SoundEvent> soundEventRegistry = Registry.SOUND_EVENT;
soundEventRegistry.forEach(sound -> resultsArray.add(generateSound(soundEventRegistry, sound)));
return resultsArray;
}
}
@@ -0,0 +1,13 @@
package dev.u9g.minecraftdatagenerator.mixin;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(SoundEvent.class)
public interface SoundAccessor {
@Accessor("id")
Identifier id();
}
@@ -6,6 +6,7 @@
"mixins": [ "mixins": [
"MiningToolItemAccessor", "MiningToolItemAccessor",
"ReadyMixin", "ReadyMixin",
"SoundAccessor",
"StatusEffectAccessor" "StatusEffectAccessor"
], ],
"client": [ "client": [
@@ -34,6 +34,7 @@ public class DataGenerators {
register(new TintsDataGenerator()); register(new TintsDataGenerator());
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,33 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import dev.u9g.minecraftdatagenerator.mixin.SoundAccessor;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.registry.Registry;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(Registry<SoundEvent> registry, SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", registry.getRawId(soundEvent));
soundDesc.addProperty("name", ((SoundAccessor)soundEvent).id().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
Registry<SoundEvent> soundEventRegistry = Registry.SOUND_EVENT;
soundEventRegistry.forEach(sound -> resultsArray.add(generateSound(soundEventRegistry, sound)));
return resultsArray;
}
}
@@ -0,0 +1,13 @@
package dev.u9g.minecraftdatagenerator.mixin;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(SoundEvent.class)
public interface SoundAccessor {
@Accessor("id")
Identifier id();
}
@@ -6,6 +6,7 @@
"mixins": [ "mixins": [
"MiningToolItemAccessor", "MiningToolItemAccessor",
"ReadyMixin", "ReadyMixin",
"SoundAccessor",
"StatusEffectAccessor" "StatusEffectAccessor"
], ],
"client": [ "client": [
@@ -34,6 +34,7 @@ public class DataGenerators {
register(new TintsDataGenerator()); register(new TintsDataGenerator());
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,33 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import dev.u9g.minecraftdatagenerator.mixin.SoundAccessor;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.registry.Registry;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(Registry<SoundEvent> registry, SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", registry.getRawId(soundEvent));
soundDesc.addProperty("name", ((SoundAccessor)soundEvent).id().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
Registry<SoundEvent> soundEventRegistry = Registry.SOUND_EVENT;
soundEventRegistry.forEach(sound -> resultsArray.add(generateSound(soundEventRegistry, sound)));
return resultsArray;
}
}
@@ -0,0 +1,13 @@
package dev.u9g.minecraftdatagenerator.mixin;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(SoundEvent.class)
public interface SoundAccessor {
@Accessor("id")
Identifier id();
}
@@ -8,6 +8,7 @@
"EULAMixin", "EULAMixin",
"MiningToolItemAccessor", "MiningToolItemAccessor",
"ReadyMixin", "ReadyMixin",
"SoundAccessor",
"StatusEffectAccessor" "StatusEffectAccessor"
], ],
"client": [ "client": [
@@ -3,6 +3,7 @@ package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonElement; import com.google.gson.JsonElement;
import com.google.gson.internal.Streams; import com.google.gson.internal.Streams;
import com.google.gson.stream.JsonWriter; import com.google.gson.stream.JsonWriter;
import org.lwjgl.system.CallbackI;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
@@ -34,6 +35,7 @@ public class DataGenerators {
// register(new RecipeDataGenerator()); - On hold until mcdata supports multiple materials for a recipe // register(new RecipeDataGenerator()); - On hold until mcdata supports multiple materials for a recipe
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,33 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import dev.u9g.minecraftdatagenerator.mixin.SoundAccessor;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.registry.Registry;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(Registry<SoundEvent> registry, SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", registry.getRawId(soundEvent));
soundDesc.addProperty("name", ((SoundAccessor)soundEvent).id().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
Registry<SoundEvent> soundEventRegistry = Registry.SOUND_EVENT;
soundEventRegistry.forEach(sound -> resultsArray.add(generateSound(soundEventRegistry, sound)));
return resultsArray;
}
}
@@ -0,0 +1,13 @@
package dev.u9g.minecraftdatagenerator.mixin;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(SoundEvent.class)
public interface SoundAccessor {
@Accessor("id")
Identifier id();
}
@@ -6,7 +6,8 @@
"mixins": [ "mixins": [
"ClientPlayerInteractionManagerMixin", "ClientPlayerInteractionManagerMixin",
"MiningToolItemAccessor", "MiningToolItemAccessor",
"ReadyMixin" "ReadyMixin",
"SoundAccessor"
], ],
"client": [ "client": [
], ],
@@ -33,6 +33,7 @@ public class DataGenerators {
// register(new RecipeDataGenerator()); - On hold until mcdata supports multiple materials for a recipe // register(new RecipeDataGenerator()); - On hold until mcdata supports multiple materials for a recipe
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,33 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import dev.u9g.minecraftdatagenerator.mixin.SoundAccessor;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.registry.Registry;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(Registry<SoundEvent> registry, SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", registry.getRawId(soundEvent));
soundDesc.addProperty("name", ((SoundAccessor)soundEvent).id().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
Registry<SoundEvent> soundEventRegistry = Registry.SOUND_EVENT;
soundEventRegistry.forEach(sound -> resultsArray.add(generateSound(soundEventRegistry, sound)));
return resultsArray;
}
}
@@ -0,0 +1,13 @@
package dev.u9g.minecraftdatagenerator.mixin;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.Identifier;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.gen.Accessor;
@Mixin(SoundEvent.class)
public interface SoundAccessor {
@Accessor("id")
Identifier id();
}
@@ -7,7 +7,8 @@
"ClientPlayerInteractionManagerMixin", "ClientPlayerInteractionManagerMixin",
"EULAMixin", "EULAMixin",
"MiningToolItemAccessor", "MiningToolItemAccessor",
"ReadyMixin" "ReadyMixin",
"SoundAccessor"
], ],
"client": [ "client": [
], ],
@@ -34,6 +34,7 @@ public class DataGenerators {
// register(new RecipeDataGenerator()); - On hold until mcdata supports multiple materials for a recipe // register(new RecipeDataGenerator()); - On hold until mcdata supports multiple materials for a recipe
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,32 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.registry.Registry;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(Registry<SoundEvent> registry, SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", registry.getRawId(soundEvent)+1); // the plus 1 is required for 1.19.2+ due to Mojang using 0 in the packet to say that you should read a string id instead.
soundDesc.addProperty("name", soundEvent.getId().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
Registry<SoundEvent> soundEventRegistry = Registry.SOUND_EVENT;
soundEventRegistry.forEach(sound -> resultsArray.add(generateSound(soundEventRegistry, sound)));
return resultsArray;
}
}
@@ -34,6 +34,7 @@ public class DataGenerators {
// register(new RecipeDataGenerator()); - On hold until mcdata supports multiple materials for a recipe // register(new RecipeDataGenerator()); - On hold until mcdata supports multiple materials for a recipe
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,32 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.registry.Registry;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(Registry<SoundEvent> registry, SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", registry.getRawId(soundEvent));
soundDesc.addProperty("name", soundEvent.getId().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
Registry<SoundEvent> soundEventRegistry = Registry.SOUND_EVENT;
soundEventRegistry.forEach(sound -> resultsArray.add(generateSound(soundEventRegistry, sound)));
return resultsArray;
}
}
@@ -34,6 +34,7 @@ public class DataGenerators {
// register(new RecipeDataGenerator()); - On hold until mcdata supports multiple materials for a recipe // register(new RecipeDataGenerator()); - On hold until mcdata supports multiple materials for a recipe
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,33 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import dev.u9g.minecraftdatagenerator.util.DGU;
import net.minecraft.registry.Registry;
import net.minecraft.registry.RegistryKeys;
import net.minecraft.sound.SoundEvent;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(Registry<SoundEvent> registry, SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", registry.getRawId(soundEvent)+1); // the plus 1 is required for 1.19.2+ due to Mojang using 0 in the packet to say that you should read a string id instead.
soundDesc.addProperty("name", soundEvent.getId().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
Registry<SoundEvent> soundEventRegistry = DGU.getWorld().getRegistryManager().get(RegistryKeys.SOUND_EVENT);
soundEventRegistry.forEach(sound -> resultsArray.add(generateSound(soundEventRegistry, sound)));
return resultsArray;
}
}
@@ -35,6 +35,7 @@ public class DataGenerators {
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new AttributesDataGenerator()); register(new AttributesDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,31 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import dev.u9g.minecraftdatagenerator.mixin.SoundAccessor;
import net.minecraft.client.sound.SoundEvent;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", SoundEvent.REGISTRY.getRawId(soundEvent));
soundDesc.addProperty("name", ((SoundAccessor) soundEvent).id().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
SoundEvent.REGISTRY.forEach(sound -> resultsArray.add(generateSound(sound)));
return resultsArray;
}
}
@@ -34,6 +34,7 @@ public class DataGenerators {
// register(new RecipeDataGenerator()); - On hold until mcdata supports multiple materials for a recipe // register(new RecipeDataGenerator()); - On hold until mcdata supports multiple materials for a recipe
register(new LanguageDataGenerator()); register(new LanguageDataGenerator());
register(new InstrumentsDataGenerator()); register(new InstrumentsDataGenerator());
register(new SoundsDataGenerator());
} }
public static void register(IDataGenerator generator) { public static void register(IDataGenerator generator) {
@@ -0,0 +1,32 @@
package dev.u9g.minecraftdatagenerator.generators;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import net.minecraft.sound.SoundEvent;
import net.minecraft.util.registry.Registry;
public class SoundsDataGenerator implements IDataGenerator {
public static JsonObject generateSound(Registry<SoundEvent> registry, SoundEvent soundEvent) {
JsonObject soundDesc = new JsonObject();
soundDesc.addProperty("id", registry.getRawId(soundEvent));
soundDesc.addProperty("name", soundEvent.getId().getPath());
return soundDesc;
}
@Override
public String getDataName() {
return "sounds";
}
@Override
public JsonArray generateDataJson() {
JsonArray resultsArray = new JsonArray();
Registry<SoundEvent> soundEventRegistry = Registry.SOUND_EVENT;
soundEventRegistry.forEach(sound -> resultsArray.add(generateSound(soundEventRegistry, sound)));
return resultsArray;
}
}