Add Soviet Anthem music disc with sound, recipe, and assets
This commit is contained in:
@@ -2,6 +2,7 @@ package net.krituximon.stalinium;
|
|||||||
|
|
||||||
import net.krituximon.stalinium.block.ModBlocks;
|
import net.krituximon.stalinium.block.ModBlocks;
|
||||||
import net.krituximon.stalinium.item.ModItems;
|
import net.krituximon.stalinium.item.ModItems;
|
||||||
|
import net.krituximon.stalinium.sound.ModSounds;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
import com.mojang.logging.LogUtils;
|
import com.mojang.logging.LogUtils;
|
||||||
@@ -41,6 +42,7 @@ public class Stalinium
|
|||||||
|
|
||||||
ModItems.register(modEventBus);
|
ModItems.register(modEventBus);
|
||||||
ModBlocks.register(modEventBus);
|
ModBlocks.register(modEventBus);
|
||||||
|
ModSounds.register(modEventBus);
|
||||||
|
|
||||||
// Register ourselves for server and other game events we are interested in.
|
// Register ourselves for server and other game events we are interested in.
|
||||||
// Note that this is necessary if and only if we want *this* class (Stalinium) to respond directly to events.
|
// Note that this is necessary if and only if we want *this* class (Stalinium) to respond directly to events.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package net.krituximon.stalinium.datagen;
|
package net.krituximon.stalinium.datagen;
|
||||||
|
|
||||||
import net.krituximon.stalinium.Stalinium;
|
import net.krituximon.stalinium.Stalinium;
|
||||||
import net.krituximon.stalinium.worldgen.ModBiomeModifiers;
|
import net.krituximon.stalinium.worldgen.ModBiomeModifiers;
|
||||||
|
|||||||
@@ -14,5 +14,6 @@ public class ModItemModelProvider extends ItemModelProvider {
|
|||||||
@Override
|
@Override
|
||||||
protected void registerModels() {
|
protected void registerModels() {
|
||||||
basicItem(ModItems.STALINIUM_INGOT.get());
|
basicItem(ModItems.STALINIUM_INGOT.get());
|
||||||
|
basicItem(ModItems.SOVIET_ANTHEM_MUSIC_DISC.get());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import net.krituximon.stalinium.item.ModItems;
|
|||||||
import net.minecraft.core.HolderLookup;
|
import net.minecraft.core.HolderLookup;
|
||||||
import net.minecraft.data.PackOutput;
|
import net.minecraft.data.PackOutput;
|
||||||
import net.minecraft.data.recipes.*;
|
import net.minecraft.data.recipes.*;
|
||||||
|
import net.minecraft.world.item.Items;
|
||||||
import net.neoforged.neoforge.common.conditions.IConditionBuilder;
|
import net.neoforged.neoforge.common.conditions.IConditionBuilder;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -24,6 +25,14 @@ public class ModRecipeProvider extends RecipeProvider implements IConditionBuild
|
|||||||
.define('B', ModItems.STALINIUM_INGOT.get())
|
.define('B', ModItems.STALINIUM_INGOT.get())
|
||||||
.unlockedBy("has_stalinium", has(ModItems.STALINIUM_INGOT)).save(recipeOutput);
|
.unlockedBy("has_stalinium", has(ModItems.STALINIUM_INGOT)).save(recipeOutput);
|
||||||
|
|
||||||
|
ShapedRecipeBuilder.shaped(RecipeCategory.MISC, ModItems.SOVIET_ANTHEM_MUSIC_DISC.get())
|
||||||
|
.pattern("BBB")
|
||||||
|
.pattern("BSB")
|
||||||
|
.pattern("BBB")
|
||||||
|
.define('B', ModItems.STALINIUM_INGOT.get())
|
||||||
|
.define('S', Items.GOLD_BLOCK)
|
||||||
|
.unlockedBy("has_stalinium", has(ModItems.STALINIUM_INGOT)).save(recipeOutput);
|
||||||
|
|
||||||
ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.STALINIUM_INGOT.get(), 9)
|
ShapelessRecipeBuilder.shapeless(RecipeCategory.MISC, ModItems.STALINIUM_INGOT.get(), 9)
|
||||||
.requires(ModBlocks.STALINIUM_BLOCK)
|
.requires(ModBlocks.STALINIUM_BLOCK)
|
||||||
.unlockedBy("has_stalinium_block", has(ModBlocks.STALINIUM_BLOCK)).save(recipeOutput);
|
.unlockedBy("has_stalinium_block", has(ModBlocks.STALINIUM_BLOCK)).save(recipeOutput);
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package net.krituximon.stalinium.item;
|
package net.krituximon.stalinium.item;
|
||||||
|
|
||||||
import net.krituximon.stalinium.Stalinium;
|
import net.krituximon.stalinium.Stalinium;
|
||||||
|
import net.krituximon.stalinium.sound.ModSounds;
|
||||||
import net.minecraft.world.item.Item;
|
import net.minecraft.world.item.Item;
|
||||||
import net.neoforged.bus.api.IEventBus;
|
import net.neoforged.bus.api.IEventBus;
|
||||||
import net.neoforged.neoforge.registries.DeferredItem;
|
import net.neoforged.neoforge.registries.DeferredItem;
|
||||||
@@ -12,6 +13,9 @@ public class ModItems {
|
|||||||
public static final DeferredItem<Item> STALINIUM_INGOT = ITEMS.register("stalinium_ingot",
|
public static final DeferredItem<Item> STALINIUM_INGOT = ITEMS.register("stalinium_ingot",
|
||||||
() -> new Item(new Item.Properties()));
|
() -> new Item(new Item.Properties()));
|
||||||
|
|
||||||
|
public static final DeferredItem<Item> SOVIET_ANTHEM_MUSIC_DISC = ITEMS.register("soviet_anthem_music_disc",
|
||||||
|
() -> new Item(new Item.Properties().jukeboxPlayable(ModSounds.SOVIET_ANTHEM_KEY).stacksTo(1)));
|
||||||
|
|
||||||
|
|
||||||
public static void register(IEventBus eventBus) {
|
public static void register(IEventBus eventBus) {
|
||||||
ITEMS.register(eventBus);
|
ITEMS.register(eventBus);
|
||||||
|
|||||||
@@ -0,0 +1,35 @@
|
|||||||
|
package net.krituximon.stalinium.sound;
|
||||||
|
|
||||||
|
import net.krituximon.stalinium.Stalinium;
|
||||||
|
import net.minecraft.core.registries.BuiltInRegistries;
|
||||||
|
import net.minecraft.core.registries.Registries;
|
||||||
|
import net.minecraft.resources.ResourceKey;
|
||||||
|
import net.minecraft.resources.ResourceLocation;
|
||||||
|
import net.minecraft.sounds.SoundEvent;
|
||||||
|
import net.minecraft.world.item.JukeboxSong;
|
||||||
|
import net.neoforged.bus.api.IEventBus;
|
||||||
|
import net.neoforged.neoforge.registries.DeferredRegister;
|
||||||
|
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public class ModSounds {
|
||||||
|
public static final DeferredRegister<SoundEvent> SOUND_EVENTS =
|
||||||
|
DeferredRegister.create(BuiltInRegistries.SOUND_EVENT, Stalinium.MODID);
|
||||||
|
|
||||||
|
public static final Supplier<SoundEvent> SOVIET_ANTHEM = registerSoundEvent("soviet_anthem");
|
||||||
|
public static final ResourceKey<JukeboxSong> SOVIET_ANTHEM_KEY = createSong("soviet_anthem");
|
||||||
|
|
||||||
|
|
||||||
|
private static ResourceKey<JukeboxSong> createSong(String name) {
|
||||||
|
return ResourceKey.create(Registries.JUKEBOX_SONG, ResourceLocation.fromNamespaceAndPath(Stalinium.MODID, name));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Supplier<SoundEvent> registerSoundEvent(String name) {
|
||||||
|
ResourceLocation id = ResourceLocation.fromNamespaceAndPath(Stalinium.MODID, name);
|
||||||
|
return SOUND_EVENTS.register(name, () -> SoundEvent.createVariableRangeEvent(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void register(IEventBus eventBus) {
|
||||||
|
SOUND_EVENTS.register(eventBus);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package net.krituximon.stalinium.worldgen;
|
package net.krituximon.stalinium.worldgen;
|
||||||
|
|
||||||
import net.krituximon.stalinium.Stalinium;
|
import net.krituximon.stalinium.Stalinium;
|
||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package net.krituximon.stalinium.worldgen;
|
package net.krituximon.stalinium.worldgen;
|
||||||
|
|
||||||
import net.krituximon.stalinium.Stalinium;
|
import net.krituximon.stalinium.Stalinium;
|
||||||
import net.minecraft.core.registries.Registries;
|
import net.minecraft.core.registries.Registries;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
package net.krituximon.stalinium.worldgen;
|
package net.krituximon.stalinium.worldgen;
|
||||||
|
|
||||||
import net.krituximon.stalinium.Stalinium;
|
import net.krituximon.stalinium.Stalinium;
|
||||||
import net.minecraft.core.Holder;
|
import net.minecraft.core.Holder;
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
{
|
{
|
||||||
"item.stalinium.uranium_ingot": "Stalinium Ingot",
|
"item.stalinium.stalinium_ingot": "Stalinium Ingot",
|
||||||
|
|
||||||
"block.stalinium.uranium_block": "Block of Stalinium"
|
"item.stalinium.soviet_anthem_music_disc": "Soviet Anthem Music Disc",
|
||||||
|
"item.stalinium.soviet_anthem_music_disc.desc": "Orchestra of the Ministry of Defense of the USSR - Soviet Union national anthem",
|
||||||
|
|
||||||
|
"block.stalinium.stalinium_block": "Block of Stalinium"
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
{
|
||||||
|
"soviet_anthem": {
|
||||||
|
"sounds": [
|
||||||
|
{
|
||||||
|
"name": "stalinium:soviet_anthem",
|
||||||
|
"stream": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 483 B |
@@ -0,0 +1,8 @@
|
|||||||
|
{
|
||||||
|
"comparator_output": 15,
|
||||||
|
"description": {
|
||||||
|
"translate": "item.stalinium.soviet_anthem_music_disc.desc"
|
||||||
|
},
|
||||||
|
"length_in_seconds": 224.0,
|
||||||
|
"sound_event": "stalinium:soviet_anthem"
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user