Esempio n. 1
0
    public void UnlockEntryQuiet(string entryName)
    {
        BiologEntry entry = GameContext.Instance.GameData.BiologData.Entries.Find((e) => e.EntryName.Equals(entryName));

        if (entry != null)
        {
            if (!_unlockedEntries.Contains(entry))
            {
                _unlockedEntries.Add(entry);
                if (!_dataStorage.HasKeyForString(entryName))
                {
                    _dataStorage.Store(entryName, "x");
                    _dataStorage.WriteData();
                }

                if (BiologEntryUnlocked != null)
                {
                    BiologEntryUnlocked(entry, false);
                }
            }
            if (BiologEntryScanned != null)
            {
                BiologEntryScanned(entry, false);
            }
        }
        else
        {
            DebugFormatter.LogError(this, "Attempting to unlock Biolog entry {0}, but entry could not be found in BiologData.", entryName);
        }
    }
Esempio n. 2
0
 void BiologProgress_BiologEntryScanned(BiologEntry unlockedEntry, bool notify)
 {
     if (notify && unlockedEntry.EntryName == _entryName)
     {
         this.TriggerEvent();
     }
 }
Esempio n. 3
0
 void BiologProgress_BiologEntryUnlocked(BiologEntry unlockedEntry, bool notify)
 {
     if (notify)
     {
         TriggerEvent();
     }
 }
Esempio n. 4
0
 private void BiologEntryScannedHandler(BiologEntry scannedEntry, bool notify)
 {
     if (notify)
     {
         BiologEvents.BiologEntryScanned.Invoke(scannedEntry);
     }
 }
Esempio n. 5
0
 void BiologProgress_BiologEntryScanned(BiologEntry unlockedEntry, bool notify)
 {
     if (notify)
     {
         HudView.Hide(() => BiologView.Show(() => { }));
     }
 }
Esempio n. 6
0
 public BiologEntryUnlockedLogEntry(Guid userGuid, BiologEntry entry)
     : base(userGuid)
 {
     _data = JsonConvert.SerializeObject(
         new
     {
         BiologEntry = entry.EntryName
     });
 }
Esempio n. 7
0
 public BiologEntrySelectedLogEntry(Guid userGuid, BiologEntry biologEntry)
     : base(userGuid)
 {
     _data = JsonConvert.SerializeObject(
         new
     {
         BiologEntry = biologEntry.EntryName
     });
 }
Esempio n. 8
0
    private void InitializeNavigatorThumbnails(BiologEntry entry)
    {
        _summaryTitle.Text = entry.EntryName;
        _scaleLabel.Text   = entry.Scale;
        if (string.IsNullOrEmpty(_scaleLabel.Text))
        {
            _scaleFrame.Visible = false;
        }
        else
        {
            _scaleFrame.Visible = true;
        }

        if (entry.GalleryItems.Count == 0 || entry.GalleryItems[0].GalleryImage == null)
        {
            return;
        }
        _centerSlider.Value = 0;



        _navigatorPreviewFrame.Controls.Clear();

        //if (entry.Preview3D)
        //{
        //    _navigatorPreviewFrame.Controls.Add(Create3DPreviewButton(entry));
        //}

        foreach (BiologEntryGalleryItem galleryItem in entry.GalleryItems)
        {
            _navigatorPreviewFrame.Controls.Add(CreateNavigatorThumbnailButton(galleryItem));
        }

        if (_3dPreviewScene)
        {
            GameObject.Destroy(_3dPreviewScene);
        }
        //if (entry.Preview3D)
        //{
        //    _3dPreviewScene = (GameObject)GameObject.Instantiate(entry.Preview3D);
        //    (GuiHost.Renderer as UnityRenderer).InsertTexture(_3dPreviewTexture, "_3dPreviewTexture");
        //    _galleryImage.Texture = "_3dPreviewTexture";
        //    _galleryImage.TextureRect = new Rectangle(0, 0, _3dPreviewTexture.width, _3dPreviewTexture.height);
        //}
        //else
        //{
        //    //Texture texture = entry.GalleryItems[0].GalleryImage;
        //    //_galleryImage.Texture = entry.GalleryItems[0].GalleryImageResourcePath;
        //    //_galleryImage.TextureRect = new Rectangle(0, 0, texture.width, texture.height);
        //}



        _summaryLabel.Text = entry.DescriptionText;
        _summaryLabel.PerformLayout();
        _centerContentPage.PerformLayout();
    }
