Skip to content

Commit 0d57ee5

Browse files
committed
Check to see if a sound file path exists within the resourcepack before caching it. Now dumps a list of sounds that cannot be found to the console when refreshing resources. Won't attempt to play the missing sounds at-all, avoiding repeating error messages.
1 parent fddad02 commit 0d57ee5

File tree

7 files changed

+45
-54
lines changed

7 files changed

+45
-54
lines changed

Diff for: ant/build_matmos.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<project name="MAtmos" basedir="." default="main">
1616

1717
<!-- The version of your mod, can be any string as long as it's valid as part of a file name -->
18-
<property name="version" value="29" />
18+
<property name="version" value="29ub4" />
1919

2020
<!-- The Minecraft version the mod is for, appended to the output file name for reference -->
2121
<property name="mcversion" value="1.7.10" />

Diff for: ant/buildnumber.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
#Build Number for ANT. Do not edit!
2-
#Sat May 23 13:39:36 BST 2015
3-
build.number=18
2+
#Sat Jun 06 15:50:24 BST 2015
3+
build.number=24

Diff for: ant/litemod.template.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "eu.ha3.mc.matmos",
33
"mcversion": "1.7.10",
4-
"version": "r29unOfficialBeta2",
4+
"version": "r29UnofficialBeta4",
55
"revision": "29",
66
"author": "Hurricaaane (Ha3)",
77
"url": "http://matmos.ha3.eu",

Diff for: main-src/eu/ha3/matmos/engine/core/implem/Event.java

+21-9
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package eu.ha3.matmos.engine.core.implem;
22

3-
import java.util.List;
4-
import java.util.Random;
5-
63
import eu.ha3.matmos.engine.core.implem.abstractions.Component;
74
import eu.ha3.matmos.engine.core.interfaces.EventInterface;
85
import eu.ha3.matmos.engine.core.interfaces.SoundRelay;
6+
import eu.ha3.matmos.log.MAtLog;
7+
import net.minecraft.client.resources.IResourcePack;
8+
import net.minecraft.util.ResourceLocation;
9+
10+
import java.util.ArrayList;
11+
import java.util.List;
12+
import java.util.Random;
913

1014
/* x-placeholder */
1115

@@ -38,14 +42,22 @@ public Event(
3842
this.pitchMax = pitchMax;
3943
this.distance = distance;
4044
}
41-
45+
4246
@Override
43-
public void cacheSounds()
47+
public void cacheSounds(IResourcePack resourcePack)
4448
{
45-
for (String path : this.paths)
46-
{
47-
this.relay.cacheSound(path);
48-
}
49+
List<String> toRemove = new ArrayList<String>();
50+
for (String path : this.paths)
51+
{
52+
if (resourcePack.resourceExists(new ResourceLocation("minecraft", "sounds/" + path)))
53+
this.relay.cacheSound(path);
54+
else
55+
{
56+
MAtLog.warning("File: " + path + " appears to be missing from: " + resourcePack.getPackName() + " [This sound will not be cached or played in-game]");
57+
toRemove.add(path);
58+
}
59+
}
60+
paths.removeAll(toRemove);
4961
}
5062

5163
@Override

Diff for: main-src/eu/ha3/matmos/engine/core/implem/Knowledge.java

+8-21
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,12 @@
11
package eu.ha3.matmos.engine.core.implem;
22

3-
import java.util.Arrays;
4-
import java.util.List;
5-
import java.util.Map;
6-
import java.util.Set;
7-
import java.util.TreeMap;
8-
import java.util.TreeSet;
9-
103
import eu.ha3.matmos.engine.core.implem.abstractions.Provider;
11-
import eu.ha3.matmos.engine.core.interfaces.Data;
12-
import eu.ha3.matmos.engine.core.interfaces.Dependable;
13-
import eu.ha3.matmos.engine.core.interfaces.Evaluated;
14-
import eu.ha3.matmos.engine.core.interfaces.EventInterface;
15-
import eu.ha3.matmos.engine.core.interfaces.Named;
16-
import eu.ha3.matmos.engine.core.interfaces.PossibilityList;
17-
import eu.ha3.matmos.engine.core.interfaces.ReferenceTime;
18-
import eu.ha3.matmos.engine.core.interfaces.Sheet;
19-
import eu.ha3.matmos.engine.core.interfaces.SheetCommander;
20-
import eu.ha3.matmos.engine.core.interfaces.SheetIndex;
21-
import eu.ha3.matmos.engine.core.interfaces.Simulated;
22-
import eu.ha3.matmos.engine.core.interfaces.SoundRelay;
4+
import eu.ha3.matmos.engine.core.interfaces.*;
5+
import eu.ha3.matmos.expansions.ExpansionIdentity;
236
import eu.ha3.matmos.log.MAtLog;
7+
import net.minecraft.client.resources.IResourcePack;
8+
9+
import java.util.*;
2410

