How bubi274/trainersworkshop works
Trainer’s Workshop is a server-authoritative Cobblemon addon for editing Pokémon and RCT trainers, plus a Shiny Berry item. Players use registered items to initiate interactions; editor actions travel between the client screen and server sessions, where edits are validated and applied or saved. Survival edits additionally charge inventory items. Trainer overrides affect later battles and persist across restarts; Raid Dens can optionally provide a Shiny Berry reward. The graph follows documented behavior and shown references; unsampled subsystem internals are represented only where the README or source index supports them.
Main entry points: TrainersWorkshop.kt Mod Bootstrap · PokemonInteractionHandler.kt Entity Interaction · EditorScreen.kt Editor Screen · ModItems.kt Workshop Items
Components 18
Mod and Items
- Mod Bootstrap
src/main/kotlin/io/github/bubi274/trainersworkshop/TrainersWorkshop.kt - Workshop Items
src/main/kotlin/io/github/bubi274/trainersworkshop/registry/ModItems.kt
Player Interactions
- Entity Interaction
src/main/kotlin/io/github/bubi274/trainersworkshop/interaction/PokemonInteractionHandler.kt - Shiny Berry
src/main/kotlin/io/github/bubi274/trainersworkshop/item/ShinyBerryItem.kt - Trainer Editor Item
src/main/kotlin/io/github/bubi274/trainersworkshop/item/TrainerEditorItem.kt
Editor Workflow
- Client Editor
src/main/kotlin/io/github/bubi274/trainersworkshop/client/ClientEditor.kt - Editor Screen
src/main/kotlin/io/github/bubi274/trainersworkshop/client/gui/EditorScreen.kt - GUI Components
src/main/kotlin/io/github/bubi274/trainersworkshop/client/gui/GuiKit.kt - Editor Payloads
src/main/kotlin/io/github/bubi274/trainersworkshop/network/EditorPayloads.kt - Editor Sessions
src/main/kotlin/io/github/bubi274/trainersworkshop/editor/EditorSessions.kt - Pokémon Editing
src/main/kotlin/io/github/bubi274/trainersworkshop/editor/PokemonEditing.kt - Survival Costs
src/main/kotlin/io/github/bubi274/trainersworkshop/editor/SurvivalCosts.kt
Trainer Integration
- Trainer Editing
src/main/kotlin/io/github/bubi274/trainersworkshop/editor/TrainerEditing.kt - Trainer Overrides
src/main/kotlin/io/github/bubi274/trainersworkshop/editor/TrainerOverrides.kt - RCT Compatibility
src/main/kotlin/io/github/bubi274/trainersworkshop/compat/rct/RctCompat.kt
Config and Integrations
- Raid Dens Reward
src/main/kotlin/io/github/bubi274/trainersworkshop/compat/RaidDensCompat.kt - Workshop Config
src/main/kotlin/io/github/bubi274/trainersworkshop/config/WorkshopConfig.kt
Other components
- Player
Connections 26
- Mod Bootstrap → Workshop Items: registers
src/main/kotlin/io/github/bubi274/trainersworkshop/TrainersWorkshop.kt - Mod Bootstrap → Entity Interaction: registers
src/main/kotlin/io/github/bubi274/trainersworkshop/TrainersWorkshop.kt - Mod Bootstrap → Editor Payloads: registers
src/main/kotlin/io/github/bubi274/trainersworkshop/TrainersWorkshop.kt - Mod Bootstrap → Editor Sessions: registers
src/main/kotlin/io/github/bubi274/trainersworkshop/TrainersWorkshop.kt - Mod Bootstrap → Workshop Config: loads
src/main/kotlin/io/github/bubi274/trainersworkshop/TrainersWorkshop.kt - Mod Bootstrap → Raid Dens Reward: registers
src/main/kotlin/io/github/bubi274/trainersworkshop/TrainersWorkshop.kt - Mod Bootstrap → RCT Compatibility: initializes
src/main/kotlin/io/github/bubi274/trainersworkshop/TrainersWorkshop.kt - Player → Workshop Items: uses
README.md - Workshop Items → Entity Interaction: targeted by
src/main/kotlin/io/github/bubi274/trainersworkshop/interaction/PokemonInteractionHandler.kt - Entity Interaction → Shiny Berry: dispatches to
src/main/kotlin/io/github/bubi274/trainersworkshop/interaction/PokemonInteractionHandler.kt - Entity Interaction → Trainer Editor Item: dispatches to
src/main/kotlin/io/github/bubi274/trainersworkshop/interaction/PokemonInteractionHandler.kt - Player → Entity Interaction: right-clicks
README.md - Trainer Editor Item → Trainer Editing: opens
src/main/kotlin/io/github/bubi274/trainersworkshop/item/TrainerEditorItem.kt - Client Editor → Editor Screen: opens
src/main/kotlin/io/github/bubi274/trainersworkshop/client/ClientEditor.kt - Editor Screen → Client Editor: sends actions
src/main/kotlin/io/github/bubi274/trainersworkshop/client/gui/EditorScreen.kt - Editor Screen → GUI Components: renders with
src/main/kotlin/io/github/bubi274/trainersworkshop/client/gui/EditorScreen.kt - Client Editor → Editor Payloads: sends state requests
src/main/kotlin/io/github/bubi274/trainersworkshop/client/ClientEditor.kt - Editor Sessions → Editor Payloads: receives actions
src/main/kotlin/io/github/bubi274/trainersworkshop/editor/EditorSessions.kt - Editor Sessions → Pokémon Editing: validates and applies
src/main/kotlin/io/github/bubi274/trainersworkshop/editor/EditorSessions.kt - Pokémon Editing → Survival Costs: uses costs
src/main/kotlin/io/github/bubi274/trainersworkshop/editor/PokemonEditing.kt - Editor Screen → Survival Costs: computes preview
src/main/kotlin/io/github/bubi274/trainersworkshop/client/gui/EditorScreen.kt - Trainer Editing → Trainer Overrides: saves changes
README.md - Trainer Editing → RCT Compatibility: reads trainer data
src/main/kotlin/io/github/bubi274/trainersworkshop/editor/TrainerEditing.kt - Trainer Overrides → RCT Compatibility: supplies battle changes
src/main/kotlin/io/github/bubi274/trainersworkshop/compat/rct/RctAccess.kt - Raid Dens Reward → Workshop Config: reads reward chance
src/main/kotlin/io/github/bubi274/trainersworkshop/compat/RaidDensCompat.kt - Raid Dens Reward → Workshop Items: adds berry reward
src/main/kotlin/io/github/bubi274/trainersworkshop/compat/RaidDensCompat.kt