# parzivail-modding-team/galaxiesparzisstarwarsmod architecture

> Architecture diagram of the GitHub repository parzivail-modding-team/galaxiesparzisstarwarsmod, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-11-13). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/parzivail-modding-team/galaxiesparzisstarwarsmod
- Repository: https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod

## Overview

PSWG is a Fabric Minecraft mod that adds Star Wars-themed content and gameplay systems. A player uses registered items or interacts with the world; client-side interaction managers handle input and server-side managers handle left-use actions. Addons contribute blasters and gadgets, including brewing and scrapping, while client modules render their interfaces and effects. Core also provides world content, configuration, and rendering support. The graph preserves documented major subsystems, but source excerpts are limited; unsampled branches are shown without speculative call edges.

Main entry points: [`projects/pswg_gadgets/src/main/java/dev/pswg/Gadgets.java`](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_gadgets/src/main/java/dev/pswg/Gadgets.java) (Gadget Initialization), [`projects/pswg_core/src/main/java/dev/pswg/Galaxies.java`](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/main/java/dev/pswg/Galaxies.java) (Core Initialization), [`projects/pswg_blasters/src/client/java/dev/pswg/BlastersClient.java`](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_blasters/src/client/java/dev/pswg/BlastersClient.java) (Blaster Client Setup), [`projects/pswg_core/src/client/java/dev/pswg/interaction/GalaxiesEntityLeftClickClientManager.java`](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/client/java/dev/pswg/interaction/GalaxiesEntityLeftClickClientManager.java) (Left-Use Input)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Core Mod"]
  node_galaxies["Core Initialization<br/>[Galaxies.java]"]
  node_world_content["Blocks and Items"]
  node_config["Core Configuration"]
  node_worldgen["Dimensions and Structures"]
end

subgraph group_interaction["Player Interaction"]
  node_client_input["Left-Use Input"]
  node_server_action["Left-Use Handler"]
end

subgraph group_blasters["Blaster Addon"]
  node_blaster_item["Blaster Item<br/>[BlasterItem.java]"]
  node_blaster_setup["Blaster Client Setup"]
  node_blaster_hud["Blaster HUD"]
end

subgraph group_gadgets["Gadget Addon"]
  node_gadget_setup["Gadget Initialization<br/>[Gadgets.java]"]
  node_gadget_items["Gadget Items"]
  node_mixer_handler["Brewing Mixer"]
  node_scrap_handler["Scrapping Table"]
  node_gadget_client["Gadget Client Setup<br/>[GadgetsClient.java]"]
end

subgraph group_rendering["Client Rendering"]
  node_sampler_textures["Sampler Textures"]
  node_toolkit["Modding Toolkit<br/>[ToolkitClient.java]"]
end

node_player(("Player"))

node_player -->|"presses left-use"| node_client_input
node_client_input -->|"sends action"| node_server_action
node_server_action -->|"applies item use"| node_player
node_galaxies -->|"registers blocks"| node_world_content
node_galaxies -->|"holds config"| node_config
node_galaxies -->|"registers dimensions"| node_worldgen
node_gadget_setup -->|"registers items"| node_gadget_items
node_gadget_setup -->|"registers handlers"| node_mixer_handler
node_gadget_setup -.->|"client addon setup"| node_gadget_client
node_gadget_client -->|"configures mixer UI"| node_mixer_handler
node_gadget_setup -.->|"registers handlers"| node_scrap_handler
node_blaster_setup -->|"renders blaster"| node_blaster_item
node_blaster_setup -->|"registers HUD"| node_blaster_hud

