Skip to content

v0.3.0

Choose a tag to compare

@neverforward neverforward released this 01 Oct 15:51
· 11 commits to main since this release

Added

  • The panel fades in when the info display appears and out when it disappears; when the crosshair
    moves to another block or entity the same panel resizes its box from the size it had. The lines are
    swapped at once and nothing is faded while that happens, so changing the subject never flashes.
    client.transitionTime sets the duration in seconds (default 0.1); 0 keeps the previous behaviour
    of appearing, resizing and disappearing instantly. Only the display switching and the box resizing
    animate. The client overlay is the only side that can animate: a server-side channel hands text to
    the vanilla UI.
  • A configuration file written before the switches existed keeps the panel it had: while upgrading, a
    file below schema version 5 has its legacy format / entityFormat templates read once - before
    the config library merges the new defaults in and rewrites the file - and turned into switches
    group by group. The block format template feeds the display.* switches and the entity
    entityFormat template the entity.* switches, a placeholder the template used meaning that part
    stays visible and a placeholder it never used meaning that switch is off. An old default format
    ({blockName}, {blockType}, {x} {y} {z}, {extras}) therefore ends up with display.name,
    display.identifier, display.position and display.extras on and the rest of the block group
    off, and the entity template's placeholders map onto entity.* the same way - for example
    {entityName} -> entity.name, {entityType} -> entity.identifier, {x} {y} {z} ->
    entity.position, {health} / {maxHealth} -> entity.health, {extras} -> entity.extras. A
    template that is not in the file at all leaves its group at the defaults rather than switching
    everything off. The migration runs only for a file below version 5 and the result is saved
    immediately. The per-block-type overrides have no equivalent and are still dropped, and {dim}
    has no switch to feed either.
  • Blocks and entities have a panel of their own now: display.* (nine switches) describes a block
    and entity.* (eight switches) an entity, and entity.extras is the entity panel's own switch for
    per-entity extra lines, the counterpart of display.extras. The entity panel reuses the same
    extras.* adapters (extras.enabled gates the block and the entity side alike): container
    entities such as chest / hopper minecarts and boats with chest come from extras.chest, paintings
    from extras.painting and the worn equipment of players, armor stands and armored mobs from
    extras.misc, which reports the four armor slots plus the main and off hand.

Changed

  • Higher Config schema version (5) for the separate display / entity switch groups, the removal
    of the templates and the new client.transitionTime option; existing files are merged
    automatically, and a file below version 5 has its old templates migrated into switches first.
  • The panel is assembled by the mod from per-part switches instead of the format / entityFormat
    text templates, and the two targets no longer share one switch set: display.* feeds the block
    panel and entity.* the entity panel. Each is laid out in the same five lines: the name with the
    facing in muted brackets (Stone§7(north)), the type id with its translation key in brackets
    (§7minecraft:stone(tile.stone.stone)), the position with the distance behind it, the labelled
    stats (each §7<label> §f<value> and separated by one space) and the extras. The block panel's
    stats are the light level and the light the block emits (Light 12 Emission 15). A part the target
    does not have (health on an entity type without any, a facing on a block whose
    states we do not understand) is skipped and empty lines are dropped, so a malformed layout (a stray
    placeholder, a dangling separator, a blank line) is no longer possible. The · that joined every
    format part is gone (the only one left is inside a container's extras line, between the slot count
    and the total item count) and the dimension is not shown any more.
  • The entity panel no longer reports a light level or light emission: both were read from the block
    under the entity, which describes a world position rather than the entity itself, so
    display.light / display.emission are block-only now and leave an entity panel untouched.
    display.health is entity.health now, next to the rest of the entity switches, and there is no
    display.dimension at all. /insight set accepts every display.* and entity.* name.
  • The client info panel is drawn by the game's own UI renderer now (engine font, engine item renderer
    for the subject icon, rounded background, fade and size animation over client.transitionTime)
    instead of the ImGui overlay, so its text and icon match the vanilla UI.
  • The configuration screen no longer has "Block format" / "Entity format" text boxes. Its left column
    is tabbed instead of one long stack of sections, and the tabs follow the two switch groups:
    General; Block lines, holding Title line (Name, Facing), Details line (Type id, Translation
    key), Position line (Position, Distance), State line (Light, Emission) and Extras (Extras lines ->
    display.extras); Entity info, holding Entity info (entityEnabled), Title line (Name,
    Facing), Details line (Type id, Translation key), Position line (Position, Distance), State line
    (Health) and Extras (Extras lines -> entity.extras); Extras, holding Extras (extras.enabled
    only - the display.extras row moved into the Block lines tab), Extras: every block, Extras:
    containers, Extras: block entities, Extras: redstone and Extras: block states; and Keys.
    Preview and Appearance stay in the right column.

Removed

  • format, entityFormat and the per-block-type format overrides
    ({ "match": ..., "format": ... }), together with their placeholders ({blockName},
    {blockType}, {blockKey}, {x} {y} {z}, {dist}, {dim}, {direction}, {light},
    {emission}, {extras}, {entityName}, {entityType}, {health}, {maxHealth}).
    /insight set no longer accepts format / entityFormat and answers Unknown option: ... for
    them.

Fixed

  • The subject icon was centred on the whole panel, so a block with many extra lines left it
    floating in the middle of the box, away from the name it belongs to. It sits at the top of its
    cell now, level with the first text line, and it is one and a half text lines tall (measured from
    the same line height the text uses, so it still follows client.fontSize) instead of the fixed
    16 units that made it read as a bullet next to the first line.
  • /insight set <option> <value> rejected every number - /insight set maxDistance 24 answered
    Syntax error: Unexpected "24" - and anything containing a space: the value was declared as a
    std::string, which looks like an identifier to the command parser. It is read as raw text now, so
    numbers, colours and free text can be typed the way the README documents them. Values are still
    validated (Invalid number value: bogus).