How gamermax1254/trafficcraft-traffic-light-countdown works
TrafficCraft: Traffic Light Countdown is a client-side Fabric addon that overlays remaining phase time on supported TrafficCraft lights. During TrafficCraft light rendering, the mixin selects a timer source: it calculates time from an Own Schedule, or observes color changes and estimates phase timing for Remote control. It filters unsupported phases and short durations, selects a display slot, and renders a color-coded two-digit seven-segment countdown; paused or overflowing values blink as dashes or 99. Tick tracking smooths schedule timing and advances remote-learning cleanup. Wiring is based on the README and sampled Java sources; unsampled metadata and integration details are not inferred.
Main entry points: TrafficLightRendererMixin.java Light Render Hook · ClientTickTracker.java Client Tick Tracker · TrafficLightBlockEntityAccessor.java Ticker Accessor · CountdownTextRenderer.java Countdown Renderer
Components 12
Client Integration
- Client Initializer
src/main/java/io/github/gamermax1254/tlcountdown/client/TrafficLightCountdownClient.java - Light Render Hook
src/main/java/io/github/gamermax1254/tlcountdown/mixin/TrafficLightRendererMixin.java - Ticker Accessor
src/main/java/io/github/gamermax1254/tlcountdown/mixin/TrafficLightBlockEntityAccessor.java
Phase Timing
- Client Tick Tracker
src/main/java/io/github/gamermax1254/tlcountdown/client/ClientTickTracker.java - Schedule Timer
src/main/java/io/github/gamermax1254/tlcountdown/client/TimerCalculator.java - Remote Learner
src/main/java/io/github/gamermax1254/tlcountdown/client/RemoteScheduleLearner.java
Countdown Display
- Active Phase
src/main/java/io/github/gamermax1254/tlcountdown/client/ActivePhase.java - Countdown Renderer
src/main/java/io/github/gamermax1254/tlcountdown/client/CountdownTextRenderer.java - Seven-Segment Drawing
src/main/java/io/github/gamermax1254/tlcountdown/client/SevenSegmentRenderer.java
Other components
- Minecraft Client
- TrafficCraft Renderer
- Traffic Light Entity
Connections 13
- Client Initializer → Client Tick Tracker: initializes
- Minecraft Client → Client Tick Tracker: fires client ticks
- Client Tick Tracker → Remote Learner: ticks cleanup
- TrafficCraft Renderer → Light Render Hook: dispatches render hook
- Light Render Hook → Traffic Light Entity: reads light state
- Light Render Hook → Ticker Accessor: reads ticker
- Ticker Accessor → Traffic Light Entity: accesses ticker
- Light Render Hook → Client Tick Tracker: gets smoothed ticks
- Light Render Hook → Schedule Timer: calculates schedule time
- Light Render Hook → Remote Learner: observes and estimates
- Light Render Hook → Active Phase: detects signal color
- Light Render Hook → Countdown Renderer: renders selected slots
- Countdown Renderer → Seven-Segment Drawing: draws digits or dashes