Esempio n. 9
0
 private void BiologEntryUnlockedHandler(BiologEntry unlockedEntry, bool notify)
 {
     if (notify)
     {
         BiologEvents.BiologEntryUnlocked.Invoke(unlockedEntry);
     }
     else
     {
         BiologEvents.BiologEntryUnlockedQuiet.Invoke(unlockedEntry);
     }
 }
Esempio n. 10
0
    void entryButton_MouseClick(Control sender, MouseEventArgs args)
    {
        if (sender != _selectedBiologEntryControl)
        {
            AnalyticsLogger.Instance.AddLogEntry(new BiologEntrySelectedLogEntry(GameContext.Instance.Player.UserGuid, (sender.Tag as BiologEntry)));
        }
        _selectedBiologEntryControl = sender;

        BiologEntry entry = (sender.Tag as BiologEntry);

        InitializeNavigatorThumbnails(entry);
    }
Esempio n. 11
0
 void _model_SelectedEntryChanged(BiologEntry obj)
 {
     GUI.FocusControl(null);
     if (_data)
     {
         EditorUtility.SetDirty(_data);
         AssetDatabase.SaveAssets();
         AssetDatabase.SaveAssets();
     }
     _hiddenGalleryItems.Clear();
     _hiddenPreviews.Clear();
 }
Esempio n. 12
0
    private Button CreateBiologEntryButton(BiologEntry entry)
    {
        Button button = new Button();

        button.Tag = entry;

        button.Style = "Button - Transparent";
        //button.Tint = ColorInt.RGB(134, 226, 111);
        button.Dock = DockStyle.Top;
        button.Text = entry.EntryName;

        return(button);
    }
Esempio n. 13
0
 public void SetActiveEntry(BiologEntry entry)
 {
     _selectedBiologEntryControl = _buttonsByEntry[entry];
     _summaryTitle.Text          = entry.EntryName;
     _scaleLabel.Text            = entry.Scale;
     if (string.IsNullOrEmpty(_scaleLabel.Text))
     {
         _scaleFrame.Visible = false;
     }
     else
     {
         _scaleFrame.Visible = true;
     }
 }
Esempio n. 14
0
    private void CreateNewEntry(string name)
    {
        if (name == "")
        {
            name = kDEFAULT_ENTRY_NAME;
        }
        BiologEntry entry = new BiologEntry();

        entry.EntryName = name;
        _biologData.Entries.Add(entry);

        EditorUtility.SetDirty(_biologData);
        AssetDatabase.SaveAssets();
        AssetDatabase.SaveAssets();
    }
Esempio n. 15
0
 private void DrawBiologEntry(BiologEntry entry)
 {
     if (GUILayout.Button(entry.EntryName))
     {
         if (Event.current.button == 0)
         {
             _model.SelectedEntry = entry;
         }
         else if (Event.current.button == 1)
         {
             Vector2 mousePosition = Event.current.mousePosition;
             EditorUtility.DisplayCustomMenu(new Rect(mousePosition.x, mousePosition.y - 300, 100, 300), _entryContextOptions, -1, ContextMenuCallback, entry);
         }
         GUI.FocusWindow(_windowId);
     }
 }
Esempio n. 16
0
    private void ContextMenuCallback(object obj, string[] items, int selection)
    {
        BiologEntry entry = obj as BiologEntry;

        switch (selection)
        {
        case 0:
            CreateNewEntry("");
            break;

        case 1:
            if (entry != null)
            {
                _biologData.Entries.Remove(entry);
                _model.SelectedEntry = null;
            }
            break;
        }
    }
