Class PlacementHandlers

java.lang.Object
com.ldtteam.structurize.placement.handlers.placement.PlacementHandlers

public final class PlacementHandlers extends Object
Class containing all placement handler implementations.

We suppress warning squid:S2972 which handles the max size of internal classes. This doesn't apply here since it wouldn't make sense extracting all of those in separate classes.

  • Field Details

  • Method Details

    • add

      public static void add(IPlacementHandler handler, Class<?> override)
      Allows for adding new handlers without having to clear the list in other mods just to override one
      Parameters:
      handler - the new handler to add
      override - the class to override if it can be found
    • add

      public static void add(IPlacementHandler handler, Class<?> override, PlacementHandlers.AddType addType)
      Allows for Adding a Handler before, after or instead of another one.
      Parameters:
      handler - the new handler to add
      override - the class to match.
      addType - if before/after/replace.
    • add

      public static void add(IPlacementHandler handler)
      Adds a handler to the start of the handlers list, right after the air, solid and light placeholder handlers. This may effectively override existing ones with similar 'canHandle' functions because this one will evaluate before them.
      Parameters:
      handler -
    • getHandler

      public static IPlacementHandler getHandler(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos worldPos, net.minecraft.world.level.block.state.BlockState newState)
      Finds the appropriate IPlacementHandler for the given location.
      Parameters:
      world - the world.
      worldPos - the world position.
      newState - the blockstate being placed or removed.
      Returns:
      the appropriate handler.
    • handleTileEntityPlacement

      public static void handleTileEntityPlacement(net.minecraft.nbt.CompoundTag tileEntityData, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, PlacementSettings settings)
      Handles tileEntity placement.
      Parameters:
      tileEntityData - the data of the tile entity.
      world - the world.
      pos - the position.
      settings - the placement settings.
    • getRequiredItemsForState

      public static List<net.minecraft.world.item.ItemStack> getRequiredItemsForState(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.world.level.block.state.BlockState state, net.minecraft.nbt.CompoundTag data, IPlacementContext placementContext)
      Get the required items for this state.
      Parameters:
      world - the world it will be placed in.
      pos - the pos to place it at.
      state - the state to place.
      data - its TE data.
      placementContext - the placement context.
      Returns:
      the required items.
    • handleTileEntityPlacement

      public static void handleTileEntityPlacement(net.minecraft.nbt.CompoundTag tileEntityData, net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos)
      Handles tileEntity placement.
      Parameters:
      tileEntityData - the data of the tile entity.
      world - the world.
      pos - the position.
    • getItemsFromTileEntity

      public static List<net.minecraft.world.item.ItemStack> getItemsFromTileEntity(net.minecraft.nbt.CompoundTag tileEntityData, net.minecraft.world.level.block.state.BlockState blockState)
      Gets the list of items from a possible tileEntity.
      Parameters:
      tileEntityData - the data.
      blockState - the block.
      Returns:
      the required list.