Traveller/scripts/map/interfaces/IRoomPlacementStrategy.cs
Cold-Mint 529d5e95b5
Adjust the map generator.
调整地图生成器。
2024-05-20 22:38:41 +08:00

44 lines
1.4 KiB
C#

using System.Threading.Tasks;
using ColdMint.scripts.levelGraphEditor;
using ColdMint.scripts.map.dateBean;
using ColdMint.scripts.map.room;
using Godot;
namespace ColdMint.scripts.map.interfaces;
/// <summary>
/// <para>Room placement strategy</para>
/// <para>房间放置策略</para>
/// </summary>
public interface IRoomPlacementStrategy
{
/// <summary>
/// <para>Place the room in the designated location</para>
/// <para>在指定的位置放置房间</para>
/// </summary>
/// <param name="mapRoot"></param>
/// <param name="roomPlacementData">
/// <para>Room placement information</para>
/// <para>房间放置信息</para>
/// </param>
/// <returns>
/// <para>Placement success or not</para>
/// <para>是否放置成功</para>
/// </returns>
public Task<bool> PlaceRoom(Node mapRoot, RoomPlacementData roomPlacementData);
/// <summary>
/// <para>Calculate new room placement information</para>
/// <para>计算新的房间放置信息</para>
/// </summary>
/// <param name="parentRoomNode">
///<para>Parent room node</para>
///<para>父房间节点</para>
/// </param>
/// <param name="newRoomNodeData">
///<para>New room data to be placed</para>
///<para>欲放置的新房间数据</para>
/// </param>
/// <returns></returns>
public Task<RoomPlacementData?> CalculateNewRoomPlacementData(Room? parentRoomNode, RoomNodeData newRoomNodeData);
}