Interface Builder<T>

All Superinterfaces:
BuilderContext, NamedSchema, SchemaConvertable<Void>
All Known Implementing Classes:
BuilderActionAddToTargetMemory, BuilderActionAdjustPortalTimer, BuilderActionAdjustPosition, BuilderActionAppearance, BuilderActionApplyEntityEffect, BuilderActionAttack, BuilderActionBase, BuilderActionBeacon, BuilderActionBlockHitInteraction, BuilderActionChangeTargetRole, BuilderActionClearEncounterBossBar, BuilderActionClearEncounterWeather, BuilderActionCombatAbility, BuilderActionCompleteTask, BuilderActionCrouch, BuilderActionDelayDespawn, BuilderActionDespawn, BuilderActionDie, BuilderActionDisplayName, BuilderActionDropItem, BuilderActionEntityHitInteraction, BuilderActionFlockBeacon, BuilderActionFlockJoin, BuilderActionFlockLeave, BuilderActionFlockSetTarget, BuilderActionFlockState, BuilderActionForEach, BuilderActionGrantReward, BuilderActionIgnoreForAvoidance, BuilderActionInventory, BuilderActionList, BuilderActionLockOnInteractionTarget, BuilderActionLog, BuilderActionMakePath, BuilderActionModelAttachment, BuilderActionMount, BuilderActionNothing, BuilderActionNotify, BuilderActionOpenBarterShop, BuilderActionOpenShop, BuilderActionOverrideAltitude, BuilderActionOverrideAttitude, BuilderActionParentState, BuilderActionPickUpItem, BuilderActionPlaceBlock, BuilderActionPlayAnimation, BuilderActionPlaySound, BuilderActionProjectToGround, BuilderActionRandom, BuilderActionRecomputePath, BuilderActionReleaseTarget, BuilderActionRemove, BuilderActionResetBlockSensors, BuilderActionResetInstructions, BuilderActionResetPath, BuilderActionResetSearchRays, BuilderActionRole, BuilderActionSequence, BuilderActionSetAlarm, BuilderActionSetBlockToPlace, BuilderActionSetEncounterAudioState, BuilderActionSetEncounterBossBar, BuilderActionSetEncounterWeather, BuilderActionSetFlag, BuilderActionSetHealthRegen, BuilderActionSetInteractable, BuilderActionSetInvulnerable, BuilderActionSetLeashPosition, BuilderActionSetMarkedTarget, BuilderActionSetStat, BuilderActionSetTargetNPCInvulnerable, BuilderActionSignalTaggedVolumes, BuilderActionSignalWorldEvent, BuilderActionSpawn, BuilderActionSpawnInteraction, BuilderActionSpawnParticles, BuilderActionStartEncounterMusic, BuilderActionStartObjective, BuilderActionState, BuilderActionStopEncounterMusic, BuilderActionStorePosition, BuilderActionTest, BuilderActionTimeout, BuilderActionTimer, BuilderActionTimerContinue, BuilderActionTimerModify, BuilderActionTimerPause, BuilderActionTimerRestart, BuilderActionTimerStart, BuilderActionTimerStop, BuilderActionToggleStateEvaluator, BuilderActionTriggerSpawnBeacon, BuilderActionTriggerSpawners, BuilderActionWithDelay, BuilderBase, BuilderBaseWithType, BuilderBodyMotionAimCharge, BuilderBodyMotionBase, BuilderBodyMotionCharge, BuilderBodyMotionFind, BuilderBodyMotionFindBase, BuilderBodyMotionFindWithTarget, BuilderBodyMotionFlock, BuilderBodyMotionLand, BuilderBodyMotionLeave, BuilderBodyMotionMaintainDistance, BuilderBodyMotionMatchLook, BuilderBodyMotionMoveAway, BuilderBodyMotionNothing, BuilderBodyMotionPath, BuilderBodyMotionSequence, BuilderBodyMotionTakeOff, BuilderBodyMotionTeleport, BuilderBodyMotionTestProbe, BuilderBodyMotionTimer, BuilderBodyMotionWander, BuilderBodyMotionWanderBase, BuilderBodyMotionWanderInCircle, BuilderBodyMotionWanderInRect, BuilderCombatTargetCollector, BuilderComponent, BuilderDeferrableAction, BuilderEncounterManager, BuilderEncounterManagerAbstract, BuilderEncounterManagerVariant, BuilderEncounterMemberCollector, BuilderEntityFilterAltitude, BuilderEntityFilterAnd, BuilderEntityFilterAttitude, BuilderEntityFilterBase, BuilderEntityFilterCombat, BuilderEntityFilterDeath, BuilderEntityFilterEntityEffect, BuilderEntityFilterExecutingInteraction, BuilderEntityFilterFlock, BuilderEntityFilterHeightDifference, BuilderEntityFilterInsideBlock, BuilderEntityFilterInventory, BuilderEntityFilterItemInHand, BuilderEntityFilterLineOfSight, BuilderEntityFilterMany, BuilderEntityFilterMovementState, BuilderEntityFilterNot, BuilderEntityFilterNPCGroup, BuilderEntityFilterOr, BuilderEntityFilterSpotsMe, BuilderEntityFilterStandingOnBlock, BuilderEntityFilterStat, BuilderEntityFilterViewSector, BuilderEntityFilterWithToggle, BuilderHeadMotionAim, BuilderHeadMotionBase, BuilderHeadMotionNothing, BuilderHeadMotionObserve, BuilderHeadMotionRotate, BuilderHeadMotionSequence, BuilderHeadMotionTimer, BuilderHeadMotionWatch, BuilderInstruction, BuilderInstructionRandomized, BuilderInstructionReference, BuilderMotionBase, BuilderMotionControllerBase, BuilderMotionControllerDive, BuilderMotionControllerFly, BuilderMotionControllerMap, BuilderMotionControllerWalk, BuilderMotionSequence, BuilderMotionTimer, BuilderRelativeWaypointDefinition, BuilderRole, BuilderRoleAbstract, BuilderRoleVariant, BuilderSensorAdjustPosition, BuilderSensorAge, BuilderSensorAlarm, BuilderSensorAnd, BuilderSensorAnimation, BuilderSensorAny, BuilderSensorBase, BuilderSensorBeacon, BuilderSensorBlock, BuilderSensorBlockChange, BuilderSensorBlockType, BuilderSensorCanInteract, BuilderSensorCanPlace, BuilderSensorChargeBlockCollisions, BuilderSensorChargeEntityCollisions, BuilderSensorChargeState, BuilderSensorCombatActionEvaluator, BuilderSensorCount, BuilderSensorDamage, BuilderSensorDroppedItem, BuilderSensorEntity, BuilderSensorEntityBase, BuilderSensorEntityEvent, BuilderSensorEntityPrioritiserAttitude, BuilderSensorEntityPrioritiserBase, BuilderSensorEval, BuilderSensorEvent, BuilderSensorFlag, BuilderSensorFlockCombatDamage, BuilderSensorFlockLeader, BuilderSensorGameFlag, BuilderSensorHasHostileTargetMemory, BuilderSensorHasInteracted, BuilderSensorHasTask, BuilderSensorInAir, BuilderSensorInflictedDamage, BuilderSensorInteractionContext, BuilderSensorInWater, BuilderSensorIsBackingAway, BuilderSensorIsBusy, BuilderSensorKill, BuilderSensorLeash, BuilderSensorLight, BuilderSensorMany, BuilderSensorMotionController, BuilderSensorNav, BuilderSensorNot, BuilderSensorOnGround, BuilderSensorOr, BuilderSensorPath, BuilderSensorPlayer, BuilderSensorPoints, BuilderSensorProjectToGround, BuilderSensorRandom, BuilderSensorReadPosition, BuilderSensorSearchRay, BuilderSensorSelf, BuilderSensorState, BuilderSensorSwitch, BuilderSensorTarget, BuilderSensorTime, BuilderSensorTimer, BuilderSensorValueProviderWrapper, BuilderSensorWeather, BuilderSensorWithEntityFilters, BuilderStateTransition, BuilderStateTransitionController, BuilderStateTransitionEdges, BuilderTransientPathDefinition, BuilderValueToParameterMapping, BuilderWeightedAction, DependencyTrackingBuilder, SupportConfigBuilder

