コード例 #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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        /// <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);
        }