# šŸ› ļø 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. - [x] **Global Error Handling** - Dodan `ErrorHandler.js` (Red Screen of Death). Ujame napake, ki se zgodijo med igranjem, in prikaže uporabniku prijazen crash screen z možnostjo reload-a. - [x] **Centraliziran Loot Manager** - Implementiran `LootSystem.js`. Skrbi za `spawnLoot`, animacijo dropov, pobiranje (razdalja do igralca) in čiŔčenje InteractionSystem-a. - [x] **Z-Sorting (Depth) Optimizacija** - Implementiran "dirty check" v `Player.js` in `NPC.js`. Depth se posodobi samo, če se Y koordinata spremeni za več kot 0.1px, namesto vsak frame. ## šŸ”“ 3. Performančne Nadgradnje (High-End) Če bo igra postala počasna pri velikem svetu (256x256). # šŸ› ļø 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. - [x] **Global Error Handling** - Dodan `ErrorHandler.js` (Red Screen of Death). Ujame napake, ki se zgodijo med igranjem, in prikaže uporabniku prijazen crash screen z možnostjo reload-a. - [x] **Centraliziran Loot Manager** - Implementiran `LootSystem.js`. Skrbi za `spawnLoot`, animacijo dropov, pobiranje (razdalja do igralca) in čiŔčenje InteractionSystem-a. - [x] **Z-Sorting (Depth) Optimizacija** - Implementiran "dirty check" v `Player.js` in `NPC.js`. Depth se posodobi samo, če se Y koordinata spremeni za več kot 0.1px, namesto vsak frame. ## šŸ”“ 3. Performančne Nadgradnje (High-End) Če bo igra postala počasna pri velikem svetu (256x256). - [x] Phaser Blitter / Tilemap (Zamenjava 1000 spritov za teren z enim objektom) - [x] **Spatial Hashing za Kolizijo** - Implementiran `SpatialGrid.js`. Igralna scena zdaj uporablja mrežo za hitro iskanje NPC-jev v bližini (`InteractionSystem`, `NPC AI`), namesto da bi iterirala čez celo tabelo. - [x] Phaser Blitter / Tilemap (Zamenjava 1000 spritov za teren z enim objektom) - [ ] Web Workers za AI (Težje, ker JS nima shared memory, samo message passing)ding (iskanje poti) na ločen thread (Worker), da ne blokira glavne igre. --- *Status: Koda je trenutno stabilna in očiŔčena (7.12.2025).*