private void OnGUI() { // If scene is null, check again. Scene changes and exports can cause check to fail when it shouldn't. if (!_scene) { _scene = GetRoot(); } if (!_scene) { GUILayout.Label("Could not find Custom Scene component on root game object.", EditorStyles.boldLabel); return; } // Draw the meta data fields GUILayout.Label("Scene metadata", EditorStyles.boldLabel); _scene.SceneName = EditorGUILayout.TextField("Scene Name", _scene.SceneName); _scene.Author = EditorGUILayout.TextField("Author", _scene.Author); _scene.Description = EditorGUILayout.TextField("Description", _scene.Description, GUILayout.MaxHeight(75)); // Game mode stuff _scene.Gamemode = DrawGamemode(_scene.Gamemode); if (GUILayout.Button("Export Scene")) { var scene = SceneManager.GetActiveScene(); var err = new ExportErrors(); Exporter.Export(scene, err); } }
public override void Validate(Scene scene, CustomScene root, ExportErrors err) { // Let the base validate base.Validate(scene, root, err); // Check for a spawn RequiredComponents <Spawn>(1, 1); }
public override void Validate(Scene scene, CustomScene root, ExportErrors err) { // Let base validate base.Validate(scene, root, err); RequiredComponents <ShoothouseManager>(1, 1); RequiredComponents <ShoothouseStage>(1, int.MaxValue); //RequiredComponents<ShoothouseScoreboard>(1, 1); }
public override void Validate(Scene scene, CustomScene root, ExportErrors err) { // Base validate base.Validate(scene, root, err); // Check for all required components RequiredComponents <Scoreboard>(1, 1); RequiredComponents <Respawn>(1, 1); RequiredComponents <TNH_HoldPoint>(2); RequiredComponents <TNH_SupplyPoint>(3); RequiredComponents <ForcedSpawn>(0, 1); }
private void OnLevelWasLoaded(int level) { CustomScene customScene = FindObjectOfType <CustomScene>(); if (customScene == null) { SliderSetList.Clear(); } else { SetAllSliders(customScene); } }
/// <summary> /// Set all sliders to their default min/max and set up events /// </summary> private void SetAllSliders(CustomScene customScene) { SliderSetList.Clear(); SubMenuItem[] smItem = customScene.customControl.subMenuCtrl.smItem; for (int i = 0; i < smItem.Length; i++) { GameObject objTop = smItem[i].objTop; FindSliders(objTop.transform); } foreach (var target in SliderSetList) { target.Slider.minValue = SliderMin; target.Slider.maxValue = SliderMax; bool buttonClicked = false; target.InputField.characterLimit = 4; //After reset button click, reset the slider unlock state target.InputField.onValueChanged.AddListener( _ => { if (buttonClicked) { buttonClicked = false; UnlockSliderFromInput(target.Slider, target.InputField); } }); //When the user types a value, unlock the sliders to accomodate target.InputField.onEndEdit.AddListener(_ => UnlockSliderFromInput(target.Slider, target.InputField)); //When the button is clicked set a flag used by InputFieldOnValueChanged target.Button.onClick.AddListener(() => buttonClicked = true); } }
/// <summary> /// This is called to validate the scene and ensure it can be exported. /// <strong>If you override this, make sure to call <code>base.Validate(scene, root, err)</code>! (Preferably before your code)</strong> /// Also, do NOT return early from this method unless absolutely necessary. Validate as many thing as you can. /// </summary> /// <param name="scene">The scene to export</param> /// <param name="root">The root game object</param> /// <param name="err">An object used to inform the exporter what's happened</param> public virtual void Validate(Scene scene, CustomScene root, ExportErrors err) { // Save these for later. _scene = scene; _root = root; _err = err; // Check for NavMesh and Occlusion data // These aren't *required* so they will only be warnings if (!File.Exists(Path.GetDirectoryName(scene.path) + "/" + scene.name + "/NavMesh.asset")) { err.AddWarning("Scene is missing NavMesh data!"); } if (!File.Exists(Path.GetDirectoryName(scene.path) + "/" + scene.name + "/OcclusionCullingData.asset")) { err.AddWarning("Scene is missing Occlusion Culling Data!"); } // Let the proxied components know we're about to export foreach (var proxy in scene.GetRootGameObjects().SelectMany(x => x.GetComponentsInChildren <ComponentProxy>())) { proxy.OnExport(err); } }
public static void MakerStartHook(CustomScene __instance) => __instance.StartCoroutine(OnMakerLoaded());
private static void CustomScene_Start(CustomScene __instance) { CustomControlInstance = __instance.customControl; MakerCoroutine = Instance.StartCoroutine(Instance.AutosaveMaker()); }
public static void Open() { _scene = GetRoot(); SceneExporter.RefreshLoadedSceneExporters(); GetWindow <ExporterWindow>("WurstMod Export"); }
public static void CustomSceneStart(CustomScene __instance) { Caption.InitGUI(); CustomSceneInstance = __instance; }
public static void CustomScene_Start(CustomScene __instance) { InsideMaker = Singleton <CustomBase> .Instance != null; _modeSex = __instance.modeNew ? __instance.modeSex : __instance.chaFileCtrl.parameter.sex; }