# šŸ› ļø Plan Optimizacij in ČiŔčenja - NovaFarma Datoteka namenjena tehničnim izboljÅ”avam kode, refaktoringu in performančnim popravkom. ## 🟢 1. Opravljene Optimizacije (Completed) Stvari, ki so bile uspeÅ”no implementirane in izboljÅ”ale delovanje. - [x] **Distance Culling (Teren & Dekoracije)** - Sistem skriva ploŔčice (tiles) in drevesa, ki so daleč od igralca, da varčuje s CPU/GPU. - [x] **Pooling Sistem** - `TerrainSystem` uporablja bazen spritov (`decPool`, `tilePool`) za ponovno uporabo objektov namesto nenehnega uničevanja in ustvarjanja. - [x] **NPC Logic Throttling & Culling** - NPC-ji daleč od igralca se ne posodabljajo in so skriti. - AI se ne izvaja vsak frame (uporaba timerjev za premik). - [x] **Code Refactoring & Bug Fixes** - [x] `InteractionSystem.js`: Centralizirana logika za klike in tipkovnico (E tipka). Odstranjeni odvečni listenerji. - [x] `Player.js`: Urejena logika gibanja in napada (Spacebar). - [x] `NPC.js`: Dodan Health Bar, Taming logika in Loot Drop. - [x] `TextureGenerator`: Urejen draw items (Bone, Axe, Pickaxe). ## 🟔 2. Odprte Tehnične Naloge (To-Do) Stvari, ki bi jih bilo dobro urediti za boljÅ”o stabilnost. - [ ] **Global Error Handling** - Ujeti napake, ki se zgodijo med igranjem (npr. manjkajoča metoda), in preprečiti sesutje igre (kot se je zgodilo z `handleDecorationClick`). - [ ] **Centraliziran Loot Manager** - Trenutno `InteractionSystem` upravlja z lootom. Bolje bi bilo imeti ločen `LootSystem` ali `ItemDropManager`, ki skrbi za fiziko dropov, pobiranje in despawn. - [ ] **Z-Sorting (Depth) Optimizacija** - Globina se Å”e vedno nastavlja pogosto. Lahko bi optimizirali tako, da se statični objekti sortirajo samo enkrat. ## šŸ”“ 3. Performančne Nadgradnje (High-End) Če bo igra postala počasna pri velikem svetu (256x256). - [ ] **Phaser Blitter / Tilemap** - Trenutno je svet sestavljen iz tisočev spritov. Prehod na `Phaser.Blitter` ali `Tilemap` bi drastično zmanjÅ”al porabo RAM-a in CPU-ja. - [ ] **Spatial Hashing za Kolizijo** - Namesto preverjanja razdalje do vsakega NPC-ja uporabiti prostorsko mrežo (Spatial Grid) za hitrejÅ”e iskanje sosedov. - [ ] **Web Workers za AI** - Prestavi pathfinding (iskanje poti) na ločen thread (Worker), da ne blokira glavne igre. --- *Status: Koda je trenutno stabilna in očiŔčena (7.12.2025).*