added zone demo logic for dev purposes
This commit is contained in:
parent
b3a2d8bfaa
commit
c49a2563f8
@ -1,5 +1,6 @@
|
|||||||
import {Character, Zone} from "@prisma/client";
|
import {Character, Zone} from "@prisma/client";
|
||||||
import ZoneRepository from "./repositories/zone.repository";
|
import ZoneRepository from "./repositories/zone.repository";
|
||||||
|
import ZoneService from "./services/zone.service";
|
||||||
|
|
||||||
interface ILoadedZone {
|
interface ILoadedZone {
|
||||||
zone: Zone;
|
zone: Zone;
|
||||||
@ -23,6 +24,12 @@ class ZoneManager {
|
|||||||
// Method to initialize zone loading
|
// Method to initialize zone loading
|
||||||
public async boot() {
|
public async boot() {
|
||||||
const zoneRepository = new ZoneRepository();
|
const zoneRepository = new ZoneRepository();
|
||||||
|
|
||||||
|
if (!await zoneRepository.getById(1)) {
|
||||||
|
const zoneService = new ZoneService();
|
||||||
|
await zoneService.createDemoZone();
|
||||||
|
}
|
||||||
|
|
||||||
const zones = await zoneRepository.getAll();
|
const zones = await zoneRepository.getAll();
|
||||||
|
|
||||||
for (const zone of zones) {
|
for (const zone of zones) {
|
||||||
|
@ -19,6 +19,35 @@ class ZoneRepository {
|
|||||||
throw new Error(`Failed to get all zone: ${error.message}`);
|
throw new Error(`Failed to get all zone: ${error.message}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async getById(id: number): Promise<Zone | null> {
|
||||||
|
try {
|
||||||
|
return await prisma.zone.findUnique({
|
||||||
|
where: {
|
||||||
|
id: id
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (error: any) {
|
||||||
|
// Handle error
|
||||||
|
throw new Error(`Failed to get zone by id: ${error.message}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async create(name: string, width: number, height: number, tiles: any): Promise<Zone> {
|
||||||
|
try {
|
||||||
|
return await prisma.zone.create({
|
||||||
|
data: {
|
||||||
|
name: name,
|
||||||
|
width: width,
|
||||||
|
height: height,
|
||||||
|
tiles: tiles
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} catch (error: any) {
|
||||||
|
// Handle error
|
||||||
|
throw new Error(`Failed to create zone: ${error.message}`);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ZoneRepository;
|
export default ZoneRepository;
|
@ -1,13 +1,26 @@
|
|||||||
import {LoadedZoneEntity} from "../entities/LoadedZoneEntity";
|
|
||||||
import {Zone} from "@prisma/client";
|
import {Zone} from "@prisma/client";
|
||||||
|
import ZoneRepository from "../repositories/zone.repository";
|
||||||
|
|
||||||
class ZoneService
|
class ZoneService
|
||||||
{
|
{
|
||||||
public loaded: LoadedZoneEntity[] = [];
|
async createDemoZone(): Promise<boolean>
|
||||||
|
{
|
||||||
|
const zoneRepo = new ZoneRepository();
|
||||||
|
await zoneRepo.create("Demo Zone", 10, 10, [
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 1, 1, 1, 1, 1, 1, 1, 1, 0],
|
||||||
|
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||||
|
])
|
||||||
|
console.log("Demo zone created.");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public boot() {
|
export default ZoneService;
|
||||||
// Load all zones
|
|
||||||
// const zones = await new ZoneRepository().getAll();
|
|
||||||
// this.loadedZones = zones;
|
|
||||||
}
|
|
||||||
}
|
|
@ -26,7 +26,7 @@ async function addAuthRoutes(app: any) {
|
|||||||
return res.status(400).json({ message: 'Failed to register user' });
|
return res.status(400).json({ message: 'Failed to register user' });
|
||||||
});
|
});
|
||||||
|
|
||||||
console.log('[🕸️] Auth routes added');
|
console.log('[✅] Auth routes added');
|
||||||
}
|
}
|
||||||
|
|
||||||
export default { addAuthRoutes };
|
export default { addAuthRoutes };
|
Loading…
x
Reference in New Issue
Block a user