Class PoleHelper<T extends Comparable<T>>

java.lang.Object
com.simibubi.create.foundation.utility.placement.util.PoleHelper<T>
All Implemented Interfaces:
IPlacementHelper
Direct Known Subclasses:
GantryShaftBlock.PlacementHelper, PistonExtensionPoleBlock.PlacementHelper

public abstract class PoleHelper<T extends Comparable<T>> extends Object implements IPlacementHelper
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected final Function<net.minecraft.world.level.block.state.BlockState,net.minecraft.core.Direction.Axis>
     
    protected final net.minecraft.world.level.block.state.properties.Property<T>
     
    protected final Predicate<net.minecraft.world.level.block.state.BlockState>
     

    Fields inherited from interface com.simibubi.create.foundation.utility.placement.IPlacementHelper

    ID
  • Constructor Summary

    Constructors
    Constructor
    Description
    PoleHelper(Predicate<net.minecraft.world.level.block.state.BlockState> statePredicate, Function<net.minecraft.world.level.block.state.BlockState,net.minecraft.core.Direction.Axis> axisFunction, net.minecraft.world.level.block.state.properties.Property<T> property)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    int
    attachedPoles(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction direction)
     
    getOffset(net.minecraft.world.entity.player.Player player, net.minecraft.world.level.Level world, net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.BlockPos pos, net.minecraft.world.phys.BlockHitResult ray)
     
    Predicate<net.minecraft.world.level.block.state.BlockState>
     
    boolean
    matchesAxis(net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.Direction.Axis axis)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface com.simibubi.create.foundation.utility.placement.IPlacementHelper

    displayGhost, getItemPredicate, getOffset, matchesItem, matchesState, renderAt
  • Field Details

    • statePredicate

      protected final Predicate<net.minecraft.world.level.block.state.BlockState> statePredicate
    • property

      protected final net.minecraft.world.level.block.state.properties.Property<T extends Comparable<T>> property
    • axisFunction

      protected final Function<net.minecraft.world.level.block.state.BlockState,net.minecraft.core.Direction.Axis> axisFunction
  • Constructor Details

    • PoleHelper

      public PoleHelper(Predicate<net.minecraft.world.level.block.state.BlockState> statePredicate, Function<net.minecraft.world.level.block.state.BlockState,net.minecraft.core.Direction.Axis> axisFunction, net.minecraft.world.level.block.state.properties.Property<T> property)
  • Method Details

    • matchesAxis

      public boolean matchesAxis(net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.Direction.Axis axis)
    • attachedPoles

      public int attachedPoles(net.minecraft.world.level.Level world, net.minecraft.core.BlockPos pos, net.minecraft.core.Direction direction)
    • getStatePredicate

      public Predicate<net.minecraft.world.level.block.state.BlockState> getStatePredicate()
      Specified by:
      getStatePredicate in interface IPlacementHelper
      Returns:
      a predicate that gets tested with the blockstate the player is looking at
      should return true if this placement helper is active with the given blockstate
    • getOffset

      public PlacementOffset getOffset(net.minecraft.world.entity.player.Player player, net.minecraft.world.level.Level world, net.minecraft.world.level.block.state.BlockState state, net.minecraft.core.BlockPos pos, net.minecraft.world.phys.BlockHitResult ray)
      Specified by:
      getOffset in interface IPlacementHelper
      Parameters:
      player - the player that activated the placement helper
      world - the world that the placement helper got activated in
      state - the Blockstate of the Block that the player is looking at or clicked on
      pos - the position of the Block the player is looking at or clicked on
      ray - the exact raytrace result
      Returns:
      the PlacementOffset object describing where to place the new block.
      Use PlacementOffset.fail() when no new position could be found.
      Use PlacementOffset.success(Vector3i) with the new BlockPos to indicate a success and call PlacementOffset.withTransform(Function) if the blocks default state has to be modified before it is placed