-
Notifications
You must be signed in to change notification settings - Fork 24
Expand file tree
/
Copy pathCoreModule.cs
More file actions
50 lines (45 loc) · 1.59 KB
/
Copy pathCoreModule.cs
File metadata and controls
50 lines (45 loc) · 1.59 KB
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
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Graphics;
namespace Hacknet
{
internal class CoreModule : Module
{
private static Texture2D LockSprite;
private bool guiInputLockStatus;
public bool inputLocked;
public CoreModule(Rectangle location, OS operatingSystem)
: base(location, operatingSystem)
{
}
public override void LoadContent()
{
base.LoadContent();
if (LockSprite != null)
return;
LockSprite = os.content.Load<Texture2D>("Lock");
}
public override void PreDrawStep()
{
base.PreDrawStep();
if (!inputLocked)
return;
guiInputLockStatus = GuiData.blockingInput;
GuiData.blockingInput = true;
}
public override void PostDrawStep()
{
base.PostDrawStep();
if (!inputLocked)
return;
GuiData.blockingInput = false;
GuiData.blockingInput = guiInputLockStatus;
var destinationRectangle = bounds;
if (!destinationRectangle.Contains(GuiData.getMousePoint()))
return;
GuiData.spriteBatch.Draw(Utils.white, destinationRectangle, Color.Gray*0.5f);
var position = new Vector2(destinationRectangle.X + destinationRectangle.Width/2 - LockSprite.Width/2,
destinationRectangle.Y + destinationRectangle.Height/2 - LockSprite.Height/2);
GuiData.spriteBatch.Draw(LockSprite, position, Color.White);
}
}
}