/// <summary> /// Ensures that the specified citizen is in a valid state and can be processed. /// </summary> /// /// <param name="citizenId">The citizen ID to check.</param> /// <param name="citizen">The citizen data reference.</param> /// /// <returns><c>true</c> if the specified citizen is in a valid state; otherwise, <c>false</c>.</returns> protected bool EnsureCitizenCanBeProcessed(uint citizenId, ref TCitizen citizen) { if (CitizenProxy.IsEmpty(ref citizen) || CitizenProxy.HasFlags(ref citizen, Citizen.Flags.MovingIn) && CitizenProxy.GetLocation(ref citizen) == Citizen.Location.Home) { CitizenMgr.ReleaseCitizen(citizenId); return(false); } if (CitizenProxy.IsCollapsed(ref citizen)) { Log.Debug(LogCategory.State, $"{GetCitizenDesc(citizenId, ref citizen)} is collapsed, doing nothing..."); return(false); } return(true); }
protected bool EnsureCitizenValid(uint citizenId, ref TCitizen citizen) { if (CitizenProxy.GetHomeBuilding(ref citizen) == 0 && CitizenProxy.GetWorkBuilding(ref citizen) == 0 && CitizenProxy.GetVisitBuilding(ref citizen) == 0 && CitizenProxy.GetInstance(ref citizen) == 0 && CitizenProxy.GetVehicle(ref citizen) == 0) { CitizenMgr.ReleaseCitizen(citizenId); return(false); } if (CitizenProxy.IsCollapsed(ref citizen)) { Log.Debug($"{GetCitizenDesc(citizenId, ref citizen)} is collapsed, doing nothing..."); return(false); } return(true); }
/// <summary> /// Ensures that the provided citizen is in a valid state and can be processed. /// </summary> /// /// <param name="citizenId">The citizen ID to check.</param> /// <param name="citizen">The citizen data reference.</param> /// /// <returns><c>true</c> if the provided citizen is in a valid state; otherwise, <c>false</c>.</returns> protected bool EnsureCitizenCanBeProcessed(uint citizenId, ref TCitizen citizen) { if ((CitizenProxy.GetHomeBuilding(ref citizen) == 0 && CitizenProxy.GetWorkBuilding(ref citizen) == 0 && CitizenProxy.GetVisitBuilding(ref citizen) == 0 && CitizenProxy.GetInstance(ref citizen) == 0 && CitizenProxy.GetVehicle(ref citizen) == 0) || (CitizenProxy.HasFlags(ref citizen, Citizen.Flags.MovingIn) && CitizenProxy.GetLocation(ref citizen) == Citizen.Location.Home)) { CitizenMgr.ReleaseCitizen(citizenId); return(false); } if (CitizenProxy.IsCollapsed(ref citizen)) { Log.Debug($"{GetCitizenDesc(citizenId, ref citizen, false)} is collapsed, doing nothing..."); return(false); } return(true); }