Traveller/scripts/GameSceneDepend.cs

165 lines
4.3 KiB
C#
Raw Normal View History

using ColdMint.scripts.character;
using ColdMint.scripts.inventory;
using ColdMint.scripts.map.miniMap;
using ColdMint.scripts.utils;
2024-04-28 13:55:19 +00:00
using Godot;
namespace ColdMint.scripts;
/// <summary>
/// <para>Dependencies on the runtime of the game scene</para>
/// <para>游戏场景运行时的依赖</para>
2024-04-28 13:55:19 +00:00
/// </summary>
public static class GameSceneDepend
2024-04-28 13:55:19 +00:00
{
/// <summary>
/// <para>MiniMap</para>
/// <para>迷你地图</para>
/// </summary>
public static MiniMap? MiniMap { get; set; }
/// <summary>
/// <para>MiniMapAnimationPlayer</para>
/// <para>迷你地图的动画节点</para>
/// </summary>
public static AnimationPlayer? MiniMapAnimationPlayer { get; set; }
private static Player? _player;
2024-04-28 13:55:19 +00:00
/// <summary>
/// <para>Player instances within the game scene</para>
/// <para>游戏场景内的玩家实例</para>
/// </summary>
public static Player? Player
{
get => _player;
set
{
_player = value;
if (MiniMap != null)
{
MiniMap.OwnerNode = _player;
}
}
}
2024-04-28 13:55:19 +00:00
/// <summary>
/// <para>When the mouse enters the scope of a character, it is considered a target</para>
/// <para>鼠标进入到某个角色的范围内时,会将其视作目标</para>
/// </summary>
public static Node2D? TemporaryTargetNode { get; set; }
/// <summary>
/// <para>ProjectileContainer</para>
/// <para>抛射体容器</para>
/// </summary>
public static Node2D? ProjectileContainer { get; set; }
/// <summary>
/// <para>SpellContainer</para>
/// <para>法术容器</para>
/// </summary>
public static Node2D? SpellContainer { get; set; }
2024-04-28 13:55:19 +00:00
/// <summary>
/// <para>WeaponContainer</para>
/// <para>武器容器</para>
/// </summary>
public static Node2D? WeaponContainer { get; set; }
/// <summary>
/// <para>PacksackContainer</para>
/// <para>背包容器</para>
/// </summary>
public static Node2D? PacksackContainer { get; set; }
/// <summary>
/// <para>PlayerContainer</para>
/// <para>玩家容器</para>
/// </summary>
public static Node2D? PlayerContainer { get; set; }
/// <summary>
/// <para>PickAbleContainer</para>
/// <para>可拾捡物容器</para>
/// </summary>
public static Node2D? PickAbleContainer { get; set; }
/// <summary>
/// <para>AICharacterContainer</para>
/// <para>AICharacter角色</para>
/// </summary>
public static Node2D? AiCharacterContainer { get; set; }
/// <summary>
/// <para>HotBar</para>
/// <para>快捷栏</para>
/// </summary>
public static HotBar? HotBar { get; set; }
2024-04-28 13:55:19 +00:00
/// <summary>
/// <para>Health Bar UI</para>
/// <para>健康条UI</para>
/// </summary>
public static HealthBarUi? HealthBarUi { get; set; }
/// <summary>
/// <para>DynamicUiGroup</para>
/// <para>动态生成的Ui组</para>
/// </summary>
/// <remarks>
///<para>Dynamically generated Ui objects will be placed under this node</para>
///<para>动态生成的Ui对象将放置在此节点下</para>
/// </remarks>
public static UiGroup? DynamicUiGroup { get; set; }
/// <summary>
/// <para>Whether the player's mouse is hovering over GUI furniture</para>
/// <para>玩家的鼠标是否悬浮在GUI家具上</para>
/// </summary>
public static bool IsMouseOverFurnitureGui;
/// <summary>
/// <para>Whether the mouse is suspended over the item slot</para>
/// <para>鼠标是否悬浮在物品槽上</para>
/// </summary>
public static bool IsMouseOverItemSlotNode;
/// <summary>
/// <para>ShowMiniMap</para>
/// <para>显示迷你地图</para>
/// </summary>
public static void ShowMiniMap()
{
if (MiniMap == null)
{
return;
}
if (MiniMap.Visible)
{
return;
}
MiniMapAnimationPlayer?.Play(name: "show");
}
/// <summary>
/// <para>HideMiniMap</para>
/// <para>隐藏迷你地图</para>
/// </summary>
public static void HideMiniMap()
{
if (MiniMap == null)
{
return;
}
if (MiniMap.Visible)
{
MiniMapAnimationPlayer?.Play(name: "hide");
}
}
2024-04-28 13:55:19 +00:00
}