Пример #1
0
    public void SetRulesFromPreset(GameRules rules)
    {
        // Deselect the old rules
        if (CurrentlyWorkshoppedGameRules != null)
        {
            RulePresetSelector matchingOldSelector = MatchingSelector(CurrentlyWorkshoppedGameRules);

            if (matchingOldSelector != null)
            {
                matchingOldSelector.SetHighlightedState(false);
            }
        }

        CurrentlyWorkshoppedGameRules = rules.CloneRules();
        FutureGameRules = rules.CloneRules();
        HydrateRulePanel();
        UpdateRuleSetButton.interactable = false;

        SaveDataManager.SetLastUsedGameRule(rules);

        RulePresetSelector matchingNewSelector = MatchingSelector(CurrentlyWorkshoppedGameRules);

        if (matchingNewSelector != null)
        {
            matchingNewSelector.SetHighlightedState(true);
        }
    }
Пример #2
0
    public void DeleteButton()
    {
        RulePresetSelector matchingSelector = MatchingSelector(CurrentlyWorkshoppedGameRules);

        RulePresetSelectors.Remove(matchingSelector);
        ObjectPooler.ReturnObject(matchingSelector);

        GameRules nextRuleSet = SaveDataManager.GetNextRuleSet(CurrentlyWorkshoppedGameRules);

        SaveDataManager.DeleteRuleSet(CurrentlyWorkshoppedGameRules);

        SetRulesFromPreset(nextRuleSet);
    }
Пример #3
0
    public void SaveAsNewButton()
    {
        GameRules newRules = CurrentlyWorkshoppedGameRules.CloneRules();

        SaveDataManager.SaveNewRuleSet(newRules);

        RulePresetSelector newRulesPreset = ObjectPooler.GetObject(RulesPresetSelectorPF, RulesPresetHolder);

        RulePresetSelectors.Add(newRulesPreset);
        newRulesPreset.SetRepresentedRules(newRules, this);

        SetRulesFromPreset(newRules);
    }
Пример #4
0
    public void UpdateButton()
    {
        SaveDataManager.UpdateRuleSet(CurrentlyWorkshoppedGameRules);
        CurrentlyWorkshoppedGameRules = CurrentlyWorkshoppedGameRules.CloneRules();
        FutureGameRules = CurrentlyWorkshoppedGameRules.CloneRules();
        UpdateRuleSetButton.interactable = false;

        RulePresetSelector matchingSelector = MatchingSelector(CurrentlyWorkshoppedGameRules);

        if (matchingSelector != null)
        {
            matchingSelector.SetRepresentedRules(CurrentlyWorkshoppedGameRules, this);
        }
    }
Пример #5
0
    void HydrateRulePresetPanel()
    {
        HashSet <GameRules> rulesToSet = new HashSet <GameRules>();

        rulesToSet.UnionWith(SaveDataManager.GetDefaultGameRules());
        rulesToSet.UnionWith(SaveDataManager.GetSavedRuleSets());

        foreach (GameRules rules in rulesToSet)
        {
            RulePresetSelector newRulePresetSelector = ObjectPooler.GetObject(RulesPresetSelectorPF, RulesPresetHolder);
            newRulePresetSelector.SetRepresentedRules(rules, this);
            RulePresetSelectors.Add(newRulePresetSelector);
        }
    }