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; }