mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 10:35:34 +00:00
Roguelike map
This commit is contained in:
parent
a005e3c480
commit
e1496c9228
18 changed files with 226 additions and 101 deletions
9
Scripts/Controllers/RogueliteRoom.cs
Normal file
9
Scripts/Controllers/RogueliteRoom.cs
Normal 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; }
|
||||
}
|
||||
1
Scripts/Controllers/RogueliteRoom.cs.uid
Normal file
1
Scripts/Controllers/RogueliteRoom.cs.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://b2j00riayxkit
|
||||
50
Scripts/Controllers/RogueliteRoomManager.cs
Normal file
50
Scripts/Controllers/RogueliteRoomManager.cs
Normal 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);
|
||||
}
|
||||
}
|
||||
1
Scripts/Controllers/RogueliteRoomManager.cs.uid
Normal file
1
Scripts/Controllers/RogueliteRoomManager.cs.uid
Normal file
|
|
@ -0,0 +1 @@
|
|||
uid://bt2qjgnf1wc2r
|
||||
Loading…
Add table
Add a link
Reference in a new issue