예제 #1
0
 public void SetPrevLineID(TGridID id)
 {
     if (id > prevLineID)
     {
         prevLineID = id;
     }
 }
예제 #2
0
 public void ResetStage()
 {
     ClearStage();
     for (prevNoteID = 0; prevNoteID < chart.notes.Count; prevNoteID++)
     {
         if (chart.notes[prevNoteID].time > timeSlider.value)
         {
             break;
         }
     }
     prevNoteID--;
     for (returnNoteID = prevNoteID; returnNoteID >= 0; returnNoteID--)
     {
         if (chart.notes[returnNoteID].time + Parameters.noteReturnTime <= timeSlider.value)
         {
             break;
         }
     }
     for (prevLineID = new TGridID(0, 0, editor.tGrid); prevLineID <= new TGridID(chart.beats.Count - 1, 0, editor.tGrid); prevLineID++)
     {
         if (TGridTime(prevLineID) > timeSlider.value)
         {
             break;
         }
     }
     prevLineID--;
     PlaceNewObjects();
 }
예제 #3
0
    private TGridController InitTGridObject(TGridID id)
    {
        TGridController tGrid;

        tGrid = tGridPool.GetObject();
        tGrids.Add(tGrid);
        tGrid.grid.SetActive(true);
        tGrid.Activate(id, TGridTime(id), this);
        return(tGrid);
    }
예제 #4
0
    public static TGridID operator --(TGridID cur)
    {
        TGridID res = new TGridID(cur.id, cur.sub - 1, cur.maxSub);

        if (res.sub < 0)
        {
            res.id--; res.sub += res.maxSub;
        }
        return(res);
    }
예제 #5
0
    public static TGridID operator ++(TGridID cur)
    {
        TGridID res = new TGridID(cur.id, cur.sub + 1, cur.maxSub);

        if (res.sub >= res.maxSub)
        {
            res.id++; res.sub -= res.maxSub;
        }
        return(res);
    }
예제 #6
0
    private float TGridTime(TGridID id)
    {
        float curLineTime, dTime = 0.0f;

        curLineTime = chart.beats[id.id];
        if (id.sub != 0)
        {
            dTime        = chart.beats[id.id + 1] - curLineTime;
            curLineTime += dTime / editor.tGrid * id.sub;
        }
        return(curLineTime);
    }
예제 #7
0
 public void ClearStage()
 {
     while (notes.Count > 0)
     {
         notes[0].ForceReturn();
     }
     while (tGrids.Count > 0)
     {
         tGrids[0].ForceReturn();
     }
     prevNoteID   = -1;
     returnNoteID = -1;
     prevLineID   = new TGridID(0, -1, editor.tGrid);
 }
예제 #8
0
 public void Activate(TGridID lineID, float lineTime, StageController stageController)
 {
     id      = lineID;
     curTime = lineTime;
     stage   = stageController;
     if (id.sub == 0)
     {
         grid.Color           = new Color(0.5f, 0.0f, 0.0f);
         grid.AlphaMultiplier = 1.0f;
     }
     else
     {
         grid.Color           = new Color(42 / 255.0f, 42 / 255.0f, 42 / 255.0f);
         grid.AlphaMultiplier = 0.75f;
     }
     Update();
 }