A game about forced loneliness, made by TACStudios
1using UnityEngine;
2
3using Codice.Client.BaseCommands;
4using Codice.Client.Commands;
5using Codice.CM.Common;
6using Codice.ThemeImages;
7using PlasticGui.WorkspaceWindow.Merge;
8using PlasticGui.WorkspaceWindow.PendingChanges;
9using Unity.PlasticSCM.Editor.AssetsOverlays;
10
11using GluonIncomingChangeInfo = PlasticGui.Gluon.WorkspaceWindow.Views.IncomingChanges.IncomingChangeInfo;
12using GluonIncomingChangeCategory = PlasticGui.Gluon.WorkspaceWindow.Views.IncomingChanges.IncomingChangeCategory;
13
14namespace Unity.PlasticSCM.Editor.UI.Tree
15{
16 static class GetChangesOverlayIcon
17 {
18 internal static Texture ForPlasticMergeChange(
19 MergeChangeInfo mergeChange,
20 bool isSolvedConflict)
21 {
22 if (mergeChange.CategoryType == MergeChangesCategory.Type.FileConflicts ||
23 mergeChange.CategoryType == MergeChangesCategory.Type.DirectoryConflicts)
24 return ForConflict(isSolvedConflict);
25
26 if (mergeChange.IsXLink())
27 return ForXLink();
28
29 if (mergeChange.CategoryType == MergeChangesCategory.Type.Deleted)
30 return ForDeletedOnServer();
31
32 if (mergeChange.CategoryType == MergeChangesCategory.Type.Changed)
33 return ForOutOfDate();
34
35 if (mergeChange.CategoryType == MergeChangesCategory.Type.Added)
36 return ForAdded();
37
38 return null;
39 }
40
41 internal static Texture ForGluonIncomingChange(
42 GluonIncomingChangeInfo incomingChange,
43 bool isSolvedConflict)
44 {
45 if (incomingChange.CategoryType == GluonIncomingChangeCategory.Type.Conflicted)
46 return ForConflict(isSolvedConflict);
47
48 if (incomingChange.IsXLink())
49 return ForXLink();
50
51 if (incomingChange.CategoryType == GluonIncomingChangeCategory.Type.Deleted)
52 return ForDeletedOnServer();
53
54 if (incomingChange.CategoryType == GluonIncomingChangeCategory.Type.Changed)
55 return ForOutOfDate();
56
57 if (incomingChange.CategoryType == GluonIncomingChangeCategory.Type.Added)
58 return ForAdded();
59
60 return null;
61 }
62
63 internal static Texture ForPendingChange(
64 ChangeInfo changeInfo,
65 bool isConflict)
66 {
67 if (isConflict)
68 return ForConflicted();
69
70 ItemIconImageType type = ChangeInfoView.
71 GetIconImageType(changeInfo);
72
73 if (ChangeTypesOperator.AreAllSet(
74 changeInfo.ChangeTypes, ChangeTypes.Added))
75 return ForAdded();
76
77 if (type.HasFlag(ItemIconImageType.Ignored))
78 return ForIgnored();
79
80 if (type.HasFlag(ItemIconImageType.Deleted))
81 return ForDeleted();
82
83 if (type.HasFlag(ItemIconImageType.CheckedOut))
84 return ForCheckedOut();
85
86 if (type.HasFlag(ItemIconImageType.Private))
87 return ForPrivated();
88
89 return null;
90 }
91
92 static Texture ForConflict(bool isResolved)
93 {
94 if (isResolved)
95 return ForConflictResolved();
96
97 return ForConflicted();
98 }
99
100 static Texture ForXLink()
101 {
102 return Images.GetImage(Images.Name.XLink);
103 }
104
105 static Texture ForIgnored()
106 {
107 return Images.GetIgnoredOverlayIcon();
108 }
109
110 static Texture ForPrivated()
111 {
112 return Images.GetPrivatedOverlayIcon();
113 }
114
115 static Texture ForAdded()
116 {
117 return Images.GetAddedOverlayIcon();
118 }
119
120 static Texture ForDeleted()
121 {
122 return Images.GetDeletedLocalOverlayIcon();
123 }
124
125 static Texture ForCheckedOut()
126 {
127 return Images.GetCheckedOutOverlayIcon();
128 }
129
130 static Texture ForDeletedOnServer()
131 {
132 return Images.GetDeletedRemoteOverlayIcon();
133 }
134
135 static Texture ForOutOfDate()
136 {
137 return Images.GetOutOfSyncOverlayIcon();
138 }
139
140 static Texture ForConflicted()
141 {
142 return Images.GetConflictedOverlayIcon();
143 }
144
145 static Texture ForConflictResolved()
146 {
147 return Images.GetConflictResolvedOverlayIcon();
148 }
149 }
150}