예제 #1
0
        public override bool HandleIn(RegionSyncModule pRegionContext)
        {
            if (base.HandleIn(pRegionContext))
            {
            if (SyncedProperties != null && SyncedProperties.Count > 0)
            {
                // Update local sync info and scene object/presence
                pRegionContext.RememberLocallyGeneratedEvent(MType);
                HashSet<SyncableProperties.Type> propertiesUpdated = pRegionContext.InfoManager.UpdateSyncInfoBySync(Uuid, SyncedProperties);
                if (propertiesUpdated.Contains(RegionSync.SyncableProperties.Type.AvatarAppearance))
                    m_log.DebugFormat("{0} SyncMsgUpdatedProperties:HandleIn AvatarAppearance for uuid {1}", LogHeader, Uuid);
                pRegionContext.ForgetLocallyGeneratedEvent();

                // Do our own detail logging after we know which properties are actually updated (in propertiesUpdated)
                pRegionContext.DetailedUpdateLogging(Uuid, propertiesUpdated, "RecUpdateN", ConnectorContext.otherSideActorID, DataLength);

                // Relay the update properties
                if (pRegionContext.IsSyncRelay)
                    pRegionContext.EnqueueUpdatedProperty(Uuid, propertiesUpdated);
            }
            }
            return true;
        }