# lukakozjak/appleworm_project architecture

> Architecture diagram of the GitHub repository lukakozjak/appleworm_project, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/lukakozjak/appleworm_project
- Repository: https://github.com/lukakozjak/appleworm_project

## Overview

Apple Worm is a Unity puzzle game: players navigate a worm through authored levels, using environmental mechanics to reach level exits. The tree also shows menu and pause UI, level progression, and a separate 1v1 setup/arena mode. Script and scene names support these capability areas, but no README or source excerpts were provided, so internal calls and detailed subsystem wiring cannot be verified; the graph avoids asserting those relationships.

Main entry points: [`AppleWorm_Game/Assets/Scripts/CrvKretanje.cs`](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/CrvKretanje.cs) (Worm movement), [`AppleWorm_Game/Assets/Scripts/MeniManager.cs`](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/MeniManager.cs) (Main menu), [`AppleWorm_Game/Assets/Scripts/PauseManager.cs`](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/PauseManager.cs) (Pause controls), [`AppleWorm_Game/Assets/Scripts/Podesavanje1v1.cs`](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/Podesavanje1v1.cs) (Match setup)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_play["Puzzle gameplay"]
  node_worm["Worm movement<br/>[CrvKretanje.cs]"]
  node_hazards["Hazards<br/>[Siljak.cs]"]
  node_stone["Stone mechanic<br/>[Kamen.cs]"]
  node_portals["Portals<br/>[Portal.cs]"]
  node_pressure["Pressure plate<br/>[PotisnaPloca.cs]"]
  node_gates["Doors<br/>[Vrata.cs]"]
  node_rotten["Rotten apple<br/>[TrulaJabuka.cs]"]
end

subgraph group_progress["Menus and levels"]
  node_levelscenes["Puzzle levels<br/>[Nivo_1.unity]"]
  node_menu["Main menu<br/>[MeniManager.cs]"]
end

subgraph group_interface["Player interface"]
  node_levelui["Level interface<br/>[NivoUIManager.cs]"]
  node_levelnumber["Level display"]
  node_pause["Pause controls<br/>[PauseManager.cs]"]
end

subgraph group_versus["1v1 mode"]
  node_setup["Match setup<br/>[Podesavanje1v1.cs]"]
  node_match["Match manager"]
  node_matchdata["Match data<br/>[PodaciMeca.cs]"]
  node_arena["1v1 arena<br/>[Arena1v1.unity]"]
end

node_player(("Player"))

node_player -->|"controls"| node_worm
node_player -->|"uses"| node_menu
node_player -->|"configures"| node_setup
node_player -->|"uses"| node_pause

click node_worm "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/CrvKretanje.cs"
click node_hazards "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/Siljak.cs"
click node_stone "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/Kamen.cs"
click node_portals "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/Portal.cs"
click node_pressure "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/PotisnaPloca.cs"
click node_gates "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/Vrata.cs"
click node_rotten "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/TrulaJabuka.cs"
click node_levelscenes "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scenes/Nivo_1.unity"
click node_menu "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/MeniManager.cs"
click node_levelui "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/NivoUIManager.cs"
click node_levelnumber "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/PrikazBrojaNivoa.cs"
click node_pause "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/PauseManager.cs"
click node_setup "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/Podesavanje1v1.cs"
click node_match "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/MultiplayerMenadzer.cs"
click node_matchdata "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/PodaciMeca.cs"
click node_arena "https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scenes/Arena1v1.unity"

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_worm,node_hazards,node_stone,node_portals,node_pressure,node_gates,node_rotten toneBlue
class node_levelscenes,node_menu toneAmber
class node_levelui,node_levelnumber,node_pause toneMint
class node_setup,node_match,node_matchdata,node_arena toneRose
class node_player toneIndigo
```

## Components

### Puzzle gameplay

- [Worm movement](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/CrvKretanje.cs): `AppleWorm_Game/Assets/Scripts/CrvKretanje.cs`
- [Hazards](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/Siljak.cs): `AppleWorm_Game/Assets/Scripts/Siljak.cs`
- [Stone mechanic](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/Kamen.cs): `AppleWorm_Game/Assets/Scripts/Kamen.cs`
- [Portals](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/Portal.cs): `AppleWorm_Game/Assets/Scripts/Portal.cs`
- [Pressure plate](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/PotisnaPloca.cs): `AppleWorm_Game/Assets/Scripts/PotisnaPloca.cs`
- [Doors](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/Vrata.cs): `AppleWorm_Game/Assets/Scripts/Vrata.cs`
- [Rotten apple](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/TrulaJabuka.cs): `AppleWorm_Game/Assets/Scripts/TrulaJabuka.cs`

### Menus and levels

- [Puzzle levels](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scenes/Nivo_1.unity): `AppleWorm_Game/Assets/Scenes/Nivo_1.unity`
- [Main menu](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/MeniManager.cs): `AppleWorm_Game/Assets/Scripts/MeniManager.cs`

### Player interface

- [Level interface](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/NivoUIManager.cs): `AppleWorm_Game/Assets/Scripts/NivoUIManager.cs`
- [Level display](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/PrikazBrojaNivoa.cs): `AppleWorm_Game/Assets/Scripts/PrikazBrojaNivoa.cs`
- [Pause controls](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/PauseManager.cs): `AppleWorm_Game/Assets/Scripts/PauseManager.cs`

### 1v1 mode

- [Match setup](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/Podesavanje1v1.cs): `AppleWorm_Game/Assets/Scripts/Podesavanje1v1.cs`
- [Match manager](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/MultiplayerMenadzer.cs): `AppleWorm_Game/Assets/Scripts/MultiplayerMenadzer.cs`
- [Match data](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scripts/PodaciMeca.cs): `AppleWorm_Game/Assets/Scripts/PodaciMeca.cs`
- [1v1 arena](https://github.com/lukakozjak/appleworm_project/blob/main/AppleWorm_Game/Assets/Scenes/Arena1v1.unity): `AppleWorm_Game/Assets/Scenes/Arena1v1.unity`

### Other components

- **Player**

## Connections

- Player → Worm movement: controls
- Player → Main menu: uses
- Player → Match setup: configures
- Player → Pause controls: uses
