▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
SLib

SLib

Slib is a closed-source infrastructure library for Forge 1.20.1 mods. It unifies advanced networking mechanics and security guards, ensuring total stability for all dependent mods without the need for constant maintenance updates.

Оцените первым
699
0
Все версии→SLib 0.0.3

SLib 0.0.3

Release08.07.2026

Список изменений

Fixes

  • Fixed AnimationRunner.valueOr dropping finished animations back to the fallback. Open state for Modal, Drawer, Toast slide-in and similar held values no longer snaps to zero after the open animation completes. Finished values are retained in a last-value map until cancel or clear.
  • Fixed nested ScissorClip. After push, the parent clip was read with peek() on the child that had just been pushed, so nested regions never intersected the real parent. Intersect now runs against the true parent before the child is stacked.
  • Fixed OpenGL scissor Y origin. Clip rectangles are converted with window.getHeight() - (y + h) * guiScale so nested rounded panels and dropdown lists clip on the correct vertical axis.
  • Fixed empty / non-overlapping scissor pushes leaving unbalanced stack state. Zero-area clips are still pushed as empty markers so every push has a matching pop.
  • Fixed Tooltip.tick removing entries exactly when the show delay expired, so tooltips never became visible. Entries now wait for delay, render for a duration, then expire.
  • Fixed Toast queue growth. Expired and dismissed toasts stayed in the queue forever. Entries auto-dismiss after duration, animate out, dispose animation ids and leave the queue. Queue size is capped at MAX_QUEUED (24).
  • Fixed Toast.render calling AnimationRunner.tick() per dismissed entry, which double-stepped every active animation on the client.
  • Fixed RippleEffect registering Animation.of(0, 0, 1, ...) so the ripple radius never expanded. Ripples now animate 0 -> 1 over the style / duration window and dispose their animation ids on finish.
  • Fixed horizontal ScrollContainer scrollbar thumb: position and size used the vertical layout (track X / full track width) instead of thumb X / thumb width along the track.
  • Fixed SearchBar stealing outside clicks. Unfocus on click outside no longer returns true, so other widgets can receive the same click.
  • Fixed FocusManager.unregister when removing an item before the active index: focus no longer jumps to the wrong widget, and the removed focusable is blurred when it was active.
  • Fixed Modal.isOpen / Drawer.isOpen using AnimationRunner.isActive, which becomes false the moment the open animation finishes even when the panel should stay open. Open state is now based on the held animation value.
  • Fixed Rounded SDF draw path multiplying GUI coordinates by pixelScale for both vertices and uniforms, which mis-scaled rounded geometry at GUI scale 2x / 3x / 4x. Vertices and rect uniforms stay in GUI space; feather and pixel scale remain for AA.
  • Fixed BlurBackground.resetState dropping tracked resources without closing them. Reset now closes allocated resources, then clears disposed state.

Improvements

  • AnimationTicker now advances Toast, Tooltip and RippleEffect on client tick end alongside AnimationRunner, so consumers do not need a separate host tick for feedback widgets.
  • AnimationRunner.has(id) reports whether an active or last-value entry exists for an id.
  • Toast adds queue caps, animation dispose on clear/remove, and stable slide-out based on the held slide-in value.
  • Tooltip adds duration(ms), moveAnchor(x, y), size(), MAX_PENDING, and live cursor tracking for FOLLOW_CURSOR while rendering.
  • RippleEffect adds trigger(..., durationMs), tick(deltaMs), active cap, scissor-aware renderAll and dispose of runner ids on removal.
  • ScrollContainer adds contentSize(int), deceleration(float), isDragging(), corrected wheel direction (scroll up moves content up) and kinetic step scaled by frame delta.
  • Modal backdrop uses BlurBackground.renderDimOverlay, panel uses a short scale-in, body text wraps to the dialog width, and panel alpha tracks the open progress.
  • Drawer content is scissored to the visible panel; isVisible matches isOpen.
  • Binding.fire snapshots listeners so observers can register/unregister during notify without concurrent modification.
  • EventBus.emit dispatches to handlers registered on superclasses and interfaces of the event type, not only the exact class.
  • Dropdown handles empty option lists safely (selectedIndex = -1) and always pairs scissor push/pop with try/finally.
  • Slider hover animation can reverse mid-flight instead of waiting for the previous tween to finish.
  • Toggle thumb travel uses horizontal padding so the knob does not sit flush on the track edge.

UI / Sync

  • RoundedButton draws a true SDF outline ring plus a soft hover glow instead of a solid enlarged fill behind the button body.
  • SearchBar clips the text field (selection, caret, string) so long queries no longer paint over the magnifier icon; caret blink interval is stable from first focus.
  • ScissorClip.isActive() exposes whether a clip stack is currently applied.
  • Additive API only inside 0.0.x. Consumer mods should keep dependencies.slib range [0.0.1, 0.1.0) (or pin 0.0.3 if they want this patch explicitly).

Файлы

slib-0.0.3.jar(220.71 KiB)
Основной
Скачать

Метаданные

Канал релиза

Release

Номер версии

0.0.3

Загрузчики

Forge

Версии игры

1.20.1–1.20.6

Загрузок

24

Дата публикации

08.07.2026

Загрузил

ID версии

Главная