From 27eac23401be5b2fbd1b409d0eb3eb0b37b2a9a1 Mon Sep 17 00:00:00 2001 From: Andrew-71 Date: Thu, 7 Mar 2024 11:59:43 +0300 Subject: [PATCH] Rework siren --- CHANGELOG | 12 +++++++--- .../su/a71/new_soviet/blocks/SirenBlock.java | 24 ++++++++++++------- .../assets/new_soviet/lang/en_us.json | 9 +++++-- .../resources/assets/new_soviet/lang/rpr.json | 9 +++++-- .../assets/new_soviet/lang/ru_ru.json | 9 +++++-- 5 files changed, 45 insertions(+), 18 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 7432a47..88ca706 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -53,8 +53,9 @@ This version focuses on QOL and bug fixes ### Changelog 0.3 -> 0.4 Due to sheer amount of changes, some may be undocumented. We hope you enjoy this update! :D -* Texture improvements for various blocks -* Reworked wallpaper blocks, added new ones +* Added dozens of new blocks +* Texture improvements for existing blocks +* Reworked wallpapers, added new ones * Concrete improvements * 3 new colours - basic, dark green and orange * Concrete with bars can now be placed horizontally. Or vertically. It's a matter of perspective! @@ -67,9 +68,14 @@ Due to sheer amount of changes, some may be undocumented. We hope you enjoy this * Added a new antenna item to improve radio electronics recipes * Parquet improvements * Separated oak and dark oak parquet in naming - * Added spruce parquet (TODO) + * Added a few new types +* Siren improvements + * Now uses screwdriver to change sound + * Sound names now translated + * Added a questionable sound option * Bug fixes * Stone-cutting recipe for slabs now gives 2 blocks + * Fixed typos in Russian translation * Fixed a few missing drops/tags/recipes related to concrete * Concrete with bars is now pickaxe mine-able * Fixed some concrete blocks missing drops diff --git a/src/main/java/su/a71/new_soviet/blocks/SirenBlock.java b/src/main/java/su/a71/new_soviet/blocks/SirenBlock.java index 0a69941..996eba1 100644 --- a/src/main/java/su/a71/new_soviet/blocks/SirenBlock.java +++ b/src/main/java/su/a71/new_soviet/blocks/SirenBlock.java @@ -19,6 +19,7 @@ import net.minecraft.state.property.IntProperty; import net.minecraft.state.property.Properties; import net.minecraft.text.Text; import net.minecraft.util.ActionResult; +import net.minecraft.util.Formatting; import net.minecraft.util.Hand; import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; @@ -32,6 +33,8 @@ import net.minecraft.world.WorldAccess; import net.minecraft.world.WorldView; import org.jetbrains.annotations.Nullable; +import su.a71.new_soviet.NewSoviet; +import su.a71.new_soviet.registration.NSE_Items; import su.a71.new_soviet.registration.NSE_Sounds; import java.util.ArrayList; @@ -48,11 +51,11 @@ public class SirenBlock extends HorizontalFacingBlock implements Waterloggable { super(FabricBlockSettings.create().sounds(BlockSoundGroup.METAL).notSolid().pistonBehavior(PistonBehavior.DESTROY).strength(1f, 2f)); setDefaultState(getDefaultState().with(Properties.HORIZONTAL_FACING, Direction.NORTH).with(ON, false).with(WATERLOGGED, false).with(SOUND_INDEX, 0)); - SIREN_SOUNDS.add(new SirenSound("Air raid", NSE_Sounds.SIREN_SOUND, 140)); - SIREN_SOUNDS.add(new SirenSound("Bell", NSE_Sounds.BELL_SIREN_SOUND, 100)); - SIREN_SOUNDS.add(new SirenSound("Woop", NSE_Sounds.WOOP_SIREN_SOUND, 40)); - SIREN_SOUNDS.add(new SirenSound("Cloister Bell", NSE_Sounds.CLOISTER_SIREN_SOUND, 60)); - SIREN_SOUNDS.add(new SirenSound("Kuplinov siren", NSE_Sounds.KUPLINOV_SIREN_SOUND, 120)); + SIREN_SOUNDS.add(new SirenSound("Air raid", NSE_Sounds.SIREN_SOUND, 140, "air_raid")); + SIREN_SOUNDS.add(new SirenSound("Bell", NSE_Sounds.BELL_SIREN_SOUND, 100, "bell")); + SIREN_SOUNDS.add(new SirenSound("Woop", NSE_Sounds.WOOP_SIREN_SOUND, 40, "woop")); + SIREN_SOUNDS.add(new SirenSound("Cloister Bell", NSE_Sounds.CLOISTER_SIREN_SOUND, 60, "cloister")); + SIREN_SOUNDS.add(new SirenSound("Kuplinov siren", NSE_Sounds.KUPLINOV_SIREN_SOUND, 120, "kuplinov")); } @Override @@ -77,11 +80,14 @@ public class SirenBlock extends HorizontalFacingBlock implements Waterloggable { @Override public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEntity player, Hand hand, BlockHitResult hit) { - if (player.isSneaking()) { + if (player.getInventory().getMainHandStack().getItem() == NSE_Items.SCREWDRIVER && !player.getItemCooldownManager().isCoolingDown(NSE_Items.SCREWDRIVER)) { if (!world.isClient) { incrementSoundIndex(world, pos); } - player.sendMessage(Text.translatable("block.new_soviet.siren.set", SIREN_SOUNDS.get(world.getBlockState(pos).get(SOUND_INDEX)).name()), true); + player.getItemCooldownManager().set(NSE_Items.SCREWDRIVER, 10); + world.playSound(null, pos.getX(), pos.getY(), pos.getZ(), NSE_Sounds.SCREWDRIVER_SOUND, SoundCategory.BLOCKS, 1.0f, (float) NewSoviet.RANDOM.nextBetween(8, 11) / 10); + + player.sendMessage(Text.translatable("block.new_soviet.siren.set").append(Text.translatable("block.new_soviet.siren.sound." + SIREN_SOUNDS.get(world.getBlockState(pos).get(SOUND_INDEX)).translation_key()).formatted(Formatting.YELLOW)), true); return ActionResult.SUCCESS; } return super.onUse(state, world, pos, player, hand, hit); @@ -157,7 +163,7 @@ public class SirenBlock extends HorizontalFacingBlock implements Waterloggable { @Override public void appendTooltip(ItemStack stack, @Nullable BlockView world, List tooltip, TooltipContext options) { - tooltip.add(Text.translatable("block.new_soviet.siren.instruction")); // TODO: Pull keybindings in case user changed RMB to whatever + tooltip.add(Text.translatable("block.new_soviet.siren.instruction")); super.appendTooltip(stack, world, tooltip, options); } @@ -166,6 +172,6 @@ public class SirenBlock extends HorizontalFacingBlock implements Waterloggable { WATERLOGGED = Properties.WATERLOGGED; } - public record SirenSound(String name, SoundEvent sound, int duration) { + public record SirenSound(String name, SoundEvent sound, int duration, String translation_key) { } } \ No newline at end of file diff --git a/src/main/resources/assets/new_soviet/lang/en_us.json b/src/main/resources/assets/new_soviet/lang/en_us.json index e847a8d..4fe8c83 100644 --- a/src/main/resources/assets/new_soviet/lang/en_us.json +++ b/src/main/resources/assets/new_soviet/lang/en_us.json @@ -153,8 +153,13 @@ "block.new_soviet.table_lamp": "Table Lamp", "block.new_soviet.ceiling_fan": "Ceiling Fan", "block.new_soviet.siren": "Siren", - "block.new_soviet.siren.set": "Siren sound set to: %s", - "block.new_soviet.siren.instruction": "Right click while sneaking to change sound", + "block.new_soviet.siren.set": "Siren sound set to: ", + "block.new_soviet.siren.sound.air_raid": "Air Raid", + "block.new_soviet.siren.sound.bell": "Bell", + "block.new_soviet.siren.sound.woop": "Woop", + "block.new_soviet.siren.sound.cloister": "Cloister Bell", + "block.new_soviet.siren.sound.kuplinov": "Kuplinov Alert", + "block.new_soviet.siren.instruction": "Use a screwdriver to change sound", "item.new_soviet.dice_d6": "Die", "item.new_soviet.dice_d4": "Die", "item.new_soviet.dice_d20": "Die", diff --git a/src/main/resources/assets/new_soviet/lang/rpr.json b/src/main/resources/assets/new_soviet/lang/rpr.json index cce33ac..5a52e8e 100644 --- a/src/main/resources/assets/new_soviet/lang/rpr.json +++ b/src/main/resources/assets/new_soviet/lang/rpr.json @@ -153,8 +153,13 @@ "block.new_soviet.table_lamp": "Настольныя лампа", "block.new_soviet.ceiling_fan": "Потолочный вѣнтилятор", "block.new_soviet.siren": "Сирѣна", - "block.new_soviet.siren.set": "Звукъ сирѣнъ: %s", - "block.new_soviet.siren.instruction": "Нажми ПКМ въ прiсядѣ для смѣнъ звука", + "block.new_soviet.siren.set": "Звукъ сирѣнъ: ", + "block.new_soviet.siren.sound.air_raid": "Воздушная тревога", + "block.new_soviet.siren.sound.bell": "Колоколъ", + "block.new_soviet.siren.sound.woop": "Вупъ", + "block.new_soviet.siren.sound.cloister": "Врачѣбный колоколъ", + "block.new_soviet.siren.sound.kuplinov": "Сирѣна Куплинова", + "block.new_soviet.siren.instruction": "Нажми отвѣрткой для смѣнъ звука", "item.new_soviet.dice_d6": "Игральныя кость", "item.new_soviet.dice_d4": "Игральныя кость", "item.new_soviet.dice_d20": "Игральныя кость", diff --git a/src/main/resources/assets/new_soviet/lang/ru_ru.json b/src/main/resources/assets/new_soviet/lang/ru_ru.json index 3231663..6de7036 100644 --- a/src/main/resources/assets/new_soviet/lang/ru_ru.json +++ b/src/main/resources/assets/new_soviet/lang/ru_ru.json @@ -153,8 +153,13 @@ "block.new_soviet.table_lamp": "Настольная лампа", "block.new_soviet.ceiling_fan": "Потолочный вентилятор", "block.new_soviet.siren": "Сирена", - "block.new_soviet.siren.set": "Звук сирены: %s", - "block.new_soviet.siren.instruction": "Нажми ПКМ в присяде для смены звука", + "block.new_soviet.siren.set": "Звук сирены: ", + "block.new_soviet.siren.sound.air_raid": "Воздушная тревога", + "block.new_soviet.siren.sound.bell": "Колокол", + "block.new_soviet.siren.sound.woop": "Вуп", + "block.new_soviet.siren.sound.cloister": "Врачебный колокол", + "block.new_soviet.siren.sound.kuplinov": "Сирена Куплинова", + "block.new_soviet.siren.instruction": "Используй отвертку для смены звука", "item.new_soviet.dice_d6": "Игральная кость", "item.new_soviet.dice_d4": "Игральная кость", "item.new_soviet.dice_d20": "Игральная кость",