开启辅助访问     
收藏本站

站内搜索

搜索

Minecraft(我的世界)苦力怕论坛

[游戏相关] [Java Neoforge 模组开发] (Neoforge 21.5.79;Minecraft 1.21.5) 渲染自定义流体时游戏因找不到贴...

 发表于 2025-7-17 20:08:44|显示全部楼层|阅读模式 IP:广东省
500铁粒
本帖最后由 Xiaosu222 于 2025-7-18 10:47 编辑

我按照教程写了 FluidType、Fluid的注册:

[code=java]// Fluid Types
public static final DeferredRegister<FluidType> FLUID_TYPES = DeferredRegister.create(NeoForgeRegistries.Keys.FLUID_TYPES, MOD_ID);
public static final Supplier<FluidType> RICE_PULP_FLUID_TYPE = FLUID_TYPES.register("rice_pulp", RicePulpFluidType::new);

// Blocks
public static final DeferredRegister<Block> BLOCKS = DeferredRegister.createBlocks(MOD_ID);
public static final Supplier<LiquidBlock> RICE_PULP_BLOCK = BLOCKS.register("rice_pulp_block", (r) -> new LiquidBlock(Register.RICE_PULP_SOURCE_FLUID_BLOCK.get(), BlockBehaviour.Properties.ofFullCopy(Blocks.WATER).setId(ResourceKey.create(Registries.BLOCK, r))));

// Items
public static final DeferredRegister<Item> ITEMS = DeferredRegister.createItems(MOD_ID);
public static final Supplier<Item> RICE_PULP_BUCKET = ITEMS.register("rice_pulp_bucket", (r) -> new BucketItem(Register.RICE_PULP_SOURCE_FLUID_BLOCK.get(),new Item.Properties().setId(ResourceKey.create(Registries.ITEM, r)).craftRemainder(Items.BUCKET).stacksTo(1)));

// Fluids
public static final DeferredRegister<Fluid> FLUIDS = DeferredRegister.create(Registries.FLUID, MOD_ID);
public static Supplier<FlowingFluid> RICE_PULP_SOURCE_FLUID_BLOCK = FLUIDS.register("rice_pulp", () -> new BaseFlowingFluid.Source(Register.RICE_PULP_FLUID_PROPERTIES));
public static Supplier<FlowingFluid> RICE_PULP_FLOWING_FLUID_BLOCK = FLUIDS.register("rice_pulp_flow", () -> new BaseFlowingFluid.Flowing(Register.RICE_PULP_FLUID_PROPERTIES));
private static final BaseFlowingFluid.Properties RICE_PULP_FLUID_PROPERTIES = new BaseFlowingFluid.Properties(RicePulpFluidType::new, RICE_PULP_SOURCE_FLUID_BLOCK, RICE_PULP_FLOWING_FLUID_BLOCK).bucket(RICE_PULP_BUCKET).slopeFindDistance(2).levelDecreasePerBlock(2).block(RICE_PULP_BLOCK);</p>[/code]
RicePulpFluidType.java:

[code=java]<p>public class RicePulpFluidType extends FluidType {
    public RicePulpFluidType() {
        super(Properties.create().descriptionId("block.shanwei_seafood.rice_pulp").fallDistanceModifier(0.0F).canExtinguish(true).canConvertToSource(true).supportsBoating(true).sound(SoundActions.BUCKET_FILL, SoundEvents.BUCKET_FILL).sound(SoundActions.BUCKET_EMPTY, SoundEvents.BUCKET_EMPTY).sound(SoundActions.FLUID_VAPORIZE, SoundEvents.FIRE_EXTINGUISH).canHydrate(true).addDripstoneDripping(0.17578125F, ParticleTypes.DRIPPING_DRIPSTONE_WATER, Blocks.WATER_CAULDRON, SoundEvents.POINTED_DRIPSTONE_DRIP_WATER_INTO_CAULDRON));
    }
}[/code]
然后我实现了一个IClientFluidTypeExtensions,在模组的 Client 入口类与这个 FluidType 绑定:

