▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/InGame Info Reborn
InGame Info Reborn

InGame Info Reborn

In-game HUDs and GUIs done with structure — reactive, declarative, composable, and built to handle the rest.

Оцените первым
396
1

InGame Info Reborn

"In-game HUDs and GUIs done with structure — reactive, declarative, composable, and built to handle the rest."


Downloads

This is a Work-In-Progress spiritual successor of InGame-Info-XML, not a fork. If you like this project, don't forget to give it a star⭐!

Suggestions/PRs are welcome

Overview

This is a library mod that helps you to create in-game overlaid (or focused) GUI with ease.

!Snipaste_2025-01-12_12-53-07 (Nothing will pop up with the default configuration!)

Architectural Modules Chart

Click to Expand
ModuleRoleStatus
MVVM BaseSeparates logic (ViewModel) from rendering (View)✅ Done
XAML-Style DSL For ViewDeclarative XAML-style layout to build static UI trees✅ Done
Reactive BindingView reacts to changes in ViewModel automatically✅ Done
Compose (Injected via Slot)Immediate-mode UI embedded in ViewModel⚠️ Partially
Snapshot DiffingVirtual tree diffing for Compose-based UI✅ Done
Shared ContextShared runtime context between ViewModel and Compose blocks✅ Done
DOM-Like Event SystemInput propagation and event capturing/bubbling✅ Done
Interactable ControlCaptures input, intercepts propagation (works with Event System)✅ Done
Fixed / Render UpdateDual update loop for logic vs render✅ Done
Annotation Driven Auto-InterpolationUtility for smooth interpolation during render updates✅ Done
Render Op QueueAbstract draw commands for controls✅ Done
UI DecorationDraw custom visuals on existing controls✅ Mostly Done
Transition APIExternally trigger view transitions🚧 Planned
Theme ManagerGlobal theme system (colors, font scale, etc)✅ Mostly Done
Modal LayerStack-based modal / dialog system🚧 Planned

Example

<VerticalGroup>
    <Text uid = "fps">
    ...
</Group>
// snippet from View and ViewModel classes
@Reactive(targetUid = "fps", property = "text", initiativeSync = true)
public ReactiveObject<String> fpsText = new ReactiveObject<>(){};

EventCenter.gameFpsEvent.addListener((fps) ->
{
    fpsText.set("FPS: " + fps);
});
// registration entry point
@SubscribeEvent
public static void onIgiRuntimeEntryPoint(IgiRuntimeEntryPointEvent event)
{
    event.runtime.initPhase
            .registerMvvm("example", ExampleViewModel.class)
            .openGuiOnStartup("example");
}

Wiki

  • WIP Wiki

Implementation Todo List / Overview

Click to Expand

Currently working on the architecture.
Not adding controls or QoL updates.

My Detailed Todo List:

  • https://trello.com/b/MTLHeyGn/ingameinfo

Implementation Overview:

  • Add framebuffer to the GUI rendering life cycle (✔)
  • Introduce a custom GUI container (✔)
  • Maintain a list of GUI containers so that GUIs can stack together (✔)
  • A GUI container can be ingame-overlaid/focused (runtime switchable) (✔)
  • Introduce feature-rich GUI layout
    • Pivot (✔)
    • Alignment (✔)
    • Padding (✔)
    • Horizontal Group (stack elements horizontally) (✔)
    • Vertical Group (stack elements vertically) (✔)
    • Sized Group (✔)
    • Nesting Groups (group in group) (✔)
    • Adaptive Group (fit elements into it adaptively)
    • Foldout Group
    • Draggable Group
  • Add controls like text, button, input field, etc.
    • Text (✔)
    • Sliding Text (✔)
    • Anim Text (✔)
    • Button (✔)
    • Checkbox
    • Input Field
    • Image (✔)
    • Url Image (✔)
    • GIF
    • Slide Bar
    • Progress Bar (✔)
    • Item (✔)
  • Add CrT/Zenscript support (✔)
  • Ingame spotify support (go to wiki for details) (✔)

Latest Build

In case you want to use the latest action build

  • Go to GitHub Actions
  • Click on the latest workflow
  • Scroll down to the bottom and download the Artifacts
  • Unzip and ingameinfo-[version].jar is the mod file

Credits

  • Created using GregTechCEu's Buildscripts
  • Inspired by InGame-Info-XML
  • Bundled Configurate licensed under Apache-2.0

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

1.12.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Зависимости

Ссылки

Создатели

Детали

Лицензия:
Опубликован:1 год назад
Обновлён:9 месяцев назад
Главная