mirror of
https://github.com/Pridecraft-Studios/joy.git
synced 2025-09-09 20:17:46 -04:00
feat: add ambient music and test jukebox disc
- Moved ambient music to Minecraft's default list. - Added a test jukebox disc as a template for future discs. - Removed obsolete commented code related to ambient music to clean up the codebase.
This commit is contained in:
parent
602c4d2feb
commit
0e9afe919f
@ -7,6 +7,7 @@ import gay.pridecraft.joy.entity.spawn.SpawnModifier;
|
|||||||
import gay.pridecraft.joy.item.ModItemGroups;
|
import gay.pridecraft.joy.item.ModItemGroups;
|
||||||
import gay.pridecraft.joy.item.ModItems;
|
import gay.pridecraft.joy.item.ModItems;
|
||||||
import gay.pridecraft.joy.particle.ModParticles;
|
import gay.pridecraft.joy.particle.ModParticles;
|
||||||
|
import gay.pridecraft.joy.sound.ModSoundEvents;
|
||||||
import net.fabricmc.api.ModInitializer;
|
import net.fabricmc.api.ModInitializer;
|
||||||
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry;
|
import net.fabricmc.fabric.api.object.builder.v1.entity.FabricDefaultAttributeRegistry;
|
||||||
import net.minecraft.entity.attribute.EntityAttributes;
|
import net.minecraft.entity.attribute.EntityAttributes;
|
||||||
@ -14,16 +15,9 @@ import net.minecraft.entity.mob.MobEntity;
|
|||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import java.util.Random;
|
|
||||||
|
|
||||||
public class Joy implements ModInitializer {
|
public class Joy implements ModInitializer {
|
||||||
public static final String MOD_ID = "joy";
|
public static final String MOD_ID = "joy";
|
||||||
public static final Logger LOGGER = LoggerFactory.getLogger(MOD_ID);
|
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
|
@Override
|
||||||
public void onInitialize() {
|
public void onInitialize() {
|
||||||
ModParticles.registerParticles();
|
ModParticles.registerParticles();
|
||||||
@ -31,6 +25,7 @@ public class Joy implements ModInitializer {
|
|||||||
ModItems.registerModItems();
|
ModItems.registerModItems();
|
||||||
ModBlocks.registerModBlocks();
|
ModBlocks.registerModBlocks();
|
||||||
ModEntities.registerBlockEntities();
|
ModEntities.registerBlockEntities();
|
||||||
|
ModSoundEvents.registerModSoundEvents();
|
||||||
|
|
||||||
// this is now has to be done in a mixin.
|
// this is now has to be done in a mixin.
|
||||||
// ModPaintings.registerPaintings();
|
// ModPaintings.registerPaintings();
|
||||||
@ -38,36 +33,10 @@ public class Joy implements ModInitializer {
|
|||||||
if (Config.mobSpawning) {
|
if (Config.mobSpawning) {
|
||||||
SpawnModifier.modifySpawning();
|
SpawnModifier.modifySpawning();
|
||||||
}
|
}
|
||||||
|
// MidnightConfig.init(Joy.MOD_ID, Config.class);
|
||||||
/* 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}); */
|
|
||||||
|
|
||||||
registerEntityAttributes();
|
registerEntityAttributes();
|
||||||
}
|
}
|
||||||
|
|
||||||
private int getRandomInterval() {
|
|
||||||
return 12000 + random.nextInt(24000);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void registerEntityAttributes() {
|
private void registerEntityAttributes() {
|
||||||
FabricDefaultAttributeRegistry.register(ModEntities.SOCK_FOX, MobEntity.createMobAttributes()
|
FabricDefaultAttributeRegistry.register(ModEntities.SOCK_FOX, MobEntity.createMobAttributes()
|
||||||
.add(EntityAttributes.GENERIC_ATTACK_DAMAGE, 2.0)
|
.add(EntityAttributes.GENERIC_ATTACK_DAMAGE, 2.0)
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package gay.pridecraft.joy.item;
|
package gay.pridecraft.joy.item;
|
||||||
|
|
||||||
|
|
||||||
import gay.pridecraft.joy.Joy;
|
|
||||||
import gay.pridecraft.joy.entity.ModEntities;
|
import gay.pridecraft.joy.entity.ModEntities;
|
||||||
import gay.pridecraft.joy.item.custom.CustomElytraItem;
|
import gay.pridecraft.joy.item.custom.CustomElytraItem;
|
||||||
import gay.pridecraft.joy.item.custom.CustomSpawnEggItem;
|
import gay.pridecraft.joy.item.custom.CustomSpawnEggItem;
|
||||||
@ -9,9 +8,15 @@ import net.minecraft.item.BrushItem;
|
|||||||
import net.minecraft.item.Item;
|
import net.minecraft.item.Item;
|
||||||
import net.minecraft.registry.Registries;
|
import net.minecraft.registry.Registries;
|
||||||
import net.minecraft.registry.Registry;
|
import net.minecraft.registry.Registry;
|
||||||
|
import net.minecraft.registry.RegistryKey;
|
||||||
|
import net.minecraft.registry.RegistryKeys;
|
||||||
import net.minecraft.util.Identifier;
|
import net.minecraft.util.Identifier;
|
||||||
|
import net.minecraft.util.Rarity;
|
||||||
|
|
||||||
|
import static gay.pridecraft.joy.Joy.*;
|
||||||
|
|
||||||
public class ModItems {
|
public class ModItems {
|
||||||
|
|
||||||
public static final Item PRIDE_ELYTRA = registerItem("pride_elytra",
|
public static final Item PRIDE_ELYTRA = registerItem("pride_elytra",
|
||||||
new CustomElytraItem(new Item.Settings().maxCount(1)));
|
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 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 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()));
|
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) {
|
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() {
|
public static void registerModItems() {
|
||||||
|
27
src/main/java/gay/pridecraft/joy/sound/ModSoundEvents.java
Normal file
27
src/main/java/gay/pridecraft/joy/sound/ModSoundEvents.java
Normal file
@ -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<SoundEvent> 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<SoundEvent> 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);
|
||||||
|
}
|
||||||
|
}
|
@ -1,34 +1,10 @@
|
|||||||
{
|
{
|
||||||
"music.menu": {
|
"music_disc.douglas": {
|
||||||
"sounds": [
|
"sounds": [
|
||||||
{
|
{
|
||||||
"name": "music/menu/joy",
|
"name": "joy:music/game/creative/douglas",
|
||||||
"stream": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "music/menu/reminiscence",
|
|
||||||
"stream": true
|
"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
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
34
src/main/resources/assets/minecraft/sounds.json
Normal file
34
src/main/resources/assets/minecraft/sounds.json
Normal file
@ -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
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
10
src/main/resources/data/joy/jukebox_song/douglas.json
Normal file
10
src/main/resources/data/joy/jukebox_song/douglas.json
Normal file
@ -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"
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user