Record Class Palette

java.lang.Object
java.lang.Record
dev.despical.mazeengine.config.Palette

public record Palette(List<Palette.Entry> entries, Palette.Pattern pattern, int sectionSize) extends Record
Stores validated block-state entries and their deterministic selection policy.

Entries pair portable block-state strings with positive finite weights. Parsing resolves Bukkit block data and applies solid, gravity, and decoration constraints appropriate to the palette's use. The entry list is copied and limited so a preset cannot publish an empty or unbounded palette.

Random selection consumes a supplied coordinate hash rather than a mutable random generator. Section patterns instead choose entries from X/Z sections. Both policies can reproduce the same block plan during creation, rebuilding, and repair when the saved preset and seed are retained.

  • Constructor Details

    • Palette

      public Palette(List<Palette.Entry> entries)
    • Palette

      public Palette(List<Palette.Entry> entries, Palette.Pattern pattern, int sectionSize)
      Creates an instance of a Palette record class.
      Parameters:
      entries - the value for the entries record component
      pattern - the value for the pattern record component
      sectionSize - the value for the sectionSize record component
  • Method Details

    • parse

      public static Palette parse(List<String> lines, boolean solid)
    • choose

      public String choose(long hash)
    • patterned

      public Palette patterned(Palette.Pattern pattern, int size)
    • choose

      public String choose(long hash, int x, int z)
    • caps

      public static Palette caps(List<String> lines)
    • serialize

      public List<String> serialize()
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • entries

      public List<Palette.Entry> entries()
      Returns the value of the entries record component.
      Returns:
      the value of the entries record component
    • pattern

      public Palette.Pattern pattern()
      Returns the value of the pattern record component.
      Returns:
      the value of the pattern record component
    • sectionSize

      public int sectionSize()
      Returns the value of the sectionSize record component.
      Returns:
      the value of the sectionSize record component