-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathModule.cs
123 lines (98 loc) · 3.02 KB
/
Module.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
120
121
122
123
using BrokeProtocol.Utility.Networking;
using BrokeProtocolClient.settings;
using BrokeProtocolClient.utils;
using ENet;
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.InputSystem;
using BrokeProtocolClient.modules.render;
namespace BrokeProtocolClient.modules
{
abstract class Module
{
public readonly Category category;
public readonly string name;
public readonly string description;
public readonly List<Setting> settings = new List<Setting>();
public bool enabled;
public BindSetting bind = new BindSetting(0, "Bind");
public Module(Category category, string name, string description)
{
this.category = category;
this.name = name;
this.description = description;
addSetting(bind);
if (PlayerPrefs.HasKey(name))
{
setEnabled(PlayerPrefs.GetInt(name) != 0);
}
}
public virtual void onActivate() { }
public virtual void onUpdate() { }
public virtual void onRender() { }
public virtual void onDeactivate() { }
public virtual bool onSendToServer(PacketFlags channel, SvPacket packet, params object[] args) { return true; }
public void addSetting(Setting setting)
{
settings.Add(setting);
}
public List<Setting> getSettings()
{
return settings;
}
public void toggle()
{
if (enabled)
{
enabled = false;
Modules.instance.removeActive(this);
onDeactivate();
}
else
{
enabled = true;
Modules.instance.addActive(this);
onActivate();
}
PlayerPrefs.SetInt(name, this.enabled ? 1 : 0);
PlayerPrefs.Save();
}
public void setEnabled(bool enabled)
{
this.enabled = enabled;
if (enabled)
{
Modules.instance.addActive(this);
onActivate();
}
else
{
Modules.instance.removeActive(this);
onDeactivate();
}
PlayerPrefs.SetInt(name, this.enabled ? 1 : 0);
PlayerPrefs.Save();
}
protected Client getClient()
{
return Client.instance;
}
public Key getKeyBind()
{
return bind.getKey();
}
public string getName()
{
return name;
}
public bool isEnabled()
{
return enabled;
}
protected void Log(string message)
{
ConsoleBase.WriteLine($"[{DateTime.Now.ToString("h:mm:ss tt")}] [Module {getName()}]: {message}");
}
}
}