diff --git a/src/main/java/cz/jzitnik/game/Game.java b/src/main/java/cz/jzitnik/game/Game.java index 1348349..6cd4a69 100644 --- a/src/main/java/cz/jzitnik/game/Game.java +++ b/src/main/java/cz/jzitnik/game/Game.java @@ -445,12 +445,14 @@ public class Game extends AutoTransientSupport { .toList(); if (placeHandler.place(this, x, y)) { - if (item.getClass().isAnnotationPresent(PlaceSound.class)) { - var key = item.getClass().getAnnotation(PlaceSound.class).value(); - - gameStates.dependencies.sound.playSound(configuration, key); - } blocks.removeAll(blocksRemove); + for (Block block : blocks) { + if (block.getClass().isAnnotationPresent(PlaceSound.class)) { + var key = block.getClass().getAnnotation(PlaceSound.class).value(); + + gameStates.dependencies.sound.playSound(configuration, key); + } + } gameStates.dependencies.eventHandlerProvider.handlePlace(screenRenderer, this, x, y); screenRenderer.render(this); } diff --git a/src/main/java/cz/jzitnik/game/annotations/PlaceSound.java b/src/main/java/cz/jzitnik/game/annotations/PlaceSound.java index b5e6916..e57a66d 100644 --- a/src/main/java/cz/jzitnik/game/annotations/PlaceSound.java +++ b/src/main/java/cz/jzitnik/game/annotations/PlaceSound.java @@ -9,7 +9,7 @@ import cz.jzitnik.game.core.sound.SoundKey; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.TYPE) -@RequireAnnotation(ItemRegistry.class) +@RequireAnnotation(BlockRegistry.class) public @interface PlaceSound { SoundKey value(); } diff --git a/src/main/java/cz/jzitnik/game/core/sound/SoundKey.java b/src/main/java/cz/jzitnik/game/core/sound/SoundKey.java index f705d9e..6e155b6 100644 --- a/src/main/java/cz/jzitnik/game/core/sound/SoundKey.java +++ b/src/main/java/cz/jzitnik/game/core/sound/SoundKey.java @@ -2,5 +2,8 @@ package cz.jzitnik.game.core.sound; public enum SoundKey { GRASS, - GRASS_WALKING + GRASS_WALKING, + + GRAVEL, + GRAVEL_WALKING } diff --git a/src/main/java/cz/jzitnik/game/core/sound/registry/GrassSound.java b/src/main/java/cz/jzitnik/game/core/sound/registry/GrassSound.java index ddb25c3..4ea6e39 100644 --- a/src/main/java/cz/jzitnik/game/core/sound/registry/GrassSound.java +++ b/src/main/java/cz/jzitnik/game/core/sound/registry/GrassSound.java @@ -5,10 +5,10 @@ import cz.jzitnik.game.core.sound.SoundKey; import cz.jzitnik.game.core.sound.SoundType; @SoundRegistry(key = SoundKey.GRASS, resourceLocation = { - "dirt/grass1.wav", - "dirt/grass2.wav", - "dirt/grass3.wav", - "dirt/grass4.wav" + "grass/grass1.wav", + "grass/grass2.wav", + "grass/grass3.wav", + "grass/grass4.wav" }, type = SoundType.BLOCK) public class GrassSound { } diff --git a/src/main/java/cz/jzitnik/game/core/sound/registry/GrassWalkingSound.java b/src/main/java/cz/jzitnik/game/core/sound/registry/GrassWalkingSound.java index 8f7f442..5f9b1ce 100644 --- a/src/main/java/cz/jzitnik/game/core/sound/registry/GrassWalkingSound.java +++ b/src/main/java/cz/jzitnik/game/core/sound/registry/GrassWalkingSound.java @@ -5,12 +5,12 @@ import cz.jzitnik.game.core.sound.SoundKey; import cz.jzitnik.game.core.sound.SoundType; @SoundRegistry(key = SoundKey.GRASS_WALKING, resourceLocation = { - "dirt/walk1.wav", - "dirt/walk2.wav", - "dirt/walk3.wav", - "dirt/walk4.wav", - "dirt/walk5.wav", - "dirt/walk6.wav", + "grass/walk1.wav", + "grass/walk2.wav", + "grass/walk3.wav", + "grass/walk4.wav", + "grass/walk5.wav", + "grass/walk6.wav", }, type = SoundType.BLOCK) public class GrassWalkingSound { } diff --git a/src/main/java/cz/jzitnik/game/core/sound/registry/GravelSound.java b/src/main/java/cz/jzitnik/game/core/sound/registry/GravelSound.java new file mode 100644 index 0000000..534e989 --- /dev/null +++ b/src/main/java/cz/jzitnik/game/core/sound/registry/GravelSound.java @@ -0,0 +1,14 @@ +package cz.jzitnik.game.core.sound.registry; + +import cz.jzitnik.game.annotations.SoundRegistry; +import cz.jzitnik.game.core.sound.SoundKey; +import cz.jzitnik.game.core.sound.SoundType; + +@SoundRegistry(key = SoundKey.GRAVEL, resourceLocation = { + "gravel/gravel1.wav", + "gravel/gravel2.wav", + "gravel/gravel3.wav", + "gravel/gravel4.wav" +}, type = SoundType.BLOCK) +public class GravelSound { +} diff --git a/src/main/java/cz/jzitnik/game/core/sound/registry/GravelWalkingSound.java b/src/main/java/cz/jzitnik/game/core/sound/registry/GravelWalkingSound.java new file mode 100644 index 0000000..33a8038 --- /dev/null +++ b/src/main/java/cz/jzitnik/game/core/sound/registry/GravelWalkingSound.java @@ -0,0 +1,14 @@ +package cz.jzitnik.game.core.sound.registry; + +import cz.jzitnik.game.annotations.SoundRegistry; +import cz.jzitnik.game.core.sound.SoundKey; +import cz.jzitnik.game.core.sound.SoundType; + +@SoundRegistry(key = SoundKey.GRAVEL_WALKING, resourceLocation = { + "gravel/step1.wav", + "gravel/step2.wav", + "gravel/step3.wav", + "gravel/step4.wav", +}, type = SoundType.BLOCK) +public class GravelWalkingSound { +} diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/blocks/blocks/DirtBlock.java b/src/main/java/cz/jzitnik/game/entities/items/registry/blocks/blocks/DirtBlock.java index 9b04789..5956a83 100644 --- a/src/main/java/cz/jzitnik/game/entities/items/registry/blocks/blocks/DirtBlock.java +++ b/src/main/java/cz/jzitnik/game/entities/items/registry/blocks/blocks/DirtBlock.java @@ -2,13 +2,20 @@ package cz.jzitnik.game.entities.items.registry.blocks.blocks; import cz.jzitnik.game.SpriteLoader; import cz.jzitnik.game.annotations.BlockRegistry; +import cz.jzitnik.game.annotations.MineSound; +import cz.jzitnik.game.annotations.PlaceSound; import cz.jzitnik.game.annotations.ResetDataOnMine; +import cz.jzitnik.game.annotations.WalkSound; +import cz.jzitnik.game.core.sound.SoundKey; import cz.jzitnik.game.entities.Block; import cz.jzitnik.game.entities.items.ItemType; import cz.jzitnik.game.logic.services.grass.GrassDirtData; import java.util.ArrayList; +@PlaceSound(SoundKey.GRAVEL) +@MineSound(SoundKey.GRAVEL) +@WalkSound(SoundKey.GRAVEL_WALKING) @ResetDataOnMine @BlockRegistry("dirt") public class DirtBlock extends Block { diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/blocks/blocks/GravelBlock.java b/src/main/java/cz/jzitnik/game/entities/items/registry/blocks/blocks/GravelBlock.java index 51be7d5..4e0b132 100644 --- a/src/main/java/cz/jzitnik/game/entities/items/registry/blocks/blocks/GravelBlock.java +++ b/src/main/java/cz/jzitnik/game/entities/items/registry/blocks/blocks/GravelBlock.java @@ -3,11 +3,18 @@ package cz.jzitnik.game.entities.items.registry.blocks.blocks; import cz.jzitnik.game.SpriteLoader; import cz.jzitnik.game.annotations.BlockRegistry; import cz.jzitnik.game.annotations.FallingBlock; +import cz.jzitnik.game.annotations.MineSound; +import cz.jzitnik.game.annotations.PlaceSound; +import cz.jzitnik.game.annotations.WalkSound; +import cz.jzitnik.game.core.sound.SoundKey; import cz.jzitnik.game.entities.Block; import cz.jzitnik.game.entities.items.ItemType; import java.util.ArrayList; +@PlaceSound(SoundKey.GRAVEL) +@MineSound(SoundKey.GRAVEL) +@WalkSound(SoundKey.GRAVEL_WALKING) @FallingBlock @BlockRegistry("gravel") public class GravelBlock extends Block { diff --git a/src/main/java/cz/jzitnik/game/entities/items/registry/items/blocks/GrassItem.java b/src/main/java/cz/jzitnik/game/entities/items/registry/items/blocks/GrassItem.java index bbdbe83..4d88825 100644 --- a/src/main/java/cz/jzitnik/game/entities/items/registry/items/blocks/GrassItem.java +++ b/src/main/java/cz/jzitnik/game/entities/items/registry/items/blocks/GrassItem.java @@ -2,12 +2,9 @@ package cz.jzitnik.game.entities.items.registry.items.blocks; import cz.jzitnik.game.SpriteLoader; import cz.jzitnik.game.annotations.ItemRegistry; -import cz.jzitnik.game.annotations.PlaceSound; -import cz.jzitnik.game.core.sound.SoundKey; import cz.jzitnik.game.entities.items.Item; import cz.jzitnik.game.entities.items.ItemType; -@PlaceSound(SoundKey.GRASS) @ItemRegistry("grass") public class GrassItem extends Item { public GrassItem() { diff --git a/src/main/resources/sounds/dirt/grass1.wav b/src/main/resources/sounds/grass/grass1.wav similarity index 100% rename from src/main/resources/sounds/dirt/grass1.wav rename to src/main/resources/sounds/grass/grass1.wav diff --git a/src/main/resources/sounds/dirt/grass2.wav b/src/main/resources/sounds/grass/grass2.wav similarity index 100% rename from src/main/resources/sounds/dirt/grass2.wav rename to src/main/resources/sounds/grass/grass2.wav diff --git a/src/main/resources/sounds/dirt/grass3.wav b/src/main/resources/sounds/grass/grass3.wav similarity index 100% rename from src/main/resources/sounds/dirt/grass3.wav rename to src/main/resources/sounds/grass/grass3.wav diff --git a/src/main/resources/sounds/dirt/grass4.wav b/src/main/resources/sounds/grass/grass4.wav similarity index 100% rename from src/main/resources/sounds/dirt/grass4.wav rename to src/main/resources/sounds/grass/grass4.wav diff --git a/src/main/resources/sounds/dirt/walk1.wav b/src/main/resources/sounds/grass/walk1.wav similarity index 100% rename from src/main/resources/sounds/dirt/walk1.wav rename to src/main/resources/sounds/grass/walk1.wav diff --git a/src/main/resources/sounds/dirt/walk2.wav b/src/main/resources/sounds/grass/walk2.wav similarity index 100% rename from src/main/resources/sounds/dirt/walk2.wav rename to src/main/resources/sounds/grass/walk2.wav diff --git a/src/main/resources/sounds/dirt/walk3.wav b/src/main/resources/sounds/grass/walk3.wav similarity index 100% rename from src/main/resources/sounds/dirt/walk3.wav rename to src/main/resources/sounds/grass/walk3.wav diff --git a/src/main/resources/sounds/dirt/walk4.wav b/src/main/resources/sounds/grass/walk4.wav similarity index 100% rename from src/main/resources/sounds/dirt/walk4.wav rename to src/main/resources/sounds/grass/walk4.wav diff --git a/src/main/resources/sounds/dirt/walk5.wav b/src/main/resources/sounds/grass/walk5.wav similarity index 100% rename from src/main/resources/sounds/dirt/walk5.wav rename to src/main/resources/sounds/grass/walk5.wav diff --git a/src/main/resources/sounds/dirt/walk6.wav b/src/main/resources/sounds/grass/walk6.wav similarity index 100% rename from src/main/resources/sounds/dirt/walk6.wav rename to src/main/resources/sounds/grass/walk6.wav diff --git a/src/main/resources/sounds/gravel/gravel1.wav b/src/main/resources/sounds/gravel/gravel1.wav new file mode 100644 index 0000000..4cdfd59 Binary files /dev/null and b/src/main/resources/sounds/gravel/gravel1.wav differ diff --git a/src/main/resources/sounds/gravel/gravel2.wav b/src/main/resources/sounds/gravel/gravel2.wav new file mode 100644 index 0000000..1bb2212 Binary files /dev/null and b/src/main/resources/sounds/gravel/gravel2.wav differ diff --git a/src/main/resources/sounds/gravel/gravel3.wav b/src/main/resources/sounds/gravel/gravel3.wav new file mode 100644 index 0000000..071ae9d Binary files /dev/null and b/src/main/resources/sounds/gravel/gravel3.wav differ diff --git a/src/main/resources/sounds/gravel/gravel4.wav b/src/main/resources/sounds/gravel/gravel4.wav new file mode 100644 index 0000000..df6964f Binary files /dev/null and b/src/main/resources/sounds/gravel/gravel4.wav differ diff --git a/src/main/resources/sounds/gravel/step1.wav b/src/main/resources/sounds/gravel/step1.wav new file mode 100644 index 0000000..7cd9200 Binary files /dev/null and b/src/main/resources/sounds/gravel/step1.wav differ diff --git a/src/main/resources/sounds/gravel/step2.wav b/src/main/resources/sounds/gravel/step2.wav new file mode 100644 index 0000000..2432f1a Binary files /dev/null and b/src/main/resources/sounds/gravel/step2.wav differ diff --git a/src/main/resources/sounds/gravel/step3.wav b/src/main/resources/sounds/gravel/step3.wav new file mode 100644 index 0000000..e4ed706 Binary files /dev/null and b/src/main/resources/sounds/gravel/step3.wav differ diff --git a/src/main/resources/sounds/gravel/step4.wav b/src/main/resources/sounds/gravel/step4.wav new file mode 100644 index 0000000..c7da4b6 Binary files /dev/null and b/src/main/resources/sounds/gravel/step4.wav differ