Пример #1
0
    private bool _Clone(bool overwrite)
    {
        var error = StageStatic.Validate(category, id, name, description, scene);

        if (overwrite)
        {
            if (name == original_stage.name)
            {
                error.name = false;
            }
            if (id == original_stage.number)
            {
                error.id = false;
            }
        }
        if (!error.pass)
        {
            Error(error);
            return(false);
        }

        Stage new_stage = new Stage(original_stage, category, id, name, description, scene, true);

        if (!overwrite)
        {
            new_stage.ResetSaves();
        }

        StageStatic.stage = new_stage;
        return(true);
    }
Пример #2
0
    public static bool LoadStage(string name, bool local, bool restore_session)
    {
        if (!StageStatic.LoadInitStage(name, local, restore_session))
        {
            return(false);
        }

        LoadScene(StageStatic.stage.scene);
        return(true);
    }
Пример #3
0
    public void Clone()
    {
        if (!_Clone(false))
        {
            return;
        }

        StageStatic.SetStage(name, true);
        StageStatic.LoadCreate();
    }
Пример #4
0
    public void Create()
    {
        var error = StageStatic.LoadNewStage(category, id, name, description, scene);

        if (!error.pass)
        {
            Error(error);
            return;
        }
    }
Пример #5
0
    public void Edit()
    {
        if (original_stage.use_install_folder)
        {
            Error(StageStatic.StageErrorStruct.InvalidFolder);
            return;
        }

        _Save();

        StageStatic.SetStage(name, true);
        StageStatic.LoadCreate();
    }
Пример #6
0
    // Update is called once per frame
    void Update()
    {
        if (Input.GetKeyDown(Key))
        {
            if (LockOnly)
            {
                CamControl.enabled     = !CamControl.enabled;
                CursorRenderer.enabled = CamControl.enabled;
            }
            else
            {
                Cursor.visible         = !UICanvas.enabled;
                CamControl.enabled     = UICanvas.enabled;
                CursorRenderer.enabled = UICanvas.enabled;

                UICanvas.enabled = !UICanvas.enabled;
            }
        }

        else if (Input.GetButton(modifier))
        {
            if (Input.GetButtonDown(modundo))
            {
                StageStatic.stage.factState.undo();
            }
            else if (Input.GetButtonDown(modredo))
            {
                StageStatic.stage.factState.redo();
            }
            else if (Input.GetButtonDown(modreset))
            {
                StageStatic.stage.factState.softreset();
            }
            else if (Input.GetButtonDown(modsave))
            {
                StageStatic.stage.push_record();
            }
            else if (Input.GetButtonDown(modload))
            {
                StageStatic.stage.factState.hardreset();
                StageStatic.LoadInitStage(StageStatic.stage.name, !StageStatic.stage.use_install_folder);
            }
        }

        /*
         * //Todo before capturing: Make directories "UFrameIT-Screenshots/Unity_ScreenCapture" in project folder
         * else if (Input.GetKeyDown(ScreenshotKey)) {
         *  ScreenCapture.CaptureScreenshot("UFrameIT-Screenshots\\Unity_ScreenCapture\\Capture.png");
         * }
         */
    }
Пример #7
0
    public static void GenerateDemoA()
    {
        // Params
        float minimalSolutionHight = 6;

        // Generate Stage
        // TODO? use constructor
        Stage demo = new Stage();

        demo.number             = 0;
        demo.category           = "Demo Category";
        demo.name               = "TechDemo A";
        demo.scene              = "RiverWorld";
        demo.description        = "Improvised Level\n(Loadable)";
        demo.use_install_folder = true;
        demo.hierarchie         = new List <Directories> { /*Directories.Stages*/
        };

        // needed to generate facts
        StageStatic.StageOfficial = new Dictionary <string, Stage>
        {
            { demo.name, demo },
        };
        StageStatic.SetStage(demo.name, false);

        // Populate Solution
        PointFact
            buttom = new PointFact(Vector3.zero, Vector3.up, StageStatic.stage.solution),
            top    = new PointFact(Vector3.zero + Vector3.up * minimalSolutionHight, Vector3.up, StageStatic.stage.solution);

        StageStatic.stage.solution.Add(buttom, out _);
        StageStatic.stage.solution.Add(top, out _, true);

        LineFact target    = new LineFact(buttom.Id, top.Id, StageStatic.stage.solution);
        var      target_Id = StageStatic.stage.solution.Add(target, out _, true);

        // Set Solution
        StageStatic.stage.solution.ValidationSet =
            new List <SolutionOrganizer.SubSolution>
        {
            new SolutionOrganizer.SubSolution(new HashSet <string> {
                target_Id
            }, null, null, new LineFactHightDirectionComparer())
        };

        // Save
        StageStatic.stage.store();
    }
Пример #8
0
    public void SetStage(string name, bool local)
    {
        StageStatic.SetStage(name, local);
        original_stage = StageStatic.stage;

        if (!original_stage.DeepLoad())
        {
            Error(StageStatic.StageErrorStruct.NotLoadable);
        }

        category    = original_stage.category;
        id          = original_stage.number;
        this.name   = original_stage.name;
        description = original_stage.description;
        scene       = original_stage.scene;
    }
Пример #9
0
    public override void Init()
    {
        StageStatic.SetStage("", local);
        StageStatic.ShallowLoadStages();

        Dictionary <string, Stage> dict = local ?
                                          StageStatic.StageLocal : StageStatic.StageOfficial;

        var ord = local ?
                  dict.Values.OrderBy(s => s.category) :
                  dict.Values.OrderBy(s => StageStatic.Category.ContainsKey(s.category) ? StageStatic.Category[s.category] : -1);

        ord = ord.ThenBy(s => s.number);

        ListButtons(ord.ToList());

        //scroll.verticalScrollbar.numberOfSteps = dict.Count;
    }
Пример #10
0
    void Awake()
    {
        //GenerateDemoFiles.GenerateAll();

        hintAnimationStartColor = _hintAnimationStartColor;
        hintAnimationEndColor   = _hintAnimationEndColor;
        hintAnimationDuration   = _hintAnimationDuration;

        StageAccomplished       = _StageAccomplished;
        StageNotYetAccomplished = _StageNotYetAccomplished;
        StageError = _StageError;

        GadgetLaserDistance    = _GadgetLaserDistance;
        GadgetPhysicalDistance = _GadgetPhysicalDistance;


        StageStatic.ShallowLoadStages();
        //DontDestroyOnLoad(gameObject);
    }
Пример #11
0
 void Start()
 {
     StageStatic.LoadInitStage(true /*StageStatic.stage.player_record.solved*/, gameObject);
 }
Пример #12
0
 public void SetMode(Mode mode, GameObject obj = null)
 {
     obj ??= gameObject;
     StageStatic.SetMode(mode, obj);
 }
Пример #13
0
 private void _Delete()
 {
     StageStatic.Delete(original_stage);
 }