infinipaint/FORK.md
copilot 3140f9bb55
Some checks are pending
Windows Release / windows-x86_64 (push) Waiting to run
Prevent players from hiding Fog of War layers
Clients could toggle fog visibility (and fade alpha); DisplayData synced
that to everyone and defeated FoW. Block client set_visible/set_alpha,
clamp host-side DisplayData updates, and ignore eye toggles for fog.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-11-07 15:42:58 +01:00

3.3 KiB
Raw Blame History

Fork features (copilot/infinipaint)

Upstream: ErrorAtLine0/infinipaint
Public forge: https://forgejo.fsociety00.cc/copilot/infinipaint
GitHub (littlecodedragon/infinipaint) is private builder only — not a public fork mirror. Source of truth stays on Forgejo.

Save format: INFPNT000008 / version 0.8.0-fork (not network-compatible with stock 0.6.x peers).

CI

Workflow Trigger Runner Output
.github/workflows/windows_release.yml push main to private GitHub mirror GitHub-hosted windows-latest uploads public Forgejo tag windows-continuous
.forgejo/workflows/windows_release.yml every push to main Forgejo self-hosted windows-release (optional) same tag on Forgejo

Friends (Windows): https://forgejo.fsociety00.cc/copilot/infinipaint/releases/tag/windows-continuous — zip entpacken, infinipaint.exe starten.
Details: docs/windows-runner.md.

Bring Everyone Here (host)

In the player list, the lobby host gets Bring Everyone Here. Clients receive CLIENT_FORCE_CAMERA_JUMP and run the same smooth_move_to path as Jump To.

Group / Ungroup (canvas objects)

With a multi-selection (images, brush strokes, text boxes, shapes, …), use Group / Ungroup in the selection panel. Grouped objects auto-expand into the selection so they transform together. Not related to players.

Image compression

Settings → Images: compress on insert (WebP/PNG/Keep). Compress all images on canvas rewrites every already-placed raster (same format/quality; Keep uses WebP). Selection panel: Compress Images for a subset.

Freistellen

Not automatic on import. Choose Paste Image + Freistellen from the canvas right-click menu, or Ctrl+Shift+V then pick Freistellen vs as-is. Right-click an already placed image (or use the selection panel / image properties) to Freistellen later. Settings → Images only pick the method: white-key always; Schnell (silueta) / Allgemein (bria) when rembg CLI and that model exist (bundled rembg/ + rembg-home/models/, Tower ~/.local/share/tower-rembg, or PATH). Otherwise those radios stay greyed; white-key still works. Linux install runs linuxinstall/bundle-rembg.sh.

Fog of War / layer lock (host)

In the layer panel (host / local file only): mark a leaf layer as Fog of War layer (must sit above the content it covers), then paint fog with brush/shapes on that layer. Players receive a stripped world — only objects fully covered by opaque fog (not merely overlapping) are omitted from join sync and from their save. Partially covered images stay. Moving or reshaping fog (or content under it) live-updates clients: newly covered objects are unloaded, revealed ones are sent again with their resources. The host file stays complete. Fog draws at the layer’s real alpha (1.0 = fully opaque for host and players). Lock for players blocks client edits on a normal layer; fog layers are always locked for players (move/edit/erase rejected on the host). Players also cannot hide or fade a fog layer (eye / alpha); only the host can toggle fog visibility, and the host rejects client DisplayData that would strip FoW.