public interface Builder<T> extends BuilderContext, SchemaConvertable<Void>, NamedSchema
  • Method Details

    • build

      @Nullable T build(BuilderSupport builderSupport)
    • validate

      boolean validate(String configName, NPCLoadTimeValidationHelper validationHelper, ExecutionContext context, Scope globalScope, List<String> errors)
      Iterates the builder tree and validates all present dynamic value holders based on the execution context and scope provided. Will also run an optional ILoadTimeValidationHelper
      Parameters:
      configName - the name of the parent file from which the execution context and scope are derived
      validationHelper - an optional validation helper that will be run in certain contexts depending on implementations
      context - the execution context for resolving value holders
      globalScope - the scope for resolving value holders
      errors - a list for storing any errors encountered
      Returns:
      false if any errors were encountered during validation, true otherwise
    • readConfig

      void readConfig(BuilderContext owner, com.google.gson.JsonElement data, BuilderManager builderManager, BuilderParameters builderParameters, BuilderValidationHelper builderValidationHelper)
    • ignoreAttribute

      void ignoreAttribute(String name)
    • category

      Class<T> category()
    • setTypeName

      void setTypeName(String name)
    • getTypeName

      String getTypeName()
    • setLabel

      void setLabel(String label)
    • toSchema

      @Nonnull Schema toSchema(@Nonnull SchemaContext context)
      Description copied from interface: SchemaConvertable
      Returns a schema object that represents this codec as JSON Schema.
      Specified by:
      toSchema in interface SchemaConvertable<T>
      Parameters:
      context - A context to use to assist with creating the schema.
      Returns:
      the generated schema.
    • getDescriptor

      BuilderDescriptor getDescriptor(String builderName, String categoryName, BuilderManager builderManager)
    • isDeprecated

      default boolean isDeprecated()
    • getBuilderDescriptorState

      @Nullable BuilderDescriptorState getBuilderDescriptorState()
    • getDependencies

      it.unimi.dsi.fastutil.ints.IntSet getDependencies()
    • hasDynamicDependencies

      default boolean hasDynamicDependencies()
    • addDynamicDependency

      default void addDynamicDependency(int builderIndex)
    • getDynamicDependencies

      @Nullable default it.unimi.dsi.fastutil.ints.IntSet getDynamicDependencies()
    • clearDynamicDependencies

      default void clearDynamicDependencies()
    • getBuilderParameters

      BuilderParameters getBuilderParameters()
    • getEvaluatorHelper

      FeatureEvaluatorHelper getEvaluatorHelper()
    • getStateMappingHelper

      StateMappingHelper getStateMappingHelper()
    • getInstructionContextHelper

      InstructionContextHelper getInstructionContextHelper()
    • canRequireFeature

      boolean canRequireFeature()
    • validateReferencedProvidedFeatures

      void validateReferencedProvidedFeatures(BuilderManager manager, ExecutionContext context)
    • excludeFromRegularBuilding

      boolean excludeFromRegularBuilding()
    • isEnabled

      boolean isEnabled(ExecutionContext context)
    • isSpawnable

      default boolean isSpawnable()