How squeek502/appleskin works
AppleSkin is a Minecraft food-status HUD mod. Its runtime workflow registers client HUD, tooltip, and debug handlers plus a synchronization channel; those handlers derive food and hunger values, expose cancellable API events, and render overlays or tooltip indicators. Server-side synchronization sends saturation and exhaustion updates to clients. The README also documents estimated health restoration and third-party event customization. Some listed subsystems are represented by their exact tree paths but were not sampled, so their internal wiring is omitted.
Main entry points: TooltipOverlayHandler.java Food tooltips · HUDOverlayHandler.java HUD overlays · AppleSkin.java Mod bootstrap · SyncHandler.java Sync coordinator
Components 17
Mod runtime
- Mod bootstrap
java/squeek/appleskin/AppleSkin.java - Client settings
java/squeek/appleskin/ModConfig.java - Food calculations
java/squeek/appleskin/helpers/FoodHelper.java - Hunger state
java/squeek/appleskin/helpers/HungerHelper.java
HUD and debug
- HUD overlays
java/squeek/appleskin/client/HUDOverlayHandler.java - Debug overlay
java/squeek/appleskin/client/DebugInfoHandler.java
Tooltip and API
- HUD events
java/squeek/appleskin/api/event/HUDOverlayEvent.java - Food tooltips
java/squeek/appleskin/client/TooltipOverlayHandler.java - Food values API
java/squeek/appleskin/api/food/FoodValues.java - Food value event
java/squeek/appleskin/api/event/FoodValuesEvent.java - Tooltip events
java/squeek/appleskin/api/event/TooltipOverlayEvent.java
State synchronization
- Sync coordinator
java/squeek/appleskin/network/SyncHandler.java - Network channel
java/squeek/appleskin/network/NetworkHelper.java - Exhaustion packet
java/squeek/appleskin/network/MessageExhaustionSync.java - Saturation packet
java/squeek/appleskin/network/MessageSaturationSync.java
Other components
- Player
- Mod developers
Connections 29
- Mod bootstrap → Client settings: registers
- Mod bootstrap → Sync coordinator: initializes
- Mod bootstrap → HUD overlays: registers
- Mod bootstrap → Debug overlay: registers
- Mod bootstrap → Food tooltips: registers
- Player → HUD overlays: triggers rendering
- HUD overlays → Food calculations: checks food
- HUD overlays → Hunger state: reads exhaustion
- HUD overlays → Client settings: checks settings
- HUD overlays → HUD events: posts events
- HUD overlays → Player: renders overlays
- Player → Food tooltips: hovers food
- Food tooltips → Food calculations: gets food values
- Food tooltips → Food value event: posts event
- Food tooltips → Tooltip events: posts events
- Food tooltips → Food values API: uses values
- Food tooltips → Client settings: checks settings
- Food tooltips → Player: renders tooltip
- Mod developers → Food value event: customizes values
- Mod developers → HUD events: customizes overlays
- Mod developers → Tooltip events: customizes tooltip
- Debug overlay → Hunger state: reads exhaustion
- Debug overlay → Player: adds debug data
- Sync coordinator → Hunger state: reads exhaustion
- Sync coordinator → Exhaustion packet: creates updates
- Sync coordinator → Saturation packet: creates updates
- Sync coordinator → Network channel: sends packets
- Exhaustion packet → Network channel: gets sided player
- Exhaustion packet → Hunger state: sets exhaustion