Files
novafarma/SESSION_POND_SOUND.md
2025-12-12 02:41:00 +01:00

203 lines
4.5 KiB
Markdown

# 🌊 Sesija: Ribnik & Sound System - 12. December 2025
## 📋 Povzetek Sesije
### 🎯 Glavni Dosežki
#### 1. **Ribnik z Animirano Vodo** 🌊
-**Lokacija:** (30, 30) - okrogel ribnik (radij 4 tiles)
-**2D Stardew Valley stil** - flat top-down namesto 3D isometric
-**Temno modra barva** (0x0a3d62 → 0x1e5f8c) - dobro vidna!
-**Alpha tween animacija** - valovanje (0.7 ↔ 1.0, 1 sekunda)
-**Gradient + highlights** - svetli krogi za valovanje
#### 2. **Dežne Kapljice** 🌧️
-**Rain particles** - padajo v ribnik
-**10 kapljic/sekundo** (frequency: 100ms)
-**Modre kapljice** (0x4488ff)
-**Fade efekt** - alpha 0.8 → 0.3
-**ADD blend mode** - svetleči efekt
#### 3. **Sound System** 🎵
-**Ambient music** - C Minor Pentatonic scale
-**Rain sound** - white noise nad ribnikom
-**SFX ready** - dig, plant, harvest, build, chop, pickup
-**Proceduralni zvoki** - Web Audio API oscillators
#### 4. **Čista Mapa** 🟢
-**Brez dreves** (TREE_DENSITY = 0%)
-**Brez hiš** (ABANDONED_HOUSES = [])
-**Brez dekoracij** (grmički, rože, skale = 0%)
-**SaveSystem onemogočen** - fresh start
---
## 🔧 Ključne Spremembe
### **TerrainSystem.js**
**1. Ribnik Generiranje:**
```javascript
// Konstante
const POND_CENTER_X = 30;
const POND_CENTER_Y = 30;
const POND_RADIUS = 4;
// Generiranje
const distToPond = Math.sqrt(
Math.pow(x - POND_CENTER_X, 2) +
Math.pow(y - POND_CENTER_Y, 2)
);
if (distToPond <= POND_RADIUS) {
terrainType = this.terrainTypes.WATER;
}
```
**2. 2D Water Texture:**
```javascript
// Temna modra voda
waterGraphics.fillGradientStyle(
0x0a3d62, 0x0a3d62, // Temno modra
0x1e5f8c, 0x1e5f8c // Srednje modra
);
// Highlights
waterGraphics.fillStyle(0x3a8fc2, 0.5);
waterGraphics.fillCircle(12, 12, 10);
waterGraphics.fillCircle(36, 28, 8);
waterGraphics.fillCircle(24, 38, 6);
// Border
waterGraphics.lineStyle(2, 0x062a40, 1);
```
**3. Water Animation:**
```javascript
// Alpha tween za valovanje
this.scene.tweens.add({
targets: sprite,
alpha: 0.7,
duration: 1000,
yoyo: true,
repeat: -1,
ease: 'Sine.easeInOut'
});
```
**4. Rain Particles:**
```javascript
this.rainEmitter = this.scene.add.particles(pondX, pondY - 100, 'raindrop', {
x: { min: -50, max: 50 },
y: 0,
lifespan: 1000,
speedY: { min: 200, max: 300 },
scale: { start: 0.5, end: 0.2 },
alpha: { start: 0.8, end: 0.3 },
frequency: 100,
blendMode: 'ADD'
});
// Rain sound
this.scene.soundManager.playRainSound();
```
### **GameScene.js**
**1. TerrainSystem Update:**
```javascript
update(time, delta) {
if (this.terrainSystem) this.terrainSystem.update(time, delta);
// ... ostali sistemi
}
```
**2. Farm Tiles:**
```javascript
// Dirt namesto grass
this.terrainSystem.tiles[y][x].type = 'dirt';
this.terrainSystem.tiles[y][x].sprite.setTexture('dirt');
```
### **SaveSystem.js**
**LoadGame Onemogočen:**
```javascript
loadGame() {
console.log('📂 Loading game... DISABLED - Fresh start!');
return false; // Vedno fresh start
}
```
---
## 📊 Končna Konfiguracija
**Mapa:**
- Velikost: 100x100
- Teren: Zelena trava
- Farm: 8x8 dirt tiles (50,50)
- Ribnik: Okrogel, radij 4 (30,30)
**Dekoracije:**
- Drevesa: 0%
- Grmički: 0%
- Rože: 0%
- Skale: 0%
- Hiše: 0%
**Voda:**
- Stil: 2D Stardew Valley
- Barva: Temno modra (0x0a3d62 → 0x1e5f8c)
- Animacija: Alpha tween (1s)
- Dež: 10 kapljic/s
**Zvok:**
- Ambient music: C Minor Pentatonic
- Rain sound: White noise (800Hz lowpass)
- SFX: Proceduralni (Web Audio API)
---
## 🎯 Naslednji Koraki
**Priporočila:**
1. **Testiranje ribnika** - Vizualno preverjanje
2. **Dodati ribe** - Interakcija z ribnikom
3. **Ribolov sistem** - Mini-game
4. **Ponovno omogočiti save** - Ko je testiranje končano
5. **Dodati nazaj drevesa** - Z nizko gostoto (1-3%)
---
## 📝 Opombe
- Voda je zdaj **2D flat** (Stardew Valley stil)
- Rain particles **samo nad ribnikom**
- Sound system **že implementiran**
- Save sistem **onemogočen** za testiranje
- Vse spremembe **kompatibilne** z obstoječim kodom
---
**Datum:** 12. December 2025
**Trajanje:** ~40 minut
**Status:** ✅ Uspešno zaključeno
**Naslednja sesija:** Testiranje + ribe/ribolov
---
## 🚀 Quick Start (Po Vrnitvi)
```bash
# Reload igre
F4 v Electron oknu
# Preveri ribnik
Pojdi na (30, 30)
# Ponovno omogoči save (ko je testiranje končano)
# SaveSystem.js - odkomentiraj loadGame()
```
**Uživajte v Sparu!** 🛒✨