[code=java]
public class RicePulpFluidTypeExtensions implements IClientFluidTypeExtensions {
    private static final ResourceLocation UNDERWATER_LOCATION = ResourceLocation.withDefaultNamespace("textures/misc/underwater.png");
    private static final ResourceLocation WATER_STILL = ResourceLocation.withDefaultNamespace("block/water_still.png");
    private static final ResourceLocation WATER_FLOW = ResourceLocation.withDefaultNamespace("block/water_flow.png");
    private static final ResourceLocation WATER_OVERLAY = ResourceLocation.withDefaultNamespace("block/water_overlay.png");

    public @NotNull ResourceLocation getStillTexture() {
        return WATER_STILL;
    }

    public @NotNull ResourceLocation getFlowingTexture() {
        return WATER_FLOW;
    }

    public ResourceLocation getOverlayTexture() {
        return WATER_OVERLAY;
    }

    public ResourceLocation getRenderOverlayTexture(@NotNull Minecraft mc) {
        return UNDERWATER_LOCATION;
    }

    public int getTintColor() {
        return 0xF6F1E7FF;
    }

    public int getTintColor(@NotNull FluidState state, @NotNull BlockAndTintGetter getter, @NotNull BlockPos pos) {
        return BiomeColors.getAverageWaterColor(getter, pos) | getTintColor();
    }
}[/code]
Client.java:

  1. @SubscribeEvent
  2. static void onRegisterClientExtensions(RegisterClientExtensionsEvent event) {
  3.     event.registerFluidType(new RicePulpFluidTypeExtensions(), Register.RICE_PULP_FLUID_TYPE.get());
  4. }
复制代码

