mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 11:15:33 +00:00
50 lines
No EOL
1.2 KiB
C#
50 lines
No EOL
1.2 KiB
C#
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);
|
|
}
|
|
} |