Class ClientHooks

java.lang.Object
net.neoforged.neoforge.client.ClientHooks

public class ClientHooks extends Object
Class for various client-side-only hooks.
  • Field Details

    • LOGGER

      private static final org.apache.logging.log4j.Logger LOGGER
    • CLIENTHOOKS

      private static final org.apache.logging.log4j.Marker CLIENTHOOKS
    • guiLayers

      private static final Stack<Screen> guiLayers
      Contains the *extra* GUI layers. The current top layer stays in Minecraft#currentScreen, and the rest serve as a background for it.
    • forgeStatusLine

      public static String forgeStatusLine
    • slotMainHand

      private static int slotMainHand
    • layerDefinitions

      private static final Map<ModelLayerLocation,Supplier<LayerDefinition>> layerDefinitions
    • ICON_SHEET

      private static final ResourceLocation ICON_SHEET
    • SPRITE_SOURCE_TYPES_MAP

      private static final com.google.common.collect.BiMap<ResourceLocation,SpriteSourceType> SPRITE_SOURCE_TYPES_MAP
    • initializedClientHooks

      private static boolean initializedClientHooks
  • Constructor Details

    • ClientHooks

      public ClientHooks()
  • Method Details

    • resizeGuiLayers

      public static void resizeGuiLayers(Minecraft minecraft, int width, int height)
    • clearGuiLayers

      public static void clearGuiLayers(Minecraft minecraft)
    • popGuiLayerInternal

      private static void popGuiLayerInternal(Minecraft minecraft)
    • pushGuiLayer

      public static void pushGuiLayer(Minecraft minecraft, Screen screen)
    • popGuiLayer

      public static void popGuiLayer(Minecraft minecraft)
    • getGuiFarPlane

      public static float getGuiFarPlane()
    • getArmorTexture

      public static ResourceLocation getArmorTexture(Entity entity, ItemStack armor, ArmorMaterial.Layer layer, boolean innerModel, EquipmentSlot slot)
    • onClientPauseChangePre

      public static boolean onClientPauseChangePre(boolean pause)
    • onClientPauseChangePost

      public static void onClientPauseChangePost(boolean pause)
    • onDrawHighlight

      public static boolean onDrawHighlight(LevelRenderer context, Camera camera, HitResult target, DeltaTracker deltaTracker, PoseStack poseStack, MultiBufferSource bufferSource)
    • dispatchRenderStage

      public static void dispatchRenderStage(RenderLevelStageEvent.Stage stage, LevelRenderer levelRenderer, @Nullable @Nullable PoseStack poseStack, org.joml.Matrix4f modelViewMatrix, org.joml.Matrix4f projectionMatrix, int renderTick, Camera camera, Frustum frustum)
    • dispatchRenderStage

      public static void dispatchRenderStage(RenderType renderType, LevelRenderer levelRenderer, org.joml.Matrix4f modelViewMatrix, org.joml.Matrix4f projectionMatrix, int renderTick, Camera camera, Frustum frustum)
    • renderSpecificFirstPersonHand

      public static boolean renderSpecificFirstPersonHand(InteractionHand hand, PoseStack poseStack, MultiBufferSource bufferSource, int packedLight, float partialTick, float interpPitch, float swingProgress, float equipProgress, ItemStack stack)
    • renderSpecificFirstPersonArm

      public static boolean renderSpecificFirstPersonArm(PoseStack poseStack, MultiBufferSource multiBufferSource, int packedLight, AbstractClientPlayer player, HumanoidArm arm)
    • onTextureAtlasStitched

      public static void onTextureAtlasStitched(TextureAtlas atlas)
    • onBlockColorsInit

      public static void onBlockColorsInit(BlockColors blockColors)
    • onItemColorsInit

      public static void onItemColorsInit(ItemColors itemColors, BlockColors blockColors)
    • getArmorModel

      public static Model getArmorModel(LivingEntity entityLiving, ItemStack itemStack, EquipmentSlot slot, HumanoidModel<?> _default)
    • copyModelProperties

      public static <T extends LivingEntity> void copyModelProperties(HumanoidModel<T> original, HumanoidModel<?> replacement)
      Copies humanoid model properties from the original model to another, used for armor models
    • fixDomain

      public static String fixDomain(String base, String complex)
    • getFieldOfViewModifier

      public static float getFieldOfViewModifier(Player entity, float fovModifier)
    • getFieldOfView

      public static double getFieldOfView(GameRenderer renderer, Camera camera, double partialTick, double fov, boolean usedConfiguredFov)
    • getTurnPlayerValues

      public static CalculatePlayerTurnEvent getTurnPlayerValues(double mouseSensitivity, boolean cinematicCameraEnabled)
    • getDetachedCameraDistance

      public static float getDetachedCameraDistance(Camera camera, boolean flipped, float entityScale, float distance)
    • renderMainMenu

      public static void renderMainMenu(TitleScreen gui, GuiGraphics guiGraphics, Font font, int width, int height, int alpha)
    • playSound

      @Nullable public static @Nullable SoundInstance playSound(SoundEngine manager, SoundInstance sound)
    • drawScreen

      public static void drawScreen(Screen screen, GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick)
    • drawScreenInternal

      private static void drawScreenInternal(Screen screen, GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick)
    • getFogColor

      public static org.joml.Vector3f getFogColor(Camera camera, float partialTick, ClientLevel level, int renderDistance, float darkenWorldAmount, float fogRed, float fogGreen, float fogBlue)
    • onFogRender

      public static void onFogRender(FogRenderer.FogMode mode, FogType type, Camera camera, float partialTick, float renderDistance, float nearDistance, float farDistance, FogShape shape)
    • onModifyBakingResult

      public static void onModifyBakingResult(Map<ModelResourceLocation,BakedModel> models, Map<ResourceLocation,AtlasSet.StitchResult> stitchResults, ModelBakery modelBakery)
    • onModelBake

      public static void onModelBake(ModelManager modelManager, Map<ModelResourceLocation,BakedModel> models, ModelBakery modelBakery)
    • handleCameraTransforms

      public static BakedModel handleCameraTransforms(PoseStack poseStack, BakedModel model, ItemDisplayContext cameraTransformType, boolean applyLeftHandTransform)
    • getBlockMaterial

      public static Material getBlockMaterial(ResourceLocation loc)
    • fillNormal

      public static void fillNormal(int[] faceData, Direction facing)
      internal, relies on fixed format of FaceBakery
    • getVertexPos

      private static org.joml.Vector3f getVertexPos(int[] data, int vertex)
    • calculateFaceWithoutAO

      public static boolean calculateFaceWithoutAO(BlockAndTintGetter getter, BlockState state, BlockPos pos, BakedQuad quad, boolean isFaceCubic, float[] brightness, int[] lightmap)
    • loadEntityShader

      public static void loadEntityShader(Entity entity, GameRenderer entityRenderer)
    • shouldCauseReequipAnimation

      public static boolean shouldCauseReequipAnimation(ItemStack from, ItemStack to, int slot)
    • onCustomizeBossEventProgress

      public static CustomizeGuiOverlayEvent.BossEventProgress onCustomizeBossEventProgress(GuiGraphics guiGraphics, Window window, LerpingBossEvent bossInfo, int x, int y, int increment)
    • onScreenshot

      public static ScreenshotEvent onScreenshot(NativeImage image, File screenshotFile)
    • onClientChangeGameType

      public static void onClientChangeGameType(PlayerInfo info, GameType currentGameMode, GameType newGameMode)
    • onMovementInputUpdate

      public static void onMovementInputUpdate(Player player, Input movementInput)
    • onScreenMouseClickedPre

      public static boolean onScreenMouseClickedPre(Screen guiScreen, double mouseX, double mouseY, int button)
    • onScreenMouseClickedPost

      public static boolean onScreenMouseClickedPost(Screen guiScreen, double mouseX, double mouseY, int button, boolean handled)
    • onScreenMouseReleasedPre

      public static boolean onScreenMouseReleasedPre(Screen guiScreen, double mouseX, double mouseY, int button)
    • onScreenMouseReleasedPost

      public static boolean onScreenMouseReleasedPost(Screen guiScreen, double mouseX, double mouseY, int button, boolean handled)
    • onScreenMouseDragPre

      public static boolean onScreenMouseDragPre(Screen guiScreen, double mouseX, double mouseY, int mouseButton, double dragX, double dragY)
    • onScreenMouseDragPost

      public static void onScreenMouseDragPost(Screen guiScreen, double mouseX, double mouseY, int mouseButton, double dragX, double dragY)
    • onScreenMouseScrollPre

      public static boolean onScreenMouseScrollPre(MouseHandler mouseHelper, Screen guiScreen, double scrollDeltaX, double scrollDeltaY)
    • onScreenMouseScrollPost

      public static void onScreenMouseScrollPost(MouseHandler mouseHelper, Screen guiScreen, double scrollDeltaX, double scrollDeltaY)
    • onScreenKeyPressedPre

      public static boolean onScreenKeyPressedPre(Screen guiScreen, int keyCode, int scanCode, int modifiers)
    • onScreenKeyPressedPost

      public static boolean onScreenKeyPressedPost(Screen guiScreen, int keyCode, int scanCode, int modifiers)
    • onScreenKeyReleasedPre

      public static boolean onScreenKeyReleasedPre(Screen guiScreen, int keyCode, int scanCode, int modifiers)
    • onScreenKeyReleasedPost

      public static boolean onScreenKeyReleasedPost(Screen guiScreen, int keyCode, int scanCode, int modifiers)
    • onScreenCharTypedPre

      public static boolean onScreenCharTypedPre(Screen guiScreen, char codePoint, int modifiers)
    • onScreenCharTypedPost

      public static void onScreenCharTypedPost(Screen guiScreen, char codePoint, int modifiers)
    • onRecipesUpdated

      public static void onRecipesUpdated(RecipeManager mgr)
    • onMouseButtonPre

      public static boolean onMouseButtonPre(int button, int action, int mods)
    • onMouseButtonPost

      public static void onMouseButtonPost(int button, int action, int mods)
    • onMouseScroll

      public static boolean onMouseScroll(MouseHandler mouseHelper, double scrollDeltaX, double scrollDeltaY)
    • onKeyInput

      public static void onKeyInput(int key, int scanCode, int action, int modifiers)
    • onClickInput

      public static InputEvent.InteractionKeyMappingTriggered onClickInput(int button, KeyMapping keyBinding, InteractionHand hand)
    • isNameplateInRenderDistance

      public static boolean isNameplateInRenderDistance(Entity entity, double squareDistance)
    • renderPistonMovedBlocks

      public static void renderPistonMovedBlocks(BlockPos pos, BlockState state, PoseStack stack, MultiBufferSource bufferSource, Level level, boolean checkSides, int packedOverlay, BlockRenderDispatcher blockRenderer)
    • shouldRenderEffect

      public static boolean shouldRenderEffect(MobEffectInstance effectInstance)
    • registerLayerDefinition

      public static void registerLayerDefinition(ModelLayerLocation layerLocation, Supplier<LayerDefinition> supplier)
    • loadLayerDefinitions

      public static void loadLayerDefinitions(com.google.common.collect.ImmutableMap.Builder<ModelLayerLocation,LayerDefinition> builder)
    • firePlayerLogin

      public static void firePlayerLogin(MultiPlayerGameMode pc, LocalPlayer player, Connection networkManager)
    • firePlayerLogout

      public static void firePlayerLogout(@Nullable @Nullable MultiPlayerGameMode pc, @Nullable @Nullable LocalPlayer player)
    • firePlayerRespawn

      public static void firePlayerRespawn(MultiPlayerGameMode pc, LocalPlayer oldPlayer, LocalPlayer newPlayer, Connection networkManager)
    • onRegisterParticleProviders

      public static void onRegisterParticleProviders(ParticleEngine particleEngine)
    • onRegisterKeyMappings

      public static void onRegisterKeyMappings(Options options)
    • onRegisterAdditionalModels

      public static void onRegisterAdditionalModels(Set<ModelResourceLocation> additionalModels)
    • onClientChat

      @Nullable public static @Nullable Component onClientChat(ChatType.Bound boundChatType, Component message, UUID sender)
    • onClientPlayerChat

      @Nullable public static @Nullable Component onClientPlayerChat(ChatType.Bound boundChatType, Component message, PlayerChatMessage playerChatMessage, UUID sender)
    • onClientSystemChat

      @Nullable public static @Nullable Component onClientSystemChat(Component message, boolean overlay)
    • onClientSendMessage

      public static String onClientSendMessage(String message)
    • getEntityRenderType

      public static RenderType getEntityRenderType(RenderType chunkRenderType, boolean cull)
    • getTooltipFont

      public static Font getTooltipFont(ItemStack stack, Font fallbackFont)
    • onRenderTooltipPre

      public static RenderTooltipEvent.Pre onRenderTooltipPre(ItemStack stack, GuiGraphics graphics, int x, int y, int screenWidth, int screenHeight, List<ClientTooltipComponent> components, Font fallbackFont, ClientTooltipPositioner positioner)
    • onRenderTooltipColor

      public static RenderTooltipEvent.Color onRenderTooltipColor(ItemStack stack, GuiGraphics graphics, int x, int y, Font font, List<ClientTooltipComponent> components)
    • gatherTooltipComponents

      public static List<ClientTooltipComponent> gatherTooltipComponents(ItemStack stack, List<? extends FormattedText> textElements, int mouseX, int screenWidth, int screenHeight, Font fallbackFont)
    • gatherTooltipComponents

      public static List<ClientTooltipComponent> gatherTooltipComponents(ItemStack stack, List<? extends FormattedText> textElements, Optional<TooltipComponent> itemComponent, int mouseX, int screenWidth, int screenHeight, Font fallbackFont)
    • splitLine

      private static Stream<ClientTooltipComponent> splitLine(FormattedText text, Font font, int maxWidth)
    • makeParticleRenderTypeComparator

      public static Comparator<ParticleRenderType> makeParticleRenderTypeComparator(List<ParticleRenderType> renderOrder)
    • onScreenPotionSize

      public static ScreenEvent.RenderInventoryMobEffects onScreenPotionSize(Screen screen, int availableSpace, boolean compact, int horizontalOffset)
    • onToastAdd

      public static boolean onToastAdd(Toast toast)
    • isBlockInSolidLayer

      public static boolean isBlockInSolidLayer(BlockState state)
    • renderFireOverlay

      public static boolean renderFireOverlay(Player player, PoseStack mat)
    • renderWaterOverlay

      public static boolean renderWaterOverlay(Player player, PoseStack mat)
    • renderBlockOverlay

      public static boolean renderBlockOverlay(Player player, PoseStack mat, RenderBlockScreenEffectEvent.OverlayType type, BlockState block, BlockPos pos)
    • getMaxMipmapLevel

      public static int getMaxMipmapLevel(int width, int height)
    • getShaderImportLocation

      public static ResourceLocation getShaderImportLocation(String basePath, boolean isRelative, String importPath)
    • makeSpriteSourceTypesMap

      public static com.google.common.collect.BiMap<ResourceLocation,SpriteSourceType> makeSpriteSourceTypesMap()
    • registerSpriteSourceTypes

      @Internal public static void registerSpriteSourceTypes()
    • isBlockEntityRendererVisible

      @Internal public static <T extends BlockEntity> boolean isBlockEntityRendererVisible(BlockEntityRenderDispatcher dispatcher, BlockEntity blockEntity, Frustum frustum)
    • fixItemModelSeams

      public static List<BlockElement> fixItemModelSeams(List<BlockElement> elements, TextureAtlasSprite sprite)
      Modify the position and UVs of the edge quads of generated item models to account for sprite expansion of the front and back quad. Fixes MC-73186 on generated item models.
      Parameters:
      elements - The generated elements, may include the front and back face
      sprite - The texture from which the elements were generated
      Returns:
      the original elements list
    • gatherAdditionalRenderers

      public static List<AddSectionGeometryEvent.AdditionalSectionRenderer> gatherAdditionalRenderers(BlockPos sectionOrigin, Level level)
    • addAdditionalGeometry

      public static void addAdditionalGeometry(List<AddSectionGeometryEvent.AdditionalSectionRenderer> additionalRenderers, Function<RenderType,VertexConsumer> getOrCreateBuilder, RenderChunkRegion region, PoseStack transformation)
    • initClientHooks

      @Internal public static void initClientHooks(Minecraft mc, ReloadableResourceManager resourceManager)
    • fireRenderFramePre

      public static void fireRenderFramePre(DeltaTracker partialTick)
      Fires RenderFrameEvent.Pre. Called just before
      invalid reference
      GameRenderer#render(float, long, boolean)
      in Minecraft.runTick(boolean).

      Fired before the profiler section for "gameRenderer" is started.

      Parameters:
      partialTick - The current partial tick
    • fireRenderFramePost

      public static void fireRenderFramePost(DeltaTracker partialRick)
      Fires RenderFrameEvent.Post. Called just after
      invalid reference
      GameRenderer#render(float, long, boolean)
      in Minecraft.runTick(boolean).

      Fired after the profiler section for "gameRenderer" is ended.

      Parameters:
      partialTick - The current partial tick
    • fireClientTickPre

      public static void fireClientTickPre()
      Fires ClientTickEvent.Pre. Called from the head of Minecraft.tick().
    • fireClientTickPost

      public static void fireClientTickPost()
      Fires ClientTickEvent.Post. Called from the tail of Minecraft.tick().
    • resolveLookup

      @Nullable public static <T> @Nullable HolderLookup.RegistryLookup<T> resolveLookup(ResourceKey<? extends Registry<T>> key)