在存档中能正常放置并保存这个流体方块,但是客户端渲染这个方块时崩溃:

  1. ---- Minecraft Crash Report ----
  2. // You should try our sister game, Minceraft!

  3. Time: 2025-07-17 17:21:05</p><p>
  4. Description: Tesselating liquid in world.

  5. java.lang.NullPointerException: Cannot invoke "Object.hashCode()" because "pk" is null    at java.base/java.util.ImmutableCollections$MapN.probe(ImmutableCollections.java:1328) ~[?:?] {}
  6.     at java.base/java.util.ImmutableCollections$MapN.get(ImmutableCollections.java:1242) ~[?:?] {}
  7.     at java.base/java.util.ImmutableCollections$AbstractImmutableMap.getOrDefault(ImmutableCollections.java:1097) ~[?:?] {}
  8.     at java.base/java.util.Collections$UnmodifiableMap.getOrDefault(Collections.java:1702) ~[?:?] {}
  9.     at TRANSFORMER/[email protected]/net.neoforged.neoforge.client.textures.FluidSpriteCache.getFluidSprites(FluidSpriteCache.java:39) ~[neoforge-21.5.79.jar%23217!/:?] {re:classloading}
  10.     at TRANSFORMER/[email protected]/net.minecraft.client.renderer.block.LiquidBlockRenderer.tesselate(LiquidBlockRenderer.java:85) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:runtimedistcleaner:A}
  11.     at TRANSFORMER/[email protected]/net.minecraft.client.renderer.block.BlockRenderDispatcher.renderLiquid(BlockRenderDispatcher.java:98) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:runtimedistcleaner:A}
  12.     at TRANSFORMER/[email protected]/net.minecraft.client.renderer.chunk.SectionCompiler.compile(SectionCompiler.java:78) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:runtimedistcleaner:A}
  13.     at TRANSFORMER/[email protected]/net.minecraft.client.renderer.chunk.SectionRenderDispatcher$RenderSection$RebuildTask.doTask(SectionRenderDispatcher.java:653) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:runtimedistcleaner:A}
  14.     at TRANSFORMER/[email protected]/net.minecraft.client.renderer.chunk.SectionRenderDispatcher.lambda$runTask$0(SectionRenderDispatcher.java:104) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:runtimedistcleaner:A}
  15.     at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run$capture(CompletableFuture.java:1768) ~[?:?] {}
  16.     at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java) ~[?:?] {}
  17.     at TRANSFORMER/[email protected]/net.minecraft.TracingExecutor.lambda$forName$0(TracingExecutor.java:18) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading}
  18.     at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423) ~[?:?] {}
  19.     at java.base/java.util.concurrent.ForkJoinTask.doExec$capture(ForkJoinTask.java:387) ~[?:?] {}
  20.     at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java) ~[?:?] {}
  21.     at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312) ~[?:?] {}
  22.     at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843) ~[?:?] {}
  23.     at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808) ~[?:?] {}
  24.     at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) ~[?:?] {}


  25. A detailed walkthrough of the error, its code path and all known details is as follows:
  26. ---------------------------------------------------------------------------------------

  27. -- Head --
  28. Thread: Render thread
  29. Stacktrace:
  30.     at java.base/java.util.ImmutableCollections$MapN.probe(ImmutableCollections.java:1328) ~[?:?] {}
  31.     at java.base/java.util.ImmutableCollections$MapN.get(ImmutableCollections.java:1242) ~[?:?] {}
  32.     at java.base/java.util.ImmutableCollections$AbstractImmutableMap.getOrDefault(ImmutableCollections.java:1097) ~[?:?] {}
  33.     at java.base/java.util.Collections$UnmodifiableMap.getOrDefault(Collections.java:1702) ~[?:?] {}
  34.     at TRANSFORMER/[email protected]/net.neoforged.neoforge.client.textures.FluidSpriteCache.getFluidSprites(FluidSpriteCache.java:39) ~[neoforge-21.5.79.jar%23217!/:?] {re:classloading}
  35.     at TRANSFORMER/[email protected]/net.minecraft.client.renderer.block.LiquidBlockRenderer.tesselate(LiquidBlockRenderer.java:85) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:runtimedistcleaner:A}
  36. -- Block being tesselated --
  37. Details:
  38.     Block: Block{shanwei_seafood:rice_pulp_block}[level=6]
  39.     Block location: World: (-16,56,-17), Section: (at 0,8,15 in -1,3,-2; chunk contains blocks -16,-64,-32 to -1,319,-17), Region: (-1,-1; contains chunks -32,-32 to -1,-1, blocks -512,-64,-512 to -1,319,-1)
  40. Stacktrace:
  41.     at TRANSFORMER/[email protected]/net.minecraft.client.renderer.block.BlockRenderDispatcher.renderLiquid(BlockRenderDispatcher.java:98) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:runtimedistcleaner:A}
  42.     at TRANSFORMER/[email protected]/net.minecraft.client.renderer.chunk.SectionCompiler.compile(SectionCompiler.java:78) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:runtimedistcleaner:A}
  43.     at TRANSFORMER/[email protected]/net.minecraft.client.renderer.chunk.SectionRenderDispatcher$RenderSection$RebuildTask.doTask(SectionRenderDispatcher.java:653) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:runtimedistcleaner:A}
  44.     at TRANSFORMER/[email protected]/net.minecraft.client.renderer.chunk.SectionRenderDispatcher.lambda$runTask$0(SectionRenderDispatcher.java:104) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:runtimedistcleaner:A}
  45.     at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run$capture(CompletableFuture.java:1768) ~[?:?] {}
  46.     at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java) ~[?:?] {}
  47.     at TRANSFORMER/[email protected]/net.minecraft.TracingExecutor.lambda$forName$0(TracingExecutor.java:18) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading}
  48.     at java.base/java.util.concurrent.ForkJoinTask$RunnableExecuteAction.exec(ForkJoinTask.java:1423) ~[?:?] {}
  49.     at java.base/java.util.concurrent.ForkJoinTask.doExec$capture(ForkJoinTask.java:387) ~[?:?] {}
  50.     at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java) ~[?:?] {}
  51.     at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1312) ~[?:?] {}
  52.     at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1843) ~[?:?] {}
  53.     at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1808) ~[?:?] {}
  54.     at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:188) ~[?:?] {}


  55. -- Uptime --
  56. Details:
  57.     JVM uptime: 50.545s
  58.     Wall uptime: 20.873s
  59.     High-res time: 45.323s
  60.     Client ticks: 230 ticks / 11.500s
  61. Stacktrace:
  62.     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.fillReport(Minecraft.java:2319) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
  63.     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.lambda$delayCrash$16(Minecraft.java:925) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
  64.     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.handleDelayedCrash(Minecraft.java:934) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
  65.     at TRANSFORMER/[email protected]/net.minecraft.client.Minecraft.run(Minecraft.java:867) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:accesstransformer:B,pl:runtimedistcleaner:A}
  66.     at TRANSFORMER/[email protected]/net.minecraft.client.main.Main.main(Main.java:243) ~[neoforge-21.5.79.jar%23216!/:?] {re:classloading,pl:runtimedistcleaner:A}</p><p>
  67. </p><p>    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?] {}</p><p>
  68. </p><p>    at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?] {}</p><p>
  69. </p><p>    at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.runTarget(CommonLaunchHandler.java:128) ~[loader-7.0.13.jar%23173!/:7.0] {}</p><p>
  70. </p><p>    at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.clientService(CommonLaunchHandler.java:120) ~[loader-7.0.13.jar%23173!/:7.0] {}</p><p>
  71. </p><p>    at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.NeoForgeClientDevLaunchHandler.runService(NeoForgeClientDevLaunchHandler.java:49) ~[loader-7.0.13.jar%23173!/:7.0] {}</p><p>
  72. </p><p>    at MC-BOOTSTRAP/[email protected]/net.neoforged.fml.loading.targets.CommonLaunchHandler.lambda$launchService$4(CommonLaunchHandler.java:114) ~[loader-7.0.13.jar%23173!/:7.0] {}</p><p>
  73. </p><p>    at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandlerDecorator.launch(LaunchServiceHandlerDecorator.java:30) [modlauncher-11.0.4.jar%23152!/:?] {}</p><p>
  74. </p><p>    at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:53) [modlauncher-11.0.4.jar%23152!/:?] {}</p><p>
  75. </p><p>    at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.LaunchServiceHandler.launch(LaunchServiceHandler.java:71) [modlauncher-11.0.4.jar%23152!/:?] {}</p><p>
  76. </p><p>    at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.run(Launcher.java:103) [modlauncher-11.0.4.jar%23152!/:?] {}</p><p>
  77. </p><p>    at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.Launcher.main(Launcher.java:74) [modlauncher-11.0.4.jar%23152!/:?] {}</p><p>
  78. </p><p>    at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:26) [modlauncher-11.0.4.jar%23152!/:?] {}</p><p>
  79. </p><p>    at MC-BOOTSTRAP/[email protected]/cpw.mods.modlauncher.BootstrapLaunchConsumer.accept(BootstrapLaunchConsumer.java:23) [modlauncher-11.0.4.jar%23152!/:?] {}</p><p>
  80. </p><p>    at [email protected]/cpw.mods.bootstraplauncher.BootstrapLauncher.run(BootstrapLauncher.java:210) [bootstraplauncher-2.0.2.jar:?] {}</p><p>
  81. </p><p>    at [email protected]/cpw.mods.bootstraplauncher.BootstrapLauncher.main(BootstrapLauncher.java:69) [bootstraplauncher-2.0.2.jar:?] {}</p><p>
  82. </p><p>    at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?] {}</p><p>
  83. </p><p>    at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?] {}</p><p>
  84. </p><p>    at net.neoforged.devlaunch.Main.main(Main.java:57) [DevLaunch-1.0.2.jar:?] {}</p><p>
  85. </p><p>
  86. </p><p>
  87. </p><p>
  88. </p><p>
  89. </p><p>-- Affected level --</p><p>
  90. </p><p>Details:</p><p>
  91. </p><p>    All players: 1 total; LocalPlayer{name=Dev, id=1, pos=(-18.079127610134037, 56.0, -18.4930892452147), mode=CREATIVE, permission=4}</p><p>
  92. </p><p>    Chunk stats: 961, 637</p><p>
  93. </p><p>    Level dimension: minecraft:overworld</p><p>
  94. </p><p>    Level spawn location: World: (0,56,0), Section: (at 0,8,0 in 0,3,0; chunk contains blocks 0,-64,0 to 15,319,15), Region: (0,0; contains chunks 0,0 to 31,31, blocks 0,-64,0 to 511,319,511)</p><p>
  95. </p><p>    Level time: 78368 game time, 1000 day time</p><p>
  96. </p><p>    Server brand: neoforge</p><p>
  97. </p><p>    Server type: Integrated singleplayer server</p><p>
  98. </p><p>    Tracked entity count: 1</p><p>
  99. </p><p>
  100. </p><p>
  101. </p><p>-- Last reload --</p><p>
  102. </p><p>Details:</p><p>
  103. </p><p>    Reload number: 1</p><p>
  104. </p><p>    Reload reason: initial</p><p>
  105. </p><p>    Finished: Yes</p><p>
  106. </p><p>    Packs: vanilla, mod_resources, mod/configured, mod/geckolib, mod/shanwei_seafood, mod/neoforge, mod/jei</p><p>
  107. </p><p>
  108. </p><p>
  109. </p><p>-- System Details --</p><p>
  110. </p><p>Details:</p><p>
  111. </p><p>    Minecraft Version: 1.21.5</p><p>
  112. </p><p>    Minecraft Version ID: 1.21.5</p><p>
  113. </p><p>    Operating System: Windows 11 (amd64) version 10.0</p><p>
  114. </p><p>    Java Version: 21.0.6, Azul Systems, Inc.</p><p>
  115. </p><p>    Java VM Version: OpenJDK 64-Bit Server VM (mixed mode, sharing), Azul Systems, Inc.</p><p>
  116. </p><p>    Memory: 249607576 bytes (238 MiB) / 1161822208 bytes (1108 MiB) up to 4280287232 bytes (4082 MiB)</p><p>
  117. </p><p>    CPUs: 8</p><p>
  118. </p><p>    Processor Vendor: GenuineIntel</p><p>
  119. </p><p>    Processor Name: Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz</p><p>
  120. </p><p>    Identifier: Intel64 Family 6 Model 60 Stepping 3</p><p>
  121. </p><p>    Microarchitecture: Haswell (Client)</p><p>
  122. </p><p>    Frequency (GHz): 3.59</p><p>
  123. </p><p>    Number of physical packages: 1</p><p>
  124. </p><p>    Number of physical CPUs: 4</p><p>
  125. </p><p>    Number of logical CPUs: 8</p><p>
  126. </p><p>    Graphics card #0 name: AMD Radeon R7 200 Series</p><p>
  127. </p><p>    Graphics card #0 vendor: Advanced Micro Devices, Inc.</p><p>
  128. </p><p>    Graphics card #0 VRAM (MiB): 2048.00</p><p>
  129. </p><p>    Graphics card #0 deviceId: VideoController1</p><p>
  130. </p><p>    Graphics card #0 versionInfo: 27.20.14502.208</p><p>
  131. </p><p>    Memory slot #0 capacity (MiB): 4096.00</p><p>
  132. </p><p>    Memory slot #0 clockSpeed (GHz): 1.60</p><p>
  133. </p><p>    Memory slot #0 type: DDR3</p><p>
  134. </p><p>    Memory slot #1 capacity (MiB): 4096.00</p><p>
  135. </p><p>    Memory slot #1 clockSpeed (GHz): 1.60</p><p>
  136. </p><p>    Memory slot #1 type: DDR3</p><p>
  137. </p><p>    Memory slot #2 capacity (MiB): 4096.00</p><p>
  138. </p><p>    Memory slot #2 clockSpeed (GHz): 1.60</p><p>
  139. </p><p>    Memory slot #2 type: DDR3</p><p>
  140. </p><p>    Memory slot #3 capacity (MiB): 4096.00</p><p>
  141. </p><p>    Memory slot #3 clockSpeed (GHz): 1.60</p><p>
  142. </p><p>    Memory slot #3 type: DDR3</p><p>
  143. </p><p>    Virtual memory max (MiB): 25542.15</p><p>
  144. </p><p>    Virtual memory used (MiB): 19632.13</p><p>
  145. </p><p>    Swap memory total (MiB): 9216.00</p><p>
  146. </p><p>    Swap memory used (MiB): 304.88</p><p>
  147. </p><p>    Space in storage for jna.tmpdir (MiB): <path not set></p><p>
  148. </p><p>    Space in storage for org.lwjgl.system.SharedLibraryExtractPath (MiB): <path not set></p><p>
  149. </p><p>    Space in storage for io.netty.native.workdir (MiB): <path not set></p><p>
  150. </p><p>    Space in storage for java.io.tmpdir (MiB): available: 142479.69, total: 524289.00</p><p>
  151. </p><p>    Space in storage for workdir (MiB): available: 116089.32, total: 166906.69</p><p>
  152. </p><p>    JVM Flags: 0 total;</p><p>
  153. </p><p>    Launched Version: 21.5.79</p><p>
  154. </p><p>    Backend library: LWJGL version 3.3.3+5</p><p>
  155. </p><p>    Backend API: AMD Radeon R7 200 Series GL version 3.2.14758 Core Profile Forward-Compatible Context 20.45.01.26 27.20.14502.208, ATI Technologies Inc.</p><p>
  156. </p><p>    Window size: 854x480</p><p>
  157. </p><p>    GFLW Platform: win32</p><p>
  158. </p><p>    Render Extensions: GL_KHR_debug, GL_ARB_vertex_attrib_binding, GL_ARB_direct_state_access</p><p>
  159. </p><p>    GL debug messages:</p><p>
  160. </p><p>    Is Modded: Definitely; Client brand changed to 'neoforge'; Server brand changed to 'neoforge'</p><p>
  161. </p><p>    Universe: 400921fb54442d18</p><p>
  162. </p><p>    Type: Integrated Server (map_client.txt)</p><p>
  163. </p><p>    Graphics mode: fancy</p><p>
  164. </p><p>    Render Distance: 12/12 chunks</p><p>
  165. </p><p>    Resource Packs: vanilla, mod_resources, mod/configured (incompatible), mod/geckolib, mod/shanwei_seafood, mod/neoforge, mod/jei (incompatible)</p><p>
  166. </p><p>    Current Language: zh_cn</p><p>
  167. </p><p>    Locale: zh_CN</p><p>
  168. </p><p>    System encoding: UTF-8</p><p>
  169. </p><p>    File encoding: UTF-8</p><p>
  170. </p><p>    CPU: 8x Intel(R) Core(TM) i7-4790 CPU @ 3.60GHz</p><p>
  171. </p><p>    Server Running: true</p><p>
  172. </p><p>    Player Count: 1 / 8; [ServerPlayer['Dev'/1, l='ServerLevel[新的世界]', x=-18.08, y=56.00, z=-18.49]]</p><p>
  173. </p><p>    Active Data Packs: vanilla, mod_data, mod/configured (incompatible), mod/geckolib, mod/shanwei_seafood, mod/neoforge, mod/jei (incompatible)</p><p>
  174. </p><p>    Available Data Packs: minecart_improvements, redstone_experiments, trade_rebalance, vanilla, mod/configured (incompatible), mod/geckolib, mod/jei (incompatible), mod/neoforge, mod/shanwei_seafood, mod_data</p><p>
  175. </p><p>    Enabled Feature Flags: minecraft:vanilla</p><p>
  176. </p><p>    World Generation: Stable</p><p>
  177. </p><p>    World Seed: -4415526911167071497</p><p>
  178. </p><p>    Suppressed Exceptions: ~~NONE~~</p><p>
  179. </p><p>    ModLauncher: 11.0.4+main.d2e20e43</p><p>
  180. </p><p>    ModLauncher launch target: neoforgeclientdev</p><p>
  181. </p><p>    ModLauncher services:</p><p>
  182. </p><p>        sponge-mixin-0.15.2+mixin.0.8.7.jar mixin PLUGINSERVICE</p><p>
  183. </p><p>        loader-7.0.13.jar slf4jfixer PLUGINSERVICE</p><p>
  184. </p><p>        loader-7.0.13.jar runtime_enum_extender PLUGINSERVICE</p><p>
  185. </p><p>        at-modlauncher-11.0.2.jar accesstransformer PLUGINSERVICE</p><p>
  186. </p><p>        loader-7.0.13.jar runtimedistcleaner PLUGINSERVICE</p><p>
  187. </p><p>        modlauncher-11.0.4.jar mixin TRANSFORMATIONSERVICE</p><p>
  188. </p><p>        modlauncher-11.0.4.jar fml TRANSFORMATIONSERVICE</p><p>
  189. </p><p>    FML Language Providers:</p><p>
  190. </p><p>        [email protected]</p><p>
  191. </p><p>        [email protected]</p><p>
  192. </p><p>    Mod List:</p><p>
  193. </p><p>        configured-neoforge-1.21.5-2.6.1.jar              |Configured                    |configured                    |2.6.1               |Manifest: 0d:78:5f:44:c0:47:0c:8c:e2:63:a3:04:43:d4:12:7d:b0:7c:35:37:dc:40:b1:c1:98:ec:51:eb:3b:3c:45:99</p><p>
  194. </p><p>        geckolib-neoforge-1.21.5-5.1.0.jar                |GeckoLib 5                    |geckolib                      |5.1.0               |Manifest: NOSIGNATURE</p><p>
  195. </p><p>        jei-1.21.5-neoforge-21.3.2.22.jar                 |Just Enough Items             |jei                           |21.3.2.22           |Manifest: NOSIGNATURE</p><p>
  196. </p><p>        neoforge-21.5.79.jar                              |Minecraft                     |minecraft                     |1.21.5              |Manifest: NOSIGNATURE</p><p>
  197. </p><p>        neoforge-21.5.79.jar                              |NeoForge                      |neoforge                      |21.5.79             |Manifest: NOSIGNATURE</p><p>
  198. </p><p>        main                                              |Shanwei Culture: Seafood Cuisi|shanwei_seafood               |0.1.0+git.dev.5952ad|Manifest: NOSIGNATURE</p><p>
  199. </p><p>    Crash Report UUID: 2d19ff0f-1473-44e9-85d2-684f92f99330</p><p>
  200. </p><p>    FML: 7.0.13</p><p>
  201. </p><p>    NeoForge: 21.5.79</p>
