/
CreditsWindow.cs
119 lines (93 loc) · 3.39 KB
/
CreditsWindow.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
using System.IO;
using Intersect.Client.Core;
using Intersect.Client.Framework.File_Management;
using Intersect.Client.Framework.Graphics;
using Intersect.Client.Framework.Gwen.Control;
using Intersect.Client.Framework.Gwen.Control.EventArguments;
using Intersect.Client.Localization;
using Newtonsoft.Json;
namespace Intersect.Client.Interface.Menu
{
public partial class CreditsWindow
{
private Button mBackBtn;
//Content
private ScrollControl mCreditsContent;
//Parent
private Label mCreditsHeader;
//Controls
private ImagePanel mCreditsWindow;
private MainMenu mMainMenu;
private RichLabel mRichLabel;
//Init
public CreditsWindow(Canvas parent, MainMenu mainMenu)
{
//Assign References
mMainMenu = mainMenu;
//Main Menu Window
mCreditsWindow = new ImagePanel(parent, "CreditsWindow");
//Menu Header
mCreditsHeader = new Label(mCreditsWindow, "CreditsHeader");
mCreditsHeader.SetText(Strings.Credits.title);
mCreditsContent = new ScrollControl(mCreditsWindow, "CreditsScrollview");
mCreditsContent.EnableScroll(false, true);
mRichLabel = new RichLabel(mCreditsContent, "CreditsLabel");
//Back Button
mBackBtn = new Button(mCreditsWindow, "BackButton");
mBackBtn.SetText(Strings.Credits.back);
mBackBtn.Clicked += BackBtn_Clicked;
mCreditsWindow.LoadJsonUi(GameContentManager.UI.Menu, Graphics.Renderer.GetResolutionString());
}
private void BackBtn_Clicked(Base sender, ClickedEventArgs arguments)
{
Hide();
mMainMenu.Show();
}
//Methods
public void Update()
{
}
public void Hide()
{
mCreditsWindow.IsHidden = true;
}
public void Show()
{
mCreditsWindow.IsHidden = false;
mRichLabel.ClearText();
var credits = new Credits();
var creditsFile = Path.Combine("resources", "credits.json");
if (File.Exists(creditsFile))
{
credits = JsonConvert.DeserializeObject<Credits>(File.ReadAllText(creditsFile));
}
else
{
var line = new Credits.CreditsLine();
line.Text = "Insert your credits here!";
line.Alignment = "center";
line.Size = 12;
line.Clr = Intersect.Color.White;
line.Font = "sourcesansproblack";
credits.Lines.Add(line);
}
File.WriteAllText(creditsFile, JsonConvert.SerializeObject(credits, Formatting.Indented));
foreach (var line in credits.Lines)
{
if (line.Text.Trim().Length == 0)
{
mRichLabel.AddLineBreak();
}
else
{
mRichLabel.AddText(
line.Text, new Color(line.Clr.A, line.Clr.R, line.Clr.G, line.Clr.B), line.GetAlignment(),
GameContentManager.Current.GetFont(line.Font, line.Size)
);
mRichLabel.AddLineBreak();
}
}
mRichLabel.SizeToChildren(false, true);
}
}
}