Class ModifiableStructureInfo

java.lang.Object
net.neoforged.neoforge.common.world.ModifiableStructureInfo

public class ModifiableStructureInfo extends Object
Holds lazy-evaluable modified structure info. Memoizers are not used because it's important to return null without evaluating the structure info if it's accessed outside of a server context.
  • Field Details

  • Constructor Details

    • ModifiableStructureInfo

      public ModifiableStructureInfo(ModifiableStructureInfo.StructureInfo originalStructureInfo)
      Parameters:
      originalStructureInfo - StructureInfo representing the original state of a structure when the structure was constructed.
  • Method Details

    • get

      Returns The modified structure info if modified structure info has been generated, otherwise gets original structure info.
      Returns:
      The modified structure info if modified structure info has been generated, otherwise gets original structure info
    • getOriginalStructureInfo

      public ModifiableStructureInfo.StructureInfo getOriginalStructureInfo()
      Returns The original structure info that the associated structure was created with.
      Returns:
      The original structure info that the associated structure was created with
    • getModifiedStructureInfo

      @Nullable public @Nullable ModifiableStructureInfo.StructureInfo getModifiedStructureInfo()
      Returns Modified structure info; null if it hasn't been set yet.
      Returns:
      Modified structure info; null if it hasn't been set yet
    • applyStructureModifiers

      @Internal public void applyStructureModifiers(Holder<Structure> structure, List<StructureModifier> structureModifiers)
      Internal forge method; the game will crash if mods invoke this. Creates and caches the modified structure info.
      Parameters:
      structure - named structure with original data.
      structureModifiers - structure modifiers to apply.
      Throws:
      IllegalStateException - if invoked more than once.