复制代码

很奇怪,明明我在 RicePulpFluidTypeExtensions 让它返回原版贴图,但还是不行(去 .png 也一样)

苦力怕论坛,感谢有您~
 发表于 2025-7-29 03:35:22|显示全部楼层 IP:福建省
可以发完整项目吗
2#2025-7-29 03:35:22回复收起回复
苦力怕论坛,感谢有您~
回复

使用道具举报

 发表于 2025-7-29 03:43:09|显示全部楼层 IP:福建省
在你的github suq-weer并没有找到该项目
3#2025-7-29 03:43:09回复收起回复
苦力怕论坛,感谢有您~
回复

使用道具举报

 发表于 2025-7-30 18:18:38|显示全部楼层 IP:福建省

问题在于实例化了两个 RicePulpFluidType 对象,在 RICE_PULP_FLUID_TYPE 注册时,就实例化了RicePulpFluidType,但后续在RICE_PULP_FLUID_PROPERTIES处又实例化一次,在渲染时,调用 RICE_PULP_FLOWING_FLUID_BLOCK 的 RicePulpFluidType 与已注册的是两个实例,导致调用失败,取到默认IClientFluidTypeExtensions值
  1. IClientFluidTypeExtensions props = IClientFluidTypeExtensions.of(fluid);
