Class BuildingStructureHandler<J extends AbstractJobStructure<?,J>,B extends AbstractBuildingStructureBuilder>

java.lang.Object
com.ldtteam.structurize.placement.structure.AbstractStructureHandler
com.minecolonies.core.entity.ai.workers.util.BuildingStructureHandler<J,B>
All Implemented Interfaces:
com.ldtteam.structurize.placement.IPlacementContext, com.ldtteam.structurize.placement.structure.IStructureHandler

public class BuildingStructureHandler<J extends AbstractJobStructure<?,J>,B extends AbstractBuildingStructureBuilder> extends com.ldtteam.structurize.placement.structure.AbstractStructureHandler
Represents a build task for the StructureIterator AI.

It internally uses a structure it transparently loads.

  • Constructor Summary

    Constructors
    Constructor
    Description
    BuildingStructureHandler(net.minecraft.world.level.Level world, IWorkOrder workOrder, AbstractEntityAIStructure<J,B> entityAIStructure, BuildingProgressStage[] stages)
    The minecolonies AI specific creative structure placer.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
     
    void
    consume(List<net.minecraft.world.item.ItemStack> requiredItems)
     
    boolean
     
    net.minecraft.world.item.ItemStack
     
    @Nullable net.minecraftforge.items.IItemHandler
     
    int
     
    net.minecraft.world.level.block.state.BlockState
    getSolidBlockForPos(net.minecraft.core.BlockPos blockPos)
     
    net.minecraft.world.level.block.state.BlockState
    getSolidBlockForPos(net.minecraft.core.BlockPos worldPos, @Nullable Function<net.minecraft.core.BlockPos,net.minecraft.world.level.block.state.BlockState> virtualBlocks)
     
    Get the current stage we're in.
    int
     
    boolean
    hasRequiredItems(@NotNull List<net.minecraft.world.item.ItemStack> requiredItems)
     
    boolean
     
    boolean
    isStackFree(@Nullable net.minecraft.world.item.ItemStack itemStack)
     
    boolean
    Go to the next stage.
    void
    prePlacementLogic(net.minecraft.core.BlockPos worldPos, net.minecraft.world.level.block.state.BlockState blockState, List<net.minecraft.world.item.ItemStack> requiredItems)
     
    boolean
    replaceWithSolidBlock(net.minecraft.world.level.block.state.BlockState blockState)
     
    void
    Set the current stage from memory.
    boolean
    shouldBlocksBeConsideredEqual(net.minecraft.world.level.block.state.BlockState state1, net.minecraft.world.level.block.state.BlockState state2)
     
    void
    triggerEntitySuccess(net.minecraft.core.BlockPos blockPos, List<net.minecraft.world.item.ItemStack> list, boolean placement)
     
    void
    triggerSuccess(net.minecraft.core.BlockPos pos, List<net.minecraft.world.item.ItemStack> list, boolean placement)
     

    Methods inherited from class com.ldtteam.structurize.placement.structure.AbstractStructureHandler

    getBluePrint, getCenterPos, getMd5, getRotationMirror, getSettings, getWorld, hasBluePrint, isReady, setBlueprint, setMd5

    Methods inherited from class java.lang.Object

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

    Methods inherited from interface com.ldtteam.structurize.placement.structure.IStructureHandler

    getProgressPosInWorld, getStructurePosFromWorld, isCorrectMD5, onCompletion
  • Constructor Details

    • BuildingStructureHandler

      public BuildingStructureHandler(net.minecraft.world.level.Level world, IWorkOrder workOrder, AbstractEntityAIStructure<J,B> entityAIStructure, BuildingProgressStage[] stages)
      The minecolonies AI specific creative structure placer.
      Parameters:
      world - the world.
      workOrder - the workorder for placement
      entityAIStructure - the AI handling this structure.
  • Method Details

    • getStage

      @Nullable public @Nullable BuildingProgressStage getStage()
      Get the current stage we're in.
      Returns:
      the current Stage.
    • nextStage

      public boolean nextStage()
      Go to the next stage.
    • setStage

      public void setStage(BuildingProgressStage stage)
      Set the current stage from memory.
      Parameters:
      stage - the stage to set.
    • prePlacementLogic

      public void prePlacementLogic(net.minecraft.core.BlockPos worldPos, net.minecraft.world.level.block.state.BlockState blockState, List<net.minecraft.world.item.ItemStack> requiredItems)
    • getInventory

      @Nullable public @Nullable net.minecraftforge.items.IItemHandler getInventory()
    • triggerSuccess

      public void triggerSuccess(net.minecraft.core.BlockPos pos, List<net.minecraft.world.item.ItemStack> list, boolean placement)
      Specified by:
      triggerSuccess in interface com.ldtteam.structurize.placement.structure.IStructureHandler
      Overrides:
      triggerSuccess in class com.ldtteam.structurize.placement.structure.AbstractStructureHandler
    • triggerEntitySuccess

      public void triggerEntitySuccess(net.minecraft.core.BlockPos blockPos, List<net.minecraft.world.item.ItemStack> list, boolean placement)
    • hasRequiredItems

      public boolean hasRequiredItems(@NotNull @NotNull List<net.minecraft.world.item.ItemStack> requiredItems)
    • consume

      public void consume(List<net.minecraft.world.item.ItemStack> requiredItems)
    • isCreative

      public boolean isCreative()
    • getStepsPerCall

      public int getStepsPerCall()
    • getMaxBlocksCheckedPerCall

      public int getMaxBlocksCheckedPerCall()
    • isStackFree

      public boolean isStackFree(@Nullable @Nullable net.minecraft.world.item.ItemStack itemStack)
    • allowReplace

      public boolean allowReplace()
    • getHeldItem

      public net.minecraft.world.item.ItemStack getHeldItem()
    • getSolidBlockForPos

      public net.minecraft.world.level.block.state.BlockState getSolidBlockForPos(net.minecraft.core.BlockPos blockPos)
    • getSolidBlockForPos

      public net.minecraft.world.level.block.state.BlockState getSolidBlockForPos(net.minecraft.core.BlockPos worldPos, @Nullable @Nullable Function<net.minecraft.core.BlockPos,net.minecraft.world.level.block.state.BlockState> virtualBlocks)
    • replaceWithSolidBlock

      public boolean replaceWithSolidBlock(net.minecraft.world.level.block.state.BlockState blockState)
    • fancyPlacement

      public boolean fancyPlacement()
    • shouldBlocksBeConsideredEqual

      public boolean shouldBlocksBeConsideredEqual(net.minecraft.world.level.block.state.BlockState state1, net.minecraft.world.level.block.state.BlockState state2)