Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 17 additions & 17 deletions src/main/resources/assets/israel_simulator/sounds.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,22 @@
"music.cultural.klezmer": {
"sounds": [
{
"name": "minecraft:music/game/creative1",
"name": "minecraft:music/game/creative/biome_fest",
"stream": true
}
]
},
"music.cultural.shabbat_shalom": {
"sounds": [
{
"name": "minecraft:music/game/calm2",
"name": "minecraft:music/game/clark",
"stream": true
}
]
},
"ambient.city.tel_aviv": {
"sounds": [
"minecraft:ambient/underwater/loop"
"minecraft:ambient/underwater/underwater_ambience"
]
},
"ambient.city.jerusalem": {
Expand All @@ -35,17 +35,17 @@
},
"ambient.city.jaffa": {
"sounds": [
"minecraft:block/bell/use"
"minecraft:block/bell/bell_use01"
]
},
"ambient.event.speech_crowd": {
"sounds": [
"minecraft:entity/villager/ambient"
"minecraft:mob/villager/idle1"
]
},
"ambient.event.market_bustle": {
"sounds": [
"minecraft:entity/villager/trade"
"minecraft:mob/villager/haggle1"
]
},
"audio.festival.hanukkah_chime": {
Expand All @@ -55,7 +55,7 @@
},
"audio.festival.shabbat_candle": {
"sounds": [
"minecraft:block/amethyst_block/chime"
"minecraft:block/amethyst/shimmer"
]
},
"entity.bibi_boss.ambient": {
Expand All @@ -77,12 +77,12 @@
},
"entity.bibi_boss.speech": {
"sounds": [
"minecraft:mob/evoker/prepare_attack"
"minecraft:mob/evocation_illager/prepare_attack1"
]
},
"entity.bibi_boss.enrage": {
"sounds": [
"minecraft:entity/wither/ambient"
"minecraft:mob/wither/idle1"
]
},
"music.boss.bibi_theme": {
Expand All @@ -103,22 +103,22 @@
},
"entity.bicycle.bell": {
"sounds": [
"minecraft:block/bell/use"
"minecraft:block/bell/bell_use01"
]
},
"entity.bus.horn": {
"sounds": [
"minecraft:item/goat_horn/sound0"
"minecraft:item/goat_horn/call0"
]
},
"entity.train.whistle": {
"sounds": [
"minecraft:item/goat_horn/sound1"
"minecraft:item/goat_horn/call1"
]
},
"entity.transport.travel": {
"sounds": [
"minecraft:entity/enderman/teleport"
"minecraft:mob/endermen/portal"
]
},
"ui.landmark_discovered": {
Expand All @@ -129,14 +129,14 @@
"event.air_raid_siren": {
"sounds": [
"minecraft:block/bell/resonate",
"minecraft:entity/warden/sonic_boom",
"minecraft:block/sculk_shrieker/shriek"
"minecraft:mob/warden/sonic_boom1",
"minecraft:block/sculk_shrieker/shriek1"
]
},
"event.plane_jet": {
"sounds": [
"minecraft:entity/ender_dragon/growl",
"minecraft:ambient/underwater/loop"
"minecraft:mob/enderdragon/growl1",
"minecraft:ambient/underwater/underwater_ambience"
]
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -306,6 +306,55 @@ void testSoundsJsonValidation() throws IOException {
}
}

/**
* Vanilla sound files referenced by sounds.json, checked one by one against the 26.2 asset index.
* A name missing from the index is silently dropped by the client ("File ... does not exist").
* Add a name here only after checking it exists in the asset index.
*/
private static final java.util.Set<String> VERIFIED_VANILLA_SOUND_FILES = java.util.Set.of(
"ambient/cave/cave1",
"ambient/underwater/underwater_ambience",
"block/amethyst/shimmer",
"block/bell/bell_use01",
"block/bell/resonate",
"block/sculk_shrieker/shriek1",
"item/goat_horn/call0",
"item/goat_horn/call1",
"mob/enderdragon/growl1",
"mob/endermen/portal",
"mob/evocation_illager/prepare_attack1",
"mob/villager/death",
"mob/villager/haggle1",
"mob/villager/hit1",
"mob/villager/hit2",
"mob/villager/idle1",
"mob/villager/idle2",
"mob/warden/sonic_boom1",
"mob/wither/idle1",
"music/game/clark",
"music/game/creative/biome_fest",
"ui/toast/challenge_complete");

@Test
@DisplayName("sounds.json only references vanilla sound files that exist in 26.2")
void testVanillaSoundFilesExist() throws IOException {
Path soundsJsonPath = RESOURCES_PATH.resolve(Paths.get("assets", IsraelSimulator.MOD_ID, "sounds.json"));
try (FileReader reader = new FileReader(soundsJsonPath.toFile())) {
JsonObject soundsJson = GSON.fromJson(reader, JsonObject.class);
for (Map.Entry<String, JsonElement> event : soundsJson.entrySet()) {
for (JsonElement entry : event.getValue().getAsJsonObject().getAsJsonArray("sounds")) {
String name = entry.isJsonObject()
? entry.getAsJsonObject().get("name").getAsString()
: entry.getAsString();
if (!name.startsWith("minecraft:")) continue;
String file = name.substring("minecraft:".length());
assertTrue(VERIFIED_VANILLA_SOUND_FILES.contains(file),
event.getKey() + " references a vanilla sound file that does not exist: " + name);
}
}
}
}

@Test
@DisplayName("Hava Nagila disc sound is a non-empty bundled ogg, not a vanilla fallback")
void testHavaNagilaDiscOggPresent() throws IOException {
Expand Down
9 changes: 9 additions & 0 deletions test.md
Original file line number Diff line number Diff line change
Expand Up @@ -930,3 +930,12 @@ Non provato dall'utente in gioco.
- Problema riscontrato: in `assets/israel_simulator/blockstates/` c'era `menorah_test.json` con solo `{"test":"ok"}`. Non è un blockstate valido e non esiste nessun blocco `menorah_test`.
- Funzionamento atteso: nei blockstate ci sono solo i file dei blocchi registrati.
- Soluzione: file cancellato, con l'ok di Riccardo.

## Suoni vanilla con percorsi sbagliati: 13 eventi della mod muti
- Problema riscontrato: in gioco (seed 777, client NeoForge 26.2) il log mostrava 17 avvisi `File minecraft:sounds/... does not exist`. `sounds.json` usava nomi di file vanilla che non esistono, per esempio `entity/villager/trade`, `block/bell/use`, `music/game/calm2` e `item/goat_horn/sound0`. Così erano muti o incompleti: musica klezmer e Shabbat Shalom, ambiente di Tel Aviv, Giaffa e mercato, folla, candela dello Shabbat, voce e rabbia del boss, campanello della bici, clacson del bus, fischio del treno, viaggio in trasporto, sirena antiaerea e jet dell'aereo sulle Torri Gemelle.
- Funzionamento atteso: ogni evento sonoro suona davvero e nel log non ci sono avvisi di file mancanti.
- Soluzione: ogni nome è stato sostituito con il file vanilla vero, controllato sull'indice degli asset 26.2. Per esempio `mob/villager/haggle1`, `block/bell/bell_use01`, `music/game/clark`, `item/goat_horn/call0`, `mob/endermen/portal` e `block/amethyst/shimmer`. Il nuovo test `testVanillaSoundFilesExist` controlla che `sounds.json` usi solo file vanilla verificati.

## Betatesting in gioco del 2 novembre 2026 (seed 777, build CI di main 532fbe5)
- Superati: Welcome to Israel, Tel Aviv, Tel Aviv di notte, Gerusalemme e Muro del Pianto, preghiera al Kotel (5 diamanti, biglietto consumato), Kippah al gatto, Dead Sea Tourist (galleggiare e fango), Blessed Trader (scambio con la Corona del Rabbino), hummus che lascia la ciotola, sabich che lascia nella griglia la ciotola della tahini, Menorah (modello, candele 1 e 2 accese con l'acciarino, spenta con shift + click), aereo sulle Torri Gemelle (arriva entro un minuto, impatto, "Brace for Impact"), Shabbat (annuncio, rigenerazione a riposo, "Shabbat Shalom", avviso quando si lavora e niente bonus).
- Nota: i bioma sono in celle 4×4×4. Il fango messo a mano in una cella di bioma diversa dal Mar Morto non conta. Non è un bug: nel terreno vero il fango è nella cella del Mar Morto.
Loading