TH1/Unity/Assets/Scripts/TH1_Logic/Config/VersionConfig.cs
2025-08-18 23:16:13 +08:00

65 lines
1.8 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* @Author: 白哉
* @Description:
* @Date: 2025年07月25日 星期五 14:07:09
* @Modify:
*/
using System;
using System.Collections.Generic;
using Logic.Multilingual;
using UnityEngine;
namespace Logic.Config
{
public class VersionConfig : ScriptableObject
{
public uint CurVersionId; // 当前版本ID
public List<VersionInfo> Versions = new List<VersionInfo>();
public VersionInfo CurVersionInfo => GetVersionInfo(CurVersionId);
public uint CurVersionMajorId => CurVersionId / 10000;
public uint CurVersionMinorId => CurVersionId % 10000 / 100;
public uint CurVersionPatchId => CurVersionId % 100;
public void CreateNewVersion(uint major, uint minor, uint patch)
{
var newVersion = new VersionInfo
{
MajorVersion = major,
MinorVersion = minor,
PatchVersion = patch
};
Versions.Add(newVersion);
}
public VersionInfo GetVersionInfo(uint versionId)
{
if (Versions == null || Versions.Count == 0) return null;
foreach (var version in Versions)
{
if (version.VersionId == versionId) return version;
}
return null;
}
}
[Serializable]
public class VersionInfo
{
public uint MajorVersion; // 主版本号
public uint MinorVersion; // 次版本号
public uint PatchVersion; // 补丁号
[MultilingualField]
public string Description; // 版本描述
public uint VersionId => MajorVersion * 10000 + MinorVersion * 100 + PatchVersion; // 版本ID格式为 Major.Minor.Patch
public string FullVersion => $"{MajorVersion}.{MinorVersion}.{PatchVersion}";
}
}