Commit Graph
13 Commits
Author SHA1 Message Date
adminandClaude Fable 5 ae5fa63141 Custom mouse cursor: normal/paint/pipette with recorder-aware software mode
- CursorController: polls painter state in LateUpdate; paint cursor only
  while the brush preview decal actually draws (MeshPainter.BrushPreviewVisible),
  pipette while held/toggled, fallback to normal over UI (InputUtil.PointerOverUi)
- Auto ForceSoftware while Unity Recorder is recording (reflection into
  editor-only assembly, 0.5s poll, editor-only) so the cursor is captured;
  back to hardware cursor when recording stops
- 3 placeholder cursor PNGs (32x32, cursor import type) with per-cursor hotspots

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-11 18:09:14 +02:00
adminandClaude Fable 5 14015d7134 Ignore drag-releases in slider double-click reset; tune HUD slider defaults
A pointer-up after a drag no longer counts as a click (dragging flag +
press-to-release distance within the existing tolerance), so drag ->
release -> click cannot trigger a reset anymore. PaintHud prefab:
pointer tolerance 4 px, HalfLambert default back to 0.5.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 22:37:03 +02:00
adminandClaude Fable 5 7fb0ff54b1 Add double-click-to-reset on all sliders (interval + pointer tolerance) and sync PaintHud slider defaults
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-10 19:28:22 +02:00
adminandClaude Fable 5 270c42d85b Add host-configurable match settings persisted in settings
- GameSettings: 7 match fields (mode, hunter count, hide/seek/resolve
  durations, radar ping interval/lifetime) with authored defaults
- MatchSettingSlider (new): enum-driven panel binder, seeds from
  settings, saves on change; lifetime label shows one decimal
  (invariant culture)
- MatchManager: ApplyHostMatchSettings() on StartMatch (clamped);
  phase message now carries ping interval so clients tick correctly

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 22:04:54 +02:00
adminandClaude Fable 5 6c03e5d3f6 Refactor Assets/Scripts: trim restating comments, minor structure cleanups
Sweep over 48 files (Editor/ excluded): remove comments that restate the
code, condense class summaries, fix three stale doc statements
(HsvColorPicker alpha bar, PaintHud layoutPrefab, MasterVolume
FallbackDefault). Inline two single-use wrappers (IsPointerOverUi,
BuildModes), drop an unused using, replace a magic literal with the
existing ParallaxBase constant, and convert ~10 UnityEngine.Object null
checks to the implicit-bool convention. No serialized fields, signatures,
RPC/NetworkVariable names, defaults, or #if blocks touched.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-08 08:29:18 +02:00
adminandClaude Opus 4.8 50781e32d2 Camo: generalize brightness + add persistent saturation
Move brightness out of the half-lambert diffuse term to a final exposure
multiply on the whole shaded body color (diffuse + GI + specular), and add
a saturation grade (0 = neutral, -1 = grayscale, >0 = boosted) on the same
final stage. Saturation rides as a 4th component on CamoKnobs (Vector3 ->
Vector4) so it inherits all three persistence paths: HUD JSON, network
replication (_camo NetworkVariable), and painting-slot metadata. Wires the
renamed Slider_Brightness and new Slider_Saturation. Bumps HudFileVersion
and PaintMetaVersion with load-time remaps so existing paintings keep their
look (old 1=neutral saturation remaps to 0=neutral).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-08 07:23:40 +02:00
adminandClaude Opus 4.8 e571375cab feat(ui): move HSV swatch onto the SV handle
HsvColorPicker: read the color swatch from the SV handle's child
("Handle/Swatch") instead of a standalone root child; drop the dead
leftover-alpha bar and root-swatch fallback handling.
PaintHudPanel.prefab: restructure the picker so the swatch lives under
the SV handle and wire _swatch accordingly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 17:26:57 +02:00
adminandClaude Opus 4.8 1b783a39be Fur: Albedo-gekoppelte Länge, Toggle-Gate, Soft-Edge, World-Gravity, Pipette & FP-Hide
- Fur-Map trägt nur noch R = Länge (linearer Datenkanal); Farbe kommt per-texel
  aus der Live-Albedo-RT (an _BaseMap des Shell-Shaders gebunden)
- Toggle_Fur als echtes Gate (IsChannelActive = fur), Default aus, furLength 0.5
- Weicher Alpha-Übergang (radial/tip/length coverage) statt Hard-Clip; Transparent-
  Pass mit Depth-Bias (Offset -1,-1) gegen Body-Durchflimmern
- Root dunkler / Tip heller aus gemalter Farbe abgeleitet (kein Fix-Tint)
- Gravity/Curl in World-Space nach Transform (unabhängig von Mesh-Rotation)
- Pipette aktiviert Fur-Toggle immer; liest R-Kanal als Länge
- First-Person blendet FurShellRenderer mit aus
- Netzwerk (FlagFur), Undo, Persistence (fur.png R=Länge) mitgezogen

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 23:40:58 +02:00
adminandClaude Opus 4.8 7536e8ec8b Fur als 4. Paint-Map + Ziel-Opacity-Blend
Fur wird die vierte kanonische Paint-Map (RGB=Farbe, A=Länge). Integration
über Seed (kahl), GPU/CPU-Paint, Undo, Netzwerk-Sync, Persistence (fur.png,
v6) und Live-RT-Hook im FurShellRenderer. HUD-Binding (Toggle/Picker/Alpha)
aktiviert. Fur-Alpha lerpt jetzt zu einer Ziel-Opacity (Slider_FurOpacity)
statt additiv Richtung 1 zu akkumulieren (zwei Brush-Passes: Fade + Deposit).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 21:35:53 +02:00
adminandClaude Opus 4.8 ba7f3c2e89 Move settings to Settings.json and add master volume
Replace the former per-value PlayerPrefs storage with a shared human-readable
Settings.json store (GameSettings). MouseSensitivity keeps its public .Multiplier
API and only swaps its backing to the JSON store, so the camera controllers stay
untouched. Add a MasterVolume facade that drives the AudioMixer's exposed
"MasterVolume" parameter (loaded from Resources, linear<->dB mapping), applied at
startup and on change, plus a MasterVolumeSlider binder. The default is the level
currently authored on the mixer instead of an arbitrary constant.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 15:30:44 +02:00
adminandClaude Opus 4.8 f586ef7a15 Simplify HUD layout save path to a fixed PaintHud.json
Drop the scene-derived hudSaveId/key mechanism and save the HUD layout to a
single PaintHud.json under persistentDataPath.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 14:52:22 +02:00
adminandClaude Opus 4.8 cadc8f8b17 Bind PaintHud to the scene-authored canvas
Drop the code-gen canvas/EventSystem bootstrap and the layoutPrefab
instantiation; the canvas and its panel now live in the scene, so PaintHud
binds to its first child at startup instead of building the UI at runtime.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 10:32:42 +02:00
adminandClaude Opus 4.8 e23fae0c50 Reorganize scripts into subfolders by responsibility
Move scripts under Assets/Scripts/ into Components, GameMode, Helper,
Network, Enum, Struct and ScriptableObject folders. Pure file moves
(plus folder .meta files); no code changes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-02 15:02:15 +02:00