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>
57 lines
1.0 KiB
C#
57 lines
1.0 KiB
C#
using System.Collections.Generic;
|
|
|
|
namespace VRSDK.Collections
|
|
{
|
|
public class Buffer<T>
|
|
{
|
|
private List<T> elements;
|
|
private int size;
|
|
|
|
public T this[int index]
|
|
{
|
|
get
|
|
{
|
|
return elements[index];
|
|
}
|
|
|
|
set
|
|
{
|
|
elements[index] = value;
|
|
}
|
|
}
|
|
|
|
public int Count { get { return elements.Count; } }
|
|
|
|
public Buffer(int size)
|
|
{
|
|
this.size = size;
|
|
elements = new List<T>( size );
|
|
}
|
|
|
|
public void Add(T item)
|
|
{
|
|
elements.Add( item );
|
|
|
|
if (elements.Count > size)
|
|
{
|
|
elements.RemoveAt( 0 );
|
|
}
|
|
}
|
|
|
|
public void Remove(T item)
|
|
{
|
|
elements.Remove( item );
|
|
}
|
|
|
|
public List<T> Sample(int size)
|
|
{
|
|
if (size > elements.Count)
|
|
return elements;
|
|
|
|
return elements.GetRange(elements.Count - size , size);
|
|
}
|
|
}
|
|
|
|
}
|
|
|