-
Notifications
You must be signed in to change notification settings - Fork 2
/
MechScope.cs
90 lines (82 loc) · 2.78 KB
/
MechScope.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
using MechScope.Patches;
using MechScope.UI;
using System.Collections.Generic;
using Terraria;
using Terraria.ModLoader;
using Terraria.UI;
namespace MechScope
{
public class MechScope : Mod
{
public static ModKeybind keyToggle;
public static ModKeybind keyStep;
public static ModKeybind keyAutoStep;
public static ModKeybind keySettings;
public static SettingsUI settingsUI;
public static LegacyGameInterfaceLayer UILayer;
private static UserInterface userInterface;
public MechScope()
{
//Properties = new ModProperties()
//{
// Autoload = true,
// AutoloadBackgrounds = true,
// AutoloadGores = true,
// AutoloadSounds = true,
//};
}
public override void Load()
{
HitWirePatch.Load();
LogicGatePassPatch.Load();
PlaySoundPatch.Load();
TripWirePatch.Load();
UpdateMechPatch.Load();
keyToggle = KeybindLoader.RegisterKeybind(this, "Toggle", "NumPad1");
keyStep = KeybindLoader.RegisterKeybind(this, "Step", "NumPad2");
keyAutoStep = KeybindLoader.RegisterKeybind(this, "Auto step", "NumPad3");
keySettings = KeybindLoader.RegisterKeybind(this, "Settings", "NumPad5");
if (!Main.dedServ)
{
settingsUI = new SettingsUI();
userInterface = new UserInterface();
userInterface.SetState(settingsUI);
settingsUI.Activate();
UILayer = new LegacyGameInterfaceLayer("MechScope: Settings menu",
delegate
{
if (settingsUI.Visible)
{
settingsUI.Draw(Main.spriteBatch);
userInterface.Update(Main._drawInterfaceGameTime);
}
return true;
}
);
}
}
public override void Unload()
{
keyToggle = null;
keyStep = null;
keyAutoStep = null;
keySettings = null;
settingsUI = null;
userInterface = null;
UILayer = null;
}
}
public class MechScopeModSystem : ModSystem
{
public override void PreSaveAndQuit()
{
SuspendableWireManager.Active = false;
MechScope.settingsUI.Visible = false;
}
public override void ModifyInterfaceLayers(List<GameInterfaceLayer> layers)
{
int index = layers.FindIndex(x => x.Name == "Vanilla: Inventory");
layers.Insert(index + 1, MechScope.UILayer);
}
}
}