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);
        }
Exemple #3
0
        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);
            }
        }
Exemple #7
0
        /// <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());
Exemple #9
0
 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");
 }
Exemple #11
0
 public static void CustomSceneStart(CustomScene __instance)
 {
     Caption.InitGUI();
     CustomSceneInstance = __instance;
 }
Exemple #12
0
            public static void CustomScene_Start(CustomScene __instance)
            {
                InsideMaker = Singleton <CustomBase> .Instance != null;

                _modeSex = __instance.modeNew ? __instance.modeSex : __instance.chaFileCtrl.parameter.sex;
            }