click node_galaxies "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/main/java/dev/pswg/Galaxies.java"
click node_world_content "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/main/java/dev/pswg/container/GalaxiesBlocks.java"
click node_config "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/main/java/dev/pswg/configuration/GalaxiesConfig.java"
click node_worldgen "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/tree/develop/projects/pswg_core/src/main/java/dev/pswg/container/worldgen"
click node_client_input "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/client/java/dev/pswg/interaction/GalaxiesEntityLeftClickClientManager.java"
click node_server_action "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/main/java/dev/pswg/interaction/GalaxiesEntityLeftClickManager.java"
click node_blaster_item "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_blasters/src/main/java/dev/pswg/item/BlasterItem.java"
click node_blaster_setup "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_blasters/src/client/java/dev/pswg/BlastersClient.java"
click node_blaster_hud "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_blasters/src/client/java/dev/pswg/hud/DefaultBlasterHudRenderer.java"
click node_gadget_setup "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_gadgets/src/main/java/dev/pswg/Gadgets.java"
click node_gadget_items "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/tree/develop/projects/pswg_gadgets/src/main/java/dev/pswg/container"
click node_mixer_handler "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_gadgets/src/main/java/dev/pswg/feature/brewing/MixerScreenHandler.java"
click node_scrap_handler "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_gadgets/src/main/java/dev/pswg/feature/scrapping/table/ScrappingTableScreenHandler.java"
click node_gadget_client "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_gadgets/src/client/java/dev/pswg/GadgetsClient.java"
click node_sampler_textures "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/client/java/dev/pswg/rendering/ptex/PtexSamplerTextureManager.java"
click node_toolkit "https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/toolkit/src/main/java/com/parzivail/aurek/ToolkitClient.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_galaxies,node_world_content,node_config,node_worldgen toneBlue
class node_client_input,node_server_action toneAmber
class node_blaster_item,node_blaster_setup,node_blaster_hud toneMint
class node_gadget_setup,node_gadget_items,node_mixer_handler,node_scrap_handler,node_gadget_client toneRose
class node_sampler_textures,node_toolkit,node_player toneIndigo
```

## Components

### Core Mod

- [Core Initialization](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/main/java/dev/pswg/Galaxies.java): `projects/pswg_core/src/main/java/dev/pswg/Galaxies.java`
- [Blocks and Items](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/main/java/dev/pswg/container/GalaxiesBlocks.java): `projects/pswg_core/src/main/java/dev/pswg/container/GalaxiesBlocks.java`
- [Core Configuration](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/main/java/dev/pswg/configuration/GalaxiesConfig.java): `projects/pswg_core/src/main/java/dev/pswg/configuration/GalaxiesConfig.java`
- [Dimensions and Structures](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/tree/develop/projects/pswg_core/src/main/java/dev/pswg/container/worldgen): `projects/pswg_core/src/main/java/dev/pswg/container/worldgen`

### Player Interaction

- [Left-Use Input](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/client/java/dev/pswg/interaction/GalaxiesEntityLeftClickClientManager.java): `projects/pswg_core/src/client/java/dev/pswg/interaction/GalaxiesEntityLeftClickClientManager.java`
- [Left-Use Handler](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/main/java/dev/pswg/interaction/GalaxiesEntityLeftClickManager.java): `projects/pswg_core/src/main/java/dev/pswg/interaction/GalaxiesEntityLeftClickManager.java`

### Blaster Addon

- [Blaster Item](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_blasters/src/main/java/dev/pswg/item/BlasterItem.java): `projects/pswg_blasters/src/main/java/dev/pswg/item/BlasterItem.java`
- [Blaster Client Setup](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_blasters/src/client/java/dev/pswg/BlastersClient.java): `projects/pswg_blasters/src/client/java/dev/pswg/BlastersClient.java`
- [Blaster HUD](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_blasters/src/client/java/dev/pswg/hud/DefaultBlasterHudRenderer.java): `projects/pswg_blasters/src/client/java/dev/pswg/hud/DefaultBlasterHudRenderer.java`

### Gadget Addon

- [Gadget Initialization](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_gadgets/src/main/java/dev/pswg/Gadgets.java): `projects/pswg_gadgets/src/main/java/dev/pswg/Gadgets.java`
- [Gadget Items](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/tree/develop/projects/pswg_gadgets/src/main/java/dev/pswg/container): `projects/pswg_gadgets/src/main/java/dev/pswg/container`
- [Brewing Mixer](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_gadgets/src/main/java/dev/pswg/feature/brewing/MixerScreenHandler.java): `projects/pswg_gadgets/src/main/java/dev/pswg/feature/brewing/MixerScreenHandler.java`
- [Scrapping Table](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_gadgets/src/main/java/dev/pswg/feature/scrapping/table/ScrappingTableScreenHandler.java): `projects/pswg_gadgets/src/main/java/dev/pswg/feature/scrapping/table/ScrappingTableScreenHandler.java`
- [Gadget Client Setup](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_gadgets/src/client/java/dev/pswg/GadgetsClient.java): `projects/pswg_gadgets/src/client/java/dev/pswg/GadgetsClient.java`

### Client Rendering

- [Sampler Textures](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/pswg_core/src/client/java/dev/pswg/rendering/ptex/PtexSamplerTextureManager.java): `projects/pswg_core/src/client/java/dev/pswg/rendering/ptex/PtexSamplerTextureManager.java`
- [Modding Toolkit](https://github.com/parzivail-modding-team/galaxiesparzisstarwarsmod/blob/develop/projects/toolkit/src/main/java/com/parzivail/aurek/ToolkitClient.java): `projects/toolkit/src/main/java/com/parzivail/aurek/ToolkitClient.java`

### Other components

- **Player**

## Connections

- Player → Left-Use Input: presses left-use (evidence: `projects/pswg_core/src/client/java/dev/pswg/interaction/GalaxiesEntityLeftClickClientManager.java`)
- Left-Use Input → Left-Use Handler: sends action (evidence: `projects/pswg_core/src/client/java/dev/pswg/interaction/GalaxiesEntityLeftClickClientManager.java`)
- Left-Use Handler → Player: applies item use (evidence: `projects/pswg_core/src/main/java/dev/pswg/interaction/GalaxiesEntityLeftClickManager.java`)
- Core Initialization → Blocks and Items: registers blocks (evidence: `projects/pswg_core/src/main/java/dev/pswg/Galaxies.java`)
- Core Initialization → Core Configuration: holds config (evidence: `projects/pswg_core/src/main/java/dev/pswg/Galaxies.java`)
- Core Initialization → Dimensions and Structures: registers dimensions (evidence: `projects/pswg_core/src/main/java/dev/pswg/Galaxies.java`)
- Gadget Initialization → Gadget Items: registers items (evidence: `projects/pswg_gadgets/src/main/java/dev/pswg/Gadgets.java`)
- Gadget Initialization → Brewing Mixer: registers handlers (evidence: `projects/pswg_gadgets/src/main/java/dev/pswg/Gadgets.java`)
- Gadget Initialization → Gadget Client Setup: client addon setup (evidence: `projects/pswg_gadgets/src/client/java/dev/pswg/GadgetsClient.java`)
- Gadget Client Setup → Brewing Mixer: configures mixer UI (evidence: `projects/pswg_gadgets/src/client/java/dev/pswg/GadgetsClient.java`)
- Gadget Initialization → Scrapping Table: registers handlers (evidence: `projects/pswg_gadgets/src/main/java/dev/pswg/feature/scrapping/table/ScrappingTableScreenHandler.java`)
- Blaster Client Setup → Blaster Item: renders blaster (evidence: `projects/pswg_blasters/src/client/java/dev/pswg/BlastersClient.java`)
- Blaster Client Setup → Blaster HUD: registers HUD (evidence: `projects/pswg_blasters/src/client/java/dev/pswg/BlastersClient.java`)
