-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathMapServices.cs
More file actions
64 lines (56 loc) · 1.91 KB
/
Copy pathMapServices.cs
File metadata and controls
64 lines (56 loc) · 1.91 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Terraria;
using Terraria.ID;
namespace CalTestHelpers
{
public class MapServices
{
public static void RevealTheEntireMap()
{
for (int i = 0; i < Main.maxTilesX; i++)
{
for (int j = 0; j < Main.maxTilesY; j++)
{
if (WorldGen.InWorld(i, j))
Main.Map.Update(i, j, 255);
}
}
Main.refreshMap = true;
}
public static void TryToTeleportPlayerOnMap()
{
if (Main.mouseRight && Main.keyState.IsKeyUp(Keys.LeftControl))
{
int mapWidth = Main.maxTilesX * 16;
int mapHeight = Main.maxTilesY * 16;
Vector2 cursorPosition = new Vector2(Main.mouseX, Main.mouseY);
cursorPosition.X -= Main.screenWidth / 2;
cursorPosition.Y -= Main.screenHeight / 2;
Vector2 mapPosition = Main.mapFullscreenPos;
Vector2 cursorWorldPosition = mapPosition;
cursorPosition /= 16;
cursorPosition *= 16 / Main.mapFullscreenScale;
cursorWorldPosition += cursorPosition;
cursorWorldPosition *= 16;
cursorWorldPosition.Y -= Main.LocalPlayer.height;
if (cursorWorldPosition.X < 0)
cursorWorldPosition.X = 0;
else if (cursorWorldPosition.X + Main.LocalPlayer.width > mapWidth)
cursorWorldPosition.X = mapWidth - Main.LocalPlayer.width;
if (cursorWorldPosition.Y < 0)
cursorWorldPosition.Y = 0;
else if (cursorWorldPosition.Y + Main.LocalPlayer.height > mapHeight)
cursorWorldPosition.Y = mapHeight - Main.LocalPlayer.height;
if (Main.LocalPlayer.position != cursorWorldPosition)
{
Main.LocalPlayer.Teleport(cursorWorldPosition, 1, 0);
Main.LocalPlayer.position = cursorWorldPosition;
Main.LocalPlayer.velocity = Vector2.Zero;
Main.LocalPlayer.fallStart = (int)(Main.LocalPlayer.position.Y / 16f);
NetMessage.SendData(MessageID.TeleportEntity, -1, -1, null, 0, Main.myPlayer, cursorWorldPosition.X, cursorWorldPosition.Y, 1, 0, 0);
}
}
}
}
}