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; }
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); }