Interface PlayerAttachmentImmersive<I extends PlayerAttachmentImmersiveInfo, R extends ImmersiveRenderState, S extends NetworkStorage>

Type Parameters:
I - The BlockBasedImmersiveInfo implementation this Immersive uses.
R - The render state implementation this Immersive uses. See Immersive.extractRenderState(I, R, float).
S - The type of storage to use for sending Immersive data over the network.
All Superinterfaces:
Immersive<I,R,S>
All Known Implementing Classes:
ImmersiveBag, ImmersiveHitboxes

public non-sealed interface PlayerAttachmentImmersive<I extends PlayerAttachmentImmersiveInfo, R extends ImmersiveRenderState, S extends NetworkStorage> extends Immersive<I,R,S>
Represents the client-side implementation of a player-attachment Immersive implementation. One should implement this interface to create the client-side implementation of a player-attachment Immersive.

When combined with a PlayerAttachmentImmersiveHandler, you have a fully-functioning player-attachment Immersive!

See Also:
  • Method Details

    • buildInfo

      I buildInfo(net.minecraft.client.player.AbstractClientPlayer player)
      Constructs a new PlayerAttachmentImmersiveInfo based on the provided owning player. It's best to calculate initial hitboxes, etc. in this method to make the Immersive is available for interaction as soon as possible.

      This method is only called if @link ImmersiveHandler#clientAuthoritative()} returns false for the PlayerAttachmentImmersiveHandler returned by getHandler().

      Parameters:
      player - The player who owns/controls this Immersive. This may not necessarily be the same player as the local player!
      Returns:
      An instance of an ImmersiveInfo implementation with the same position as provided.
    • getHandler

      Specified by:
      getHandler in interface Immersive<I extends PlayerAttachmentImmersiveInfo, R extends ImmersiveRenderState, S extends NetworkStorage>
      Returns:
      The PlayerAttachmentImmersiveHandler this Immersive uses.
    • getLocalPlayerInfo

      @Nullable default I getLocalPlayerInfo()
      Returns:
      The PlayerAttachmentImmersiveInfo for the local player for this Immersive, or null if this Immersive isn't active for the local player.