diff --git a/src/main/java/gay/pridecraft/joy/Joy.java b/src/main/java/gay/pridecraft/joy/Joy.java index 239eb7c..fb9c619 100644 --- a/src/main/java/gay/pridecraft/joy/Joy.java +++ b/src/main/java/gay/pridecraft/joy/Joy.java @@ -7,6 +7,7 @@ import gay.pridecraft.joy.entity.spawn.SpawnModifier; import gay.pridecraft.joy.item.ModItemGroups; import gay.pridecraft.joy.item.ModItems; import gay.pridecraft.joy.particle.ModParticles; +import gay.pridecraft.joy.sound.ModSoundEvents; import net.fabricmc.api.ModInitializer; import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry; import net.minecraft.entity.attribute.EntityAttributes; @@ -14,16 +15,9 @@ import net.minecraft.entity.mob.MobEntity; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Random; - public class Joy implements ModInitializer { public static final String MOD_ID = "joy"; public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID); -// public static final Identifier MUSIC_GAME = Identifier.of(MOD_ID, "music.ambient"); -// public static SoundEvent MUSIC_GAME_EVENT = SoundEvent.of(MUSIC_GAME); - private int tickCounter = 0; - private final Random random = new Random(); - @Override public void onInitialize() { ModParticles.registerParticles(); @@ -31,6 +25,7 @@ public class Joy implements ModInitializer { ModItems.registerModItems(); ModBlocks.registerModBlocks(); ModEntities.registerBlockEntities(); + ModSoundEvents.registerModSoundEvents(); // this is now has to be done in a mixin. // ModPaintings.registerPaintings(); @@ -38,36 +33,10 @@ public class Joy implements ModInitializer { if (Config.mobSpawning) { SpawnModifier.modifySpawning(); } - -/* MidnightConfig.init(Joy.MOD_ID, Config.class); - - Registry.register(Registries.SOUND_EVENT, MUSIC_GAME, MUSIC_GAME_EVENT); - SoundInstance music = PositionedSoundInstance.music(MUSIC_GAME_EVENT); - - - ClientTickEvents.END_CLIENT_TICK.register(client -> { - if (!(client.currentScreen instanceof TitleScreen)) return; - if (client.getSoundManager().isPlaying(music)) return; - client.getSoundManager().play(music); - }); - - ClientTickEvents.END_CLIENT_TICK.register(client -> { - if (client.world != null && !client.isPaused() && client.player != null) { - tickCounter++; - if (tickCounter >= getRandomInterval()) { - client.getSoundManager().play(music); - tickCounter = 0; - } - } - }); */ - + // MidnightConfig.init(Joy.MOD_ID, Config.class); registerEntityAttributes(); } - private int getRandomInterval() { - return 12000 + random.nextInt(24000); - } - private void registerEntityAttributes() { FabricDefaultAttributeRegistry.register(ModEntities.SOCK_FOX, MobEntity.createMobAttributes() .add(EntityAttributes.GENERIC_ATTACK_DAMAGE, 2.0) diff --git a/src/main/java/gay/pridecraft/joy/item/ModItems.java b/src/main/java/gay/pridecraft/joy/item/ModItems.java index bc74127..9b24523 100644 --- a/src/main/java/gay/pridecraft/joy/item/ModItems.java +++ b/src/main/java/gay/pridecraft/joy/item/ModItems.java @@ -1,7 +1,6 @@ package gay.pridecraft.joy.item; -import gay.pridecraft.joy.Joy; import gay.pridecraft.joy.entity.ModEntities; import gay.pridecraft.joy.item.custom.CustomElytraItem; import gay.pridecraft.joy.item.custom.CustomSpawnEggItem; @@ -9,9 +8,15 @@ import net.minecraft.item.BrushItem; import net.minecraft.item.Item; import net.minecraft.registry.Registries; import net.minecraft.registry.Registry; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; import net.minecraft.util.Identifier; +import net.minecraft.util.Rarity; + +import static gay.pridecraft.joy.Joy.*; public class ModItems { + public static final Item PRIDE_ELYTRA = registerItem("pride_elytra", new CustomElytraItem(new Item.Settings().maxCount(1))); @@ -26,9 +31,12 @@ public class ModItems { public static final Item AXOLOTL_SPAWN_EGG = registerItem("axolotl_spawn_egg", new CustomSpawnEggItem(ModEntities.AXOLOTL, 16499171, 0xff80bf, new Item.Settings())); public static final Item FROG_SPAWN_EGG = registerItem("frog_spawn_egg", new CustomSpawnEggItem(ModEntities.FROG, 13661252, 0xff80bf, new Item.Settings())); public static final Item SNIFFER_SPAWN_EGG = registerItem("sniffer_spawn_egg", new CustomSpawnEggItem(ModEntities.SNIFFER, 8855049, 0xff80bf, new Item.Settings())); + // Test disc item that can be used as template in case someone wants to create one. Note: it's not added to any item group, only obtainable via commands. + public static final Item TEST_DISC = registerItem("test_disc", new Item(new Item.Settings().maxCount(1).rarity(Rarity.RARE).jukeboxPlayable(RegistryKey.of(RegistryKeys.JUKEBOX_SONG, Identifier.of(MOD_ID, "douglas"))))); + private static Item registerItem(String name, Item item) { - return Registry.register(Registries.ITEM, Identifier.of(Joy.MOD_ID, name), item); + return Registry.register(Registries.ITEM, Identifier.of(MOD_ID, name), item); } public static void registerModItems() { diff --git a/src/main/java/gay/pridecraft/joy/sound/ModSoundEvents.java b/src/main/java/gay/pridecraft/joy/sound/ModSoundEvents.java new file mode 100644 index 0000000..482dad6 --- /dev/null +++ b/src/main/java/gay/pridecraft/joy/sound/ModSoundEvents.java @@ -0,0 +1,27 @@ +package gay.pridecraft.joy.sound; + +import gay.pridecraft.joy.Joy; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; +import net.minecraft.registry.entry.RegistryEntry; +import net.minecraft.sound.SoundEvent; +import net.minecraft.util.Identifier; + +public class ModSoundEvents { + public static final RegistryEntry.Reference DOUGLAS = registerReference("music_disc.douglas"); + + + private static SoundEvent registerSound(String id) { + Identifier identifier = Identifier.of(Joy.MOD_ID, id); + return Registry.register(Registries.SOUND_EVENT, identifier, SoundEvent.of(identifier)); + } + + private static RegistryEntry.Reference registerReference(String id) { + Identifier identifier = Identifier.of(Joy.MOD_ID, id); + return Registry.registerReference(Registries.SOUND_EVENT, identifier, SoundEvent.of(identifier)); + } + + public static void registerModSoundEvents() { + // Joy.LOGGER.info("Making the gay sounds from" + Joy.MOD_ID); + } +} diff --git a/src/main/resources/assets/joy/sounds.json b/src/main/resources/assets/joy/sounds.json index 7910ebc..abe242a 100644 --- a/src/main/resources/assets/joy/sounds.json +++ b/src/main/resources/assets/joy/sounds.json @@ -1,34 +1,10 @@ { - "music.menu": { + "music_disc.douglas": { "sounds": [ { - "name": "music/menu/joy", - "stream": true - }, - { - "name": "music/menu/reminiscence", + "name": "joy:music/game/creative/douglas", "stream": true } ] - }, - "music.game": { - "sounds": [ - { - "name": "music/game/melancolie", - "stream": true - }, - { - "name": "music/game/regina", - "stream": true - } - ] - }, - "music.creative": { - "sounds": [ - { - "name": "music/game/creative/douglas", - "stream": true - } - ] - } + } } \ No newline at end of file diff --git a/src/main/resources/assets/minecraft/sounds.json b/src/main/resources/assets/minecraft/sounds.json new file mode 100644 index 0000000..e24a316 --- /dev/null +++ b/src/main/resources/assets/minecraft/sounds.json @@ -0,0 +1,34 @@ +{ + "music.menu": { + "sounds": [ + { + "name": "joy:music/menu/joy", + "stream": true + }, + { + "name": "joy:music/menu/reminiscence", + "stream": true + } + ] + }, + "music.game": { + "sounds": [ + { + "name": "joy:music/game/melancolie", + "stream": true + }, + { + "name": "joy:music/game/regina", + "stream": true + } + ] + }, + "music.creative": { + "sounds": [ + { + "name": "joy:music/game/creative/douglas", + "stream": true + } + ] + } +} \ No newline at end of file diff --git a/src/main/resources/data/joy/jukebox_song/douglas.json b/src/main/resources/data/joy/jukebox_song/douglas.json new file mode 100644 index 0000000..781efb4 --- /dev/null +++ b/src/main/resources/data/joy/jukebox_song/douglas.json @@ -0,0 +1,10 @@ +{ + "comparator_output": 14, + "description": { + "translate": "music_disc.joy.douglas" + }, + "length_in_seconds": 176.0, + "sound_event": { + "sound_id": "joy:music_disc.douglas" + } +} \ No newline at end of file