How virtuoel/pehkui works
Pehkui is a Minecraft modding library and runtime mod for changing entity scale and adapting scale-dependent behavior. A mod developer or player supplies scale settings through the public API or commands; scale types, data, and modifiers represent those settings, while game mixins apply them to entity behavior and client rendering. The README also documents dependent properties such as movement speed, explosion size, and reach. Client networking receives scale updates and applies them to entities. The tree and excerpts do not show server packet construction or most subsystem implementations, so those wiring details are omitted.
Main entry points: ScaleData.java Scale data · ScaleTypeArgumentType.java Scale commands · ScaleType.java Scale types · EntityMixin.java Entity integration
Components 16
Scale API
- Scale data
src/main/java/virtuoel/pehkui/api/ScaleData.java - Scale types
src/main/java/virtuoel/pehkui/api/ScaleType.java - Scale registries
src/main/java/virtuoel/pehkui/api/ScaleRegistries.java - Scale modifiers
src/main/java/virtuoel/pehkui/api/ScaleModifier.java - Scale easing
src/main/java/virtuoel/pehkui/api/ScaleEasings.java
User Inputs
- Scale commands
src/main/java/virtuoel/pehkui/command/argument/ScaleTypeArgumentType.java - Entity selectors
src/main/java/virtuoel/pehkui/command/PehkuiEntitySelectorOptions.java
Game Runtime
- Entity integration
src/main/java/virtuoel/pehkui/mixin/EntityMixin.java - Scaled behavior
src/main/java/virtuoel/pehkui/mixin/compat1205plus/LivingEntityMixin.java - Reach adjustment
src/main/java/virtuoel/pehkui/mixin/reach/PlayerEntityMixin.java - Scale rendering
src/main/java/virtuoel/pehkui/mixin/client/compat121plus/EntityRendererMixin.java
Client Sync
- Client initializer
src/main/java/virtuoel/pehkui/PehkuiClient.java - Scale updates
src/main/java/virtuoel/pehkui/PehkuiClient.java
Other components
- Mod developer
- Player
- Minecraft runtime
Connections 16
- Mod developer → Scale data: sets scale
- Player → Scale commands: runs commands
- Scale commands → Scale types: selects type
- Scale commands → Scale data: changes scale
- Entity selectors → Minecraft runtime: extends selection
- Scale types → Scale registries: registered in
- Scale data → Scale modifiers: modified by
- Scale data → Scale easing: interpolates with
- Minecraft runtime → Entity integration: invokes hooks
- Entity integration → Scale data: reads scale
- Scaled behavior → Scale data: reads scale
- Reach adjustment → Scale data: reads scale
- Scale rendering → Scale data: renders scale
- Minecraft runtime → Client initializer: initializes client
- Client initializer → Scale updates: registers handlers
- Scale updates → Scale data: applies updates