How qwaecd/paramagic works
Paramagic is a Minecraft magic mod and rendering framework. Its documented player-facing flow is spell or wand interaction, server-side spell execution and session management, synchronization to client presentations, then rendering of magic circles and GPU particle effects. The repository also includes data-driven Para assets and keyframe animation, a custom UI framework, and post-processing such as bloom. The README documents these capabilities; several runtime links below reflect that documentation and directory structure rather than inspected implementation details.
Main entry points: spell Spell Execution · ModRenderSystem.java Render System · MagicCircleManager.java Magic Circles · ParticleSystem.java GPU Particles
Components 23
Player Interaction
- Wand UI
common/src/main/java/com/qwaecd/paramagic/ui_project/wand/content/inventory/InventoryInteractionController.java - UI Manager
common/src/main/java/com/qwaecd/paramagic/ui/core/UIManager.java
Spell Runtime
- Spell Networking
common/src/main/java/com/qwaecd/paramagic/network/Networking.java - Session Handlers
common/src/main/java/com/qwaecd/paramagic/network/handler/ServerSessionHandlers.java - Server Sessions
common/src/main/java/com/qwaecd/paramagic/spell/server/ServerSessionManager.java - Spell Execution
common/src/main/java/com/qwaecd/paramagic/spell - Mana Storage
common/src/main/java/com/qwaecd/paramagic/spell/mana/ManaStorage.java - Client Sessions
common/src/main/java/com/qwaecd/paramagic/spell/client/ClientSessionManager.java
Effect Systems
- Magic Circles
common/src/main/java/com/qwaecd/paramagic/feature/circle/MagicCircleManager.java - Effect Requests
common/src/main/java/com/qwaecd/paramagic/particle/EffectSpawnBuilder.java - Server Effects
common/src/main/java/com/qwaecd/paramagic/particle/server/ServerEffectManager.java - Client Effects
common/src/main/java/com/qwaecd/paramagic/particle/client/ClientEffectRepository.java - GPU Particles
common/src/main/java/com/qwaecd/paramagic/core/particle/ParticleSystem.java - Particle GPU Memory
common/src/main/java/com/qwaecd/paramagic/core/particle/memory/ParticleMemoryManager.java
Rendering
- Render System
common/src/main/java/com/qwaecd/paramagic/core/render/ModRenderSystem.java - Shader Manager
common/src/main/java/com/qwaecd/paramagic/core/render/shader/ShaderManager.java - Post Processing
common/src/main/java/com/qwaecd/paramagic/core/render/post/PostProcessingManager.java - Screen Effects
common/src/main/java/com/qwaecd/paramagic/core/render/post/ScreenSpaceEffectManager.java
Data and Animation
- Para Data
common/src/main/java/com/qwaecd/paramagic/data/para - Para Assembly
common/src/main/java/com/qwaecd/paramagic/assembler/ParaComposer.java - Animation Data
common/src/main/java/com/qwaecd/paramagic/data/animation - Animation Runtime
common/src/main/java/com/qwaecd/paramagic/client/animation/Animator.java
Other components
- Player
Connections 20
- Player → Wand UI: interacts
- Wand UI → UI Manager: dispatches input
- Spell Networking → Session Handlers: dispatches packets
- Session Handlers → Server Sessions: attaches session
- Server Sessions → Spell Execution: ticks runtime
- Spell Execution → Mana Storage: uses mana
- Spell Execution → Server Effects: creates effects
- Spell Execution → Magic Circles: drives circles
- Server Effects → Client Effects: syncs effects
- Client Sessions → Magic Circles: presents circles
- Client Effects → GPU Particles: updates particles
- GPU Particles → Particle GPU Memory: manages buffers
- Magic Circles → Render System: submits renderables
- GPU Particles → Render System: renders effects
- Render System → Shader Manager: loads shaders
- Render System → Post Processing: runs post effects
- Post Processing → Screen Effects: processes screen
- Para Data → Para Assembly: converts data
- Animation Data → Animation Runtime: drives animation
- Animation Runtime → Magic Circles: animates circles