示例#1
0
 private void LoadPrototypes(string file)
 {
     Entity[] blueprints = BlueprintLoader.LoadBlueprintSet(file);
     foreach (Entity e in blueprints)
     {
         prototypes.Add(e.name, e);
     }
 }
        public override void OnInspectorGUI()
        {
            BlueprintLoader t = target as BlueprintLoader;

            if (t.Blueprint == null)
            {
                GUIStyle style = GUI.skin.GetStyle("Label");
                Color    c     = style.normal.textColor;
                style.normal.textColor = Color.red;

                GUILayout.Label("THE BLUEPRINT IS NULL", style);
                style.normal.textColor = c;
            }

            GUILayout.BeginHorizontal();
            if (GUILayout.Button("Save as"))
            {
                save_as();
            }
            if (GUILayout.Button("Save"))
            {
                if (t.Blueprint == null)
                {
                    save_as();
                }
                else
                {
                    string path = AssetDatabase.GetAssetPath(t.Blueprint);
                    var    bp   = t.Save();
                    if (bp == null)
                    {
                        return;
                    }
                    SerializationHelper.Serialize(bp, path, true);
                    AssetDatabase.Refresh();
                }
            }
            if (GUILayout.Button("Load"))
            {
                t.Load();
            }
            if (GUILayout.Button("Clear"))
            {
                if (t.Blueprint == null)
                {
                    Debug.LogError("Clearing without blueprint will result in data loss, can't do that.");
                }
                else
                {
                    t.transform.DestroyChildren();
                }
            }
            GUILayout.EndHorizontal();

            base.OnInspectorGUI();
        }
示例#3
0
 public void MakeBlueprints(List <string> files, List <Blueprint> blueprints)
 {
     foreach (string s in files)
     {
         Blueprint b = BlueprintLoader.GetBlueprint(s);
         if (b != null)
         {
             blueprints.Add(b);
         }
     }
 }
        void save_as()
        {
            BlueprintLoader t = target as BlueprintLoader;

            string path = EditorUtility.SaveFilePanel("Create new Blueprint", LastPath, t.name, "txt");

            LastPath = path;
            if (path == "")
            {
                return;
            }
            var bp = t.Save();

            SerializationHelper.Serialize(bp, path, true);
            AssetDatabase.Refresh();
            string assetpath = path.Remove(0, path.IndexOf("Assets/"));

            t.Blueprint = AssetDatabase.LoadAssetAtPath(assetpath, typeof(TextAsset)) as TextAsset;
            //t.Blueprint = Resources.Load(path.ClearPathToResources().RemoveExtension()) as TextAsset;
        }