TH1/Unity/Assets/Scripts/TH1_Logic/Config/VersionConfig.cs
2026-03-12 01:58:08 +08:00

77 lines
2.5 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 void CreateNewVersion(uint major, uint minor, uint patch, uint fourth)
{
var newVersion = new VersionInfo
{
MajorVersion = major,
MinorVersion = minor,
PatchVersion = patch,
FourthVersion = fourth,
};
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 FourthVersion; // 第四版本号,预留字段
// 版本ID格式为 Major.Minor.Patch.Fourth
public uint VersionId => MajorVersion * 1000000 + MinorVersion * 10000 + PatchVersion * 100 + FourthVersion;
public string FullVersion => $"{MajorVersion}.{MinorVersion}.{PatchVersion}"+ ((FourthVersion == 0) ? "":$"{GetFourthVersionLetter()}");
public string WindowsFullVersion => $"{MajorVersion}_{MinorVersion}_{PatchVersion}"+ ((FourthVersion == 0) ? "":$"{GetFourthVersionLetter()}");
public string Version => $"{MajorVersion}.{MinorVersion}.{PatchVersion}";
public string WindowsVersion => $"{MajorVersion}_{MinorVersion}_{PatchVersion}";
public string OldFullVersion => $"1.{MinorVersion}.{PatchVersion}";
public string OldWindowsFullVersion => $"1_{MinorVersion}_{PatchVersion}";
// 将 FourthVersion 转成小写英文字母, 0 对应 a
public string GetFourthVersionLetter()
{
return ((char)('a' + FourthVersion)).ToString();
}
}
}