Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ GetMapCoords()

static bool Terraria.Graphics.Capture.CaptureInterface.GetMapCoords ( int PinX,
int PinY,
int Goal,
out Point result )
inlinestaticprivate

Definition at line 1261 of file CaptureInterface.cs.

1262 {
1263 if (!Main.mapFullscreen)
1264 {
1265 result = new Point(-1, -1);
1266 return false;
1267 }
1268 float num = 0f;
1269 float num2 = 0f;
1270 float num3 = 2f;
1271 _ = Main.maxTilesX / Main.textureMaxWidth;
1272 _ = Main.maxTilesY / Main.textureMaxHeight;
1273 float num4 = 10f;
1274 float num5 = 10f;
1275 float num6 = Main.maxTilesX - 10;
1276 float num7 = Main.maxTilesY - 10;
1277 num = 200f;
1278 num2 = 300f;
1279 num3 = Main.mapFullscreenScale;
1280 float num8 = (float)Main.screenWidth / (float)Main.maxTilesX * 0.8f;
1281 if (Main.mapFullscreenScale < num8)
1282 {
1283 Main.mapFullscreenScale = num8;
1284 }
1285 if (Main.mapFullscreenScale > 16f)
1286 {
1287 Main.mapFullscreenScale = 16f;
1288 }
1289 num3 = Main.mapFullscreenScale;
1290 if (Main.mapFullscreenPos.X < num4)
1291 {
1292 Main.mapFullscreenPos.X = num4;
1293 }
1294 if (Main.mapFullscreenPos.X > num6)
1295 {
1296 Main.mapFullscreenPos.X = num6;
1297 }
1298 if (Main.mapFullscreenPos.Y < num5)
1299 {
1300 Main.mapFullscreenPos.Y = num5;
1301 }
1302 if (Main.mapFullscreenPos.Y > num7)
1303 {
1304 Main.mapFullscreenPos.Y = num7;
1305 }
1306 float x = Main.mapFullscreenPos.X;
1307 float y = Main.mapFullscreenPos.Y;
1308 float num9 = x * num3;
1309 y *= num3;
1310 num = 0f - num9 + (float)(Main.screenWidth / 2);
1311 num2 = 0f - y + (float)(Main.screenHeight / 2);
1312 num += num4 * num3;
1313 num2 += num5 * num3;
1314 float num10 = Main.maxTilesX / 840;
1315 num10 *= Main.mapFullscreenScale;
1316 float num11 = num;
1317 float num12 = num2;
1318 float num13 = TextureAssets.Map.Width();
1319 float num14 = TextureAssets.Map.Height();
1320 if (Main.maxTilesX == 8400)
1321 {
1322 num10 *= 0.999f;
1323 num11 -= 40.6f * num10;
1324 num12 = num2 - 5f * num10;
1325 num13 -= 8.045f;
1326 num13 *= num10;
1327 num14 += 0.12f;
1328 num14 *= num10;
1329 if ((double)num10 < 1.2)
1330 {
1331 num14 += 1f;
1332 }
1333 }
1334 else if (Main.maxTilesX == 6400)
1335 {
1336 num10 *= 1.09f;
1337 num11 -= 38.8f * num10;
1338 num12 = num2 - 3.85f * num10;
1339 num13 -= 13.6f;
1340 num13 *= num10;
1341 num14 -= 6.92f;
1342 num14 *= num10;
1343 if ((double)num10 < 1.2)
1344 {
1345 num14 += 2f;
1346 }
1347 }
1348 else if (Main.maxTilesX == 6300)
1349 {
1350 num10 *= 1.09f;
1351 num11 -= 39.8f * num10;
1352 num12 = num2 - 4.08f * num10;
1353 num13 -= 26.69f;
1354 num13 *= num10;
1355 num14 -= 6.92f;
1356 num14 *= num10;
1357 if ((double)num10 < 1.2)
1358 {
1359 num14 += 2f;
1360 }
1361 }
1362 else if (Main.maxTilesX == 4200)
1363 {
1364 num10 *= 0.998f;
1365 num11 -= 37.3f * num10;
1366 num12 -= 1.7f * num10;
1367 num13 -= 16f;
1368 num13 *= num10;
1369 num14 -= 8.31f;
1370 num14 *= num10;
1371 }
1372 switch (Goal)
1373 {
1374 case 0:
1375 {
1376 int num15 = (int)((0f - num + (float)PinX) / num3 + num4);
1377 int num16 = (int)((0f - num2 + (float)PinY) / num3 + num5);
1378 bool flag = false;
1379 if ((float)num15 < num4)
1380 {
1381 flag = true;
1382 }
1383 if ((float)num15 >= num6)
1384 {
1385 flag = true;
1386 }
1387 if ((float)num16 < num5)
1388 {
1389 flag = true;
1390 }
1391 if ((float)num16 >= num7)
1392 {
1393 flag = true;
1394 }
1395 if (!flag)
1396 {
1397 result = new Point(num15, num16);
1398 return true;
1399 }
1400 result = new Point(-1, -1);
1401 return false;
1402 }
1403 case 1:
1404 {
1405 Vector2 vector = new Vector2(num, num2);
1406 Vector2 vector2 = new Vector2(PinX, PinY) * num3 - new Vector2(10f * num3);
1407 result = (vector + vector2).ToPoint();
1408 return true;
1409 }
1410 default:
1411 result = new Point(-1, -1);
1412 return false;
1413 }
1414 }
static Asset< Texture2D > Map

References Terraria.GameContent.TextureAssets.Map, Terraria.Main.mapFullscreen, Terraria.Main.mapFullscreenPos, Terraria.Main.mapFullscreenScale, Terraria.Main.maxTilesX, Microsoft.Xna.Framework.Graphics.Point, Terraria.Main.screenHeight, Terraria.Main.screenWidth, Terraria.Main.textureMaxHeight, Terraria.Main.textureMaxWidth, and Microsoft.Xna.Framework.Graphics.Vector2.

Referenced by Terraria.Graphics.Capture.CaptureInterface.ModeDragBounds.DragBounds(), Terraria.Graphics.Capture.CaptureInterface.ModeEdgeSelection.DrawCursors(), Terraria.Graphics.Capture.CaptureInterface.ModeEdgeSelection.DrawMarkedArea(), Terraria.Graphics.Capture.CaptureInterface.ModeDragBounds.DrawMarkedArea(), and Terraria.Graphics.Capture.CaptureInterface.ModeEdgeSelection.EdgePlacement().