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 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.neoforged.neoforge.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 worldPos, Function<net.minecraft.core.BlockPos,@Nullable 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)