2511
/* x-placeholder */
2612

@@ -200,11 +186,12 @@ private void purge(
200186
}
201187
}
202188

203-
public void cacheSounds()
189+
public void cacheSounds(ExpansionIdentity identity)
204190
{
191+
IResourcePack resourcePack = identity.getPack();
205192
for (EventInterface event : this.eventMapped.values())
206193
{
207-
event.cacheSounds();
194+
event.cacheSounds(resourcePack);
208195
}
209196
}
210197

Diff for: main-src/eu/ha3/matmos/engine/core/interfaces/EventInterface.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@
44
--filenotes-placeholder
55
*/
66

7+
import net.minecraft.client.resources.IResourcePack;
8+
79
public interface EventInterface
810
{
911

10-
public abstract void cacheSounds();
12+
public abstract void cacheSounds(IResourcePack resourcePack);
1113

1214
public abstract void playSound(float volMod, float pitchMod);
1315

Diff for: main-src/eu/ha3/matmos/expansions/Expansion.java

+9-19
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,10 @@
11
package eu.ha3.matmos.expansions;
22

3-
import java.io.File;
4-
import java.io.IOException;
5-
import java.util.ArrayList;
6-
import java.util.Arrays;
7-
import java.util.Collections;
8-
import java.util.List;
9-
import java.util.Locale;
10-
import java.util.Scanner;
11-
import java.util.Set;
12-
13-
import net.minecraft.client.Minecraft;
14-
import net.minecraft.client.resources.FolderResourcePack;
15-
import net.minecraft.util.ResourceLocation;
163
import eu.ha3.easy.TimeStatistic;
174
import eu.ha3.matmos.engine.core.implem.Knowledge;
185
import eu.ha3.matmos.engine.core.implem.ProviderCollection;
196
import eu.ha3.matmos.engine.core.implem.SystemClock;
20-
import eu.ha3.matmos.engine.core.interfaces.Data;
21-
import eu.ha3.matmos.engine.core.interfaces.Evaluated;
22-
import eu.ha3.matmos.engine.core.interfaces.EventInterface;
23-
import eu.ha3.matmos.engine.core.interfaces.ReferenceTime;
24-
import eu.ha3.matmos.engine.core.interfaces.Simulated;
7+
import eu.ha3.matmos.engine.core.interfaces.*;
258
import eu.ha3.matmos.expansions.agents.LoadingAgent;
269
import eu.ha3.matmos.expansions.agents.RawJasonLoadingAgent;
2710
import eu.ha3.matmos.expansions.debugunit.ExpansionDebugUnit;
@@ -36,6 +19,13 @@
3619
import eu.ha3.matmos.log.MAtLog;
3720
import eu.ha3.matmos.pluggable.PluggableIntoMinecraft;
3821
import eu.ha3.util.property.simple.ConfigProperty;
22+
import net.minecraft.client.Minecraft;
23+
import net.minecraft.client.resources.FolderResourcePack;
24+
import net.minecraft.util.ResourceLocation;
25+
26+
import java.io.File;
27+
import java.io.IOException;
28+
import java.util.*;
3929

4030
/* x-placeholder */
4131

@@ -145,7 +135,7 @@ private void buildKnowledge()
145135
newKnowledge();
146136
}
147137

148-
this.knowledge.cacheSounds();
138+
this.knowledge.cacheSounds(this.identity);
149139
}
150140

151141
public void playSample()

0 commit comments

Comments
 (0)