diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/QueenMusicHandler.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/QueenMusicHandler.java index 822424ee..69d71742 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/QueenMusicHandler.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/client/QueenMusicHandler.java @@ -13,15 +13,18 @@ import net.minecraft.util.RandomSource; import java.util.Comparator; public final class QueenMusicHandler { - private static final double START_RADIUS = 128.0D; - private static final double STOP_RADIUS = 160.0D; - private static final int RESTART_COOLDOWN_TICKS = 100; + private static final double START_RADIUS = 256.0D; + private static final double STOP_RADIUS = 320.0D; + private static final float MUSIC_VOLUME_SCALE = 0.7F; private static QueenMusicSound music; - private static int cooldownTicks; private QueenMusicHandler() { } + public static boolean isPlaying() { + return music != null; + } + public static void tick(Minecraft minecraft, SoundEvent soundEvent) { if (minecraft.level == null || minecraft.player == null || minecraft.isPaused() || !minecraft.player.isAlive() || minecraft.player.isRemoved() @@ -30,10 +33,6 @@ public final class QueenMusicHandler { return; } - if (cooldownTicks > 0) { - cooldownTicks--; - } - QueenEntity queen = minecraft.level.getEntitiesOfClass( QueenEntity.class, minecraft.player.getBoundingBox().inflate(STOP_RADIUS), @@ -49,10 +48,10 @@ public final class QueenMusicHandler { if (music != null && !minecraft.getSoundManager().isActive(music)) { music = null; - cooldownTicks = Math.max(cooldownTicks, RESTART_COOLDOWN_TICKS); } - if (music == null && cooldownTicks <= 0) { + if (music == null) { + minecraft.getMusicManager().stopPlaying(); music = new QueenMusicSound(soundEvent); minecraft.getSoundManager().play(music); } @@ -62,7 +61,7 @@ public final class QueenMusicHandler { float volume = distance <= START_RADIUS ? 1.0F : (float) Mth.clamp(1.0D - (distance - START_RADIUS) / (STOP_RADIUS - START_RADIUS), 0.0D, 1.0D); - music.setVolume(volume); + music.setVolume(volume * MUSIC_VOLUME_SCALE); } } @@ -75,13 +74,12 @@ public final class QueenMusicHandler { private static void reset(Minecraft minecraft) { stop(minecraft); - cooldownTicks = 0; } private static final class QueenMusicSound extends AbstractTickableSoundInstance { private QueenMusicSound(SoundEvent soundEvent) { super(soundEvent, SoundSource.MUSIC, RandomSource.create()); - this.looping = false; + this.looping = true; this.delay = 0; this.relative = true; this.attenuation = SoundInstance.Attenuation.NONE; diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/creative/CreativeTabContents.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/creative/CreativeTabContents.java index 573d0ca6..683e8bb0 100644 --- a/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/creative/CreativeTabContents.java +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/content/creative/CreativeTabContents.java @@ -387,6 +387,7 @@ public final class CreativeTabContents { entry("bug_spray", "tools_and_utilities"), entry("music_disc_underside", "tools_and_utilities"), entry("music_disc_the_queen", "tools_and_utilities"), + entry("music_disc_verdance", "tools_and_utilities"), entry("diamond_minecart", "tools_and_utilities", "minecart"), entry("bile_bucket", "tools_and_utilities"), entry("ichor_bucket", "tools_and_utilities"), diff --git a/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/QueenMusicManagerMixin.java b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/QueenMusicManagerMixin.java new file mode 100644 index 00000000..566b7fce --- /dev/null +++ b/common-1.21.1/src/main/java/com/craisinlord/antarchy/mixins/client/QueenMusicManagerMixin.java @@ -0,0 +1,18 @@ +package com.craisinlord.antarchy.mixins.client; + +import com.craisinlord.antarchy.content.client.QueenMusicHandler; +import net.minecraft.client.sounds.MusicManager; +import org.spongepowered.asm.mixin.Mixin; +import org.spongepowered.asm.mixin.injection.At; +import org.spongepowered.asm.mixin.injection.Inject; +import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; + +@Mixin(MusicManager.class) +public abstract class QueenMusicManagerMixin { + @Inject(method = "tick", at = @At("HEAD"), cancellable = true) + private void antarchy$pauseVanillaMusicWhileQueenMusicIsPlaying(CallbackInfo ci) { + if (QueenMusicHandler.isPlaying()) { + ci.cancel(); + } + } +} diff --git a/common-1.21.1/src/main/resources/antarchy-common.mixins.json b/common-1.21.1/src/main/resources/antarchy-common.mixins.json index 6add0a5f..4a2c13e0 100644 --- a/common-1.21.1/src/main/resources/antarchy-common.mixins.json +++ b/common-1.21.1/src/main/resources/antarchy-common.mixins.json @@ -137,6 +137,7 @@ "client.EntityLightProbeMixin", "client.CustomBossBarMixin", "client.DimensionMusicMixin", + "client.QueenMusicManagerMixin", "client.CavarynSkyMixin", "client.CavarynHordeFogMixin", "client.CavarynHordeLightTextureMixin", diff --git a/common-1.21.1/src/main/resources/assets/antarchy/lang/en_us.json b/common-1.21.1/src/main/resources/assets/antarchy/lang/en_us.json index 2870db70..2e1666ee 100644 --- a/common-1.21.1/src/main/resources/assets/antarchy/lang/en_us.json +++ b/common-1.21.1/src/main/resources/assets/antarchy/lang/en_us.json @@ -389,7 +389,9 @@ "item.antarchy.music_disc_underside": "Music Disc", "jukebox_song.antarchy.underside": "docshrekbot - underside", "item.antarchy.music_disc_the_queen": "Music Disc", - "jukebox_song.antarchy.the_queen": "The Queen", + "jukebox_song.antarchy.the_queen": "Karlljp - The Queen", + "item.antarchy.music_disc_verdance": "Music Disc", + "jukebox_song.antarchy.verdance": "Hewo - Verdance", "item.antarchy.nightmare_helmet": "Nightmare Helmet", "item.antarchy.nightmare_chestplate": "Nightmare Chestplate", "item.antarchy.nightmare_leggings": "Nightmare Leggings", diff --git a/common-1.21.1/src/main/resources/assets/antarchy/models/item/music_disc_verdance.json b/common-1.21.1/src/main/resources/assets/antarchy/models/item/music_disc_verdance.json new file mode 100644 index 00000000..1a0aa650 --- /dev/null +++ b/common-1.21.1/src/main/resources/assets/antarchy/models/item/music_disc_verdance.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "antarchy:item/music_disc_verdance" + } +} diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds.json b/common-1.21.1/src/main/resources/assets/antarchy/sounds.json index c583c64b..f17ed18b 100644 --- a/common-1.21.1/src/main/resources/assets/antarchy/sounds.json +++ b/common-1.21.1/src/main/resources/assets/antarchy/sounds.json @@ -1073,6 +1073,14 @@ } ] }, + "music_disc_verdance": { + "sounds": [ + { + "name": "antarchy:records/verdance", + "stream": true + } + ] + }, "lucid_lullaby": { "sounds": [ { diff --git a/common-1.21.1/src/main/resources/assets/antarchy/sounds/records/verdance.ogg b/common-1.21.1/src/main/resources/assets/antarchy/sounds/records/verdance.ogg new file mode 100644 index 00000000..134b2cef Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/sounds/records/verdance.ogg differ diff --git a/common-1.21.1/src/main/resources/assets/antarchy/textures/item/music_disc_verdance.png b/common-1.21.1/src/main/resources/assets/antarchy/textures/item/music_disc_verdance.png new file mode 100644 index 00000000..cf11851a Binary files /dev/null and b/common-1.21.1/src/main/resources/assets/antarchy/textures/item/music_disc_verdance.png differ diff --git a/common-1.21.1/src/main/resources/data/antarchy/jukebox_song/verdance.json b/common-1.21.1/src/main/resources/data/antarchy/jukebox_song/verdance.json new file mode 100644 index 00000000..39445820 --- /dev/null +++ b/common-1.21.1/src/main/resources/data/antarchy/jukebox_song/verdance.json @@ -0,0 +1,8 @@ +{ + "sound_event": "antarchy:music_disc_verdance", + "description": { + "translate": "jukebox_song.antarchy.verdance" + }, + "length_in_seconds": 135.75, + "comparator_output": 13 +} diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/chests/basilisk_lair/treasure.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/chests/basilisk_lair/treasure.json index 195cdb8c..bd83771b 100644 --- a/common-1.21.1/src/main/resources/data/antarchy/loot_table/chests/basilisk_lair/treasure.json +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/chests/basilisk_lair/treasure.json @@ -170,6 +170,11 @@ "name": "minecraft:golden_apple", "weight": 8 }, + { + "type": "minecraft:item", + "name": "antarchy:music_disc_verdance", + "weight": 2 + }, { "type": "minecraft:item", "name": "minecraft:book", diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/treasure.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/treasure.json index 86af541b..f3f72faa 100644 --- a/common-1.21.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/treasure.json +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/chests/fallen_kingdom_castle/treasure.json @@ -94,6 +94,11 @@ "name": "minecraft:diamond", "weight": 12 }, + { + "type": "minecraft:item", + "name": "antarchy:music_disc_verdance", + "weight": 2 + }, { "type": "minecraft:item", "name": "antos:floppy_disk", diff --git a/common-1.21.1/src/main/resources/data/antarchy/loot_table/chests/temple_of_technoblade/treasure.json b/common-1.21.1/src/main/resources/data/antarchy/loot_table/chests/temple_of_technoblade/treasure.json index b38b6d65..e0fcc99f 100644 --- a/common-1.21.1/src/main/resources/data/antarchy/loot_table/chests/temple_of_technoblade/treasure.json +++ b/common-1.21.1/src/main/resources/data/antarchy/loot_table/chests/temple_of_technoblade/treasure.json @@ -119,6 +119,11 @@ "name": "antarchy:fallen_king_crown", "weight": 2 }, + { + "type": "minecraft:item", + "name": "antarchy:music_disc_verdance", + "weight": 2 + }, { "type": "minecraft:item", "name": "antos:floppy_disk", diff --git a/common-1.21.1/src/main/resources/data/c/tags/item/music_discs.json b/common-1.21.1/src/main/resources/data/c/tags/item/music_discs.json index 19c6f1f6..a3be0826 100644 --- a/common-1.21.1/src/main/resources/data/c/tags/item/music_discs.json +++ b/common-1.21.1/src/main/resources/data/c/tags/item/music_discs.json @@ -2,6 +2,7 @@ "replace": false, "values": [ "antarchy:music_disc_underside", - "antarchy:music_disc_the_queen" + "antarchy:music_disc_the_queen", + "antarchy:music_disc_verdance" ] } diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java index 12eebf96..f10e73fc 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricItems.java @@ -97,6 +97,11 @@ public final class AntarchyFabricItems { .jukeboxPlayable(ResourceKey.create(Registries.JUKEBOX_SONG, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "the_queen")))); + public static final DeferredItem MUSIC_DISC_VERDANCE = ITEMS.registerSimpleItem("music_disc_verdance", + new Item.Properties().stacksTo(1).rarity(Rarity.RARE) + .jukeboxPlayable(ResourceKey.create(Registries.JUKEBOX_SONG, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "verdance")))); + public static final DeferredItem PRIMORDIAL_SCUTE = ITEMS.registerSimpleItem("primordial_scute", new Item.Properties().rarity(Rarity.UNCOMMON)); diff --git a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSounds.java b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSounds.java index 4a7dccd4..9b9ab0bd 100644 --- a/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSounds.java +++ b/fabric-1.21.1/src/main/java/com/craisinlord/antarchy/fabric/registry/AntarchyFabricSounds.java @@ -529,6 +529,7 @@ public final class AntarchyFabricSounds { public static final DeferredHolder POTENT_NYXITE_GEYSER_CONTINUOUS_ACTIVE = registerSoundEvent("potent_nyxite_geyser_continuous_active"); public static final DeferredHolder MUSIC_DISC_UNDERSIDE = registerSoundEvent("music_disc_underside"); public static final DeferredHolder THE_QUEEN = registerSoundEvent("the_queen"); + public static final DeferredHolder MUSIC_DISC_VERDANCE = registerSoundEvent("music_disc_verdance"); public static final DeferredHolder WORM_HOOK_FLYING = registerSoundEvent("worm_hook_flying"); public static final DeferredHolder BLOOD_CRYSTAL_KATANA_DASH = registerSoundEvent("blood_crystal_katana_dash"); public static final DeferredHolder BLOOD_CRYSTAL_ARMOR_EQUIP = registerSoundEvent("blood_crystal_armor_equip"); diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java index cde6c6b5..6129d08d 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeItems.java @@ -105,6 +105,11 @@ public final class AntarchyNeoforgeItems { .jukeboxPlayable(ResourceKey.create(Registries.JUKEBOX_SONG, ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "the_queen")))); + public static final DeferredItem MUSIC_DISC_VERDANCE = ITEMS.registerSimpleItem("music_disc_verdance", + new Item.Properties().stacksTo(1).rarity(Rarity.RARE) + .jukeboxPlayable(ResourceKey.create(Registries.JUKEBOX_SONG, + ResourceLocation.fromNamespaceAndPath(Antarchy.MODID, "verdance")))); + private static final DeferredHolder ULTIMATE_ARMOR_MATERIAL = ARMOR_MATERIALS.register("ultimate", () -> new ArmorMaterial( createUltimateArmorDefense(), diff --git a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSounds.java b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSounds.java index c36b516a..a127f2b0 100644 --- a/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSounds.java +++ b/neoforge-1.21.1/src/main/java/com/craisinlord/antarchy/neoforge/registry/AntarchyNeoforgeSounds.java @@ -206,6 +206,7 @@ public final class AntarchyNeoforgeSounds { public static final DeferredHolder POTENT_NYXITE_GEYSER_CONTINUOUS_ACTIVE = registerSoundEvent("potent_nyxite_geyser_continuous_active"); public static final DeferredHolder MUSIC_DISC_UNDERSIDE = registerSoundEvent("music_disc_underside"); public static final DeferredHolder THE_QUEEN = registerSoundEvent("the_queen"); + public static final DeferredHolder MUSIC_DISC_VERDANCE = registerSoundEvent("music_disc_verdance"); public static final DeferredHolder WORM_HOOK_FLYING = registerSoundEvent("worm_hook_flying"); public static final DeferredHolder BLOOD_CRYSTAL_KATANA_DASH = registerSoundEvent("blood_crystal_katana_dash"); public static final DeferredHolder BLOOD_CRYSTAL_ARMOR_EQUIP = registerSoundEvent("blood_crystal_armor_equip");