Пример #1
0
    public void Setup(LevelManager _lev)
    {
        levMan = _lev;
        string path = "Maps/" + levMan.NAME + "/Steps/";
        string mainPath = "Maps/" + levMan.NAME + "/";

        InitLevelSetup = Instantiate(Resources.Load(mainPath + "Setup")) as LevelParameters;
        LevelSetup = InitLevelSetup;
        LinearSetup = Instantiate(Resources.Load(mainPath + "Linear")) as LinearLevelSetup;
        _listSteps = LinearSetup.LinearSteps;
        untriggerSteps();

        _CURRENTSTEP = _listSteps[0];

        GameEventManager.GameStart += GameStart;
        GameEventManager.Respawn += Respawn;
        GameEventManager.GameOver += GameOver;
    }
Пример #2
0
    public override void OnInspectorGUI()
    {
        step = (LinearLevelSetup)target;
        boxSize = maxSize / 10 ;
        stepSize = maxSize / 6;
        GUIEditorSkin customSkin = Resources.Load("Tools/Skins/LvlEditor") as GUIEditorSkin;
        brpm = BrickStepParam.CreateInstance("BrickStepParam") as BrickStepParam;

        base.OnInspectorGUI();
        if (step.LvlParam == null)
        {
            Debug.Log("Check for parameters in setups");
        }

        // GET INGAME BRICKS THANKS TO MAGIC
        ingameBricks = step.LvlParam.getBrickGameList();
        string gameBricks = "Ingame defined bricks \n";
        foreach (LevelBrick _brick in ingameBricks)
        {
            string parse = _brick.type.ToString() + " " + _brick.brickId ;
            if (_brick.GetComponent<PatrolBrick>())
            {
                parse += " ";
                parse += _brick.GetComponent<PatrolBrick>().brickPath.id;
            }
            parse += "\n";
            gameBricks += parse;
        }
        EditorGUILayout.HelpBox(gameBricks, MessageType.Info,true);
        autoAttributeWPM();

        // LOAD STEPS
        if (GUILayout.Button("LoadSteps", GUILayout.ExpandWidth(true)))
        {
            LinearStep[] listSteps = Resources.LoadAll<LinearStep>("Maps/" + step.LvlParam.NAME +"/Steps/");
            step.LinearSteps.Clear();
            foreach (LinearStep stp in listSteps)
            {
                step.LinearSteps.Add(stp);
            }
            step.LinearSteps.Sort(delegate (LinearStep x, LinearStep y)
                                       {
                if (x.stepID < y.stepID) return -1;
                if (x.stepID > y.stepID) return 1;
                else return 0;
            });
        }

        if (step.LinearSteps.Count > 0)
        {
            EditorGUILayout.BeginVertical(GUILayout.Width(maxSize));
            displayStepHeader();
            displayStepInfo(step.LinearSteps);
            EditorGUILayout.EndVertical();
        }

        if (step.ListBricks.Count > 0)
        {
            GUI.color = customSkin.col1;
            EditorGUILayout.BeginVertical(GUILayout.Width(maxSize));
            GUI.color = customSkin.col3;
            displayBrickHeader(brpm);
            if (GUILayout.Button("SortID", GUILayout.Width(boxSize)))
            {
                step.ListBricks.Sort(delegate (BrickStepParam x, BrickStepParam y)
                                     {
                    if (x.stepID < y.stepID) return -1;
                    if (x.stepID > y.stepID) return 1;
                    else return 0;
                });
            }
            EditorGUILayout.EndHorizontal(); // End
            foreach(BrickStepParam _prm in step.ListBricks)
            {
                if (_prm != null)
                {
                    EditorGUILayout.BeginHorizontal(GUILayout.Width(maxSize));
                    displayBrickInfo(AssetDatabase.LoadAssetAtPath( AssetDatabase.GetAssetPath(_prm), typeof(BrickStepParam)) as BrickStepParam);
                    EditorUtility.SetDirty(AssetDatabase.LoadAssetAtPath( AssetDatabase.GetAssetPath(_prm), typeof(BrickStepParam)) as BrickStepParam);
                    if (GUILayout.Button("Remove", GUILayout.Width(boxSize)))
                    {
                        AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(_prm));
                        step.ListBricks.Remove(_prm);
                    }
                    EditorGUILayout.EndHorizontal();
                }
            }
            EditorGUILayout.EndVertical();
        }

        EditorGUILayout.BeginHorizontal(GUILayout.Width(maxSize));
        //		displayBrickInfo(brpm);
        if (GUILayout.Button("Add a brick", GUILayout.ExpandWidth(true)))
        {
            if (step.ListBricks == null)
            {
                step.ListBricks = new List<BrickStepParam>();
            }
            AssetDatabase.CreateAsset(brpm , "Assets/Resources/Maps/" + step.LvlParam.NAME + "/Parameters/" + Random.Range(0,1000000).ToString() +".asset");
            EditorUtility.SetDirty(brpm);
            step.ListBricks.Add(brpm);
        }
        EditorGUILayout.EndHorizontal();

        EditorUtility.SetDirty(step);
        EditorUtility.SetDirty(step.LvlParam);
    }