Skip to content

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 14 Aug 11:34
· 114 commits to main since this release

The camera release.
A capture is the world from a player's eye drawn onto a map, server-side: real block
textures, transparency through glass and water, biome tints read from Minecraft's own colormaps, a sky with the
sun, moon, stars and clouds where they actually are, and the mobs and players in view wearing their own skins.
Still no resource pack and no client mod, because it is still a map item.

Paper 26.2 and Java 25, unchanged from 1.0.0.

The camera

  • camera().capture(player, size, onShot) for a still, and camera().feed(player, options, onFrame) for a
    live view with the tick loop written for you: one capture in flight, frames only as fast as the server's
    budget allows, and none at all while the screen is put away.
  • Entities drawn the way their own renderers draw them - mob layers, armour and trims, held and dropped items,
    illager poses, a fox's mouth, a raid captain's banner, a squid pointing where it really swims, and the
    name-tag jokes.
  • The blocks the client builds in code: chests, shulker boxes, signs and what is written on them, item frames
    and the maps hanging in them, banners with their patterns, decorated pots, heads, shelves, minecarts, boats
    and paintings.
  • Fluids stand at the depth their level says, with the flowing texture turned downhill.
  • Resource packs: whatever is in plugins/MapGUI/assets/, the pack the server already hands its players, and
    one a plugin ships inside its own jar through Camera#useResourcePack.
  • An admin owns the cost. A tick budget and an fps ceiling divide between everyone with a view open, and
    /mapgui camera performance names the plugin spending it.

Also new

  • Printing to real maps. MapGui.printer() puts pixels or a whole capture onto genuine map items, cut into
    a grid in reading order. Locked and saved by the world, so they survive a restart and survive MapGUI being
    uninstalled.
  • More ways to carry a GUI. A popup, a real item, a pinned hotbar slot or the offhand. HandOptions#mapId
    pins the map id so a resource pack can recognise the item, Q closes a pinned map, and a map in the offhand no
    longer takes over the player's aim.
  • Widgets: Ui.Image, Ui.Gap, Spinner(), Screen#keepDrawing(), onSwapHands(), onSneak(boolean).
  • Drawing: shapes combine with intersectionWith, combinedWith, without and holeIn,
    Painter.pushClip(Shape) clips to any of them, and a shape fills a row at a time rather than a pixel at a time.
  • Walls send less: a changed rectangle per map instead of the whole wall, every map in a frame in one packet
    bundle so a wall applies without tearing, and prerender for a repeating animation.
  • MapImage renders a node tree to an image with no server anywhere, through the real layout engine, font
    and palette.

Heads-up for plugin developers

  • mapgui-layout is no longer published on its own. Its classes ship inside mapgui-api, so one coordinate is
    everything - drop the second dependency if you had it.
  • The examples are one jar now, MapGUI-examples-1.1.0.jar, in place of a zip that unpacked into six plugins.

Installing

MapGUI-1.1.0.jar into plugins/, then restart. MapGUI-examples-1.1.0.jar beside it adds every demo and the
sample video, reached through /mapgui hand open and /mapgui wall place; deleting it is the whole off switch.

Building against it

compileOnly("io.github.flog99:mapgui-api:1.1.0")

Full changelog for 1.1.0