示例#1
0
    void Setup(Presets.EditPreset preset)
    {
        base.SetupHeader(false, false, preset.name, SetName);
        editPreset = preset;
        presetDescriptionText.text = editPreset.description;
        var designs = new List <DesignAndColor>(preset.dieAssignments.Select(ass =>
        {
            return((ass.die != null) ? ass.die.designAndColor : DesignAndColor.Unknown);
        }));

        this.dieRenderer = DiceRendererManager.Instance.CreateMultiDiceRenderer(designs, 400);
        if (dieRenderer != null)
        {
            previewImage.texture = dieRenderer.renderTexture;
            for (int i = 0; i < preset.dieAssignments.Count; ++i)
            {
                if (preset.dieAssignments[i].behavior != null)
                {
                    dieRenderer.SetDieAnimations(i, preset.dieAssignments[i].behavior.CollectAnimations().Where(anim => anim != null));
                    dieRenderer.Play(i, false);
                }
            }
        }
        dieRenderer.rotating = true;
        RefreshView();
    }
示例#2
0
        public EditPreset Duplicate()
        {
            var ret = new EditPreset();

            ret.name           = name;
            ret.description    = description;
            ret.dieAssignments = new List <EditDieAssignment>();
            foreach (var a in dieAssignments)
            {
                var behaviorCopy = AppDataSet.Instance.DuplicateBehavior(a.behavior);
                ret.dieAssignments.Add(new EditDieAssignment()
                {
                    die = a.die, behavior = behaviorCopy, defaultDieAssignmentIndex = 0
                });
            }
            return(ret);
        }
示例#3
0
 void ActivatePreset(Presets.EditPreset editPreset)
 {
     PixelsApp.Instance.ShowDialogBox(
         "Activate " + editPreset.name + "?",
         "Do you want to switch to this preset?",
         "Yes",
         "Cancel",
         (res) =>
     {
         if (res)
         {
             // Attempt to activate the preset
             PixelsApp.Instance.UploadPreset(editPreset, (res2) =>
             {
                 if (res2)
                 {
                     UpdatePresetAndBehaviorStatuses();
                 }
             });
         }
     });
 }
示例#4
0
    public void UploadPreset(Presets.EditPreset editPreset, System.Action <bool> callback)
    {
        int currentAssignment = 0;

        void updateNextDie()
        {
            UpdateDieDataSet(editPreset.dieAssignments[currentAssignment], (res) =>
            {
                if (res)
                {
                    currentAssignment++;
                    if (currentAssignment < editPreset.dieAssignments.Count)
                    {
                        updateNextDie();
                    }
                    else
                    {
                        // We're done!
                        callback?.Invoke(true);
                    }
                }
                else
                {
                    callback?.Invoke(false);
                }
            });
        }

        // Kick off the upload chain
        if (editPreset.dieAssignments.Count > 0)
        {
            updateNextDie();
        }
        else
        {
            callback(false);
        }
    }