[ESC] Extra Special Core

ExtraSpecialCore bundles shared fonts and GUI helpers (EscText, EscButtons, EscSearchBox, panels) so Creatopia mods stay consistent. Library only—install when another mod lists it as required.

File Details

extraspecialcore-1.2.0.jar

  • R
  • Jun 11, 2026
  • 2.93 MB
  • 9.1K
  • 1.20.1
  • Forge

File Name

extraspecialcore-1.2.0.jar

Supported Versions

  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:esc-extra-special-core-1535889:8229293")
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

ExtraSpecialCore 1.2.0 — Anchor layout foundation

Consumer mods should depend on [1.2.0,2.0) for anchor APIs and search-box helpers.

Layout & screens

  • Anchor layout API — EscAnchorEscInsetsEscLayoutSpecEscLayout, and EscRect helpers for resolving widget and panel bounds from parent rects instead of hard-coded pixel math.
  • EscScreen base class — Subclasses implement buildLayout(); called automatically from init() on open and resize. Includes addAnchoredButtonaddButton, and anchor-based widget placement helpers.
  • Column splits — EscRect.splitColumns() for proportional multi-column layouts (e.g. 25% / 50% / 25%).
  • Fixed-aspect fitting — EscLayout.fitContained() and EscLayout.fitScale() for content with a design size (keyboards, diagrams) that scales uniformly inside a parent rect.
  • Unit tests — EscLayoutTest covers anchor resolve, fill, stretch, and column splits.

Text & widgets

  • EscText helpers — drawFitted / drawInRect for bounded cells; drawScrollingString for single-line overflow; measureLineHeight for font-aware vertical centering.
  • EscSearchBox — Single-line search field with scrolling hint, clip, and ESC font formatting. recommendedHeight(Font) sizes the field to one line of text. Text and hint render vertically centered; cursor uses getScreenX().
  • EscScreen.addSearchBox() — Creates, sizes, and registers search widgets on the screen (panels expose bounds via bindSearchBox() rather than constructing widgets themselves). Overloads for message + hint; addAnchoredSearchBox() for anchor specs.

Migration

  • See LAYOUT_MIGRATION.md for before/after patterns when moving mod screens off absolute pixels.
  • See GUI_VISUAL_CHECKLIST.md for scale/resolution regression testing after layout changes.