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

◆ SaveNPCs()

static int Terraria.IO.WorldFile.SaveNPCs ( BinaryWriter writer)
inlinestatic

Definition at line 1630 of file WorldFile.cs.

1631 {
1632 bool[] array = (bool[])NPC.ShimmeredTownNPCs.Clone();
1633 writer.Write(array.Count(value: true));
1634 for (int i = 0; i < array.Length; i++)
1635 {
1636 if (array[i])
1637 {
1638 writer.Write(i);
1639 }
1640 }
1641 for (int j = 0; j < Main.npc.Length; j++)
1642 {
1643 NPC nPC = Main.npc[j];
1644 if (nPC.active && nPC.townNPC && nPC.type != 368)
1645 {
1646 writer.Write(nPC.active);
1647 writer.Write(nPC.netID);
1648 writer.Write(nPC.GivenName);
1649 writer.Write(nPC.position.X);
1650 writer.Write(nPC.position.Y);
1651 writer.Write(nPC.homeless);
1652 writer.Write(nPC.homeTileX);
1653 writer.Write(nPC.homeTileY);
1654 BitsByte bitsByte = (byte)0;
1655 bitsByte[0] = nPC.townNPC;
1656 writer.Write(bitsByte);
1657 if (bitsByte[0])
1658 {
1659 writer.Write(nPC.townNpcVariationIndex);
1660 }
1661 }
1662 }
1663 writer.Write(value: false);
1664 for (int k = 0; k < Main.npc.Length; k++)
1665 {
1666 NPC nPC2 = Main.npc[k];
1667 if (nPC2.active && NPCID.Sets.SavesAndLoads[nPC2.type])
1668 {
1669 writer.Write(nPC2.active);
1670 writer.Write(nPC2.netID);
1671 writer.WriteVector2(nPC2.position);
1672 }
1673 }
1674 writer.Write(value: false);
1675 return (int)writer.BaseStream.Position;
1676 }
static bool[] SavesAndLoads
Definition NPCID.cs:4188

References System.array, Terraria.Main.npc, Terraria.ID.NPCID.Sets.SavesAndLoads, Terraria.NPC.ShimmeredTownNPCs, System.value, and System.writer.

Referenced by Terraria.IO.WorldFile.SaveWorld_Version2().