feat: NeoForge client support and cross-platform client test framework#46
Merged
Conversation
- Add NeoForge build config and Stonecutter loader parameter switching - Abstract Fabric/NeoForge fluid APIs (FluidVariant/FluidStack) with platform types - Implement NeoForge block registration, capabilities, and network payloads - Fix game tests for cross-loader compatibility (setItemInHand, isSameFluid, FLUID_BUCKET) - Fix NeoForge client @SubscribeEvent static method crash (remove @JvmStatic, add Bus.MOD) - Handle UnsupportedOperationException for mock player payload in game tests - Update flake.nix vcsVersion guard for multi-loader version format
…t rendering - Implement coroutine-based client test runner (FabPose-inspired) that works on both Fabric and NeoForge via Stonecutter conditionals - Port all 10 client tests from Fabric-only clientGametest to shared clienttest - Fix NeoForge atlas lookup crash (AtlasIds.BLOCKS vs TextureAtlas.LOCATION_BLOCKS) - Add render_type:cutout to model JSONs for NeoForge tank transparency - Add Xvfb display race condition fix (FileLock) for parallel CI runs - Add PulseAudio SIGABRT workaround (LD_PRELOAD stub) for headless environments - Add Mixins for unfocused pause prevention and narrator suppression - Handle API differences across MC versions (GameRules, Window, KeyboardHandler)
…nshot flush wait, mixin require)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Changes
NeoForge サーバーサイド修正 (f5dbe50)
placeTank()にsetItemInHand追加 (UseOnContext がプレイヤーの手からアイテムを取得するため)FluidStoragePersistentStateでdistinct()→isSameFluid()に変更 (NeoForge の FluidStack.equals() は量も比較するため)splitUnevenFluidDistributionテストの Fabric 固有ハードコード値をFLUID_BUCKETベースに変更ConfigSyncPayloadで mock player への payload 送信時の例外ハンドリング追加NeoForge クライアント修正 (2031870)
@EventBusSubscriberからbus = EventBusSubscriber.Bus.MODを削除 (NeoForge FML 10.0.36 では未サポート)AtlasManagerの atlas lookup をAtlasIds.BLOCKSキーに修正 (crash fix)render_type: minecraft:cutoutを追加 (NeoForge でのタンク透明描画)build.neoforge.gradle.ktsにresources.srcDir("src/main/generated")追加クロスプラットフォーム クライアントテストフレームワーク (2031870)
clientGametest(FabricClientGameTest API) から共通のclienttestソースセットに全10テストを移植Test Results
Known Issues
spotlessKotlinCheckに1件の既存 lint エラー (ConnectedTank.kt:L19, Stonecutter ブロックコメント折り返し)