package mods.eln.sound; import java.util.ArrayList; public class SoundTrack { String track; double trackLength; float volume = 1, pitch = 1; float rangeNominal, rangeMax, blockFactor; ArrayList<Integer> uuid = new ArrayList<Integer>(); enum Range {Small, Mid, Far} public SoundTrack() { } public SoundTrack(String track) { this.track = track; mediumRange(); } public SoundTrack(String track, double trackLength) { this.track = track; this.trackLength = trackLength; mediumRange(); } public SoundTrack copy() { SoundTrack c = new SoundTrack(); c.track = track; c.trackLength = trackLength; c.volume = volume; c.pitch = pitch; c.rangeNominal = rangeNominal; c.rangeMax = rangeMax; c.blockFactor = blockFactor; c.uuid = (ArrayList<Integer>) uuid.clone(); return c; } void applyRange(Range range) { switch (range) { case Small: smallRange(); break; case Far: longRange(); break; case Mid: default: mediumRange(); break; } } public SoundTrack mediumRange() { rangeNominal = 4; rangeMax = 16; blockFactor = 1; return this; } public SoundTrack smallRange() { rangeNominal = 2; rangeMax = 8; blockFactor = 3; return this; } public SoundTrack longRange() { rangeNominal = 8; rangeMax = 48; blockFactor = 0.5f; return this; } public SoundTrack setVolume(float volume, float pitch) { this.volume = volume; this.pitch = pitch; return this; } public SoundTrack addUuid(int uuid) { this.uuid.add(uuid); return this; } }