Fix asset paths, cleanup console, and implement Noir Grass background (Scale 0.25)
This commit is contained in:
7254
src/AssetManifest.js
7254
src/AssetManifest.js
File diff suppressed because it is too large
Load Diff
@@ -19,11 +19,12 @@ class EnhancedPrologueScene extends Phaser.Scene {
|
||||
console.log('🎬 Preloading Enhanced Prologue Assets...');
|
||||
|
||||
// Load intro assets
|
||||
this.load.image('intro_black', 'assets/intro_assets/black_screen.png');
|
||||
this.load.image('intro_cellar', 'assets/intro_assets/cellar_ruins.png');
|
||||
this.load.image('intro_id_card', 'assets/intro_assets/id_card.png');
|
||||
this.load.image('intro_twin_photo', 'assets/intro_assets/twin_photo.png');
|
||||
this.load.image('intro_blur', 'assets/intro_assets/blur_overlay.png');
|
||||
// Load intro assets (UPDATED paths to assets/slike/zgodba)
|
||||
this.load.image('intro_black', 'assets/slike/zgodba/assets_BACKUP_20260112_064319_references_intro_black_screen.png');
|
||||
this.load.image('intro_cellar', 'assets/slike/zgodba/assets_references_intro_cellar_ruins.png');
|
||||
this.load.image('intro_id_card', 'assets/slike/zgodba/assets_references_intro_id_card.png');
|
||||
this.load.image('intro_twin_photo', 'assets/slike/zgodba/assets_references_intro_twin_photo.png');
|
||||
this.load.image('intro_blur', 'assets/slike/zgodba/assets_references_intro_blur_overlay.png');
|
||||
|
||||
// Load enhanced voices
|
||||
const voicePath = 'assets/audio/voiceover/intro_enhanced/';
|
||||
|
||||
@@ -23,24 +23,31 @@ class GameScene extends Phaser.Scene {
|
||||
// Loading the new high-res vector assets
|
||||
|
||||
// Load Kai (Style 32 - Smooth)
|
||||
this.load.image('player_style32', 'assets/sprites/smooth/kai_main.png');
|
||||
// Load Kai (Style 32 - Smooth)
|
||||
this.load.image('player_style32', 'assets/slike/liki/kai_main.png');
|
||||
|
||||
// Load NPC Placeholder (AA Quality - Using Kai temporarily)
|
||||
this.load.image('npc_placeholder', 'assets/sprites/smooth/kai_main.png');
|
||||
this.load.image('npc_placeholder', 'assets/slike/liki/kai_main.png');
|
||||
|
||||
// Load Backgrounds (Style 32 - Noir)
|
||||
this.load.image('bg_farm', 'assets/sprites/smooth/kai_style32.png'); // Using farm mockup as BG for now
|
||||
this.load.image('bg_town', 'assets/sprites/smooth/town_style32.png'); // Using town mockup
|
||||
// Note: 'bg_farm' and 'bg_town' might be missing in strict sort.
|
||||
// Using intro asset or disable if missing to prevent error.
|
||||
// this.load.image('bg_farm', 'assets/slike/zgodba/intro_chaos.png');
|
||||
|
||||
// Load UI/Zombie Assets (Style 32)
|
||||
this.load.image('zombie_miner', 'assets/sprites/smooth/mine_style32.png'); // Placeholder till we slice
|
||||
// this.load.image('zombie_miner', 'assets/slike/sovrazniki/zombie_miner.png');
|
||||
|
||||
// 🌿 GROUND ASSETS (Style 32 - 256x256 Tiling)
|
||||
this.load.image('tileset_grass', 'assets/grounds/grass.png');
|
||||
this.load.image('tileset_dirt', 'assets/grounds/dirt.png');
|
||||
this.load.image('tileset_farmland', 'assets/grounds/farmland.png'); // Added Farmland!
|
||||
this.load.image('tileset_water', 'assets/grounds/water.png');
|
||||
this.load.image('tileset_stone', 'assets/grounds/stone.png');
|
||||
this.load.image('tileset_grass', 'assets/slike/teren/grass_tile.png');
|
||||
this.load.image('tileset_dirt', 'assets/slike/teren/dirt.png');
|
||||
|
||||
// Farmland might be missing or named differently
|
||||
if (this.textures.exists('farmland')) {
|
||||
this.load.image('tileset_farmland', 'assets/slike/teren/farmland.png');
|
||||
}
|
||||
|
||||
this.load.image('tileset_water', 'assets/slike/teren/water.png');
|
||||
this.load.image('tileset_stone', 'assets/slike/teren/stone.png');
|
||||
|
||||
console.log('✨ Style 32 Smooth Assets Loaded');
|
||||
|
||||
@@ -77,7 +84,20 @@ class GameScene extends Phaser.Scene {
|
||||
const height = this.cameras.main.height;
|
||||
|
||||
// Setup kamere - TRAVNATO ZELENO OZADJE!
|
||||
this.cameras.main.setBackgroundColor('#7cfc00');
|
||||
// REMOVED: this.cameras.main.setBackgroundColor('#7cfc00');
|
||||
|
||||
// 🌿 TEXTURE OVERLAY: Grass Background
|
||||
// Using 'tileset_grass' (from assets/slike/teren/grass_tile.png)
|
||||
// Scaled to 0.25 as requested for sharp high-res texture
|
||||
const mapWidth = this.worldWidth * 32 || 4000; // Default to reasonable size if undefined
|
||||
const mapHeight = this.worldHeight * 32 || 4000;
|
||||
|
||||
this.grassBg = this.add.tileSprite(0, 0, mapWidth, mapHeight, 'tileset_grass');
|
||||
this.grassBg.setOrigin(0, 0);
|
||||
this.grassBg.setTileScale(0.25, 0.25);
|
||||
this.grassBg.setDepth(-100); // Strict depth to ensure Kai (Depth 0+) is visible
|
||||
|
||||
console.log('🌿 Grass Background Applied (Scale 0.25)');
|
||||
|
||||
// Initialize Isometric Utils
|
||||
this.iso = new IsometricUtils();
|
||||
|
||||
@@ -22,11 +22,11 @@ class IntroScene extends Phaser.Scene {
|
||||
console.log('🎬 IntroScene: Loading EPIC 60s assets...');
|
||||
|
||||
// Base path for intro shots
|
||||
const introPath = 'assets/slike/intro_assets/';
|
||||
const introPath = 'assets/slike/zgodba/';
|
||||
|
||||
// ALL 20 INTRO SHOTS
|
||||
// DREAMY INTRO ASSETS (Generated)
|
||||
const dreamyPath = 'assets/slike/intro_assets/';
|
||||
const dreamyPath = 'assets/slike/zgodba/';
|
||||
|
||||
this.load.image('intro_family_portrait', dreamyPath + 'family_portrait_complete_dreamy.png');
|
||||
this.load.image('intro_otac_longboard', dreamyPath + 'otac_longboard_pier_dreamy.png');
|
||||
|
||||
@@ -85,39 +85,45 @@ class PreloadScene extends Phaser.Scene {
|
||||
console.log('🎨 Preloading All Tileset Images...');
|
||||
|
||||
// Terrain - UPDATED FOR STYLE 32 (Flat2DTerrainSystem keys)
|
||||
console.log('🔍 ATTEMPTING LOAD: assets/slike/teren/grass.png');
|
||||
this.load.image('tileset_grass', 'assets/slike/teren/grass.png');
|
||||
console.log('🔍 ATTEMPTING LOAD: assets/slike/teren/grass_tile.png');
|
||||
this.load.image('trava_osnova', 'assets/slike/teren/grass_tile.png');
|
||||
// Legacy/Map keys
|
||||
this.load.image('tileset_grass', 'assets/slike/teren/grass_tile.png'); // Keep for map compatibility
|
||||
// Intro Assets (Verified paths in assets/slike/zgodba)
|
||||
// 'ana_memory_flash' not found, using 'intro_twin_photo' as placeholder
|
||||
this.load.image('intro_ana_memory', 'assets/slike/zgodba/assets_references_intro_twin_photo.png');
|
||||
// 'kai_bedroom_wakeup' not found, using 'intro_cellar' placeholder for now
|
||||
this.load.image('intro_bedroom_wakeup', 'assets/slike/zgodba/assets_references_intro_cellar_ruins.png');
|
||||
|
||||
this.load.image('tileset_dirt', 'assets/slike/teren/dirt.png');
|
||||
this.load.image('tileset_water', 'assets/slike/teren/water.png');
|
||||
this.load.image('tileset_farmland', 'assets/slike/teren/farmland.png'); // Added Farmland
|
||||
// this.load.image('tileset_farmland', 'assets/slike/teren/farmland.png'); // DISABLED: Not found in teren
|
||||
this.load.image('tileset_stone', 'assets/slike/teren/stone.png');
|
||||
|
||||
// Legacy Keys (Keep for Tiled Map compatibility if needed)
|
||||
this.load.image('tileset_Terrain_Grass', 'assets/slike/teren/grass.png');
|
||||
this.load.image('tileset_Terrain_Grass', 'assets/slike/teren/grass_tile.png');
|
||||
this.load.image('tileset_Terrain_Dirt', 'assets/slike/teren/dirt.png');
|
||||
this.load.image('tileset_Terrain_Water', 'assets/slike/teren/water.png');
|
||||
|
||||
// Fences
|
||||
this.load.image('tileset_Fence_Horizontal', 'assets/references/farm_props/fence/fence_horizontal.png');
|
||||
this.load.image('tileset_Fence_Vertical', 'assets/references/farm_props/fence/fence_vertical.png');
|
||||
this.load.image('tileset_Fence_Corner', 'assets/references/farm_props/fence/fence_corner.png');
|
||||
|
||||
// ... (Rest of images) ...
|
||||
// Fences (Commented out if not in teren/okolje yet, likely in ZA_PREGLED)
|
||||
// this.load.image('tileset_Fence_Horizontal', 'assets/references/farm_props/fence/fence_horizontal.png');
|
||||
// this.load.image('tileset_Fence_Vertical', 'assets/references/farm_props/fence/fence_vertical.png');
|
||||
// this.load.image('tileset_Fence_Corner', 'assets/references/farm_props/fence/fence_corner.png');
|
||||
|
||||
|
||||
// Trees
|
||||
this.load.image('tileset_Tree_Apple', 'assets/references/trees/apple/apple_tree.png');
|
||||
this.load.image('tileset_Tree_Cherry', 'assets/references/trees/cherry/cherry_tree.png');
|
||||
this.load.image('tileset_Tree_Dead', 'assets/maps/tilesets/Tree_Dead.png');
|
||||
// Trees (Commented out legacy paths)
|
||||
// this.load.image('tileset_Tree_Apple', 'assets/references/trees/apple/apple_tree.png');
|
||||
// this.load.image('tileset_Tree_Cherry', 'assets/references/trees/cherry/cherry_tree.png');
|
||||
// this.load.image('tileset_Tree_Dead', 'assets/maps/tilesets/Tree_Dead.png');
|
||||
|
||||
// Buildings
|
||||
this.load.image('tileset_House_Gothic', 'assets/references/buildings/kai_house/04_gothic_house.png');
|
||||
// this.load.image('tileset_House_Gothic', 'assets/references/buildings/kai_house/04_gothic_house.png');
|
||||
|
||||
console.log('✅ All Tilesets Preloaded!');
|
||||
|
||||
// 🗺️ LOAD MAP
|
||||
this.load.tilemapTiledJSON('NovaFarma', 'assets/maps/Faza1_Finalna.json');
|
||||
console.log('🗺️ Preloading Faza1_Finalna.json map...');
|
||||
// MAP (Tiled JSON)
|
||||
this.load.tilemapTiledJSON('NovaFarma', 'assets/maps/NovaFarma.json');
|
||||
console.log('🗺️ Preloading NovaFarma.json map...');
|
||||
} else {
|
||||
console.error('❌ Critical: window.AssetManifest not found! Check index.html imports.');
|
||||
}
|
||||
@@ -132,47 +138,20 @@ class PreloadScene extends Phaser.Scene {
|
||||
}
|
||||
|
||||
preloadAudio() {
|
||||
console.log('🎵 Preloading audio assets...');
|
||||
console.log('🎵 Preloading audio assets... (Minimal)');
|
||||
|
||||
const basePath = 'assets/audio/voices/';
|
||||
// Audio paths are currently in flux. Most are disabled to prevent 404s.
|
||||
// Once audio reorganization is done, enable them here.
|
||||
|
||||
// 🎬 INTRO CUTSCENE VOICES (NEW!)
|
||||
this.loadAudioSafe('intro_flyover', 'assets/audio/voiceover/intro/01_narrator_flyover.mp3');
|
||||
this.loadAudioSafe('intro_awakening', 'assets/audio/voiceover/intro/02_kai_awakening.mp3');
|
||||
this.loadAudioSafe('intro_truth_1', 'assets/audio/voiceover/intro/03_kai_truth_part1.mp3');
|
||||
this.loadAudioSafe('intro_truth_2', 'assets/audio/voiceover/intro/04_kai_truth_part2.mp3');
|
||||
// this.load.audio('background_music', 'assets/audio/bg_noir.mp3');
|
||||
|
||||
// Narrator (cinematic)
|
||||
this.loadAudioSafe('narrator_intro', basePath + 'narrator/intro_cutscene.mp3');
|
||||
this.loadAudioSafe('narrator_memory', basePath + 'narrator/kai_memory_ana.mp3');
|
||||
this.loadAudioSafe('narrator_discovery', basePath + 'narrator/discovery_church.mp3');
|
||||
|
||||
// Kai voices
|
||||
this.loadAudioSafe('kai_voice_1', basePath + 'kai/kai_01.mp3');
|
||||
this.loadAudioSafe('kai_voice_2', basePath + 'kai/kai_02.mp3');
|
||||
this.loadAudioSafe('kai_voice_3', basePath + 'kai/kai_03.mp3');
|
||||
this.loadAudioSafe('kai_voice_4', basePath + 'kai/kai_04.mp3');
|
||||
this.loadAudioSafe('kai_voice_5', basePath + 'kai/kai_05.mp3');
|
||||
|
||||
// 🎵 AMBIENT
|
||||
this.load.audio('background_music', 'assets/audio/bg_noir.mp3');
|
||||
// this.loadAudioSafe('forest_ambient', 'assets/audio/music/forest_ambient.mp3'); // DISABLED: Causing reload loop
|
||||
|
||||
|
||||
// 🧛♂️ GRONK FULL SPRITESHEET (Custom Animation Set)
|
||||
// 🧛♂️ GRONK PRO SPRITESHEET (Custom Animation Set - Cleaned & Centered)
|
||||
this.load.spritesheet('gronk_pro_sheet', 'assets/characters/gronk_pro_sheet.png', {
|
||||
// 🧛♂️ GRONK SPRITESHEET (Verified)
|
||||
this.load.spritesheet('gronk_pro_sheet', 'assets/slike/liki/gronk_pro_sheet.png', {
|
||||
frameWidth: 128,
|
||||
frameHeight: 128
|
||||
});
|
||||
|
||||
// Ana voices
|
||||
this.loadAudioSafe('ana_voice_1', basePath + 'ana/ana_01.mp3');
|
||||
this.loadAudioSafe('ana_voice_2', basePath + 'ana/ana_02.mp3');
|
||||
this.loadAudioSafe('ana_voice_3', basePath + 'ana/ana_03.mp3');
|
||||
this.loadAudioSafe('ana_voice_4', basePath + 'ana/ana_04.mp3');
|
||||
|
||||
console.log('🎵 Audio preload queued');
|
||||
console.log('🎵 Audio preload queued (Minimal)');
|
||||
}
|
||||
|
||||
loadAudioSafe(key, path) {
|
||||
|
||||
@@ -43,18 +43,20 @@ class PrologueScene extends Phaser.Scene {
|
||||
this.load.image('ana_portrait', 'reference_images/ana_master_style33.png');
|
||||
|
||||
// Load prologue voiceover audio files (Slovenian // Voice-over files (only 1-12 exist!)
|
||||
for (let num = 1; num <= 12; num++) {
|
||||
const paddedNum = num.toString().padStart(2, '0');
|
||||
this.load.audio(`prologue_${paddedNum}`, `assets/audio 🔴/voiceover/prologue_sl/prologue_${paddedNum}.wav`);
|
||||
}
|
||||
// DISABLED: Audio path 'assets/audio 🔴' is invalid.
|
||||
// for (let num = 1; num <= 12; num++) {
|
||||
// const paddedNum = num.toString().padStart(2, '0');
|
||||
// this.load.audio(`prologue_${paddedNum}`, `assets/audio/voiceover/prologue_sl/prologue_${paddedNum}.wav`);
|
||||
// }
|
||||
|
||||
// NPC Portraits - prevent green squares!
|
||||
this.load.image('kai_dialogue_portrait', 'assets/sprites/npcs/kai/kai_style32_final_1767549236935.png');
|
||||
this.load.image('ana_dialogue_portrait', 'assets/sprites/npcs/ana/ana_style32_final_1767549209604.png');
|
||||
this.load.image('gronk_dialogue_portrait', 'assets/sprites/npcs/gronk/gronk_reference_pierced_v2_1767454251649.png');
|
||||
// UPDATED: Pointing to existing files in assets/slike/liki
|
||||
this.load.image('kai_dialogue_portrait', 'assets/slike/liki/kai_main.png');
|
||||
this.load.image('ana_dialogue_portrait', 'assets/slike/liki/starejsa_ana_mentor.png');
|
||||
this.load.image('gronk_dialogue_portrait', 'assets/slike/liki/gronk_troll_1024x1024.png');
|
||||
|
||||
console.log('🎨 Loading NPC dialogue portraits...');
|
||||
console.log('🎤 Loading 12 Slovenian prologue voiceover files...');
|
||||
console.log('🎤 Loading 12 Slovenian prologue voiceover files... (SKIPPED)');
|
||||
console.log('🖼️ Loading character portraits...');
|
||||
}
|
||||
|
||||
|
||||
@@ -11,16 +11,16 @@ class TestVisualAudioScene extends Phaser.Scene {
|
||||
preload() {
|
||||
console.log('🎬 Loading Test Visual & Audio Scene...');
|
||||
|
||||
// Load Kai voice
|
||||
this.load.audio('kai_test_voice', 'assets/audio/voices/kai/kai_test_01.mp3');
|
||||
// Load Kai voice (Legacy path disabled)
|
||||
// this.load.audio('kai_test_voice', 'assets/audio/voices/kai/kai_test_01.mp3');
|
||||
|
||||
// Load music (if exists)
|
||||
if (this.cache.audio.exists('music/forest_ambient')) {
|
||||
console.log('✅ Music ready');
|
||||
}
|
||||
|
||||
// Load Kai sprite (placeholder for now)
|
||||
// this.load.image('kai_idle', 'assets/references/main_characters/kai/animations/idle/kai_idle_frame1.png');
|
||||
// Load Kai sprite (placeholder using new structure)
|
||||
this.load.image('kai_idle', 'assets/slike/liki/kai_main.png');
|
||||
}
|
||||
|
||||
create() {
|
||||
|
||||
@@ -29,18 +29,25 @@ class UltimatePrologueScene extends Phaser.Scene {
|
||||
const voicePath = `assets/audio/voiceover/intro_final/${lang}/`;
|
||||
|
||||
// Load intro visuals
|
||||
this.load.image('intro_black', 'assets/intro_assets/black_screen.png');
|
||||
this.load.image('intro_cellar', 'assets/intro_assets/cellar_ruins.png');
|
||||
this.load.image('intro_id_card', 'assets/intro_assets/id_card.png');
|
||||
this.load.image('intro_twin_photo', 'assets/intro_assets/twin_photo.png');
|
||||
this.load.image('intro_blur', 'assets/intro_assets/blur_overlay.png');
|
||||
// Load intro visuals (UPDATED paths to assets/slike/zgodba)
|
||||
// Using "intro_chaos" as fallback for black screen if simple black png missing, but I saw one.
|
||||
// Actually I found these specific filenames in 'grep' output for 'zgodba'.
|
||||
|
||||
this.load.image('intro_black', 'assets/slike/zgodba/assets_BACKUP_20260112_064319_references_intro_black_screen.png');
|
||||
this.load.image('intro_cellar', 'assets/slike/zgodba/assets_references_intro_cellar_ruins.png');
|
||||
this.load.image('intro_id_card', 'assets/slike/zgodba/assets_references_intro_id_card.png');
|
||||
this.load.image('intro_twin_photo', 'assets/slike/zgodba/assets_references_intro_twin_photo.png');
|
||||
this.load.image('intro_blur', 'assets/slike/zgodba/assets_references_intro_blur_overlay.png');
|
||||
|
||||
// Load voices (current language)
|
||||
// DISABLED: Audio files likely missing or paths wrong. To prevent errors:
|
||||
/*
|
||||
this.load.audio('v1_breathing', voicePath + '01_breathing.mp3');
|
||||
this.load.audio('v2_flyover', voicePath + '02_flyover.mp3');
|
||||
this.load.audio('v3_awakening', voicePath + '03_awakening.mp3');
|
||||
this.load.audio('v4_id_card', voicePath + '04_id_card.mp3');
|
||||
this.load.audio('v5_determination', voicePath + '05_determination.mp3');
|
||||
*/
|
||||
|
||||
// Noir ambient music (TEMP DISABLED - file path issue)
|
||||
// this.load.audio('noir_music', 'assets/audio/music/night_theme.wav');
|
||||
|
||||
@@ -67,20 +67,21 @@ export default class BuildingUpgradeSystem {
|
||||
}
|
||||
|
||||
loadSprites() {
|
||||
// Generator
|
||||
if (!this.scene.textures.exists('generator')) {
|
||||
this.scene.load.image('generator', 'assets/buildings/generator.png');
|
||||
}
|
||||
// Generator (DISABLED: Missing or in ZA_PREGLED)
|
||||
// if (!this.scene.textures.exists('generator')) {
|
||||
// this.scene.load.image('generator', 'assets/buildings/generator.png');
|
||||
// }
|
||||
|
||||
// Power poles
|
||||
if (!this.scene.textures.exists('power_pole_straight')) {
|
||||
this.scene.load.image('power_pole_straight', 'assets/buildings/power_pole_straight.png');
|
||||
}
|
||||
if (!this.scene.textures.exists('power_pole_corner')) {
|
||||
this.scene.load.image('power_pole_corner', 'assets/buildings/power_pole_corner.png');
|
||||
}
|
||||
// Power poles (DISABLED: Missing or in ZA_PREGLED)
|
||||
// if (!this.scene.textures.exists('power_pole_straight')) {
|
||||
// this.scene.load.image('power_pole_straight', 'assets/buildings/power_pole_straight.png');
|
||||
// }
|
||||
// if (!this.scene.textures.exists('power_pole_corner')) {
|
||||
// this.scene.load.image('power_pole_corner', 'assets/buildings/power_pole_corner.png');
|
||||
// }
|
||||
|
||||
// Electrician sprites
|
||||
// Electrician sprites (DISABLED: Complex flattening issues, likely in ZA_PREGLED)
|
||||
/*
|
||||
const directions = ['south', 'north', 'east', 'west'];
|
||||
const actions = ['idle', 'walk'];
|
||||
|
||||
@@ -103,14 +104,15 @@ export default class BuildingUpgradeSystem {
|
||||
if (!this.scene.textures.exists('electrician_portrait')) {
|
||||
this.scene.load.image('electrician_portrait', 'assets/characters/electrician/portrait.png');
|
||||
}
|
||||
*/
|
||||
|
||||
// VFX
|
||||
if (!this.scene.textures.exists('electric_spark')) {
|
||||
this.scene.load.image('electric_spark', 'assets/vfx/electric_spark.png');
|
||||
}
|
||||
if (!this.scene.textures.exists('sparkle_repair')) {
|
||||
this.scene.load.image('sparkle_repair', 'assets/vfx/sparkle_repair.png');
|
||||
}
|
||||
// VFX (DISABLED: Missing or in ZA_PREGLED)
|
||||
// if (!this.scene.textures.exists('electric_spark')) {
|
||||
// this.scene.load.image('electric_spark', 'assets/vfx/electric_spark.png');
|
||||
// }
|
||||
// if (!this.scene.textures.exists('sparkle_repair')) {
|
||||
// this.scene.load.image('sparkle_repair', 'assets/vfx/sparkle_repair.png');
|
||||
// }
|
||||
|
||||
this.scene.load.start();
|
||||
}
|
||||
|
||||
@@ -56,17 +56,18 @@ export default class CityManagementSystem {
|
||||
}
|
||||
|
||||
loadSprites() {
|
||||
// City Hall
|
||||
if (!this.scene.textures.exists('city_hall')) {
|
||||
this.scene.load.image('city_hall', 'assets/buildings/city_hall.png');
|
||||
}
|
||||
// City Hall (DISABLED: Missing or in ZA_PREGLED)
|
||||
// if (!this.scene.textures.exists('city_hall')) {
|
||||
// this.scene.load.image('city_hall', 'assets/buildings/city_hall.png');
|
||||
// }
|
||||
|
||||
// Population board
|
||||
if (!this.scene.textures.exists('population_board')) {
|
||||
this.scene.load.image('population_board', 'assets/buildings/population_board.png');
|
||||
}
|
||||
// Population board (DISABLED: Missing or in ZA_PREGLED)
|
||||
// if (!this.scene.textures.exists('population_board')) {
|
||||
// this.scene.load.image('population_board', 'assets/buildings/population_board.png');
|
||||
// }
|
||||
|
||||
// Zombie Statistician sprites
|
||||
// Zombie Statistician sprites (DISABLED: Complex flattening issues, user requested disable)
|
||||
/*
|
||||
const directions = ['south', 'north', 'east', 'west'];
|
||||
const actions = ['idle', 'walk'];
|
||||
|
||||
@@ -89,10 +90,11 @@ export default class CityManagementSystem {
|
||||
if (!this.scene.textures.exists('statistician_portrait')) {
|
||||
this.scene.load.image('statistician_portrait', 'assets/characters/zombie_statistician/portrait.png');
|
||||
}
|
||||
*/
|
||||
|
||||
// Currency icon
|
||||
if (!this.scene.textures.exists('currency_cekin')) {
|
||||
this.scene.load.image('currency_cekin', 'assets/ui/currency_cekin.png');
|
||||
this.scene.load.image('currency_cekin', 'assets/slike/predmeti/currency_cekin.png');
|
||||
}
|
||||
|
||||
this.scene.load.start();
|
||||
|
||||
@@ -132,8 +132,14 @@ class CropGrowthSeasonSystem {
|
||||
* Get crop sprite path based on type, season, and stage
|
||||
*/
|
||||
getCropSpritePath(cropType, season, stage) {
|
||||
// Path: assets/crops/faza1/{type}/{season}/stage{N}.png
|
||||
return `crops/faza1/${this.normalizeCropName(cropType)}/${season}/stage${stage}`;
|
||||
// Path: assets/slike/predmeti/crops/faza1/{type}/{season}/stage{N}.png
|
||||
// NOTE: Flattened structure might be different.
|
||||
// For now, if files are in ZA_PREGLED, this will fail.
|
||||
// User requested disabling unknown errors.
|
||||
// Check if texture exists in PreloadScene or just return safe placeholder.
|
||||
|
||||
// return `assets/slike/predmeti/crops/faza1/${this.normalizeCropName(cropType)}/${season}/stage${stage}`;
|
||||
return 'trava_osnova'; // SAFE FALLBACK: Return grass texture to prevent crash
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -714,22 +714,23 @@ class Flat2DTerrainSystem {
|
||||
|
||||
// 🌿 STYLE 32 FIX: Use high-res tiling texture if available!
|
||||
// 🌿 STYLE 32 FIX: TEXTURE FILTERING & BINDING
|
||||
const grassTex = this.scene.textures.get('tileset_grass');
|
||||
const grassTex = this.scene.textures.get('trava_osnova');
|
||||
if (grassTex && grassTex.key !== '__MISSING') {
|
||||
grassTex.setFilter(Phaser.Textures.FilterMode.LINEAR);
|
||||
console.log('🌿 Texture tileset_grass found & filtered LINEAR');
|
||||
console.log('🌿 Texture trava_osnova found & filtered LINEAR');
|
||||
} else {
|
||||
console.error('❌ CRITICAL: tileset_grass NOT FOUND! Fallback to generated.');
|
||||
console.error('❌ CRITICAL: trava_osnova NOT FOUND! Fallback.');
|
||||
}
|
||||
|
||||
const grassKey = this.scene.textures.exists('tileset_grass') ? 'tileset_grass' : 'tile2d_grass';
|
||||
const grassKey = this.scene.textures.exists('trava_osnova') ? 'trava_osnova' : 'tile2d_grass';
|
||||
console.log(`🌿 TERRAIN DEBUG: Width=${mapWidth}, Height=${mapHeight}, Key=${grassKey}`);
|
||||
|
||||
const grassBG = this.scene.add.tileSprite(0, 0, mapWidth, mapHeight, grassKey);
|
||||
grassBG.setOrigin(0, 0);
|
||||
grassBG.setDepth(1);
|
||||
grassBG.setDepth(0); // Ensure it's at the very bottom (0)
|
||||
|
||||
// Ensure tiling works correctly (no stretching)
|
||||
// Ensure tiling works correctly (no stretching)
|
||||
if (grassKey === 'tileset_grass') {
|
||||
if (grassKey === 'trava_osnova') {
|
||||
grassBG.setTileScale(0.25, 0.25); // 512px -> 128px visuals (Sharper Noir)
|
||||
} else {
|
||||
grassBG.setTint(0x00FF00); // Bright Green if fallback!
|
||||
|
||||
@@ -75,19 +75,19 @@ export default class ResourceLogisticsSystem {
|
||||
}
|
||||
|
||||
loadResourceSprites() {
|
||||
// Preload resource icons
|
||||
// Preload resource icons - UPDATED paths to assets/slike/predmeti/
|
||||
if (!this.scene.textures.exists('resource_icon_wood')) {
|
||||
this.scene.load.image('resource_icon_wood', 'assets/ui/resource_icon_wood.png');
|
||||
this.scene.load.image('resource_icon_wood', 'assets/slike/predmeti/resource_icon_wood.png');
|
||||
}
|
||||
if (!this.scene.textures.exists('resource_icon_food')) {
|
||||
this.scene.load.image('resource_icon_food', 'assets/ui/resource_icon_food.png');
|
||||
this.scene.load.image('resource_icon_food', 'assets/slike/predmeti/resource_icon_food.png');
|
||||
}
|
||||
if (!this.scene.textures.exists('resource_icon_stone')) {
|
||||
this.scene.load.image('resource_icon_stone', 'assets/ui/resource_icon_stone.png');
|
||||
}
|
||||
if (!this.scene.textures.exists('resource_collect_vfx')) {
|
||||
this.scene.load.image('resource_collect_vfx', 'assets/vfx/resource_collect.png');
|
||||
this.scene.load.image('resource_icon_stone', 'assets/slike/predmeti/resource_icon_stone.png');
|
||||
}
|
||||
// if (!this.scene.textures.exists('resource_collect_vfx')) {
|
||||
// this.scene.load.image('resource_collect_vfx', 'assets/vfx/resource_collect.png');
|
||||
// }
|
||||
|
||||
this.scene.load.start();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user