Skip to content

Commit 0d12284

Browse files
committed
feat: 模组禁用显示
删除线在 macOS 12 上需要通过 AttributedString 实现,MyText 目前不支持,需要等待 CylorineStudio#195 合并
1 parent 0889a10 commit 0d12284

4 files changed

Lines changed: 21 additions & 6 deletions

File tree

PCL.Mac.Core/Models/Resource.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public struct Mod: Codable, Hashable, Equatable {
3030
public let loaders: [ModLoader]
3131
public let tags: [String]
3232
public let sources: [Source]
33+
public let disabled: Bool
3334

3435
public init(
3536
name: String,
@@ -38,7 +39,8 @@ public struct Mod: Codable, Hashable, Equatable {
3839
icon: ResourceIcon?,
3940
loaders: [ModLoader],
4041
tags: [String],
41-
sources: [Source]
42+
sources: [Source],
43+
disabled: Bool
4244
) {
4345
self.name = name
4446
self.version = version
@@ -47,10 +49,11 @@ public struct Mod: Codable, Hashable, Equatable {
4749
self.loaders = loaders
4850
self.tags = tags
4951
self.sources = sources
52+
self.disabled = disabled
5053
}
5154

5255
private enum CodingKeys: CodingKey {
5356
// 不持久化存储 id
54-
case name, version, description, icon, loaders, tags, sources
57+
case name, version, description, icon, loaders, tags, sources, disabled
5558
}
5659
}

PCL.Mac.Core/Services/Mod/ModLoadService.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,8 @@ public class ModLoadService {
228228
icon: icon,
229229
loaders: loaders,
230230
tags: remoteInfo?.tags ?? [],
231-
sources: (remoteInfo?.source).map { [$0] } ?? []
231+
sources: (remoteInfo?.source).map { [$0] } ?? [],
232+
disabled: url.pathExtension == "disabled"
232233
)
233234
}
234235

PCL.Mac/Models/ResourceDisplayModel.swift

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,24 @@ struct ModDisplayModel {
1717
let tags: [String]
1818
let icon: ListItem.Image
1919
let fileName: String
20+
let disabled: Bool
2021

21-
init(name: String, version: String, description: String, tags: [String], icon: ListItem.Image?, fileName: String) {
22+
init(
23+
name: String,
24+
version: String,
25+
description: String,
26+
tags: [String],
27+
icon: ListItem.Image?,
28+
fileName: String,
29+
disabled: Bool
30+
) {
2231
self.name = name
2332
self.version = version
2433
self.description = description
2534
self.tags = tags
2635
self.icon = icon ?? .resource(.iconModLogo)
2736
self.fileName = fileName
37+
self.disabled = disabled
2838
}
2939

3040
init(_ url: URL, _ mod: Mod) {
@@ -51,7 +61,8 @@ struct ModDisplayModel {
5161
description: mod.description ?? "",
5262
tags: mod.tags.map(ProjectListItemModel.localizeTag(_:)),
5363
icon: icon,
54-
fileName: url.lastPathComponent
64+
fileName: url.lastPathComponent,
65+
disabled: mod.disabled
5566
)
5667
}
5768
}

PCL.Mac/Views/Launch/InstanceSettings/InstalledModsPage.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ private struct ResourceListItem: View {
107107

108108
VStack(alignment: .leading) {
109109
HStack(alignment: .center, spacing: 0) {
110-
MyText(resource.name)
110+
MyText((resource.disabled ? "(已禁用)" : "") + resource.name)
111111
MyText(" | \(resource.fileName)", size: 12, color: .colorGray3)
112112
HStack(spacing: 3) {
113113
ForEach(resource.tags, id: \.self) { tag in

0 commit comments

Comments
 (0)