private void UpdateSavedIgloosMetaDataFromSavedgloosLayoutSummary(SavedIglooLayoutsSummary savedIglooLayoutsSummary) { SavedIgloosMetaData savedIgloosMetaData = getSavedIgloosMetaData(); savedIgloosMetaData.ActiveIglooId = savedIglooLayoutsSummary.activeLayoutId; savedIgloosMetaData.IglooVisibility = savedIglooLayoutsSummary.visibility; List <SavedIglooLayoutSummary> layoutsSummary = savedIglooLayoutsSummary.layouts; if (layoutsSummary != null) { List <SavedIglooMetaData> list = new List <SavedIglooMetaData>(savedIgloosMetaData.SavedIgloos); int i; for (i = 0; i < layoutsSummary.Count; i++) { int num = list.FindIndex((SavedIglooMetaData layout) => layout.LayoutId == layoutsSummary[i].layoutId); if (num >= 0) { list[num] = SavedIglooLayoutSummaryToSavedIglooMetaData(layoutsSummary[i]); } else { list.Add(SavedIglooLayoutSummaryToSavedIglooMetaData(layoutsSummary[i])); } } savedIgloosMetaData.SavedIgloos = list; } savedIgloosMetaData.IsDirty = false; }
private void updateSavedIglooMetaData(long layoutId, SceneLayout savedSceneLayout) { SavedIgloosMetaData savedIgloosMetaData = getSavedIgloosMetaData(); List <SavedIglooMetaData> list = new List <SavedIglooMetaData>(savedIgloosMetaData.SavedIgloos); bool flag = false; foreach (SavedIglooMetaData item in list) { if (layoutId == item.LayoutId) { SceneLayoutToSavedIglooMetaData(layoutId, savedSceneLayout, item); item.SceneLayout = savedSceneLayout; flag = true; break; } } if (!flag) { SavedIglooMetaData current = CreateSavedIglooMetaDataFromSceneLayout(layoutId, savedSceneLayout); current.SceneLayout = savedSceneLayout; list.Add(current); if (!savedIgloosMetaData.ActiveIglooId.HasValue) { savedIgloosMetaData.ActiveIglooId = layoutId; } } savedIgloosMetaData.SavedIgloos = list; savedIgloosMetaData.IsDirty = false; }
private IEnumerator loadIglooEntity(INetworkServicesManager network, SavedIgloosMetaData savedIgloosMetaData) { yield return(null); network.IglooService.UpdateIglooData(savedIgloosMetaData.IglooVisibility, savedIgloosMetaData.ActiveIglooId); foreach (SavedIglooMetaData savedIgloo in savedIgloosMetaData.SavedIgloos) { network.IglooService.GetIglooLayout(savedIgloo.LayoutId); } }
private bool onSavedIgloosMetaDataAdded(DataEntityEvents.ComponentAddedEvent <SavedIgloosMetaData> evt) { if (evt.Handle == dataEntityCollection.LocalPlayerHandle) { dataEntityCollection.EventDispatcher.RemoveListener <DataEntityEvents.ComponentAddedEvent <SavedIgloosMetaData> >(onSavedIgloosMetaDataAdded); savedIgloosMetaData = evt.Component; updateButtonSelection(); } return(false); }
private bool onIglooLayoutDeleted(IglooServiceEvents.IglooLayoutDeleted evt) { SavedIgloosMetaData savedIgloosMetaData = getSavedIgloosMetaData(); List <SavedIglooMetaData> list = new List <SavedIglooMetaData>(savedIgloosMetaData.SavedIgloos); foreach (SavedIglooMetaData item in list) { if (evt.LayoutId == item.LayoutId) { savedIgloosMetaData.SavedIgloos.Remove(item); break; } } return(false); }
public void Setup(Transform popupParent, SavedIgloosMetaData savedIgloosMetaData, bool enableButton) { this.popupParent = popupParent; if (this.savedIgloosMetaData != null) { this.savedIgloosMetaData.PublishedStatusUpdated -= onPublishedStatusUpdated; } this.savedIgloosMetaData = savedIgloosMetaData; savedIgloosMetaData.PublishedStatusUpdated += onPublishedStatusUpdated; onPublishedStatusUpdated(savedIgloosMetaData.IglooVisibility); isLoading = false; button.interactable = enableButton; if (buttonTintSelector != null) { int index = (!enableButton) ? 1 : 0; buttonTintSelector.SelectColor(index); } }
private bool onIglooJoined(WorldServiceEvents.SelfRoomJoinedEvent evt) { if (!string.IsNullOrEmpty(evt.Room.zoneId.instanceId)) { DataEntityHandle activeHandle = layoutManager.GetActiveHandle(); if (!dataEntityCollection.TryGetComponent <SceneOwnerData>(activeHandle, out var component)) { component = dataEntityCollection.AddComponent <SceneOwnerData>(activeHandle); } component.Name = evt.RoomOwnerName; component.IsOwner = evt.IsRoomOwner; if (layoutManager.IsInOwnIgloo()) { SavedIgloosMetaData savedIgloosMetaData = getSavedIgloosMetaData(); if (savedIgloosMetaData.ActiveIglooId.HasValue) { updateSavedIglooMetaData(savedIgloosMetaData.ActiveIglooId.Value, evt.ExtraLayoutData); } if (savedIgloosMetaData.IsFirstIglooLoad()) { layoutManager.AddNewActiveLayout(); savedIgloosMetaData.IglooVisibility = IglooVisibility.PUBLIC; LocomotionActionEvent locomotionActionEvent = default(LocomotionActionEvent); locomotionActionEvent.Type = LocomotionAction.Move; locomotionActionEvent.Position = Vector3.zero; locomotionActionEvent.Direction = Vector3.zero; LocomotionActionEvent action = locomotionActionEvent; networkServicesManager.PlayerActionService.LocomotionAction(action); } else { layoutManager.CacheLayoutFromSceneLayout(savedIgloosMetaData.ActiveIglooId.Value, evt.ExtraLayoutData); } } else { layoutManager.CacheLayoutFromSceneLayout(0L, evt.ExtraLayoutData); } DataEntityHandle activeHandle2 = layoutManager.GetActiveHandle(); stateListener = dataEntityCollection.Whenever <SceneStateData>(activeHandle2, onStateAdded, onStateRemoved); } return(false); }
private void onSavedIgloosMetaData(SavedIgloosMetaData savedIgloosMetaData) { this.savedIgloosMetaData = savedIgloosMetaData; this.savedIgloosMetaData.SavedIgloosUpdated += onSavedIgloosUpdated; this.savedIgloosMetaData.PublishedStatusUpdated += onPublishStatusUpdated; this.savedIgloosMetaData.ActiveIglooIdUpdated += onActiveIglooIdUpdated; initialActiveIglooId = savedIgloosMetaData.ActiveIglooId; initialIglooVisibility = savedIgloosMetaData.IglooVisibility; if (savedIgloosMetaData.SavedIgloos.Count > 0) { for (int i = 0; i < savedIgloosMetaData.SavedIgloos.Count; i++) { if (!savedIgloosMetaData.SavedIgloos[i].MemberOnly) { hasNonMemberIgloo = true; break; } } } checkForData(); }
private void onSavedIgloosAdded(SavedIgloosMetaData savedIgloosMetaData) { this.savedIgloosMetaData = savedIgloosMetaData; }
public static void UpdateSavedIgloosMetaDataFromIglooData(IglooData iglooData, SavedIgloosMetaData savedIgloosMetaData) { savedIgloosMetaData.ActiveIglooId = (iglooData.activeLayoutId.HasValue ? iglooData.activeLayoutId.Value : 0); savedIgloosMetaData.IglooVisibility = (iglooData.visibility.HasValue ? iglooData.visibility.Value : IglooVisibility.PRIVATE); }
private void onSavedIgloosAdded(SavedIgloosMetaData savedIgloosMetaData) { this.savedIgloosMetaData = savedIgloosMetaData; this.savedIgloosMetaData.SavedIgloosUpdated += onSavedIgloosUpdated; isFirstIglooLoad = !savedIgloosMetaData.ActiveIglooId.HasValue || savedIgloosMetaData.ActiveIglooId == 0; }
private void onSavedIgloosAdded(SavedIgloosMetaData savedIgloosMetaData) { this.savedIgloosMetaData = savedIgloosMetaData; this.savedIgloosMetaData.SavedIgloosUpdated += onSavedIgloosUpdated; isFirstIglooLoad = savedIgloosMetaData.IsFirstIglooLoad(); }