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(); }
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); }
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(); } }); } }); }
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); } }