diff --git a/src/datagen/java/com/github/elenterius/biomancy/datagen/ModSoundProvider.java b/src/datagen/java/com/github/elenterius/biomancy/datagen/ModSoundProvider.java index ddb527f83..41fcce36a 100644 --- a/src/datagen/java/com/github/elenterius/biomancy/datagen/ModSoundProvider.java +++ b/src/datagen/java/com/github/elenterius/biomancy/datagen/ModSoundProvider.java @@ -35,6 +35,12 @@ public void registerSounds() { addSimpleSounds(ModSoundEvents.FLESH_BLOCK_BREAK, 4); addSimpleSounds(ModSoundEvents.FLESH_BLOCK_FALL, 3); + addSimpleRedirects(ModSoundEvents.BONY_FLESH_BLOCK_HIT, ModSoundEvents.FLESH_BLOCK_HIT.get(), SoundEvents.BONE_BLOCK_HIT); + addSimpleRedirects(ModSoundEvents.BONY_FLESH_BLOCK_PLACE, ModSoundEvents.FLESH_BLOCK_PLACE.get(), SoundEvents.BONE_BLOCK_PLACE); + addSimpleRedirects(ModSoundEvents.BONY_FLESH_BLOCK_STEP, ModSoundEvents.FLESH_BLOCK_STEP.get(), SoundEvents.BONE_BLOCK_STEP); + addSimpleRedirects(ModSoundEvents.BONY_FLESH_BLOCK_BREAK, ModSoundEvents.FLESH_BLOCK_BREAK.get(), SoundEvents.BONE_BLOCK_BREAK); + addSimpleRedirects(ModSoundEvents.BONY_FLESH_BLOCK_FALL, ModSoundEvents.FLESH_BLOCK_FALL.get(), SoundEvents.BONE_BLOCK_FALL); + addSimpleSounds(ModSoundEvents.FLESH_DOOR_OPEN, 2); addSimpleSounds(ModSoundEvents.FLESH_DOOR_CLOSE, 2); @@ -82,7 +88,7 @@ public void registerSounds() { addSimpleRedirect(ModSoundEvents.DIGESTER_CRAFTING_COMPLETED, SoundEvents.PLAYER_BURP, 1f, 1.25f); addSimpleRedirect(ModSoundEvents.FLESH_BLOB_JUMP, SoundEvents.SLIME_JUMP); - addSimpleRedirect(ModSoundEvents.FLESH_BLOB_HURT, ModSoundEvents.FLESH_BLOCK_BREAK.get(), 0.8f, 0.9f); + addSimpleRedirect(ModSoundEvents.FLESH_BLOB_HURT, ModSoundEvents.FLESH_BLOCK_BREAK, 0.8f, 0.9f); addSimpleRedirect(ModSoundEvents.FLESH_BLOB_DEATH, SoundEvents.GENERIC_DEATH); addSimpleSounds(ModSoundEvents.FLESH_BLOB_AMBIENT, 3, 0.8f, 0.9f); addSimpleSound(ModSoundEvents.GENERIC_MEW_PURR, 0.7f, 0.45f); @@ -169,4 +175,13 @@ protected void addSimpleRedirect(RegistryObject soundHolder, Registr ); } + protected void addSimpleRedirects(RegistryObject soundHolder, SoundEvent... redirectTargets) { + SoundDefinition soundDefinition = definition().subtitle(translationKey(soundHolder)); + + for (SoundEvent redirectTarget : redirectTargets) { + soundDefinition.with().with(sound(redirectTarget.getLocation(), SoundDefinition.SoundType.EVENT)); + } + + add(soundHolder, soundDefinition); + } } diff --git a/src/datagen/java/com/github/elenterius/biomancy/datagen/lang/EnglishLangProvider.java b/src/datagen/java/com/github/elenterius/biomancy/datagen/lang/EnglishLangProvider.java index dc404f455..0c226016e 100644 --- a/src/datagen/java/com/github/elenterius/biomancy/datagen/lang/EnglishLangProvider.java +++ b/src/datagen/java/com/github/elenterius/biomancy/datagen/lang/EnglishLangProvider.java @@ -254,6 +254,12 @@ private void addSoundTranslations() { addSound(ModSoundEvents.FLESH_BLOCK_BREAK, "Break Fleshy Block"); addSound(ModSoundEvents.FLESH_BLOCK_FALL, "Fall on Fleshy Block"); + addSound(ModSoundEvents.BONY_FLESH_BLOCK_HIT, "Hit Bony Flesh Block"); + addSound(ModSoundEvents.BONY_FLESH_BLOCK_PLACE, "Place Bony Flesh Block"); + addSound(ModSoundEvents.BONY_FLESH_BLOCK_STEP, "Step on Bony Flesh Block"); + addSound(ModSoundEvents.BONY_FLESH_BLOCK_BREAK, "Break Bony Flesh Block"); + addSound(ModSoundEvents.BONY_FLESH_BLOCK_FALL, "Fall on Bony Flesh Block"); + addSound(ModSoundEvents.FLESH_DOOR_OPEN, "Open Fleshy Door"); addSound(ModSoundEvents.FLESH_DOOR_CLOSE, "Close Fleshy Door"); diff --git a/src/generated/resources/assets/biomancy/lang/en_us.json b/src/generated/resources/assets/biomancy/lang/en_us.json index 6c2d732b8..45939d675 100644 --- a/src/generated/resources/assets/biomancy/lang/en_us.json +++ b/src/generated/resources/assets/biomancy/lang/en_us.json @@ -328,6 +328,11 @@ "sounds.biomancy.flesh_block.step": "Step on Fleshy Block", "sounds.biomancy.flesh_block.break": "Break Fleshy Block", "sounds.biomancy.flesh_block.fall": "Fall on Fleshy Block", + "sounds.biomancy.bony_flesh_block.hit": "Hit Bony Flesh Block", + "sounds.biomancy.bony_flesh_block.place": "Place Bony Flesh Block", + "sounds.biomancy.bony_flesh_block.step": "Step on Bony Flesh Block", + "sounds.biomancy.bony_flesh_block.break": "Break Bony Flesh Block", + "sounds.biomancy.bony_flesh_block.fall": "Fall on Bony Flesh Block", "sounds.biomancy.flesh_door.open": "Open Fleshy Door", "sounds.biomancy.flesh_door.close": "Close Fleshy Door", "sounds.biomancy.claws.attack.strong": "Strong Claw Attack", diff --git a/src/main/java/com/github/elenterius/biomancy/init/ModBlocks.java b/src/main/java/com/github/elenterius/biomancy/init/ModBlocks.java index 46246d013..fbd36d297 100644 --- a/src/main/java/com/github/elenterius/biomancy/init/ModBlocks.java +++ b/src/main/java/com/github/elenterius/biomancy/init/ModBlocks.java @@ -67,9 +67,9 @@ public final class ModBlocks { //## Decoration public static final RegistryObject TUBULAR_FLESH_BLOCK = register("tubular_flesh", RotatedPillarBlock::new); public static final RegistryObject FIBROUS_FLESH = register("fibrous_flesh", FleshBlock::new); - public static final RegistryObject FLESH_PILLAR = register("flesh_pillar", () -> new RotatedPillarBlock(createFleshyBoneProperties())); - public static final RegistryObject CHISELED_FLESH = register("chiseled_flesh", () -> new FleshBlock(createFleshyBoneProperties())); - public static final RegistryObject ORNATE_FLESH = register("ornate_flesh", () -> new RotatedPillarBlock(createFleshyBoneProperties())); + public static final RegistryObject FLESH_PILLAR = register("flesh_pillar", () -> new RotatedPillarBlock(createBonyFleshProperties())); + public static final RegistryObject CHISELED_FLESH = register("chiseled_flesh", () -> new FleshBlock(createBonyFleshProperties())); + public static final RegistryObject ORNATE_FLESH = register("ornate_flesh", () -> new RotatedPillarBlock(createBonyFleshProperties())); //## Primal Ecosystem public static final RegistryObject PRIMAL_FLESH = register("primal_flesh", FleshBlock::new); @@ -87,7 +87,7 @@ public final class ModBlocks { //## Utility public static final RegistryObject VOICE_BOX = register("voice_box", VoiceBoxBlock::new); - public static final RegistryObject FLESH_SPIKE = register("flesh_spike", () -> new FleshSpikeBlock(createFleshyBoneProperties().noOcclusion())); + public static final RegistryObject FLESH_SPIKE = register("flesh_spike", () -> new FleshSpikeBlock(createBonyFleshProperties().noOcclusion())); public static final RegistryObject VIAL_HOLDER = register("vial_holder", VialHolderBlock::new); public static final RegistryObject NEURAL_INTERCEPTOR = register("neural_interceptor", NeuralInterceptorBlock::new); @@ -107,9 +107,9 @@ public final class ModBlocks { public static final RegistryObject ACID_FLUID_BLOCK = register("acid_fluid_block", () -> new LiquidBlock(ModFluids.ACID, copyProperties(Blocks.WATER))); //## Misc - public static final RegistryObject FLESH_LADDER = register("flesh_ladder", () -> new LadderBlock(createFleshyBoneProperties().noOcclusion())); + public static final RegistryObject FLESH_LADDER = register("flesh_ladder", () -> new LadderBlock(createBonyFleshProperties().noOcclusion())); public static final RegistryObject FLESH_FENCE = register("flesh_fence", FleshFenceBlock::new); - public static final RegistryObject FLESH_FENCE_GATE = register("flesh_fence_gate", () -> new FleshFenceGateBlock(createFleshyBoneProperties().noOcclusion())); + public static final RegistryObject FLESH_FENCE_GATE = register("flesh_fence_gate", () -> new FleshFenceGateBlock(createBonyFleshProperties().noOcclusion())); public static final RegistryObject FLESH_IRIS_DOOR = register("flesh_iris_door", IrisDoorBlock::new); public static final RegistryObject FLESH_DOOR = register("flesh_door", FleshDoorBlock::new); public static final RegistryObject FULL_FLESH_DOOR = register("full_flesh_door", FullFleshDoorBlock::new); @@ -168,8 +168,8 @@ public static BlockBehaviour.Properties createToughFleshProperties() { return createFleshProperties().strength(6f, 12f); } - public static BlockBehaviour.Properties createFleshyBoneProperties() { - return BlockBehaviour.Properties.of(ModBlockMaterials.FLESH_MATERIAL).strength(4f, 6f).sound(SoundType.BONE_BLOCK).isValidSpawn(ModBlocks::isValidFleshkinSpawn); + public static BlockBehaviour.Properties createBonyFleshProperties() { + return BlockBehaviour.Properties.of(ModBlockMaterials.FLESH_MATERIAL).strength(4f, 6f).sound(ModSoundTypes.BONY_FLESH_BLOCK).isValidSpawn(ModBlocks::isValidFleshkinSpawn); } public static boolean isValidFleshkinSpawn(BlockState state, BlockGetter level, BlockPos pos, EntityType entityType) { diff --git a/src/main/java/com/github/elenterius/biomancy/init/ModSoundEvents.java b/src/main/java/com/github/elenterius/biomancy/init/ModSoundEvents.java index e7b68ca2a..58957f3af 100644 --- a/src/main/java/com/github/elenterius/biomancy/init/ModSoundEvents.java +++ b/src/main/java/com/github/elenterius/biomancy/init/ModSoundEvents.java @@ -25,6 +25,13 @@ public final class ModSoundEvents { public static final RegistryObject FLESH_BLOCK_BREAK = registerSoundEvent("flesh_block.break"); public static final RegistryObject FLESH_BLOCK_STEP = registerSoundEvent("flesh_block.step"); public static final RegistryObject FLESH_BLOCK_FALL = registerSoundEvent("flesh_block.fall"); + + public static final RegistryObject BONY_FLESH_BLOCK_PLACE = registerSoundEvent("bony_flesh_block.place"); + public static final RegistryObject BONY_FLESH_BLOCK_HIT = registerSoundEvent("bony_flesh_block.hit"); + public static final RegistryObject BONY_FLESH_BLOCK_BREAK = registerSoundEvent("bony_flesh_block.break"); + public static final RegistryObject BONY_FLESH_BLOCK_STEP = registerSoundEvent("bony_flesh_block.step"); + public static final RegistryObject BONY_FLESH_BLOCK_FALL = registerSoundEvent("bony_flesh_block.fall"); + public static final RegistryObject FLESH_DOOR_OPEN = registerSoundEvent("flesh_door.open"); public static final RegistryObject FLESH_DOOR_CLOSE = registerSoundEvent("flesh_door.close"); diff --git a/src/main/java/com/github/elenterius/biomancy/init/ModSoundTypes.java b/src/main/java/com/github/elenterius/biomancy/init/ModSoundTypes.java index e1a9c5787..67b6b1cfb 100644 --- a/src/main/java/com/github/elenterius/biomancy/init/ModSoundTypes.java +++ b/src/main/java/com/github/elenterius/biomancy/init/ModSoundTypes.java @@ -4,10 +4,13 @@ public final class ModSoundTypes { - private ModSoundTypes() {} - public static final ForgeSoundType FLESH_BLOCK = new ForgeSoundType(1f, 1f, ModSoundEvents.FLESH_BLOCK_BREAK, ModSoundEvents.FLESH_BLOCK_STEP, ModSoundEvents.FLESH_BLOCK_PLACE, ModSoundEvents.FLESH_BLOCK_HIT, ModSoundEvents.FLESH_BLOCK_FALL); + public static final ForgeSoundType BONY_FLESH_BLOCK = new ForgeSoundType(1f, 1f, + ModSoundEvents.BONY_FLESH_BLOCK_BREAK, ModSoundEvents.BONY_FLESH_BLOCK_STEP, + ModSoundEvents.BONY_FLESH_BLOCK_PLACE, ModSoundEvents.BONY_FLESH_BLOCK_HIT, ModSoundEvents.BONY_FLESH_BLOCK_FALL); + + private ModSoundTypes() {} }