예제 #1
0
    private static List <PresetMenuItem> _download_all_serialized_json_data()
    {
        List <PresetMenuItem> downloadedPresetMenuItems = new List <PresetMenuItem>();

        using (var w = new WebClient())
        {
            var json_data = string.Empty;

            // fix this to iterate over all IDS

            try
            {
                json_data = w.DownloadString($"{databaseURL}presets/.json");
            }

            catch (Exception e) { }

            // if string with JSON data is not empty, deserialize it to class and return its instance

            JSONNode  data    = JSON.Parse(json_data);
            JSONArray dataArr = data.AsArray;
            for (int i = 1; i < dataArr.Count; i++)
            {
                PresetObject   coPreset = _download_serialized_json_data <PresetObject>($"{databaseURL}presets/.json", (i + ""));
                PresetMenuItem newItem  = GameObject.Find("PresetPanel").GetComponent <PresetsManager>().instantiateNewPresetMenuItem((i + ""), coPreset);
                downloadedPresetMenuItems.Add(newItem);
            }

            return(downloadedPresetMenuItems);
        }
    }
예제 #2
0
    public static PresetObject RetrieveStoredData(string id)
    {
        PresetObject orbitalDataSettings = _download_serialized_json_data <PresetObject>($"{databaseURL}presets.json", id);

        return(orbitalDataSettings);
        //GameObject.Find("Main Camera").GetComponent<PlanetsController>().unpackPresetObject(orbitalDataSettings);
    }
예제 #3
0
    public void OnEnable()
    {
        // Each editor window contains a root VisualElement object
        VisualElement root = rootVisualElement;

        // Import UXML
        var           visualTree = AssetDatabase.LoadAssetAtPath <VisualTreeAsset>("Assets/RW/Editor/PresetWindow.uxml");
        VisualElement uxmlRoot   = visualTree.CloneTree();

        root.Add(uxmlRoot);

        // A stylesheet can be added to a VisualElement.
        // The style will be applied to the VisualElement and all of its children.
        var styleSheet        = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/RW/Editor/PresetWindow.uss");
        var preMadeStyleSheet = AssetDatabase.LoadAssetAtPath <StyleSheet>("Assets/RW/Editor/PresetTemplate.uss");

        root.styleSheets.Add(styleSheet);
        root.styleSheets.Add(preMadeStyleSheet);

        presetObjectField            = root.Q <ObjectField>("ObjectField");
        presetObjectField.objectType = typeof(PresetObject);
        presetObjectField.RegisterCallback <ChangeEvent <UnityEngine.Object> >(e =>
        {
            if (presetObjectField.value != null)
            {
                presetManager           = (PresetObject)presetObjectField.value;
                presetManagerSerialized = new SerializedObject(presetManager);
            }

            PopulatePresetList();
        });

        PopulatePresetList();
        SetupControls();
    }
예제 #4
0
    public PresetMenuItem instantiateNewPresetMenuItem(string id, PresetObject ob)
    {
        GameObject     item     = Instantiate(PresetItemPrefab) as GameObject;
        PresetMenuItem menuItem = item.GetComponent <PresetMenuItem>();

        menuItem.create(id, ob);
        presetMenuItemList.Add(menuItem);
        return(menuItem);
    }
예제 #5
0
    public void saveCurrentAsPreset(string name)
    {
        string         idl     = PresetsManager.presetMenuItemList.Count + 1 + "";
        PresetObject   preset1 = new PresetObject(name, GetAllBodyData());
        PresetMenuItem mItem   = GameObject.Find("PresetPanel").GetComponent <PresetsManager>().instantiateNewPresetMenuItem(idl, preset1);

        // mItem.transform.parent = GameObject.Find("Content").transform;

        //mItem.transform.localScale = new Vector3(1f, 1f, 1f);
        DatabaseManager.PostPreset(preset1, idl, () =>
        {
            Debug.Log("Preset Added");
        });
    }
예제 #6
0
    public void unpackPresetObject(PresetObject o)
    {
        Reset(); Reset();
        resetPlanets.Clear();
        planets.Clear();

        foreach (KeyValuePair <string, StringStringDictionary> entry in o.bodies.dictionary)
        {
            int k = -1; string[] values = new string[6];
            foreach (KeyValuePair <string, string> secondary in entry.Value.dictionary)
            {
                k++;
                values[k] = secondary.Value;
                if ((k + 1) % 6 == 0)
                {
                    Color newColor;
                    bool  w = (ColorUtility.TryParseHtmlString(values[5], out newColor));
                    PutBody(float.Parse(values[0]), float.Parse(values[1]), float.Parse(values[2]), float.Parse(values[3]), float.Parse(values[4]), newColor);
                    k = 0;
                }
            }
        }
        ReassignDefault();
    }
예제 #7
0
 public static void PostPreset(PresetObject preset, string presetID, PostPresetCallback callback)
 {
     RestClient.Put <PresetObject>($"{databaseURL}presets/{presetID}.json", preset).Then(response => {
         callback();
     });
 }
예제 #8
0
 public void connectPreset()
 {
     storedPreset = DatabaseManager.RetrieveStoredData(id);
     presetName.GetComponent <Text>().text = storedPreset.name;
 }
예제 #9
0
 public void create(string id, PresetObject obj)
 {
     this.id           = id;
     this.storedPreset = obj;
 }