CultLib/src/GameCult.Unity
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens e9e9c60b0f REC-102: cut stale generated mirrors and a dead maintenance receipt
Deletes four confirmed-dead tracked files:
- CultLib.txt, src/GameCult.Caching/GameCult.Caching.txt,
  src/GameCult.Unity/Assets/UI/UI.txt: concatenated snapshot copies of live
  source, carrying stale E: drive provenance and obsolete dependency
  versions. Live source under src/ remains the owner.
- tests/GameCult.Networking.Tests/lcov.info: tracked coverage output.
  .vscode/tasks.json:14 still generates it fresh via
  "/p:CoverletOutput=./lcov.info" on every coverage run, so tracking the
  stale committed copy in git is the liability, not the generation step.
- .voidbot/status/void-memory-maintenance.json: a one-time "starting"
  receipt (added whole in 4813570, never touched again) naming a dead
  E:\Projects\CultLib path and an unimplemented repo_face_heartbeat
  launcher. VoidBot's actual heartbeat state lives at
  .voidbot/status/repo-face-heartbeats.{cc,json} (see
  packages/config/src/index.ts REPO_FACE_HEARTBEAT_STATE_PATH) — a
  different file entirely; nothing reads this one.

Kill attempts:
- git grep -n for each of "CultLib\.txt", "GameCult\.Caching\.txt",
  "UI\.txt", "lcov\.info" across origin/main, excluding each file's own
  path: only .voidbot birth/distiller snapshots (auto-generated onboarding
  file-listing catalogs, not functional readers) and the one real lcov.info
  producer in .vscode/tasks.json.
- rg across all of F:/Projects (excluding target/node_modules/.git):
  gamecult-site's docs/research/gamecult-org-repo-ledger.json lists
  "CultLib.txt" as a filename in a static historical repo-file inventory
  (not a functional consumer); Aetheria/docs/cultcache-migration-cut.md
  cites GameCult.Caching.txt:157 as an evidence line number in a
  migration-history note (stale citation after this cut, not a functional
  break — flagged for the record, not fixed here since that doc is out of
  scope).
- voidbot MCP search for void-memory-maintenance.json / repo_face_heartbeat
  found only the unrelated repo-face-heartbeats state path, confirming no
  reader.

Collision check: git diff --stat origin/main against each of the other 4
CultLib worktrees (codex/recover-aetheria-authority,
codex/delvehold-isosurface, claude/media-stream-catalog, and the two
detached-HEAD worktrees, both confirmed ancestors of origin/main) over
these five paths: all empty, no in-flight work touches them.

REC-102

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-13 14:10:10 +02:00
..
Assets REC-102: cut stale generated mirrors and a dead maintenance receipt 2026-09-13 14:10:10 +02:00
ProjectSettings Initial commit 2026-04-18 06:04:39 +01:00
.gitignore Initial commit 2026-04-18 06:04:39 +01:00
GameCult.Unity.sln.DotSettings Initial commit 2026-04-18 06:04:39 +01:00
README.md Add Unity CultCache Studio 2026-05-24 19:56:50 +01:00

CultUI

CultUI is a Unity runtime UI composition and inspector framework, packaged for UPM and developed alongside a demo project that showcases its components, layout system, and reflective inspector workflow.

This repository serves two purposes:

  • the source of the org.gamecult.ui package
  • the source of the org.gamecult.caching.unity CultCache editor package
  • a Unity project for developing and demonstrating the package in a real scene

Scope

CultUI is aimed at runtime, data-driven interface generation rather than hand-authoring every screen from scratch.

It is built for cases like:

  • in-game settings menus
  • debug and developer panels
  • runtime inspectors for game objects and data models
  • tools for exposing configurable values with minimal UI boilerplate
  • reusable menu flows composed from prefabs and field handlers

Features

  • reflective runtime inspector generation for fields and properties
  • prefab-driven resolver system for mapping value types to UI controls
  • built-in field components for common input and display patterns
  • foldouts and nested inspectors for structured data
  • modal and color-picker style components
  • reusable layout components for composing inspector rows and panels
  • runtime menu composition for demos and application flows
  • UPM-style package metadata and assembly definition for integration into Unity projects

Package Layout

The package source lives under Assets/UI.

Key parts of the package include:

  • package.json: package metadata for org.gamecult.ui
  • GameCult.Unity.UI.asmdef: assembly definition for the runtime package
  • Generator.cs: reflective inspector generation entry point
  • ReflectiveResolver.cs: runtime resolver for prefab-backed field handlers and components
  • Components/: built-in controls such as toggles, sliders, enum selectors, text input, buttons, labels, foldouts, and modal UI
  • Prefabs/, Resources/, Shaders/: packaged assets used by the framework

Demo Project

This repository also contains a Unity project used to develop and preview the package.

The demo project provides:

  • a sample scene under Assets/Scenes
  • package assets wired into a working Unity editor project
  • demo menu flow showing how CultUI panels can be assembled at runtime
  • CultCache Studio, a Unity editor window for opening and editing .cc files
  • a place to iterate on prefabs, resources, and inspector behavior without needing a separate host project

Installation

Local Package Development

If you are working in this repository directly:

  1. Open the project in Unity 6000.4.2f1.
  2. Let Unity import packages and regenerate project files.
  3. Open the demo scene in Assets/Scenes.

Installing As A UPM Package

To consume CultUI from another Unity project, reference the package by local path or Git URL in your project's manifest.json.

Example local reference:

{
  "dependencies": {
    "org.gamecult.ui": "file:../path-to-CultUI/Assets/UI"
  }
}

Usage

At a high level, CultUI works by combining:

  • a ReflectiveResolver asset that knows which prefabs handle which value types
  • reusable UI component prefabs
  • a Generator or GeneratorPanel that inspects an object and emits UI rows at runtime

Typical flow:

  1. Create or configure a ReflectiveResolver.
  2. Assign field and component prefabs to the resolver.
  3. Place a Generator or GeneratorPanel in your canvas hierarchy.
  4. Call Inspect(...) on a target object or use the helper methods for explicit UI composition.
  5. Refresh displayed values as your runtime state changes.

CultUI can be used both reflectively and imperatively:

  • reflective mode generates inspector UI from object members
  • imperative mode builds menus and panels directly through helper methods and component composition

Included Controls

The package currently includes components for patterns such as:

  • labels
  • text buttons
  • boolean toggles
  • text input
  • numeric sliders
  • increment/decrement fields
  • enum selection
  • foldouts
  • modal overlays
  • color selection workflows

Requirements

  • Unity 6000.4.2f1 for this repository's demo project
  • uGUI
  • TextMeshPro

The development project also includes additional Unity packages and NuGet-managed dependencies used by the demo environment.

Repository Structure

  • Assets/UI: package source
  • Assets/Caching: CultCache Unity editor package source
  • Assets/Scenes: demo scene content
  • Assets/Prefabs, Assets/Resources, Assets/Scripts: demo-project support assets and scripts
  • Packages, ProjectSettings: Unity project configuration for package development and demonstration

Development Notes

  • the Unity project is the development host for the package
  • generated .csproj and solution files are editor artifacts
  • package-facing code should remain centered in Assets/UI
  • demo-only code should stay separate from reusable package code