// ======================================================== // PRIMERI UPORABE SISTEMA ZA POSTAVITEV OGRAJ // ======================================================== // // Ta datoteka vsebuje primere, kako uporabljati BuildSystem // za ročno postavitev ograj na natančne koordinate. // // KAKO UPORABITI: // 1. V GameScene.js dodaj: import './examples/FencePlacementExample.js'; // 2. V create() metodi pokliči: this.setupFenceExamples(); // ======================================================== /** * Dodaj to metodo v GameScene.js za testiranje postavitve ograj. */ export function setupFenceExamples(scene) { // Počakaj, da se BuildSystem inicializira if (!scene.buildSystem) { console.error('❌ BuildSystem ni inicializiran!'); return; } console.log('🔧 Inicializacija primerov postavitve ograj...'); // ======================================================== // PRIMER 1: Postavitev ene same ograje // ======================================================== scene.buildSystem.placeSingleFence(50, 30, 'fence_horizontal', false); // ======================================================== // PRIMER 2: Postavitev kratke linije ograj (vodoravno) // ======================================================== for (let i = 0; i < 5; i++) { scene.buildSystem.placeSingleFence(50 + i, 32, 'fence_horizontal', false); } // ======================================================== // PRIMER 3: Postavitev navpične linije ograj // ======================================================== for (let i = 0; i < 5; i++) { scene.buildSystem.placeSingleFence(48, 30 + i, 'fence_vertical', false); } // ======================================================== // PRIMER 4: Uporaba placeFenceLine (Bresenhamov algoritem) // ======================================================== scene.buildSystem.placeFenceLine(40, 40, 45, 45, 'fence_post', false); // ======================================================== // PRIMER 5: Postavitev pravokotnika ograj (10x8) // ======================================================== scene.buildSystem.placeFenceRectangle(30, 50, 10, 8, 'fence_horizontal', false); // ======================================================== // PRIMER 6: Postavitev ograj okoli farme (primer) // ======================================================== // Če želite ograditi celotno farmo (100x100), uporabite: // scene.buildSystem.placeFenceRectangle(0, 0, 100, 100, 'fence_horizontal', false); // ======================================================== // PRIMER 7: Različni tipi ograj // ======================================================== // Razpoložljivi tipi ograj: // - 'fence' (stara ograja) // - 'fence_post' (steber) // - 'fence_horizontal' (vodoravna →) // - 'fence_vertical' (navpična ↓) // - 'fence_corner' (vogal ⌞) scene.buildSystem.placeSingleFence(60, 30, 'fence_post', false); scene.buildSystem.placeSingleFence(61, 30, 'fence_horizontal', false); scene.buildSystem.placeSingleFence(62, 30, 'fence_vertical', false); scene.buildSystem.placeSingleFence(63, 30, 'fence_corner', false); // ======================================================== // PRIMER 8: Postavitev z porabo virov // ======================================================== // Če želite, da se viri porabijo pri postavitvi: // scene.buildSystem.placeSingleFence(70, 30, 'fence_horizontal', true); // OPOMBA: To bo preverilo, ali ima igralec dovolj lesa! console.log('✅ Primeri postavitve ograj so bili izvedeni!'); } /** * Napredni primer: Ustvari labirint iz ograj */ export function createFenceMaze(scene, startX, startY, size = 20) { if (!scene.buildSystem) return; console.log('🌀 Ustvarjanje labirinta iz ograj...'); // Zunanji rob scene.buildSystem.placeFenceRectangle(startX, startY, size, size, 'fence_horizontal', false); // Notranje stene (primer) for (let i = 2; i < size - 2; i += 4) { scene.buildSystem.placeFenceLine( startX + i, startY + 2, startX + i, startY + size - 3, 'fence_vertical', false ); } console.log('✅ Labirint ustvarjen!'); } /** * Napredni primer: Ustvari spiralo iz ograj */ export function createFenceSpiral(scene, centerX, centerY, maxRadius = 10) { if (!scene.buildSystem) return; console.log('🌀 Ustvarjanje spirale iz ograj...'); let x = centerX; let y = centerY; let dx = 0; let dy = -1; let segment_length = 1; let segment_passed = 0; for (let i = 0; i < maxRadius * maxRadius; i++) { scene.buildSystem.placeSingleFence(x, y, 'fence_post', false); x += dx; y += dy; segment_passed++; if (segment_passed === segment_length) { segment_passed = 0; // Zavij desno const temp = dx; dx = -dy; dy = temp; if (dy === 0) { segment_length++; } } } console.log('✅ Spirala ustvarjena!'); } // ======================================================== // KAKO UPORABITI TE PRIMERE V GAMESCENE.JS: // ======================================================== /* // 1. Na vrhu GameScene.js dodaj import: import { setupFenceExamples, createFenceMaze, createFenceSpiral } from './examples/FencePlacementExample.js'; // 2. V create() metodi, po inicializaciji BuildSystem: create() { // ... ostala koda ... this.buildSystem = new BuildSystem(this); // Pokliči primere (opcijsko): setupFenceExamples(this); // Ali ustvari labirint: // createFenceMaze(this, 20, 20, 30); // Ali ustvari spiralo: // createFenceSpiral(this, 50, 50, 15); } */