public void Do(LoopObject.Do d, int i)
 {
     lock (locker)
     {
         d(i);
     }
 }
Ejemplo n.º 2
0
    /// <summary>
    /// Douplicate chordObjects and loopObjects onLoopObjectFieldEnter
    /// </summary>
    /// <param name="loopObject"></param>
    private void OnLoopObjFieldEnter(LoopObject loopObject)
    {
        // 1. CHORD OBJECT?
        if (loopObject is ChordObject)
        {
            var chordObject  = (ChordObject)loopObject;
            var chordObjects = Recorder.inst.chordObjects[chordObject.trackLayer];

            // Instantiate
            if (!chordObject.hasRespawned)
            {
                RecordVisuals.inst.DouplicateChordObject(chordObject, chordObjects);
            }

            // Active records
            Player.inst.curFieldSet[chordObject.fieldID].ActiveRecords++;
        }

        // 2. LOOP OBJECT?
        else
        {
            if (!loopObject.hasRespawned)
            {
                RecordVisuals.inst.DouplicateLoopObject(loopObject, Recorder.inst.loopObjects);
                loopObject.hasRespawned = true;
            }
        }
    }
Ejemplo n.º 3
0
    private void OnLoopObjFieldExit(LoopObject loopObject)
    {
        // CHORD OBJECT
        if (loopObject is ChordObject)
        {
            var chordObject = (ChordObject)loopObject;

            // Active records
            Player.inst.curFieldSet[chordObject.fieldID].ActiveRecords--;
        }
    }
Ejemplo n.º 4
0
    public LoopObject DouplicateLoopObject(LoopObject loopObject, List <LoopObject> addToList)
    {
        // 1. Change existing object
        loopObject.hasRespawned = true;

        // 2. Refs
        var obj      = MeshRef.inst.loopObject;
        var parent   = MeshRef.inst.recordObj_parent;
        var position = Recorder.inst.NextLoopPosition(Recorder.inst.sequencers[0], loopObject.loopStart);



        // 3. Instantiate
        var newObj = LoopObject.Create(obj, parent, position, loopObject.loopStart, loopObject.loopEnd_extended, addToList);

        return(newObj);
    }
Ejemplo n.º 5
0
    // ------------------------------ Private functions ------------------------------


    // Recording

    /// <summary>
    /// Save data of currently one recording chord to the RECORDING-variable (start time, notes, fieldID, sequencer, quantizeOffset).
    /// </summary>
    private void SaveRecordStartData()
    {
        float sequencerPos = (float) CurSequencer.GetSequencerPosition();

        // 1. Start & quantize offset
        if (MusicManager.inst.quantize)
        {
            float quantize = Quantize(sequencerPos);
            recording.start = quantize;

            // hack für sequencerPos bei sequencer.length: quantize 0 oder 32 (sequencer.length)
            if (quantize == 0 && sequencerPos > CurSequencer.length / 2)
            {
                quantize = CurSequencer.length;
            }

            recording.startQuantizeOffset = quantize - sequencerPos;
        }
        else
        {
            recording.start = sequencerPos;
            recording.startQuantizeOffset = 0;
        }

        // 2. End, notes, ID, sequencer
        recording.notes = MusicManager.inst.curChord.DeepCopy().notes;
        recording.fieldID = Player.inst.curField.ID;
        recording.sequencer = CurSequencer;
        recording.isRunning = true;



        // 3. LoopStart object?
        if (!Has1stRecord)
        {
            loopStart = recording.start;
            loopEnd_extended = loopStart + CurSequencer.length;

            var obj = MeshRef.inst.loopObject;
            var parent = MeshRef.inst.recordObj_parent;
            var position = Player.inst.transform.position;

            LoopObject.Create(obj, parent, position, loopStart, loopEnd_extended, loopObjects);
        }
    }
Ejemplo n.º 6
0
    private void OnRecObjScreenExit(LoopObject loopObject)
    {
        // 1. CHORD OBJECT?
        if (loopObject is ChordObject)
        {
            var chordObject = (ChordObject)loopObject;

            // Destroy
            Recorder.inst.chordObjects[chordObject.trackLayer].Remove(chordObject);
            Destroy(loopObject.obj);
        }

        // 2. LOOP OBJECT?
        else
        {
            Recorder.inst.loopObjects.Remove(loopObject);
            Destroy(loopObject.obj);
        }
    }