Beispiel #1
0
        /// <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);
        }