Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import com.nolimitscoaster.*;
- import nlvm.math3d.*;
- public class Speaker11 extends Script implements TrackTriggerListener {
- private static final float xOffset = 0;
- private static final float yOffset = 0;
- private static final float zOffset = 1.1f;
- private static final int carToAttach = 0;
- private static final int trainToAttach = 0;
- private Coaster coaster;
- private Train train;
- private SceneObject sco;
- private Vector3f posOut = new Vector3f(0, 0, 0);
- private Vector3f pitchHeadBankOut = new Vector3f(0, 0, 0);
- private Matrix4x4f carMatrix = new Matrix4x4f();
- private TrackTrigger musicDispatchTrigger;
- private TrackTrigger musicLaunchFrontTrigger;
- private TrackTrigger musicLaunchBackwardsTrigger;
- private TrackTrigger musicLaunchResetTrigger;
- private bool launchFront = false;
- private bool launchBackwards = false;
- private bool launchReady = false;
- private static final String nameLaunchIdleAudio = "onboard10.ogg";
- private static final String nameDispatchAudio = "onboard11.ogg";
- private static final String nameTrackAudio = "onboard12.ogg";
- private float volume = 20.0f;
- private float distance = 5.0f;
- private StaticSound dispatchSound;
- private StaticSound trackSound;
- private StaticSound idleSound;
- public bool onInit() {
- coaster = sim.getCoaster("Rock n Roller Coaster");
- if (coaster == null) {
- System.err.println("Speakers: Coaster not found.");
- return false;
- }
- sco = sim.getSceneObjectForEntityId(getParentEntityId());
- if (sco == null) {
- System.err.println("Speakers: Object not found.");
- return false;
- }
- train = coaster.getTrainAt(trainToAttach);
- if (train == null) {
- System.err.println("Speakers: Train not found.");
- return false;
- }
- musicDispatchTrigger = coaster.getTrackTrigger("MusicDispatch");
- if (musicDispatchTrigger == null) {
- System.err.println("Speakers: Trigger not found.");
- return false;
- }
- musicDispatchTrigger.addTrackTriggerListener(this);
- musicLaunchFrontTrigger = coaster.getTrackTrigger("MusicLaunchFront");
- if (musicLaunchFrontTrigger == null) {
- System.err.println("Speakers: Trigger not found.");
- return false;
- }
- musicLaunchFrontTrigger.addTrackTriggerListener(this);
- musicLaunchBackwardsTrigger = coaster.getTrackTrigger("MusicLaunchBackwards");
- if (musicLaunchBackwardsTrigger == null) {
- System.err.println("Speakers: Trigger not found.");
- return false;
- }
- musicLaunchBackwardsTrigger.addTrackTriggerListener(this);
- musicLaunchResetTrigger = coaster.getTrackTrigger("MusicLaunchReset");
- if (musicLaunchResetTrigger == null) {
- System.err.println("Speakers: Trigger not found.");
- return false;
- }
- musicLaunchResetTrigger.addTrackTriggerListener(this);
- dispatchSound = StaticSound.loadFromFile(nameDispatchAudio, 0);
- if (dispatchSound == null) {
- System.err.println("Speakers: File not found.");
- return false;
- }
- dispatchSound.setGain(volume);
- dispatchSound.setDistanceParameters(distance, 1.0f);
- trackSound = StaticSound.loadFromFile(nameTrackAudio, 0);
- if (dispatchSound == null) {
- System.err.println("Speakers: File not found.");
- return false;
- }
- trackSound.setGain(volume);
- trackSound.setDistanceParameters(distance, 1.0f);
- idleSound = StaticSound.loadFromFile(nameLaunchIdleAudio, 0);
- if (idleSound == null) {
- System.err.println("Speakers: File not found.");
- return false;
- }
- idleSound.setGain(volume);
- idleSound.setDistanceParameters(distance, 1.0f);
- setElements(sco, false);
- return true;
- }
- public void onNextFrame(float tick) {
- train.getCarMatrix(carToAttach, carMatrix);
- Tools.matrixToPitchHeadBankPos(carMatrix, pitchHeadBankOut, posOut);
- Matrix4x4f matrix = new Matrix4x4f();
- matrix.initTrans(xOffset, yOffset, zOffset);
- carMatrix.multRight(matrix);
- Tools.matrixToPitchHeadBankPos(carMatrix, pitchHeadBankOut, posOut);
- sco.setRotation(pitchHeadBankOut);
- sco.setTranslation(posOut);
- dispatchSound.setPosition(sco.getTranslation());
- trackSound.setPosition(sco.getTranslation());
- idleSound.setPosition(sco.getTranslation());
- }
- public void setElements(SceneObject sco, bool visible) {
- int n = sco.getElementCount();
- for (int i = n - 1; i >= 0; i--) {
- sco.getElementAt(i).setVisible(visible);
- }
- }
- public void playDispatch() {
- dispatchSound.play();
- }
- public void playIdleSound() {
- idleSound.play();
- }
- public void playTrackSound() {
- idleSound.stop();
- trackSound.play();
- }
- public void onTrainEntering(TrackTrigger trigger, Train trainTrig) {
- if ((trigger == musicDispatchTrigger) && (trainTrig == train)) {
- playDispatch();
- } else if ((trigger == musicLaunchBackwardsTrigger) && (launchFront) && (trainTrig == train)) {
- playTrackSound();
- launchBackwards = true;
- launchReady = true;
- } else if ((trigger == musicLaunchFrontTrigger) && (trainTrig == train)) {
- playIdleSound();
- launchFront = true;
- } else if ((trigger == musicLaunchResetTrigger) && (trainTrig == train)) {
- launchFront = false;
- launchBackwards = false;
- launchReady = false;
- }
- }
- public void onTrainLeaving(TrackTrigger trigger, Train trainTrig) {
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement