osu!mania (.

0Fields
1Constructors
4Methods
193Lines
Package
com.example.rankingplugin.rhythm.osu
Source
rhythm/osu/OsuManiaParser.java
Kind
class
Roles
自動抽出なし
このクラスにも章立て解説を追加しています。 自動抽出の一覧だけでなく、下の『重点クラスの詳細解説』で読む順番・内部サブシステム・変更時の注意点まで追えます。 全クラス章立てガイドを見る

クラス説明

osu!mania (.osu) v14 対応の簡易パーサ
- Mode=3(Mania) 以外は弾きます
- CS(=列数) を見るが、ゲーム側は4K固定なので4列にマップ
- TimingPoints(負のmsPerBeat=SV)は無視:HitObjectsは絶対msなのでそのまま使用
- LongNote(typeに128bitが立つ)は endTime を解釈

想定マッピング(4K):
  column = clamp( floor(x * columns / 512), 0, columns-1 )
- osuのXは0..512スケール、4Kの典型的X: 64,192,320,448 など

責務と見どころ

重点クラスの詳細解説

osu!mania (.。rhythm.osu パッケージの 小〜中規模クラスで、責務境界の要点を確認する起点です。全面展開版では、他の重点クラスと同じ章立てで読めるように補強しています。

最初に追う読む順番

  1. OsuManiaParser
    依存オブジェクトと初期状態を束ね、このクラスが担当するランタイムの前提を固めます。
  2. parse
    .
  3. mapXToColumn
    mapXToColumn の主要処理を担当します。
  4. tryReadAll
    tryReadAll の主要処理を担当します。

内部サブシステムの地図

起動・前提準備

初期テーブル、依存状態、定期処理の点灯など、このクラスが動き始める前提をまとめています。

主なメソッド
主なフィールド
なし

代表フロー詳解

初期化と起動の流れ

  1. OsuManiaParser

このクラスが前提状態を揃え、外部から利用可能な形まで立ち上がる流れです。新規依存の追加や起動失敗の調査はまずここから追います。

通常運用の中心フロー

  1. OsuManiaParser
  2. parse
  3. mapXToColumn
  4. tryReadAll

イベント受理、判定、状態更新、通知までの主経路です。体感不具合や想定外の分岐はこの流れのどこで止まるかを見ると切り分けやすいです。

反映・保存・終了の流れ

  1. OsuManiaParser
  2. parse
  3. mapXToColumn
  4. tryReadAll

結果を保持し、必要なら永続化し、最後に掃除まで行う出口です。画面更新だけ合って保存が壊れるケースや残骸が残るケースの確認に向きます。

変更時の注意点

フィールド

VisibilityTypeName役割
フィールドは抽出されませんでした。

コンストラクタ / 初期化

Signature説明主要呼び出し
private OsuManiaParser()依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。主要呼び出しなし

メソッド索引

NameVisibilityKind説明
parsepublicメソッド.
mapXToColumnprivateメソッドmapXToColumn の主要処理を担当します。
tryReadAllprivateメソッドtryReadAll の主要処理を担当します。
OsuManiaParserprivateコンストラクタ依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。

メソッド詳細

parse

メソッドpublicstatic
public static ManiaChart parse(File osuFile) throws Exception

.

引数

throws

Exception

主要な呼び出し順

existsgetAbsolutePathtryReadAllforNameisEmptytrimtoLowerCasestartsWith

mapXToColumn

メソッドprivatestatic
private static int mapXToColumn(int x, int columns)

mapXToColumn の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

floor

tryReadAll

メソッドprivatestatic
private static List<String> tryReadAll(File f, Charset cs)

tryReadAll の主要処理を担当します。

引数

throws

なし

主要な呼び出し順

readLine

OsuManiaParser

コンストラクタprivate
private OsuManiaParser()

依存オブジェクトや初期状態を受け取り、このクラスの動作を開始できる状態へ組み立てます。

引数

throws

なし

主要な呼び出し順

目立つ内部呼び出しは抽出されませんでした。

代表的な処理フロー

  1. parse フロー
    parse → exists → getAbsolutePath → tryReadAll → forName → isEmpty
    .
  2. mapXToColumn フロー
    mapXToColumn → floor
    mapXToColumn の主要処理を担当します。
  3. tryReadAll フロー
    tryReadAll → readLine
    tryReadAll の主要処理を担当します。

外部との接点

Web ルート

このクラス内に目立つ Web ルート定義は見つかりませんでした。

SQL / テーブル

テーブル名の抽出はありませんでした。

関連クラス

補足