Removed broken sound code
This commit is contained in:
parent
14d9e68322
commit
a6679810c1
|
@ -306,10 +306,6 @@ public abstract class Entity implements Serializable {
|
||||||
int var19 = this.level.getTile((int)this.x, (int)(this.y - 0.2F - this.heightOffset), (int)this.z);
|
int var19 = this.level.getTile((int)this.x, (int)(this.y - 0.2F - this.heightOffset), (int)this.z);
|
||||||
if(this.walkDist > (float)this.nextStep && var19 > 0) {
|
if(this.walkDist > (float)this.nextStep && var19 > 0) {
|
||||||
++this.nextStep;
|
++this.nextStep;
|
||||||
Tile$SoundType var20;
|
|
||||||
if((var20 = Block.blocks[var19].stepsound) != Tile$SoundType.none) {
|
|
||||||
this.playSound("step." + var20.name, var20.getVolume() * 0.75F, var20.getPitch());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -369,10 +365,6 @@ public abstract class Entity implements Serializable {
|
||||||
this.level = var1;
|
this.level = var1;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void playSound(String var1, float var2, float var3) {
|
|
||||||
this.level.playSound(var1, this, var2, var3);
|
|
||||||
}
|
|
||||||
|
|
||||||
public void moveTo(float var1, float var2, float var3, float var4, float var5) {
|
public void moveTo(float var1, float var2, float var3, float var4, float var5) {
|
||||||
this.xo = this.x = var1;
|
this.xo = this.x = var1;
|
||||||
this.yo = this.y = var2;
|
this.yo = this.y = var2;
|
||||||
|
|
|
@ -29,8 +29,6 @@ import com.mojang.minecraft.render.*;
|
||||||
import com.mojang.minecraft.render.texture.TextureFX;
|
import com.mojang.minecraft.render.texture.TextureFX;
|
||||||
import com.mojang.minecraft.render.texture.TextureLavaFX;
|
import com.mojang.minecraft.render.texture.TextureLavaFX;
|
||||||
import com.mojang.minecraft.render.texture.TextureWaterFX;
|
import com.mojang.minecraft.render.texture.TextureWaterFX;
|
||||||
import com.mojang.minecraft.sound.SoundManager;
|
|
||||||
import com.mojang.minecraft.sound.SoundPlayer;
|
|
||||||
import com.mojang.net.NetworkHandler;
|
import com.mojang.net.NetworkHandler;
|
||||||
import com.mojang.util.MathHelper;
|
import com.mojang.util.MathHelper;
|
||||||
|
|
||||||
|
@ -66,8 +64,6 @@ public final class Minecraft implements Runnable {
|
||||||
public ProgressBarDisplay progressBar = new ProgressBarDisplay(this);
|
public ProgressBarDisplay progressBar = new ProgressBarDisplay(this);
|
||||||
public Renderer renderer = new Renderer(this);
|
public Renderer renderer = new Renderer(this);
|
||||||
public LevelIO levelIo;
|
public LevelIO levelIo;
|
||||||
public SoundManager sound;
|
|
||||||
private ResourceDownloadThread resourceThread;
|
|
||||||
private int ticks;
|
private int ticks;
|
||||||
private int blockHitTime;
|
private int blockHitTime;
|
||||||
public String levelName;
|
public String levelName;
|
||||||
|
@ -75,7 +71,6 @@ public final class Minecraft implements Runnable {
|
||||||
public HUDScreen hud;
|
public HUDScreen hud;
|
||||||
public boolean online;
|
public boolean online;
|
||||||
public NetworkManager networkManager;
|
public NetworkManager networkManager;
|
||||||
public SoundPlayer soundPlayer;
|
|
||||||
public MovingObjectPosition selected;
|
public MovingObjectPosition selected;
|
||||||
public static GameSettings settings;
|
public static GameSettings settings;
|
||||||
String server;
|
String server;
|
||||||
|
@ -89,7 +84,6 @@ public final class Minecraft implements Runnable {
|
||||||
|
|
||||||
public Minecraft(int var3, int var4, boolean var5) {
|
public Minecraft(int var3, int var4, boolean var5) {
|
||||||
this.levelIo = new LevelIO(this.progressBar);
|
this.levelIo = new LevelIO(this.progressBar);
|
||||||
this.sound = new SoundManager();
|
|
||||||
this.ticks = 0;
|
this.ticks = 0;
|
||||||
this.blockHitTime = 0;
|
this.blockHitTime = 0;
|
||||||
this.levelName = null;
|
this.levelName = null;
|
||||||
|
@ -155,28 +149,8 @@ public final class Minecraft implements Runnable {
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void shutdown() {
|
public final void shutdown() {
|
||||||
try {
|
this.running = false;
|
||||||
if(this.soundPlayer != null) {
|
MinecraftMain.canvas.delete();
|
||||||
SoundPlayer var1 = this.soundPlayer;
|
|
||||||
this.soundPlayer.running = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(this.resourceThread != null) {
|
|
||||||
ResourceDownloadThread var4 = this.resourceThread;
|
|
||||||
this.resourceThread.running = true;
|
|
||||||
}
|
|
||||||
} catch (Exception var3) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Minecraft var5 = this;
|
|
||||||
// if(!this.levelLoaded) {
|
|
||||||
// try {
|
|
||||||
// LevelIO.save(var5.level, (OutputStream)(new FileOutputStream(new File("level.dat"))));
|
|
||||||
// } catch (Exception var2) {
|
|
||||||
// var2.printStackTrace();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public final void run() {
|
public final void run() {
|
||||||
|
@ -1114,14 +1088,6 @@ public final class Minecraft implements Runnable {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void tick() {
|
private void tick() {
|
||||||
if(this.soundPlayer != null) {
|
|
||||||
SoundPlayer var1 = this.soundPlayer;
|
|
||||||
SoundManager var2 = this.sound;
|
|
||||||
if(System.currentTimeMillis() > var2.lastMusic && var2.playMusic(var1, "calm")) {
|
|
||||||
var2.lastMusic = System.currentTimeMillis() + (long)var2.random.nextInt(900000) + 300000L;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.gamemode.spawnMob();
|
this.gamemode.spawnMob();
|
||||||
HUDScreen var17 = this.hud;
|
HUDScreen var17 = this.hud;
|
||||||
++this.hud.ticks;
|
++this.hud.ticks;
|
||||||
|
|
|
@ -1,37 +0,0 @@
|
||||||
package com.mojang.minecraft;
|
|
||||||
|
|
||||||
import com.mojang.minecraft.Minecraft$OS;
|
|
||||||
|
|
||||||
// $FF: synthetic class
|
|
||||||
final class OperatingSystemLookup {
|
|
||||||
|
|
||||||
// $FF: synthetic field
|
|
||||||
static final int[] lookup = new int[Minecraft$OS.values().length];
|
|
||||||
|
|
||||||
|
|
||||||
static {
|
|
||||||
try {
|
|
||||||
lookup[Minecraft$OS.linux.ordinal()] = 1;
|
|
||||||
} catch (NoSuchFieldError var3) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
lookup[Minecraft$OS.solaris.ordinal()] = 2;
|
|
||||||
} catch (NoSuchFieldError var2) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
lookup[Minecraft$OS.windows.ordinal()] = 3;
|
|
||||||
} catch (NoSuchFieldError var1) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
lookup[Minecraft$OS.macos.ordinal()] = 4;
|
|
||||||
} catch (NoSuchFieldError var0) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,244 +0,0 @@
|
||||||
package com.mojang.minecraft;
|
|
||||||
|
|
||||||
import java.io.*;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.net.URLConnection;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
|
|
||||||
public class ResourceDownloadThread extends Thread
|
|
||||||
{
|
|
||||||
public ResourceDownloadThread(File minecraftFolder, Minecraft minecraft)
|
|
||||||
{
|
|
||||||
this.minecraft = minecraft;
|
|
||||||
|
|
||||||
this.setName("Resource download thread");
|
|
||||||
this.setDaemon(true);
|
|
||||||
|
|
||||||
dir = new File(minecraftFolder, "resources/");
|
|
||||||
|
|
||||||
if(!dir.exists() && !dir.mkdirs())
|
|
||||||
{
|
|
||||||
throw new RuntimeException("The working directory could not be created: " + dir);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void run()
|
|
||||||
{
|
|
||||||
BufferedReader reader = null;
|
|
||||||
|
|
||||||
try {
|
|
||||||
ArrayList<String> list = new ArrayList<String>();
|
|
||||||
|
|
||||||
URL base = new URL("http://dl.dropbox.com/u/40737374/minecraft_resources/");
|
|
||||||
URL url = new URL(base, "resources/");
|
|
||||||
|
|
||||||
URLConnection con = url.openConnection();
|
|
||||||
|
|
||||||
con.setConnectTimeout(20000);
|
|
||||||
|
|
||||||
reader = new BufferedReader(new InputStreamReader(con.getInputStream()));
|
|
||||||
|
|
||||||
String line = null;
|
|
||||||
|
|
||||||
while((line = reader.readLine()) != null)
|
|
||||||
{
|
|
||||||
list.add(line);
|
|
||||||
}
|
|
||||||
|
|
||||||
reader.close();
|
|
||||||
|
|
||||||
/*for(String s : list)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
String split[] = s.split(",");
|
|
||||||
int size = Integer.parseInt(split[1]);
|
|
||||||
File file = new File(dir, split[0]);
|
|
||||||
|
|
||||||
if(!file.exists() || file.length() != size)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
file.getParentFile().mkdirs();
|
|
||||||
} catch(SecurityException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
URL url1 = new URL(base, split[0].replaceAll(" ", "%20"));
|
|
||||||
|
|
||||||
download(url1, file, size);
|
|
||||||
} else {
|
|
||||||
int index = split[0].indexOf("/");
|
|
||||||
|
|
||||||
if(split[0].substring(0, index).equalsIgnoreCase("sound"))
|
|
||||||
{
|
|
||||||
minecraft.sound.registerSound(file, split[0].substring(index + 1, split[0].length() - 4).replaceAll("[1-9]", "").replaceAll("/", "."));
|
|
||||||
//this.mc.audio.registerSound(split[0].substring(index + 1, split[0].length() - 4).replaceAll("[1-9]", "").replaceAll("/", "."), file.toURI().toURL(), true);
|
|
||||||
} else if (split[0].substring(0, index).equalsIgnoreCase("music")) {
|
|
||||||
if(split[0].contains("sweden"))
|
|
||||||
{
|
|
||||||
//this.mc.audio.registerMusic("menu", file.toURI().toURL(), true);
|
|
||||||
}
|
|
||||||
|
|
||||||
//this.mc.audio.registerMusic("bg", file.toURI().toURL(), true);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (Exception e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!this.running) return;
|
|
||||||
}*/
|
|
||||||
|
|
||||||
for(String s : list)
|
|
||||||
{
|
|
||||||
String split[] = s.split(",");
|
|
||||||
int size = Integer.parseInt(split[1]);
|
|
||||||
File file = new File(dir, split[0]);
|
|
||||||
|
|
||||||
File musicFolder = new File(dir, "music");
|
|
||||||
|
|
||||||
if(!file.exists() || file.length() != size)
|
|
||||||
{
|
|
||||||
try {
|
|
||||||
file.getParentFile().mkdirs();
|
|
||||||
} catch(SecurityException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
URL url1 = new URL(base, split[0].replaceAll(" ", "%20"));
|
|
||||||
|
|
||||||
if(file.getPath().contains("music"))
|
|
||||||
{
|
|
||||||
if(file.getName().equals("minecraft.ogg") && !new File(musicFolder, "calm1.ogg").exists())
|
|
||||||
{
|
|
||||||
download(url1, file, size);
|
|
||||||
} else if(file.getName().equals("clark.ogg") && !new File(musicFolder, "calm2.ogg").exists()) {
|
|
||||||
download(url1, file, size);
|
|
||||||
} else if(file.getName().equals("sweden.ogg") && !new File(musicFolder, "calm3.ogg").exists()) {
|
|
||||||
download(url1, file, size);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
download(url1, file, size);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
File minecraftOGG = new File(musicFolder, "minecraft.ogg");
|
|
||||||
File clarkOGG = new File(musicFolder, "clark.ogg");
|
|
||||||
File swedenOGG = new File(musicFolder, "sweden.ogg");
|
|
||||||
|
|
||||||
minecraftOGG.renameTo(new File(musicFolder, "calm1.ogg"));
|
|
||||||
clarkOGG.renameTo(new File(musicFolder, "calm2.ogg"));
|
|
||||||
swedenOGG.renameTo(new File(musicFolder, "calm3.ogg"));
|
|
||||||
}
|
|
||||||
|
|
||||||
File soundsFolder = new File(dir, "sound");
|
|
||||||
File stepsFolder = new File(soundsFolder, "step");
|
|
||||||
|
|
||||||
for(int i = 1; i <= 4; i++)
|
|
||||||
{
|
|
||||||
minecraft.sound.registerSound(new File(stepsFolder, "grass" + i + ".ogg"), "step/grass" + i + ".ogg");
|
|
||||||
minecraft.sound.registerSound(new File(stepsFolder, "gravel" + i + ".ogg"), "step/gravel" + i + ".ogg");
|
|
||||||
minecraft.sound.registerSound(new File(stepsFolder, "stone" + i + ".ogg"), "step/stone" + i + ".ogg");
|
|
||||||
minecraft.sound.registerSound(new File(stepsFolder, "wood" + i + ".ogg"), "step/wood" + i + ".ogg");
|
|
||||||
}
|
|
||||||
|
|
||||||
File musicFolder = new File(dir, "music");
|
|
||||||
|
|
||||||
for(int i = 1; i <= 3; i++)
|
|
||||||
{
|
|
||||||
minecraft.sound.registerMusic("calm" + i + ".ogg", new File(musicFolder, "calm" + i + ".ogg"));
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
try {
|
|
||||||
if (reader != null)
|
|
||||||
reader.close();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.finished = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private File dir;
|
|
||||||
private Minecraft minecraft;
|
|
||||||
boolean running = false;
|
|
||||||
|
|
||||||
private boolean finished = false;
|
|
||||||
private int progress = 0;
|
|
||||||
|
|
||||||
private void download(URL url, File file, int size)
|
|
||||||
{
|
|
||||||
System.out.println("Downloading: " + file.getName() + "...");
|
|
||||||
|
|
||||||
//minecraft.progressBar.setText(file.getName());
|
|
||||||
|
|
||||||
DataInputStream in = null;
|
|
||||||
DataOutputStream out = null;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
byte[] data = new byte[4096];
|
|
||||||
|
|
||||||
in = new DataInputStream(url.openStream());
|
|
||||||
FileOutputStream fos = new FileOutputStream(file);
|
|
||||||
out = new DataOutputStream(fos);
|
|
||||||
|
|
||||||
int done = 0;
|
|
||||||
|
|
||||||
do
|
|
||||||
{
|
|
||||||
int length = in.read(data);
|
|
||||||
|
|
||||||
if(length < 0)
|
|
||||||
{
|
|
||||||
in.close();
|
|
||||||
out.close();
|
|
||||||
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
out.write(data, 0, length);
|
|
||||||
|
|
||||||
done += length;
|
|
||||||
progress = (int)(((double)done / (double)size) * 100);
|
|
||||||
} while(!running);
|
|
||||||
} catch (FileNotFoundException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} finally {
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if(in != null)
|
|
||||||
{
|
|
||||||
in.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
if(out != null)
|
|
||||||
{
|
|
||||||
out.close();
|
|
||||||
}
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
//minecraft.progressBar.setText("");
|
|
||||||
progress = 0;
|
|
||||||
|
|
||||||
System.out.println("Downloaded: " + file.getName());
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean isFinished()
|
|
||||||
{
|
|
||||||
return finished;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getProgress()
|
|
||||||
{
|
|
||||||
return progress;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -53,11 +53,6 @@ public class GameMode
|
||||||
minecraft.networkManager.sendBlockChange(x, y, z, 0, minecraft.player.inventory.getSelected());
|
minecraft.networkManager.sendBlockChange(x, y, z, 0, minecraft.player.inventory.getSelected());
|
||||||
}
|
}
|
||||||
|
|
||||||
if(block.stepsound != Tile$SoundType.none)
|
|
||||||
{
|
|
||||||
level.playSound("step." + block.stepsound.name, (float)x, (float)y, (float)z, (block.stepsound.getVolume() + 1.0F) / 2.0F, block.stepsound.getPitch() * 0.8F);
|
|
||||||
}
|
|
||||||
|
|
||||||
block.spawnBreakParticles(level, x, y, z, minecraft.particleManager);
|
block.spawnBreakParticles(level, x, y, z, minecraft.particleManager);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,9 +11,6 @@ import com.mojang.minecraft.model.Vec3D;
|
||||||
import com.mojang.minecraft.particle.ParticleManager;
|
import com.mojang.minecraft.particle.ParticleManager;
|
||||||
import com.mojang.minecraft.phys.AABB;
|
import com.mojang.minecraft.phys.AABB;
|
||||||
import com.mojang.minecraft.render.LevelRenderer;
|
import com.mojang.minecraft.render.LevelRenderer;
|
||||||
import com.mojang.minecraft.sound.AudioInfo;
|
|
||||||
import com.mojang.minecraft.sound.EntitySoundPos;
|
|
||||||
import com.mojang.minecraft.sound.LevelSoundPos;
|
|
||||||
import com.mojang.util.MathHelper;
|
import com.mojang.util.MathHelper;
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
@ -852,36 +849,6 @@ public class Level implements Serializable {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void playSound(String var1, Entity var2, float var3, float var4) {
|
|
||||||
if(this.rendererContext$5cd64a7f != null) {
|
|
||||||
Minecraft var5;
|
|
||||||
if((var5 = this.rendererContext$5cd64a7f).soundPlayer == null || !var5.settings.sound) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
AudioInfo var6;
|
|
||||||
if(var2.distanceToSqr(var5.player) < 1024.0F && (var6 = var5.sound.getAudioInfo(var1, var3, var4)) != null) {
|
|
||||||
var5.soundPlayer.play(var6, new EntitySoundPos(var2, var5.player));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void playSound(String var1, float var2, float var3, float var4, float var5, float var6) {
|
|
||||||
if(this.rendererContext$5cd64a7f != null) {
|
|
||||||
Minecraft var7;
|
|
||||||
if((var7 = this.rendererContext$5cd64a7f).soundPlayer == null || !var7.settings.sound) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
AudioInfo var8;
|
|
||||||
if((var8 = var7.sound.getAudioInfo(var1, var5, var6)) != null) {
|
|
||||||
var7.soundPlayer.play(var8, new LevelSoundPos(var2, var3, var4, var7.player));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean maybeGrowTree(int var1, int var2, int var3) {
|
public boolean maybeGrowTree(int var1, int var2, int var3) {
|
||||||
int var4 = this.random.nextInt(3) + 4;
|
int var4 = this.random.nextInt(3) + 4;
|
||||||
boolean var5 = true;
|
boolean var5 = true;
|
||||||
|
|
|
@ -1,6 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
public interface Audio
|
|
||||||
{
|
|
||||||
boolean play(int[] var1, int[] var2, int var3);
|
|
||||||
}
|
|
|
@ -1,11 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
public class AudioInfo
|
|
||||||
{
|
|
||||||
public float volume = 1.0F;
|
|
||||||
|
|
||||||
public int update(short[] var1, int var2)
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,50 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
import com.mojang.minecraft.Entity;
|
|
||||||
import com.mojang.util.MathHelper;
|
|
||||||
|
|
||||||
public abstract class BaseSoundPos implements SoundPos
|
|
||||||
{
|
|
||||||
public BaseSoundPos(Entity listener)
|
|
||||||
{
|
|
||||||
this.listener = listener;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Entity listener;
|
|
||||||
|
|
||||||
public float getRotationDiff(float x, float y)
|
|
||||||
{
|
|
||||||
x -= listener.x;
|
|
||||||
y -= listener.z;
|
|
||||||
|
|
||||||
float var3 = MathHelper.sqrt(x * x + y * y);
|
|
||||||
|
|
||||||
x /= var3;
|
|
||||||
y /= var3;
|
|
||||||
|
|
||||||
if((var3 /= 2.0F) > 1.0F)
|
|
||||||
{
|
|
||||||
var3 = 1.0F;
|
|
||||||
}
|
|
||||||
|
|
||||||
float var4 = MathHelper.cos(-listener.yRot * 0.017453292F + 3.1415927F);
|
|
||||||
|
|
||||||
return (MathHelper.sin(-listener.yRot * 0.017453292F + 3.1415927F) * y - var4 * x) * var3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public float getDistanceSq(float x, float y, float z)
|
|
||||||
{
|
|
||||||
x -= listener.x;
|
|
||||||
y -= listener.y;
|
|
||||||
float var4 = z - listener.z;
|
|
||||||
|
|
||||||
var4 = MathHelper.sqrt(x * x + y * y + var4 * var4);
|
|
||||||
|
|
||||||
if((var4 = 1.0F - var4 / 32.0F) < 0.0F)
|
|
||||||
{
|
|
||||||
var4 = 0.0F;
|
|
||||||
}
|
|
||||||
|
|
||||||
return var4;
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,27 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
import com.mojang.minecraft.Entity;
|
|
||||||
|
|
||||||
public class EntitySoundPos extends BaseSoundPos
|
|
||||||
{
|
|
||||||
public EntitySoundPos(Entity source, Entity listener)
|
|
||||||
{
|
|
||||||
super(listener);
|
|
||||||
|
|
||||||
this.source = source;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public float getRotationDiff()
|
|
||||||
{
|
|
||||||
return super.getRotationDiff(source.x, source.z);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public float getDistanceSq()
|
|
||||||
{
|
|
||||||
return super.getDistanceSq(source.x, source.y, source.z);
|
|
||||||
}
|
|
||||||
|
|
||||||
private Entity source;
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
import com.mojang.minecraft.Entity;
|
|
||||||
|
|
||||||
public final class LevelSoundPos extends BaseSoundPos
|
|
||||||
{
|
|
||||||
public LevelSoundPos(float x, float y, float z, Entity listener)
|
|
||||||
{
|
|
||||||
super(listener);
|
|
||||||
|
|
||||||
this.x = x;
|
|
||||||
this.y = y;
|
|
||||||
this.z = z;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public float getRotationDiff()
|
|
||||||
{
|
|
||||||
return super.getRotationDiff(x, z);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public float getDistanceSq()
|
|
||||||
{
|
|
||||||
return super.getDistanceSq(x, y, z);
|
|
||||||
}
|
|
||||||
|
|
||||||
private float x;
|
|
||||||
private float y;
|
|
||||||
private float z;
|
|
||||||
}
|
|
|
@ -1,80 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
import de.jarnbjo.ogg.LogicalOggStreamImpl;
|
|
||||||
import de.jarnbjo.ogg.OggFormatException;
|
|
||||||
import de.jarnbjo.ogg.OnDemandUrlStream;
|
|
||||||
import de.jarnbjo.vorbis.VorbisFormatException;
|
|
||||||
import de.jarnbjo.vorbis.VorbisStream;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.net.URL;
|
|
||||||
import java.nio.ByteBuffer;
|
|
||||||
|
|
||||||
// TODO.
|
|
||||||
public final class Music implements Audio {
|
|
||||||
|
|
||||||
ByteBuffer playing = ByteBuffer.allocate(176400);
|
|
||||||
ByteBuffer current = ByteBuffer.allocate(176400);
|
|
||||||
private ByteBuffer processing = null;
|
|
||||||
ByteBuffer previous = null;
|
|
||||||
VorbisStream stream;
|
|
||||||
SoundPlayer player;
|
|
||||||
boolean finished = false;
|
|
||||||
boolean stopped = false;
|
|
||||||
|
|
||||||
|
|
||||||
public Music(SoundPlayer var1, URL var2) {
|
|
||||||
this.player = var1;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
LogicalOggStreamImpl var3 = (LogicalOggStreamImpl)(new OnDemandUrlStream(var2)).getLogicalStreams().iterator().next();
|
|
||||||
this.stream = new VorbisStream(var3);
|
|
||||||
} catch (VorbisFormatException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (OggFormatException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
(new MusicPlayThread(this)).start();
|
|
||||||
}
|
|
||||||
|
|
||||||
public final boolean play(int[] var1, int[] var2, int var3) {
|
|
||||||
if(!this.player.settings.music) {
|
|
||||||
this.stopped = true;
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
var3 = var3;
|
|
||||||
int var4 = 0;
|
|
||||||
|
|
||||||
while(var3 > 0 && (this.processing != null || this.previous != null)) {
|
|
||||||
if(this.processing == null && this.previous != null) {
|
|
||||||
this.processing = this.previous;
|
|
||||||
this.previous = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(this.processing != null && this.processing.remaining() > 0) {
|
|
||||||
int var5;
|
|
||||||
if((var5 = this.processing.remaining() / 4) > var3) {
|
|
||||||
var5 = var3;
|
|
||||||
}
|
|
||||||
|
|
||||||
for(int var6 = 0; var6 < var5; ++var6) {
|
|
||||||
var1[var4 + var6] += this.processing.getShort();
|
|
||||||
var2[var4 + var6] += this.processing.getShort();
|
|
||||||
}
|
|
||||||
|
|
||||||
var4 += var5;
|
|
||||||
var3 -= var5;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(this.current == null && this.processing != null && this.processing.remaining() == 0) {
|
|
||||||
this.current = this.processing;
|
|
||||||
this.processing = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.processing != null || this.previous != null || !this.finished;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,101 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
import de.jarnbjo.vorbis.VorbisStream;
|
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
|
||||||
|
|
||||||
// TODO.
|
|
||||||
final class MusicPlayThread extends Thread {
|
|
||||||
|
|
||||||
// $FF: synthetic field
|
|
||||||
private Music music;
|
|
||||||
|
|
||||||
|
|
||||||
public MusicPlayThread(Music var1) {
|
|
||||||
super();
|
|
||||||
this.music = var1;
|
|
||||||
this.setPriority(10);
|
|
||||||
this.setDaemon(true);
|
|
||||||
}
|
|
||||||
|
|
||||||
public final void run() {
|
|
||||||
try {
|
|
||||||
do {
|
|
||||||
if(this.music.stopped) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Music var1 = this.music;
|
|
||||||
ByteBuffer var2;
|
|
||||||
Music var10001;
|
|
||||||
if(this.music.playing == null) {
|
|
||||||
var1 = this.music;
|
|
||||||
if(this.music.current != null) {
|
|
||||||
var1 = this.music;
|
|
||||||
var2 = this.music.current;
|
|
||||||
var10001 = this.music;
|
|
||||||
this.music.playing = var2;
|
|
||||||
var2 = null;
|
|
||||||
var1 = this.music;
|
|
||||||
this.music.current = null;
|
|
||||||
var1 = this.music;
|
|
||||||
this.music.playing.clear();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var1 = this.music;
|
|
||||||
if(this.music.playing != null) {
|
|
||||||
var1 = this.music;
|
|
||||||
if(this.music.playing.remaining() != 0) {
|
|
||||||
while(true) {
|
|
||||||
var1 = this.music;
|
|
||||||
if(this.music.playing.remaining() == 0) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
var1 = this.music;
|
|
||||||
var1 = this.music;
|
|
||||||
var2 = this.music.playing;
|
|
||||||
VorbisStream var9 = this.music.stream;
|
|
||||||
int var10 = this.music.stream.readPcm(var2.array(), var2.position(), var2.remaining());
|
|
||||||
var2.position(var2.position() + var10);
|
|
||||||
boolean var11;
|
|
||||||
if(var11 = var10 <= 0) {
|
|
||||||
this.music.finished = true;
|
|
||||||
this.music.stopped = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var1 = this.music;
|
|
||||||
if(this.music.playing != null) {
|
|
||||||
var1 = this.music;
|
|
||||||
if(this.music.previous == null) {
|
|
||||||
var1 = this.music;
|
|
||||||
this.music.playing.flip();
|
|
||||||
var1 = this.music;
|
|
||||||
var2 = this.music.playing;
|
|
||||||
var10001 = this.music;
|
|
||||||
this.music.previous = var2;
|
|
||||||
var2 = null;
|
|
||||||
var1 = this.music;
|
|
||||||
this.music.playing = var2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Thread.sleep(10L);
|
|
||||||
var1 = this.music;
|
|
||||||
} while(this.music.player.running);
|
|
||||||
|
|
||||||
return;
|
|
||||||
} catch (Exception var7) {
|
|
||||||
var7.printStackTrace();
|
|
||||||
return;
|
|
||||||
} finally {
|
|
||||||
this.music.finished = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,62 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
// TODO.
|
|
||||||
public final class Sound implements Audio {
|
|
||||||
|
|
||||||
private AudioInfo info;
|
|
||||||
private SoundPos pos;
|
|
||||||
private float pitch = 0.0F;
|
|
||||||
private float volume = 1.0F;
|
|
||||||
private static short[] data = new short[1];
|
|
||||||
|
|
||||||
|
|
||||||
public Sound(AudioInfo var1, SoundPos var2) {
|
|
||||||
this.info = var1;
|
|
||||||
this.pos = var2;
|
|
||||||
this.pitch = var2.getRotationDiff();
|
|
||||||
this.volume = var2.getDistanceSq() * var1.volume;
|
|
||||||
}
|
|
||||||
|
|
||||||
public final boolean play(int[] var1, int[] var2, int var3) {
|
|
||||||
if(data.length < var3) {
|
|
||||||
data = new short[var3];
|
|
||||||
}
|
|
||||||
|
|
||||||
int var4;
|
|
||||||
boolean var5 = (var4 = this.info.update(data, var3)) > 0;
|
|
||||||
float var6 = this.pos.getRotationDiff();
|
|
||||||
float var7 = this.pos.getDistanceSq() * this.info.volume;
|
|
||||||
int var8 = (int)((this.pitch > 0.0F?1.0F - this.pitch:1.0F) * this.volume * 65536.0F);
|
|
||||||
int var9 = (int)((this.pitch < 0.0F?1.0F + this.pitch:1.0F) * this.volume * 65536.0F);
|
|
||||||
int var10 = (int)((var6 > 0.0F?1.0F - var6:1.0F) * var7 * 65536.0F);
|
|
||||||
int var11 = (int)((var6 < 0.0F?var6 + 1.0F:1.0F) * var7 * 65536.0F);
|
|
||||||
var10 -= var8;
|
|
||||||
var11 -= var9;
|
|
||||||
int var12;
|
|
||||||
int var13;
|
|
||||||
int var14;
|
|
||||||
if(var10 == 0 && var11 == 0) {
|
|
||||||
if(var8 >= 0 || var9 != 0) {
|
|
||||||
var12 = var8;
|
|
||||||
var13 = var9;
|
|
||||||
|
|
||||||
for(var14 = 0; var14 < var4; ++var14) {
|
|
||||||
var1[var14] += data[var14] * var12 >> 16;
|
|
||||||
var2[var14] += data[var14] * var13 >> 16;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
for(var12 = 0; var12 < var4; ++var12) {
|
|
||||||
var13 = var8 + var10 * var12 / var3;
|
|
||||||
var14 = var9 + var11 * var12 / var3;
|
|
||||||
var1[var12] += data[var12] * var13 >> 16;
|
|
||||||
var2[var12] += data[var12] * var14 >> 16;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
this.pitch = var6;
|
|
||||||
this.volume = var7;
|
|
||||||
return var5;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,13 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
public class SoundData
|
|
||||||
{
|
|
||||||
public SoundData(short[] data, float length)
|
|
||||||
{
|
|
||||||
this.data = data;
|
|
||||||
this.length = length;
|
|
||||||
}
|
|
||||||
|
|
||||||
public short[] data;
|
|
||||||
public float length;
|
|
||||||
}
|
|
|
@ -1,35 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
// TODO.
|
|
||||||
public final class SoundInfo extends AudioInfo {
|
|
||||||
|
|
||||||
private SoundData data;
|
|
||||||
private float seek = 0.0F;
|
|
||||||
private float pitch;
|
|
||||||
|
|
||||||
|
|
||||||
public SoundInfo(SoundData var1, float var2, float var3) {
|
|
||||||
this.data = var1;
|
|
||||||
this.pitch = var2 * 44100.0F / var1.length;
|
|
||||||
this.volume = var3;
|
|
||||||
}
|
|
||||||
|
|
||||||
public final int update(short[] var1, int var2) {
|
|
||||||
if(this.seek >= (float)this.data.data.length) {
|
|
||||||
return 0;
|
|
||||||
} else {
|
|
||||||
for(int var3 = 0; var3 < var2; ++var3) {
|
|
||||||
int var4 = (int)this.seek;
|
|
||||||
short var5 = this.data.data[var4];
|
|
||||||
short var6 = var4 < this.data.data.length - 1?this.data.data[var4 + 1]:0;
|
|
||||||
var1[var3] = (short)((int)((float)var5 + (float)(var6 - var5) * (this.seek - (float)var4)));
|
|
||||||
this.seek += this.pitch;
|
|
||||||
if(this.seek >= (float)this.data.data.length) {
|
|
||||||
return var3;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return var2;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,96 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.net.MalformedURLException;
|
|
||||||
import java.util.*;
|
|
||||||
|
|
||||||
// TODO.
|
|
||||||
public final class SoundManager {
|
|
||||||
|
|
||||||
private SoundReader reader = new SoundReader();
|
|
||||||
public Map sounds = new HashMap();
|
|
||||||
private Map music = new HashMap();
|
|
||||||
public Random random = new Random();
|
|
||||||
public long lastMusic = System.currentTimeMillis() + 60000L;
|
|
||||||
|
|
||||||
|
|
||||||
public final AudioInfo getAudioInfo(String var1, float var2, float var3) {
|
|
||||||
List var4 = null;
|
|
||||||
Map var5 = this.sounds;
|
|
||||||
synchronized(this.sounds) {
|
|
||||||
var4 = (List)this.sounds.get(var1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var4 == null) {
|
|
||||||
return null;
|
|
||||||
} else {
|
|
||||||
SoundData var7 = (SoundData)var4.get(this.random.nextInt(var4.size()));
|
|
||||||
return new SoundInfo(var7, var3, var2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void registerSound(File var1, String var2) {
|
|
||||||
try {
|
|
||||||
for(var2 = var2.substring(0, var2.length() - 4).replaceAll("/", "."); Character.isDigit(var2.charAt(var2.length() - 1)); var2 = var2.substring(0, var2.length() - 1)) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
SoundData var7 = SoundReader.read(var1.toURI().toURL());
|
|
||||||
Map var3 = this.sounds;
|
|
||||||
synchronized(this.sounds) {
|
|
||||||
Object var4;
|
|
||||||
if((var4 = (List)this.sounds.get(var2)) == null) {
|
|
||||||
var4 = new ArrayList();
|
|
||||||
this.sounds.put(var2, var4);
|
|
||||||
}
|
|
||||||
|
|
||||||
((List)var4).add(var7);
|
|
||||||
}
|
|
||||||
} catch (Exception var6) {
|
|
||||||
var6.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public final void registerMusic(String var1, File var2) {
|
|
||||||
Map var3 = this.music;
|
|
||||||
synchronized(this.music) {
|
|
||||||
for(var1 = var1.substring(0, var1.length() - 4).replaceAll("/", "."); Character.isDigit(var1.charAt(var1.length() - 1)); var1 = var1.substring(0, var1.length() - 1)) {
|
|
||||||
;
|
|
||||||
}
|
|
||||||
|
|
||||||
Object var4;
|
|
||||||
if((var4 = (List)this.music.get(var1)) == null) {
|
|
||||||
var4 = new ArrayList();
|
|
||||||
this.music.put(var1, var4);
|
|
||||||
}
|
|
||||||
|
|
||||||
((List)var4).add(var2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean playMusic(SoundPlayer var1, String var2) {
|
|
||||||
List var3 = null;
|
|
||||||
Map var4 = this.music;
|
|
||||||
synchronized(this.music) {
|
|
||||||
var3 = (List)this.music.get(var2);
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var3 == null) {
|
|
||||||
return false;
|
|
||||||
} else {
|
|
||||||
File var8 = (File)var3.get(this.random.nextInt(var3.size()));
|
|
||||||
|
|
||||||
try {
|
|
||||||
var1.play(new Music(var1, var8.toURI().toURL()));
|
|
||||||
} catch (MalformedURLException var5) {
|
|
||||||
var5.printStackTrace();
|
|
||||||
} catch (IOException var6) {
|
|
||||||
var6.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,107 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
import com.mojang.minecraft.GameSettings;
|
|
||||||
|
|
||||||
import javax.sound.sampled.SourceDataLine;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
// TODO.
|
|
||||||
public final class SoundPlayer implements Runnable {
|
|
||||||
|
|
||||||
public boolean running = false;
|
|
||||||
public SourceDataLine dataLine;
|
|
||||||
private List audioQueue = new ArrayList();
|
|
||||||
public GameSettings settings;
|
|
||||||
|
|
||||||
|
|
||||||
public SoundPlayer(GameSettings var1) {
|
|
||||||
this.settings = var1;
|
|
||||||
}
|
|
||||||
|
|
||||||
public final void play(Audio var1) {
|
|
||||||
if(this.running) {
|
|
||||||
List var2 = this.audioQueue;
|
|
||||||
synchronized(this.audioQueue) {
|
|
||||||
this.audioQueue.add(var1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public final void play(AudioInfo var1, SoundPos var2) {
|
|
||||||
this.play(new Sound(var1, var2));
|
|
||||||
}
|
|
||||||
|
|
||||||
public final void run() {
|
|
||||||
int[] var1 = new int[4410];
|
|
||||||
int[] var2 = new int[4410];
|
|
||||||
|
|
||||||
for(byte[] var3 = new byte[17640]; this.running; this.dataLine.write(var3, 0, 17640)) {
|
|
||||||
try {
|
|
||||||
Thread.sleep(1L);
|
|
||||||
} catch (InterruptedException var10) {
|
|
||||||
var10.printStackTrace();
|
|
||||||
}
|
|
||||||
|
|
||||||
Arrays.fill(var1, 0, 4410, 0);
|
|
||||||
Arrays.fill(var2, 0, 4410, 0);
|
|
||||||
boolean var4 = true;
|
|
||||||
int[] var5 = var2;
|
|
||||||
int[] var6 = var1;
|
|
||||||
List var12 = this.audioQueue;
|
|
||||||
List var7 = this.audioQueue;
|
|
||||||
synchronized(this.audioQueue) {
|
|
||||||
int var8 = 0;
|
|
||||||
|
|
||||||
while(true) {
|
|
||||||
if(var8 >= var12.size()) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!((Audio)var12.get(var8)).play(var6, var5, 4410)) {
|
|
||||||
var12.remove(var8--);
|
|
||||||
}
|
|
||||||
|
|
||||||
++var8;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int var13;
|
|
||||||
if(!this.settings.music && !this.settings.sound) {
|
|
||||||
for(var13 = 0; var13 < 4410; ++var13) {
|
|
||||||
var3[var13 << 2] = 0;
|
|
||||||
var3[(var13 << 2) + 1] = 0;
|
|
||||||
var3[(var13 << 2) + 2] = 0;
|
|
||||||
var3[(var13 << 2) + 3] = 0;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
for(var13 = 0; var13 < 4410; ++var13) {
|
|
||||||
int var15 = var1[var13];
|
|
||||||
int var14 = var2[var13];
|
|
||||||
if(var15 < -32000) {
|
|
||||||
var15 = -32000;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var14 < -32000) {
|
|
||||||
var14 = -32000;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var15 >= 32000) {
|
|
||||||
var15 = 32000;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var14 >= 32000) {
|
|
||||||
var14 = 32000;
|
|
||||||
}
|
|
||||||
|
|
||||||
var3[var13 << 2] = (byte)(var15 >> 8);
|
|
||||||
var3[(var13 << 2) + 1] = (byte)var15;
|
|
||||||
var3[(var13 << 2) + 2] = (byte)(var14 >> 8);
|
|
||||||
var3[(var13 << 2) + 3] = (byte)var14;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,8 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
public interface SoundPos
|
|
||||||
{
|
|
||||||
float getRotationDiff();
|
|
||||||
|
|
||||||
float getDistanceSq();
|
|
||||||
}
|
|
|
@ -1,89 +0,0 @@
|
||||||
package com.mojang.minecraft.sound;
|
|
||||||
|
|
||||||
import de.jarnbjo.ogg.LogicalOggStreamImpl;
|
|
||||||
import de.jarnbjo.ogg.OggFormatException;
|
|
||||||
import de.jarnbjo.ogg.OnDemandUrlStream;
|
|
||||||
import de.jarnbjo.vorbis.IdentificationHeader;
|
|
||||||
import de.jarnbjo.vorbis.VorbisFormatException;
|
|
||||||
import de.jarnbjo.vorbis.VorbisStream;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.net.URL;
|
|
||||||
|
|
||||||
// TODO.
|
|
||||||
public final class SoundReader {
|
|
||||||
|
|
||||||
public static SoundData read(URL var0) {
|
|
||||||
VorbisStream var12 = null;
|
|
||||||
try
|
|
||||||
{
|
|
||||||
LogicalOggStreamImpl var11 = (LogicalOggStreamImpl)(new OnDemandUrlStream(var0)).getLogicalStreams().iterator().next();
|
|
||||||
var12 = new VorbisStream(var11);
|
|
||||||
} catch (VorbisFormatException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (OggFormatException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
} catch (IOException e) {
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
byte[] var2 = new byte[4096];
|
|
||||||
int var3 = 0;
|
|
||||||
boolean var1 = false;
|
|
||||||
IdentificationHeader var14 = var12.getIdentificationHeader();
|
|
||||||
int var4 = var12.getIdentificationHeader().getChannels();
|
|
||||||
short[] var5 = new short[4096];
|
|
||||||
int var6 = 0;
|
|
||||||
|
|
||||||
label51:
|
|
||||||
while(var3 >= 0) {
|
|
||||||
int var15 = 0;
|
|
||||||
|
|
||||||
while(true) {
|
|
||||||
try {
|
|
||||||
if(var15 < var2.length && (var3 = var12.readPcm(var2, var15, var2.length - var15)) > 0) {
|
|
||||||
var15 += var3;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
} catch (Exception var10) {
|
|
||||||
var3 = -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var15 <= 0) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
boolean var7 = false;
|
|
||||||
int var16 = 0;
|
|
||||||
|
|
||||||
while(true) {
|
|
||||||
if(var16 >= var15) {
|
|
||||||
continue label51;
|
|
||||||
}
|
|
||||||
|
|
||||||
int var8 = 0;
|
|
||||||
|
|
||||||
for(int var9 = 0; var9 < var4; ++var9) {
|
|
||||||
var8 += var2[var16++] << 8 | var2[var16++] & 255;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var6 == var5.length) {
|
|
||||||
short[] var18 = var5;
|
|
||||||
var5 = new short[var5.length << 1];
|
|
||||||
System.arraycopy(var18, 0, var5, 0, var6);
|
|
||||||
}
|
|
||||||
|
|
||||||
var5[var6++] = (short)(var8 / var4);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if(var6 != var5.length) {
|
|
||||||
short[] var17 = var5;
|
|
||||||
var5 = new short[var6];
|
|
||||||
System.arraycopy(var17, 0, var5, 0, var6);
|
|
||||||
}
|
|
||||||
|
|
||||||
IdentificationHeader var13;
|
|
||||||
return new SoundData(var5, (float)(var13 = var12.getIdentificationHeader()).getSampleRate());
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user