Esempio n. 17
0
    public void SetEntry(BiologEntry entry)
    {
        _activeEntry = entry;

        foreach (BiologGalleryPreviewListElement element in _currentEntries)
        {
            GameObject.Destroy(element.gameObject);
        }
        _currentEntries.Clear();

        foreach (BiologEntryGalleryItem galleryItem in _activeEntry.GalleryItems)
        {
            BiologGalleryPreviewListElement galleryPreviewItem = GameObject.Instantiate(_galleryPreviewPrefab, _galleryItemGroup.transform.position, Quaternion.identity) as BiologGalleryPreviewListElement;

            _currentEntries.Add(galleryPreviewItem);
            galleryPreviewItem.transform.SetParent(_galleryItemGroup.transform);
            //galleryPreviewItem.transform.parent = _galleryItemGroup.transform;
            //galleryPreviewItem.transform.localScale = Vector3.one;
            galleryPreviewItem.GalleryItem = galleryItem;
            galleryPreviewItem.ButtonPressed.AddListener(GalleryPreviewImageClicked);
        }

        _imageViewer.sprite = _activeEntry.GalleryItems[0].GalleryImage;
    }
Esempio n. 18
0
    //private void Draw3DPreviewGUI()
    //{
    //    // Name
    //    GUILayout.BeginHorizontal(GUI.skin.box);
    //    GUILayout.Label("3D Preview:", GUILayout.ExpandWidth(false));
    //    _model.SelectedEntry.Preview3D = (GameObject)EditorGUILayout.ObjectField(_model.SelectedEntry.Preview3D, typeof(GameObject), false);
    //    GUILayout.EndHorizontal();
    //}

    private void DrawTagsGUI()
    {
        // Tags
        GUILayout.BeginVertical(GUI.skin.box);

        GUILayout.BeginHorizontal();
        GUILayout.Label("Tags");
        _tagsCollapsed = GUILayout.Button(_tagsCollapsed ? "Expand" : "Collapse", GUILayout.ExpandWidth(false)) ? !_tagsCollapsed : _tagsCollapsed;
        GUILayout.EndHorizontal();

        if (!_tagsCollapsed)
        {
            foreach (string s in _model.SelectedEntry.Tags)
            {
                GUILayout.BeginHorizontal();
                if (GUILayout.Button(s, GUI.skin.textField, GUILayout.ExpandWidth(false)) && Event.current.isMouse && Event.current.button == 1)
                {
                    // Display context menu.

                    // Add "Rename", "Remove"
                }
                if (GUILayout.Button("x", GUILayout.ExpandWidth(false)))
                {
                    _tagDeleteCache.Add(s);
                }
                GUILayout.EndHorizontal();
            }

            foreach (string s in _tagDeleteCache)
            {
                _model.SelectedEntry.Tags.Remove(s);
            }
            _tagDeleteCache.Clear();

            GUILayout.BeginHorizontal();
            string[] tags       = _model.AllTags.ToArray();
            Rect     addTagRect = GUILayoutUtility.GetRect(new GUIContent("New Tag"), GUI.skin.button, GUILayout.ExpandWidth(false));

            if (EditorGUI.EndChangeCheck())
            {
                _saved = false;
            }
            if (GUI.Button(addTagRect, "New Tag"))
            {
                BiologEntry     selectedEntry = _model.SelectedEntry;
                Action <string> callback      = (s) =>
                {
                    selectedEntry.Tags.Add(s.ToLower());
                    _saved = false;
                    _model.Repaint();
                };
                Vector2 offset = GUIUtility.GUIToScreenPoint(new Vector2(addTagRect.xMin, addTagRect.yMin));
                TagSelectorPopupWindow.ShowAsDropDown(new Rect(offset.x, offset.y, addTagRect.width, addTagRect.height),
                                                      new Vector2(200, 300), callback, _model.AllTags);
            }
            EditorGUI.BeginChangeCheck();
            //_newTag = GUILayout.TextField(_newTag);

            //string[] existingTags = _model.AllTags.Where((s) => s.StartsWith(_newTag, StringComparison.InvariantCultureIgnoreCase)).ToArray();
            //int selectedIndex = EditorGUILayout.Popup(-1, existingTags);
            //if (selectedIndex != -1)
            //{
            //    _model.SelectedEntry.Tags.Add(existingTags[selectedIndex].ToLower());
            //    _newTag = "";
            //}
            GUILayout.EndHorizontal();
        }

        GUILayout.BeginHorizontal();
        GUILayout.Label("Scale Text: ");
        _model.SelectedEntry.Scale = GUILayout.TextField(_model.SelectedEntry.Scale);
        GUILayout.EndHorizontal();
        GUILayout.EndVertical();
    }
