Stream asset reset v7, cleaning background and transparency fixes. 2026-01-29 16:37

This commit is contained in:
2026-01-29 16:38:17 +01:00
parent afa0e3c662
commit 177049e470
14 changed files with 180 additions and 165 deletions

View File

@@ -10,8 +10,9 @@ export default class GrassSceneClean extends Phaser.Scene {
// 1. Podlaga (Foundation)
this.load.image('ground_base', 'DEMO_FAZA1/Ground/tla_trava_tekstura.png');
// 2. Vodni kanali (Water)
this.load.image('stream_water', 'DEMO_FAZA1/Environment/stream_water.png');
// 2. Vodni kanali (Water) - NEW CLEAN ASSET V7 (Aggressive Clean)
this.load.image('stream_final_v7', 'DEMO_FAZA1/Environment/stream_final_v7.png');
// Removed extensions for now
// 3. Foliage
this.load.image('grass_dense', 'DEMO_FAZA1/Vegetation/grass_cluster_dense.png');
@@ -26,22 +27,13 @@ export default class GrassSceneClean extends Phaser.Scene {
frameHeight: 256
}); // Loading as 'kai' to keep existing references working, but now it has frames.
// 5. UI Assets (Loaded from DEMO_FAZA1/UI)
this.load.image('ui_health_bar', 'DEMO_FAZA1/UI/health_bar.png');
this.load.image('ui_weather_widget', 'DEMO_FAZA1/UI/weather_widget.png');
this.load.image('ui_minimap', 'DEMO_FAZA1/UI/minimap_frame.png');
this.load.image('ui_hotbar', 'DEMO_FAZA1/UI/hotbar_background.png');
this.load.image('ui_action_btn', 'DEMO_FAZA1/UI/action_btn.png');
// 5. UI Assets (Loaded in UIScene now to prevent duplicates)
// REMOVED
// 6. Camp Assets
this.load.image('campfire', 'DEMO_FAZA1/Environment/taborni_ogenj.png');
this.load.image('tent', 'DEMO_FAZA1/Environment/sotor.png');
this.load.image('sleeping_bag', 'DEMO_FAZA1/Items/spalna_vreca.png');
// 7. NEW: Sliced Stream Assets
this.load.image('stream_head', 'DEMO_FAZA1/Environment/stream_head.png');
this.load.image('stream_body', 'DEMO_FAZA1/Environment/stream_body.png');
}
create() {
@@ -52,27 +44,42 @@ export default class GrassSceneClean extends Phaser.Scene {
this.cameras.main.setBounds(0, 0, WORLD_W, WORLD_H);
this.cameras.main.setBackgroundColor('#1a1a1a');
// --- ZOOM CONTROL ---
this.cameras.main.setZoom(1.5); // Default start zoom
this.input.on('wheel', (pointer, gameObjects, deltaX, deltaY, deltaZ) => {
// Zoom In/Out based on wheel delta
// deltaY > 0 means scroll down (zoom out), deltaY < 0 means scroll up (zoom in)
const zoomFactor = -0.001;
const newZoom = this.cameras.main.zoom + deltaY * zoomFactor;
// Clamp zoom to reasonable limits (e.g., 0.5x to 3x)
this.cameras.main.setZoom(Phaser.Math.Clamp(newZoom, 0.5, 3.0));
});
// --- 1. PODLAGA (The Foundation) ---
// Level 0, Locked to Z = -100
this.ground = this.add.tileSprite(WORLD_W / 2, WORLD_H / 2, WORLD_W, WORLD_H, 'ground_base');
this.ground.setTileScale(1, 1);
this.ground.setDepth(-100);
// --- 2. STREAM (Single Pipe Channel) ---
// Placed at Z=0 (Ground Level)
const startX = WORLD_W / 2 + 50;
const startY = WORLD_H / 2 + 100;
// --- 2. STREAM SYSTEM (Head + Extensions) ---
// Center the whole construction
const startX = WORLD_W / 2;
const startY = WORLD_H / 2 - 300; // Start higher up to leave room for extensions
this.stream = this.physics.add.staticImage(startX, startY, 'stream_muddy');
this.stream.setOrigin(0.5, 0.9);
this.stream.setDepth(0);
this.stream.setScale(1.0);
// Main Head (Pipe + Splash)
// Showing V7 Asset (Aggressive Clean + Transparent Green)
this.stream = this.physics.add.staticImage(startX, startY, 'stream_final_v7');
this.stream.setOrigin(0.5, 0.5);
this.stream.setDepth(-50);
// Physics Body
this.stream.body.setSize(this.stream.width * 0.9, this.stream.height * 0.4);
this.stream.body.setOffset(this.stream.width * 0.05, this.stream.height * 0.5);
// Physics Body for Main
this.stream.body.setSize(this.stream.width * 0.8, this.stream.height * 0.2);
this.stream.body.setOffset(this.stream.width * 0.1, this.stream.height * 0.4);
// Collider added later after Kai creation
// Extensions removed for reset
// for (let i = 1; i <= 3; i++) { ... }
// Collider added later after Kai creation
@@ -95,7 +102,7 @@ export default class GrassSceneClean extends Phaser.Scene {
this.kai.body.setOffset(256 / 2 - 25, 256 - 40); // Pivot offset based on 256 frame
// Collider Stream <-> Kai
this.physics.add.collider(this.kai, this.stream);
// this.physics.add.collider(this.kai, this.stream);
// --- ANIMATIONS ---
// 0-3: Down, 4-7: Left, 8-11: Right, 12-15: Up
@@ -128,42 +135,55 @@ export default class GrassSceneClean extends Phaser.Scene {
this.kai.play('walk-down');
this.kai.stop();
// --- 7. CAMP SETUP (Oživitev) ---
this.campGroup = this.add.group();
// Tent (Behind Kai usually)
let tent = this.add.image(WORLD_W / 2 - 100, WORLD_H / 2 - 80, 'tent');
tent.setOrigin(0.5, 0.9); // Bottom anchor
tent.setScale(1.2); // Big enough for Kai
this.campGroup.add(tent);
// Campfire (In front)
let fire = this.add.image(WORLD_W / 2 + 50, WORLD_H / 2 + 50, 'campfire');
fire.setOrigin(0.5, 0.8);
fire.setScale(0.8);
this.campGroup.add(fire);
// Tweens for Fire (Little pulse)
this.tweens.add({
targets: fire,
scaleX: 0.85,
scaleY: 0.85,
duration: 500,
yoyo: true,
repeat: -1
});
// Sleeping Bag
let bag = this.add.image(WORLD_W / 2 - 80, WORLD_H / 2 + 20, 'sleeping_bag');
bag.setOrigin(0.5, 0.5); // Flat on ground?
bag.setScale(0.8);
this.campGroup.add(bag);
// Camera
// Camera setup logic
this.cameras.main.startFollow(this.kai, true, 0.1, 0.1);
this.cameras.main.setZoom(1.5);
this.cursors = this.input.keyboard.createCursorKeys();
// Collider added later after Kai creation
// Collider added later after Kai creation
// --- 3. FOLIAGE (Trava - Šopi) ---
// Removed as requested
// --- 4. ITEMS (Seno) ---
// Removed as requested
// Collider Stream <-> Kai
// this.physics.add.collider(this.kai, this.stream);
// --- ANIMATIONS ---
// 0-3: Down, 4-7: Left, 8-11: Right, 12-15: Up
// This is a duplicate animation creation block, removing it.
// this.anims.create({
// key: 'walk-down',
// frames: this.anims.generateFrameNumbers('kai', { start: 0, end: 3 }),
// frameRate: 8,
// repeat: -1
// });
// this.anims.create({
// key: 'walk-left',
// frames: this.anims.generateFrameNumbers('kai', { start: 4, end: 7 }),
// frameRate: 8,
// repeat: -1
// });
// this.anims.create({
// key: 'walk-right',
// frames: this.anims.generateFrameNumbers('kai', { start: 8, end: 11 }),
// frameRate: 8,
// repeat: -1
// });
// this.anims.create({
// key: 'walk-up',
// frames: this.anims.generateFrameNumbers('kai', { start: 12, end: 15 }),
// frameRate: 8,
// repeat: -1
// });
// Launch UI Scene
if (!this.scene.get('UIScene').scene.settings.active) {
this.scene.launch('UIScene');
@@ -210,10 +230,5 @@ export default class GrassSceneClean extends Phaser.Scene {
// --- Z-SORTING SYSTEM ---
// Player
this.kai.setDepth(this.kai.y);
// Camp Sorting
this.campGroup.children.each(item => {
item.setDepth(item.y);
});
}
}