Skip to content

Commit 02da5e2

Browse files
committed
Modified AudioComponent
1 parent dfe17cc commit 02da5e2

File tree

3 files changed

+61
-0
lines changed

3 files changed

+61
-0
lines changed

src/evhh/common/assetloading/AssetLoader.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import java.awt.image.BufferedImage;
77
import java.io.File;
88
import java.io.IOException;
9+
import java.nio.file.Files;
10+
import java.util.Arrays;
911
import java.util.HashMap;
1012
import java.util.Objects;
1113

@@ -82,4 +84,38 @@ public static HashMap<String, BufferedImage> LoadImageAssets(String path, String
8284
}
8385
return map;
8486
}
87+
88+
public static File[] LoadFileAssetsFromDir(String path, String[] acceptedFileExtensions)
89+
{
90+
File dir = new File(path);
91+
if (!dir.isDirectory())
92+
return null;
93+
File[] files = new File[Objects.requireNonNull(dir.listFiles()).length];
94+
int i = 0;
95+
for (File file : Objects.requireNonNull(dir.listFiles()))
96+
{
97+
String fileName = file.toString();
98+
99+
int index = fileName.lastIndexOf('.');
100+
if(index > 0) {
101+
String extension = fileName.substring(index + 1);
102+
if(Arrays.asList(acceptedFileExtensions).contains(extension))
103+
files[i++]=file;
104+
}
105+
}
106+
File[] shortened = new File[i+1];
107+
System.arraycopy(files, 0, shortened, 0, i + 1);
108+
return shortened;
109+
}
110+
public static File loadFileUsingJFileChooser()
111+
{
112+
JFileChooser fileChooser = new JFileChooser();
113+
fileChooser.setCurrentDirectory(new File(System.getProperty("user.dir")));
114+
fileChooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
115+
int response = fileChooser.showSaveDialog(null);
116+
if (response == JFileChooser.APPROVE_OPTION)
117+
return new File(fileChooser.getSelectedFile().getAbsolutePath());
118+
else
119+
return null;
120+
}
85121
}

src/evhh/model/Grid.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ public void removeGameObject(int x, int y)
165165
return;
166166
}
167167
gameInstance.getFrameRenderer().getGridRenderer().removeSprite(grid[x][y].getSprite());
168+
grid[x][y].onExit();
168169
grid[x][y] = null;
169170
numGameObjects--;
170171
}

src/evhh/model/gamecomponents/AudioComponent.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,23 @@ public class AudioComponent extends GameComponent
2525
transient private AudioInputStream audioStream;
2626
transient private DataLine.Info info;
2727
transient private AudioFormat format;
28+
private float volume = 0.5f;
29+
private FloatControl volumeControl;
2830

2931
public AudioComponent(GameObject parent, AudioListener audioListener, File[] audioFiles)
3032
{
3133
super(parent);
3234
this.audioListener = audioListener;
3335
this.audioFiles = audioFiles;
3436

37+
}
38+
public AudioComponent(GameObject parent, AudioListener audioListener, File[] audioFiles,float volume)
39+
{
40+
super(parent);
41+
this.audioListener = audioListener;
42+
this.audioFiles = audioFiles;
43+
this.volume = volume;
44+
3545
}
3646

3747
public boolean play(int index)
@@ -42,9 +52,13 @@ public boolean play(int index)
4252
format = audioStream.getFormat();
4353
info = new DataLine.Info(Clip.class, format);
4454
audioClip = (Clip) AudioSystem.getLine(info);
55+
4556
audioClip.addLineListener(audioListener);
4657
audioClip.open(audioStream);
4758

59+
volumeControl = (FloatControl) audioClip.getControl(FloatControl.Type.MASTER_GAIN);
60+
volumeControl.setValue(volume);
61+
4862
audioClip.start();
4963
} catch (UnsupportedAudioFileException | IOException | LineUnavailableException | IndexOutOfBoundsException ignored)
5064
{
@@ -76,7 +90,17 @@ public boolean isPlaying()
7690
return false;
7791
return audioClip.isRunning();
7892
}
93+
public void setVolume(float gain)
94+
{
95+
volume = gain;
96+
if(isPlaying()&&volumeControl!=null)
97+
volumeControl.setValue(gain);
98+
}
7999

100+
public float getVolume()
101+
{
102+
return volume;
103+
}
80104

81105
@Override
82106
public void onStart()

0 commit comments

Comments
 (0)