public virtual void draw() { scenes = Controller.Instance.IdentifierSummary.getIds <IChapterTarget>(); scenes = scenes.Except(Controller.Instance.IdentifierSummary.getIds <Cutscene>()).ToArray(); EditorGUI.BeginChangeCheck(); var sceneIndex = EditorGUILayout.Popup(TC.get("Element.Name2"), Array.IndexOf(scenes, effect.getTargetId()), scenes); if (EditorGUI.EndChangeCheck()) { SetDestinyScene(sceneIndex); } if (sceneIndex == -1) { EditorGUILayout.HelpBox("TriggerSceneEffectEditor.ValidDestination".Traslate(), MessageType.Error); return; } // Transition Type EditorGUI.BeginChangeCheck(); var newType = EditorGUILayout.Popup(TC.get("NextScene.Transition"), (int)effect.getTransitionType(), transitionTypes); if (EditorGUI.EndChangeCheck()) { effect.setTransitionType((TransitionType)newType); } // Transition Time EditorGUI.BeginChangeCheck(); var time = Mathf.Clamp(EditorGUILayout.IntField(TC.get("NextScene.TransitionTime"), effect.getTransitionTime()), 0, 5000); if (EditorGUI.EndChangeCheck()) { effect.setTransitionTime(time); } var scenesList = Controller.Instance.SelectedChapterDataControl.getScenesList(); // If the selected scene IS a scene (not a cutscene or any other type) if (Controller.Instance.PlayerMode == Controller.FILE_ADVENTURE_3RDPERSON_PLAYER && sceneIndex < scenesList.getScenes().Count) { var pos = EditorGUILayout.Vector2IntField(TC.get("Inventory.Position"), new Vector2Int(effect.getX(), effect.getY())); effect.setPosition(pos.x, pos.y); EditorGUI.BeginChangeCheck(); bool useDestinyScale = EditorGUILayout.Toggle("TriggerSceneEffectEditor.UseScale".Traslate(), effect.DestinyScale >= 0); if (EditorGUI.EndChangeCheck()) { effect.DestinyScale = useDestinyScale ? 1f : float.MinValue; } if (useDestinyScale) { EditorGUI.BeginChangeCheck(); var newScale = Mathf.Max(0.001f, EditorGUILayout.FloatField(TC.get("SceneLocation.Scale"), effect.DestinyScale)); if (EditorGUI.EndChangeCheck()) { effect.DestinyScale = newScale; } } else { EditorGUILayout.HelpBox("TriggerSceneEffectEditor.SizeMaintained".Traslate(), MessageType.Info); } localSceneEditor.Components = EditorWindowBase.Components; localSceneEditor.Scene = scenesList.getScenes()[sceneIndex]; playerDestination.setValues(effect.getX(), effect.getY(), useDestinyScale ? effect.DestinyScale : 1f); var previousScale = playerDestination.getScale(); localSceneEditor.Draw(GUILayoutUtility.GetRect(0, 200, GUILayout.ExpandWidth(true))); effect.setPosition(playerDestination.getX(), playerDestination.getY()); if (previousScale != playerDestination.getScale()) { effect.DestinyScale = playerDestination.getScale(); } } EditorGUILayout.HelpBox(TC.get("TriggerSceneEffect.Description"), MessageType.Info); }