4dad9e5d5b
- BeatSageUploader: audio_url 지원(UploadFromUrl), PollAndDownload 공통화, ZIP 500 오류 3회 재시도 - BeatSageConverter: info.dat 파싱(SongMetadata), BPM 자동 감지 → 노트 타이밍 변환에 적용 - SongCreatorManager: title/BPM 필수 입력 제거, 난이도 4개 자동 선택, GenerateFlowFromUrl 버그 수정 - NasPublisher: audioPath null 허용(URL 흐름에서 로컬 파일 없는 경우 스킵) - .gitignore/.gitattributes 초기 설정 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
68 lines
1.3 KiB
C#
68 lines
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
[Serializable]
|
|
public class NoteData
|
|
{
|
|
public float time;
|
|
public int position; // column 0-3
|
|
public int lineLayer; // row 0-2
|
|
public int colorType; // 0=red, 1=blue
|
|
public int cutDirection; // 0-8 (see Beat Saber spec)
|
|
}
|
|
|
|
[Serializable]
|
|
public class MapData
|
|
{
|
|
public List<NoteData> target;
|
|
}
|
|
|
|
[Serializable]
|
|
public class SongsList
|
|
{
|
|
public string version;
|
|
public List<SongInfo> songs;
|
|
}
|
|
|
|
[Serializable]
|
|
public class SongInfo
|
|
{
|
|
public string id;
|
|
public string title;
|
|
public string artist;
|
|
public float bpm;
|
|
public int duration;
|
|
public string audioFile;
|
|
public long audioSize;
|
|
public string coverImage;
|
|
public DifficultyMap difficulties;
|
|
public string addedAt;
|
|
}
|
|
|
|
[Serializable]
|
|
public class DifficultyMap
|
|
{
|
|
public DifficultyInfo normal;
|
|
public DifficultyInfo hard;
|
|
public DifficultyInfo expert;
|
|
public DifficultyInfo expertplus;
|
|
|
|
public DifficultyInfo Get(string key) => key switch
|
|
{
|
|
"normal" => normal,
|
|
"hard" => hard,
|
|
"expert" => expert,
|
|
"expertplus" => expertplus,
|
|
_ => null
|
|
};
|
|
}
|
|
|
|
[Serializable]
|
|
public class DifficultyInfo
|
|
{
|
|
public string mapFile;
|
|
public long mapSize;
|
|
public int noteCount;
|
|
}
|