复制代码

使得 props.getStillTexture 取到的值为null
  1. props.getStillTexture(fluid, level, pos)
复制代码




最后你的代码需要进行如下修改即可
  1. public static final DeferredHolder<FluidType, FluidType> RICE_PULP_FLUID_TYPE = FLUID_TYPES.register("rice_pulp", RicePulpFluidType::new);

  2.     private static final BaseFlowingFluid.Properties RICE_PULP_FLUID_PROPERTIES = new BaseFlowingFluid.Properties(RICE_PULP_FLUID_TYPE, RICE_PULP_SOURCE_FLUID_BLOCK, RICE_PULP_FLOWING_FLUID_BLOCK).bucket(RICE_PULP_BUCKET).slopeFindDistance(2).levelDecreasePerBlock(2).block(RICE_PULP_BLOCK);
复制代码



image.png
4#2025-7-30 18:18:38回复收起回复
苦力怕论坛,感谢有您~
回复

使用道具举报

本版积分规则

本站
关于我们
联系我们
坛史纲要
官方
哔哩哔哩
技术博客
下载
网易版
安卓版
JAVA
反馈
意见建议
教程中心
更多
捐助本站
QQ群
QQ群

QQ群

访问手机版

访问手机版

手机版|小黑屋|系统状态|klpbbs.com

| 由 木韩网络 提供支持 | GMT+8, 2026-6-23 23:09

声明:本站与Mojang以及微软公司没有从属关系

Powered by Discuz! X3.4