Skip to content

feat: Add tank tier upgrade system#24

Open
turtton wants to merge 5 commits intomainfrom
feat/5
Open

feat: Add tank tier upgrade system#24
turtton wants to merge 5 commits intomainfrom
feat/5

Conversation

@turtton
Copy link
Owner

@turtton turtton commented Mar 12, 2026

Summary

  • 8 段階のタンクティア (BASE → WOOD → STONE → COPPER → IRON → GOLD → DIAMOND → NETHERITE) を追加
  • 素材に応じた容量倍率 (x1〜x16) でタンクをアップグレード可能に
  • 異なるティアのタンク同士も接続可能で、グループ容量は各ブロックの容量の合計
  • カスタムレシピ (connectedtank:tank_upgrade) で液体データ (TANK_FLUID コンポーネント) を入力から出力に引き継ぎ
  • ティア倍率はコンフィグで変更可能 (ネットワーク同期対応)

Closes #5

Test plan

  • ./gradlew spotlessCheck — フォーマットチェック通過
  • ./gradlew build — コンパイル・全 24 テスト通過
  • ./gradlew runDatagen — 全ティアのレシピ・モデル・アドバンスメント JSON 生成確認
  • ./gradlew runClient で手動確認:
    • 各ティアのタンクがクラフトできる
    • 液体入りタンクをアップグレードしたとき液体が引き継がれる
    • 異なるティアのタンクが接続し、グループ容量が各ブロックの合計になる
    • タンクグループの分断時に正しく液体が分配される
    • レンダラーが異なるティア間で正しく液体を描画する

turtton added 5 commits March 12, 2026 13:38
TankTier enum (BASE〜NETHERITE) を追加し、素材に応じた容量倍率でタンクをアップグレード可能にした。

主な変更:
- TankTier enum: 8段階のティア定義 (x1〜x16 倍率)
- ConnectedTankBlock: tier パラメータ追加、異なるティア間の接続対応
- CTBlocks/CTItems: 全8ティアのブロック・アイテム登録
- FluidStoragePersistentState: ティア別容量計算 (ワールドのブロック状態から動的に取得)
- TankUpgradeRecipe: ShapedRecipe ラッパー方式のカスタムレシピ (TANK_FLUID コンポーネント引き継ぎ)
- CTServerConfig: tierMultipliers マップ追加 (コンフィグで倍率変更可能)
- ConfigSyncPayload: ティア倍率のネットワーク同期
- データ生成: 全ティアのモデル・レシピ・アドバンスメント生成
- GameTest: ティア別容量・異ティア接続・分断時再計算テスト追加
バニラのネザライトアップグレードと同様に、鍛冶台でのレシピに変更。
テンプレート: ネザライトアップグレード鍛冶型、ベース: ダイヤモンドタンク、追加素材: ネザライトインゴット。
SmithingTransformRecipe の copyComponentsToNewStack により液体データは自動保持される。
手動管理の lang ファイルを FabricLanguageProvider による datagen に移行。
タンク名から "Connected" を削除してシンプルに変更。
BlockItem のデフォルトの翻訳キーが item. プレフィックスだったため、
ブロックの翻訳が適用されていなかった。
useBlockPrefixedTranslationKey() を使用して block. プレフィックスに修正。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrades

1 participant