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

◆ MoveTownNPC()

static bool Terraria.WorldGen.MoveTownNPC ( int x,
int y,
int n )
inlinestatic

Definition at line 1478 of file WorldGen.cs.

1479 {
1480 if (!StartRoomCheck(x, y))
1481 {
1482 string newText = Lang.inter[40].Value;
1483 switch (roomCheckFailureReason)
1484 {
1485 case TownNPCRoomCheckFailureReason.HoleInWallIsTooBig:
1486 newText = Language.GetTextValue("TownNPCHousingFailureReasons.HoleInWallIsTooBig");
1487 break;
1488 case TownNPCRoomCheckFailureReason.RoomCheckStartedInASolidTile:
1489 newText = Language.GetTextValue("TownNPCHousingFailureReasons.RoomCheckStartedInASolidTile");
1490 break;
1491 case TownNPCRoomCheckFailureReason.RoomIsTooBig:
1492 newText = Language.GetTextValue("TownNPCHousingFailureReasons.RoomIsTooBig");
1493 break;
1494 case TownNPCRoomCheckFailureReason.RoomIsTooSmall:
1495 newText = Language.GetTextValue("TownNPCHousingFailureReasons.RoomIsTooSmall");
1496 break;
1497 case TownNPCRoomCheckFailureReason.TooCloseToWorldEdge:
1498 newText = Language.GetTextValue("TownNPCHousingFailureReasons.TooCloseToWorldEdge");
1499 break;
1500 }
1501 Main.NewText(newText, byte.MaxValue, 240, 20);
1502 return false;
1503 }
1505 {
1506 int num = 0;
1507 int num2 = ((!roomTorch) ? 1 : 0) + ((!roomDoor) ? 1 : 0) + ((!roomTable) ? 1 : 0) + ((!roomChair) ? 1 : 0);
1508 string[] array = new string[num2];
1509 if (!roomTorch)
1510 {
1511 array[num] = Language.GetTextValue("Game.HouseLightSource");
1512 num++;
1513 }
1514 if (!roomDoor)
1515 {
1516 array[num] = Language.GetTextValue("Game.HouseDoor");
1517 num++;
1518 }
1519 if (!roomTable)
1520 {
1521 array[num] = Language.GetTextValue("Game.HouseTable");
1522 num++;
1523 }
1524 if (!roomChair)
1525 {
1526 array[num] = Language.GetTextValue("Game.HouseChair");
1527 num++;
1528 }
1529 string key = "Game.HouseMissing_" + num2;
1530 object[] args = array;
1531 Main.NewText(Language.GetTextValue(key, args), byte.MaxValue, 240, 20);
1532 return false;
1533 }
1535 if (n >= 0)
1536 {
1537 type = Main.npc[n].type;
1538 }
1539 bool flag = NPCID.Sets.IsTownPet[type];
1540 if (roomHasStinkbug && !flag)
1541 {
1542 Main.NewText(Language.GetTextValue("TownNPCHousingFailureReasons.RoomHasAStinkbug"), byte.MaxValue, 240, 20);
1543 return false;
1544 }
1545 if (roomHasEchoStinkbug && !flag)
1546 {
1547 Main.NewText(Language.GetTextValue("TownNPCHousingFailureReasons.RoomHasAnEchoStinkbug"), byte.MaxValue, 240, 20);
1548 return false;
1549 }
1550 ScoreRoom(-1, type);
1551 if (hiScore <= 0)
1552 {
1553 if (roomOccupied)
1554 {
1555 Main.NewText(Lang.inter[41].Value, byte.MaxValue, 240, 20);
1556 }
1557 else if (roomEvil)
1558 {
1559 Main.NewText(Lang.inter[42].Value, byte.MaxValue, 240, 20);
1560 }
1561 else
1562 {
1563 Main.NewText(Lang.inter[40].Value, byte.MaxValue, 240, 20);
1564 }
1565 return false;
1566 }
1567 if (n >= 0 && !CheckSpecialTownNPCSpawningConditions(Main.npc[n].type))
1568 {
1569 Main.NewText(Lang.inter[55].Value + " " + Main.npc[n].TypeName, byte.MaxValue, 240, 20);
1570 return false;
1571 }
1572 return true;
1573 }
static bool[] IsTownPet
Definition NPCID.cs:4099
static string GetTextValue(string key)
Definition Language.cs:15
static bool CheckSpecialTownNPCSpawningConditions(int type)
Definition WorldGen.cs:1707
static bool roomTorch
Definition WorldGen.cs:1076
static int prioritizedTownNPCType
Definition WorldGen.cs:1024
static bool roomEvil
Definition WorldGen.cs:1086
static bool roomHasEchoStinkbug
Definition WorldGen.cs:1090
static bool roomChair
Definition WorldGen.cs:1080
static void ScoreRoom(int ignoreNPC=-1, int npcTypeAskingToScoreRoom=-1)
Definition WorldGen.cs:2380
static int hiScore
Definition WorldGen.cs:1074
static bool roomHasStinkbug
Definition WorldGen.cs:1088
static bool StartRoomCheck(int x, int y)
Definition WorldGen.cs:2581
static bool RoomNeeds(int npcType)
Definition WorldGen.cs:2178
static bool roomDoor
Definition WorldGen.cs:1078
static bool roomTable
Definition WorldGen.cs:1082
static TownNPCRoomCheckFailureReason roomCheckFailureReason
Definition WorldGen.cs:1106
static bool roomOccupied
Definition WorldGen.cs:1084

References System.array, Terraria.WorldGen.CheckSpecialTownNPCSpawningConditions(), Terraria.Localization.Language.GetTextValue(), Terraria.WorldGen.hiScore, Terraria.Lang.inter, Terraria.ID.NPCID.Sets.IsTownPet, System.key, Terraria.Main.NewText(), Terraria.Main.npc, Terraria.WorldGen.prioritizedTownNPCType, Terraria.WorldGen.roomChair, Terraria.WorldGen.roomCheckFailureReason, Terraria.WorldGen.roomDoor, Terraria.WorldGen.roomEvil, Terraria.WorldGen.roomHasEchoStinkbug, Terraria.WorldGen.roomHasStinkbug, Terraria.WorldGen.RoomNeeds(), Terraria.WorldGen.roomOccupied, Terraria.WorldGen.roomTable, Terraria.WorldGen.roomTorch, Terraria.WorldGen.ScoreRoom(), Terraria.WorldGen.StartRoomCheck(), and System.type.

Referenced by Terraria.Main.DrawInterface_38_MouseCarriedObject(), and Terraria.Initializers.UILinksInitializer.Load().