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

◆ QuickFindHome()

static void Terraria.WorldGen.QuickFindHome ( int npc)
inlinestatic

Definition at line 2227 of file WorldGen.cs.

2228 {
2229 bool flag = Main.tileSolid[379];
2230 Main.tileSolid[379] = true;
2231 if (Main.npc[npc].homeTileX > 10 && Main.npc[npc].homeTileY > 10 && Main.npc[npc].homeTileX < Main.maxTilesX - 10 && Main.npc[npc].homeTileY < Main.maxTilesY)
2232 {
2233 canSpawn = false;
2234 StartRoomCheck(Main.npc[npc].homeTileX, Main.npc[npc].homeTileY - 1);
2235 if (!canSpawn)
2236 {
2237 for (int i = Main.npc[npc].homeTileX - 1; i < Main.npc[npc].homeTileX + 2; i++)
2238 {
2239 for (int j = Main.npc[npc].homeTileY - 1; j < Main.npc[npc].homeTileY + 2 && !StartRoomCheck(i, j); j++)
2240 {
2241 }
2242 }
2243 }
2244 if (!canSpawn)
2245 {
2246 int num = 10;
2247 for (int k = Main.npc[npc].homeTileX - num; k <= Main.npc[npc].homeTileX + num; k += 2)
2248 {
2249 for (int l = Main.npc[npc].homeTileY - num; l <= Main.npc[npc].homeTileY + num && !StartRoomCheck(k, l); l += 2)
2250 {
2251 }
2252 }
2253 }
2254 if (canSpawn)
2255 {
2256 RoomNeeds(Main.npc[npc].type);
2257 if (canSpawn)
2258 {
2259 ScoreRoom(npc, Main.npc[npc].type);
2260 }
2261 if (canSpawn && hiScore > 0)
2262 {
2264 }
2265 if (canSpawn && hiScore > 0)
2266 {
2267 Main.npc[npc].homeTileX = bestX;
2268 Main.npc[npc].homeTileY = bestY;
2269 Main.npc[npc].homeless = false;
2271 canSpawn = false;
2272 }
2273 else
2274 {
2275 Main.npc[npc].homeless = true;
2276 }
2277 }
2278 else
2279 {
2280 Main.npc[npc].homeless = true;
2281 }
2282 }
2283 Main.tileSolid[379] = flag;
2284 }
static void ScoreRoom(int ignoreNPC=-1, int npcTypeAskingToScoreRoom=-1)
Definition WorldGen.cs:2380
static int hiScore
Definition WorldGen.cs:1074
static bool StartRoomCheck(int x, int y)
Definition WorldGen.cs:2581
static bool RoomNeeds(int npcType)
Definition WorldGen.cs:2178
static bool canSpawn
Definition WorldGen.cs:1066
static int bestX
Definition WorldGen.cs:1070
static int bestY
Definition WorldGen.cs:1072
static bool IsRoomConsideredOccupiedForNPCIndex(int npc)
Definition WorldGen.cs:2286

References Terraria.WorldGen.bestX, Terraria.WorldGen.bestY, Terraria.WorldGen.canSpawn, Terraria.WorldGen.hiScore, Terraria.WorldGen.IsRoomConsideredOccupiedForNPCIndex(), Terraria.Main.maxTilesX, Terraria.Main.maxTilesY, Terraria.GameContent.Achievements.AchievementsHelper.NotifyProgressionEvent(), Terraria.Main.npc, Terraria.WorldGen.RoomNeeds(), Terraria.WorldGen.ScoreRoom(), Terraria.WorldGen.StartRoomCheck(), and Terraria.Main.tileSolid.

Referenced by Terraria.NPC.AI_007_TownEntities_TeleportToHome(), and Terraria.Main.UpdateTime_SpawnTownNPCs().