Roguelike map

This commit is contained in:
Marco 2025-04-10 19:04:06 +02:00
commit e1496c9228
18 changed files with 226 additions and 101 deletions

View file

@ -0,0 +1,9 @@
using Cirno.Scripts.Resources.Roguelite;
using Godot;
namespace Cirno.Scripts.Controllers;
public partial class RogueliteRoom : Node2D
{
[Export] public RogueliteRoomResource RoomResource { get; set; }
}

View file

@ -0,0 +1 @@
uid://b2j00riayxkit

View file

@ -0,0 +1,50 @@
using System.Linq;
using Cirno.Scripts.Resources.Roguelite;
using Godot;
using Godot.Collections;
namespace Cirno.Scripts.Controllers;
public partial class RogueliteRoomManager : Node2D
{
[Export] public Array<RogueliteRoomResource> Rooms { get; set; }
[Export] public Node2D SceneContainer { get; set; }
public override void _Ready()
{
// Spawn first room
}
private void SpawnRoomsGrid()
{
var firstRoom = Rooms.FirstOrDefault();
var origin = Vector2.Zero;
var tileSize = new Vector2(16, 16);
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
{
SpawnRoom(firstRoom, origin + (firstRoom.Size * new Vector2(i, j) * tileSize));
}
}
CallDeferred(MethodName.RebakeNavigationDeferred);
}
private void RebakeNavigationDeferred()
{
GameManager.Instance.RebakeNavigation();
}
private void SpawnRoom(RogueliteRoomResource room, Vector2 position)
{
var roomScene = GD.Load<PackedScene>(room.ScenePath);
var spawnedScene = this.CreateChild<RogueliteRoom>(roomScene, position);
}
}

View file

@ -0,0 +1 @@
uid://bt2qjgnf1wc2r