Esempio n. 19
0
 public void SetBiologEntry(BiologEntry entry)
 {
     _databaseText.text = entry.DescriptionText;
 }
Esempio n. 20
0
 void _biologProgress_BiologEntryUnlocked(BiologEntry entry, bool notify)
 {
     Initialize();
     SetActiveEntry(entry);
     InitializeNavigatorThumbnails(entry);
 }
Esempio n. 21
0
    private Frame Create3DPreviewButton(BiologEntry entry)
    {
        Frame navigatorFrame = new Frame();

        navigatorFrame.Dock     = DockStyle.Left;
        navigatorFrame.Anchor   = AnchorStyles.Bottom | AnchorStyles.Left;
        navigatorFrame.Margin   = new Margin(0, 0, 0, 0);
        navigatorFrame.NoEvents = true;
        navigatorFrame.Size     = new Point(100, 96);

        ImageControl backgroundImage = new ImageControl();

        backgroundImage.Style    = "Image - Gallery Unselected Frame";
        backgroundImage.Tiling   = TextureMode.Stretch;
        backgroundImage.Dock     = DockStyle.Fill;
        backgroundImage.NoEvents = true;

        ImageControl previewImage = new ImageControl();

        previewImage.Tiling = TextureMode.Stretch;
        previewImage.Dock   = DockStyle.Fill;
        previewImage.Margin = new Margin(1, 2, 1, 2);

        if (entry.GalleryItems.Count > 0)
        {
            Texture previewTexture = null;// entry.GalleryItems[0].GalleryPreview;
            if (previewTexture)
            {
                //previewImage.Texture = entry.GalleryItems[0].GalleryPreviewResourcePath;

                float scaleFactor;

                // Just assume we're always previewing the entire texture. Just need to figure out how big it should be:

                if (previewTexture.width > previewTexture.height)
                {
                    scaleFactor = ((float)92) / previewTexture.width;
                }
                else
                {
                    scaleFactor = ((float)92) / previewTexture.height;
                }

                previewImage.Size = new Point((int)(scaleFactor * previewTexture.width), (int)(scaleFactor * previewTexture.height));
            }
        }
        previewImage.NoEvents = true;

        Button previewButton = new Button();

        previewButton.Dock  = DockStyle.Fill;
        previewButton.Style = "Inventory - Grid";
        previewButton.Tint  = ColorInt.ARGB(0.0f, 1.0f, 1.0f, 1.0f);

        Label label3D = new Label();

        label3D.Dock      = DockStyle.Fill;
        label3D.Text      = "3D";
        label3D.TextAlign = Alignment.MiddleCenter;
        label3D.Style     = "Label - Blurb";
        label3D.NoEvents  = true;

        previewButton.MouseClick +=
            (s, a) =>
        {
            if (_3dPreviewScene)
            {
                GameObject.Destroy(_3dPreviewScene);
            }
            //_3dPreviewScene = (GameObject)GameObject.Instantiate(entry.Preview3D);
            (GuiHost.Renderer as UnityRenderer).InsertTexture(_3dPreviewTexture, "_3dPreviewTexture");
            _galleryImage.Texture     = "_3dPreviewTexture";
            _galleryImage.TextureRect = new Rectangle(0, 0, _3dPreviewTexture.width, _3dPreviewTexture.height);
        };

        navigatorFrame.Controls.Add(backgroundImage);
        navigatorFrame.Controls.Add(previewImage);
        navigatorFrame.Controls.Add(previewButton);
        navigatorFrame.Controls.Add(label3D);

        return(navigatorFrame);
    }