Elin Decompiled Documentation EA 23.287 Stable Patch 3
Loading...
Searching...
No Matches
Steam.cs
Go to the documentation of this file.
1using System;
2using System.IO;
3using System.Linq;
4using HeathenEngineering.SteamworksIntegration;
5using HeathenEngineering.SteamworksIntegration.API;
6using Steamworks;
7using UnityEngine;
8
9public class Steam : MonoBehaviour
10{
11 public static Steam Instance;
12
13 public SteamworksBehaviour steamworks;
14
15 public UserGeneratedContentQueryManager ugc;
16
17 public WorkshopItem testData;
18
20
21 private void Awake()
22 {
23 Instance = this;
24 }
25
26 public void Init()
27 {
28 SteamAPI.Init();
29 BaseCore.IsOffline = !App.Client.LoggedOn || SteamSettings.behaviour == null;
30 }
31
32 public void CheckUpdate()
33 {
34 }
35
36 public void CheckDLC()
37 {
38 Debug.Log(HasDLC(ID_DLC.Test));
39 }
40
41 public static bool HasDLC(ID_DLC id)
42 {
43 return id switch
44 {
45 ID_DLC.CursedManor => true,
46 ID_DLC.BackerReward => EClass.core.config.HasBackerRewardCode(),
48 };
49 }
50
51 public static void GetAchievement(ID_Achievement id)
52 {
54 {
55 return;
56 }
57 try
58 {
59 foreach (AchievementObject achievement in Instance.steamworks.settings.achievements)
60 {
61 if (achievement.Id == id.ToString())
62 {
63 if (achievement.IsAchieved)
64 {
65 return;
66 }
67 try
68 {
69 achievement.Unlock();
70 achievement.Store();
71 EClass.ui.Say("sys_acv".lang(achievement.Name), Resources.Load<Sprite>("Media/Graphics/Icon/Achievement/acv_" + id));
72 SE.Play("achievement");
73 return;
74 }
75 catch (Exception ex)
76 {
77 Debug.LogError("Error Achievement 1:" + ex);
78 return;
79 }
80 }
81 }
82 }
83 catch (Exception ex2)
84 {
85 Debug.LogError("Error Achievement 2:" + ex2);
86 }
87 Debug.Log("Achievement not found:" + id);
88 }
89
90 public static void ResetAllAchievement()
91 {
92 foreach (AchievementObject achievement in Instance.steamworks.settings.achievements)
93 {
94 achievement.ClearAchievement();
95 achievement.Store();
96 }
97 }
98
99 public static void ResetAchievement(ID_Achievement id)
100 {
101 AchievementObject achievementObject = Instance.steamworks.settings.achievements.First((AchievementObject a) => a.Id == id.ToString());
102 if (achievementObject != null)
103 {
104 achievementObject.ClearAchievement();
105 achievementObject.Store();
106 }
107 }
108
109 public void TestHasDLC()
110 {
111 Debug.Log(HasDLC(ID_DLC.Test));
112 Debug.Log(HasDLC(ID_DLC.CursedManor));
113 }
114
116 {
117 LayerProgress.Start("Uploading").onCancel = delegate
118 {
119 };
120 p.UpdateMeta(updateOnly: true);
121 currentPackage = p;
122 UgcQuery myPublished = UgcQuery.GetMyPublished();
123 myPublished.SetReturnKeyValueTags(tags: true);
124 myPublished.Execute(CreateUserContent2);
125 }
126
127 private void CreateUserContent2(UgcQuery query)
128 {
129 Debug.Log("Creating Content2");
130 BaseModPackage baseModPackage = currentPackage;
131 if (query.ResultsList != null)
132 {
133 Debug.Log(query.ResultsList.Count);
134 }
135 foreach (WorkshopItem results in query.ResultsList)
136 {
137 if (results.keyValueTags == null)
138 {
139 continue;
140 }
141 StringKeyValuePair[] keyValueTags = results.keyValueTags;
142 for (int i = 0; i < keyValueTags.Length; i++)
143 {
144 StringKeyValuePair stringKeyValuePair = keyValueTags[i];
145 if (stringKeyValuePair.key == "id" && stringKeyValuePair.value == baseModPackage.id && results.Owner.id == App.Client.Owner.id)
146 {
147 Debug.Log("Updating Content");
148 UpdateUserContent(results.FileId);
149 return;
150 }
151 }
152 }
153 Debug.Log("Creating Content");
154 CreateItemData(baseModPackage).Create(null, null, new WorkshopItemKeyValueTag[1]
155 {
156 new WorkshopItemKeyValueTag
157 {
158 key = "id",
159 value = baseModPackage.id
160 }
161 }, delegate(WorkshopItemDataCreateStatus result)
162 {
163 LayerProgress.completed = true;
164 if (result.hasError)
165 {
166 Dialog.Ok("mod_publish_error");
167 EClass.ui.Say(result.errorMessage);
168 Debug.Log("error:" + result.errorMessage);
169 }
170 else
171 {
172 Dialog.Ok("mod_created");
173 Debug.Log("created");
174 }
175 });
176 }
177
178 public void UpdateUserContent(PublishedFileId_t fileId)
179 {
180 Debug.Log("Updating Content");
182 WorkshopItemData workshopItemData = CreateItemData(p);
183 workshopItemData.publishedFileId = fileId;
184 workshopItemData.Update(delegate(WorkshopItemDataUpdateStatus result)
185 {
186 LayerProgress.completed = true;
187 if (result.hasError)
188 {
189 Dialog.Ok("mod_publish_error");
190 EClass.ui.Say(result.errorMessage);
191 Debug.Log("error:" + result.errorMessage);
192 }
193 else
194 {
195 Dialog.Ok("mod_updated");
196 Debug.Log("updated");
197 }
198 });
199 }
200
201 public WorkshopItemData CreateItemData(BaseModPackage p)
202 {
203 FileInfo fileInfo = new FileInfo(p.dirInfo.FullName + "/preview.jpg");
204 DirectoryInfo directoryInfo = new DirectoryInfo(p.dirInfo.FullName);
205 WorkshopItemData workshopItemData = default(WorkshopItemData);
206 workshopItemData.appId = steamworks.settings.applicationId;
207 workshopItemData.title = p.title;
208 workshopItemData.description = p.description;
209 workshopItemData.content = directoryInfo;
210 workshopItemData.preview = fileInfo;
211 workshopItemData.metadata = p.id ?? "";
212 workshopItemData.tags = p.tags;
213 workshopItemData.visibility = ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityPublic;
214 WorkshopItemData result = workshopItemData;
215 switch (p.visibility)
216 {
217 case "Unlisted":
218 result.visibility = ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityUnlisted;
219 break;
220 case "Private":
221 result.visibility = ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityPrivate;
222 break;
223 case "FriendsOnly":
224 result.visibility = ERemoteStoragePublishedFileVisibility.k_ERemoteStoragePublishedFileVisibilityFriendsOnly;
225 break;
226 }
227 Debug.Log(App.Client.Owner.id);
228 Debug.Log(result.appId);
229 Debug.Log(p.id);
230 Debug.Log(directoryInfo.Exists + "/" + directoryInfo.FullName);
231 Debug.Log(fileInfo.Exists + "/" + fileInfo.FullName);
232 return result;
233 }
234}
ID_Achievement
ID_DLC
Definition: ID_DLC.cs:2
static bool IsOffline
Definition: BaseCore.cs:9
DirectoryInfo dirInfo
void UpdateMeta(bool updateOnly=false)
bool HasBackerRewardCode()
Definition: CoreConfig.cs:741
CoreConfig config
Definition: Core.cs:70
Definition: Dialog.cs:7
static Dialog Ok(string langDetail, Action action=null)
Definition: Dialog.cs:230
Definition: EClass.cs:6
static Core core
Definition: EClass.cs:7
static UI ui
Definition: EClass.cs:17
static LayerProgress Start(string text, Action onComplete=null)
Definition: Steam.cs:10
void UpdateUserContent(PublishedFileId_t fileId)
Definition: Steam.cs:178
SteamworksBehaviour steamworks
Definition: Steam.cs:13
static void GetAchievement(ID_Achievement id)
Definition: Steam.cs:51
static void ResetAchievement(ID_Achievement id)
Definition: Steam.cs:99
void CheckDLC()
Definition: Steam.cs:36
static void ResetAllAchievement()
Definition: Steam.cs:90
void Awake()
Definition: Steam.cs:21
static Steam Instance
Definition: Steam.cs:11
BaseModPackage currentPackage
Definition: Steam.cs:19
void Init()
Definition: Steam.cs:26
void TestHasDLC()
Definition: Steam.cs:109
static bool HasDLC(ID_DLC id)
Definition: Steam.cs:41
WorkshopItemData CreateItemData(BaseModPackage p)
Definition: Steam.cs:201
void CheckUpdate()
Definition: Steam.cs:32
void CreateUserContent2(UgcQuery query)
Definition: Steam.cs:127
UserGeneratedContentQueryManager ugc
Definition: Steam.cs:15
void CreateUserContent(BaseModPackage p)
Definition: Steam.cs:115
WorkshopItem testData
Definition: Steam.cs:17