/
WeaponHelper.cs
71 lines (58 loc) · 2.43 KB
/
WeaponHelper.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
using System;
using System.Collections.Generic;
using System.Text;
using ShootBlues;
using Squared.Task;
using System.Windows.Forms;
using System.IO;
using Squared.Util.Event;
namespace ShootBlues.Script {
public class WeaponHelper : ManagedScript {
ToolStripMenuItem CustomMenu;
public WeaponHelper (ScriptName name)
: base(name) {
AddDependency("Common.script.dll");
AddDependency("weaponhelper.py");
CustomMenu = new ToolStripMenuItem("Weapon Helper");
CustomMenu.DropDownItems.Add("Configure", null, ConfigureWeaponHelper);
CustomMenu.DropDownItems.Add("-");
Program.AddCustomMenu(CustomMenu);
}
public override void Dispose () {
base.Dispose();
Program.RemoveCustomMenu(CustomMenu);
CustomMenu.Dispose();
}
public void ConfigureWeaponHelper (object sender, EventArgs args) {
Program.Scheduler.Start(
Program.ShowStatusWindow("Weapon Helper"),
TaskExecutionPolicy.RunAsBackgroundTask
);
}
public override IEnumerator<object> Initialize () {
// Hack to initialize prefs to defaults
using (var configWindow = new WeaponHelperConfig(this)) {
yield return configWindow.LoadConfiguration();
yield return configWindow.SaveConfiguration();
}
}
protected override IEnumerator<object> OnPreferencesChanged (EventInfo evt, string[] prefNames) {
string prefsJson = null;
yield return Preferences.GetAllJson().Bind(() => prefsJson);
yield return CallFunction("weaponhelper", "notifyPrefsChanged", prefsJson);
}
public override IEnumerator<object> LoadedInto (ProcessInfo process) {
yield return Program.CallFunction(process, "weaponhelper", "initialize");
Preferences.Flush();
}
public override IEnumerator<object> OnStatusWindowShown (IStatusWindow statusWindow) {
var panel = new WeaponHelperConfig(this);
yield return panel.LoadConfiguration();
statusWindow.ShowConfigurationPanel("Weapon Helper", panel);
}
public override IEnumerator<object> OnStatusWindowHidden (IStatusWindow statusWindow) {
statusWindow.HideConfigurationPanel("Weapon Helper");
yield break;
}
}
}