Ejemplo n.º 1
0
 /// <summary>
 /// Setup method for initializing the required element data
 /// </summary>
 /// <param name="source">Source of this variant</param>
 /// <param name="variant">This agent variant</param>
 /// <param name="initialPolicy">Initial policy that will be set</param>
 public void Setup(ScenarioElementSource source, SourceVariant variant, List <ControlAction> initialPolicy)
 {
     OverriddenTransformToResize = transform;
     base.Setup(source, variant);
     Policy = initialPolicy;
     ScenarioManager.Instance.GetExtension <ScenarioControllablesManager>().RegisterControllable(this);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Initialization method
 /// </summary>
 /// <param name="sourcePanel">Parent source panel</param>
 /// <param name="source">Scenario element source class which will be used for adding new elements from this panel</param>
 /// <param name="variant">Cached scenario element source variant handled by this panel</param>
 public void Initialize(SourcePanel sourcePanel, ScenarioElementSource source, SourceVariant variant)
 {
     addElementsPanel = GetComponentInParent <AddElementsPanel>();
     this.source      = source;
     this.variant     = variant;
     if (variant == null)
     {
         (sourcePanel.MultiplePages ? content : gameObject).SetActive(false);
     }
     else
     {
         (sourcePanel.MultiplePages ? content : gameObject).SetActive(true);
         if (!variant.IsPrepared)
         {
             var progress = variant.IsBusy
                 ? $"{variant.PreparationProgress:F1}% "
                 : "";
             text.text         = $"{progress}{UnpreparedSign} {variant.Name} {UnpreparedSign}";
             variant.Prepared += VariantOnPrepared;
         }
         else
         {
             text.text = variant.Name;
         }
     }
 }
Ejemplo n.º 3
0
        /// <summary>
        /// Initialization method
        /// </summary>
        /// <param name="source">Scenario element source class which will be used for adding new elements from this panel</param>
        public void Initialize(ScenarioElementSource source)
        {
            if (source == null)
            {
                throw new ArgumentException("Cannot initialize source panel with null source.");
            }
            this.source = source;
            title.text  = source.ElementTypeName;

            var contentSizeFitter   = GetComponent <ContentSizeFitter>();
            var verticalLayoutGroup = GetComponent <VerticalLayoutGroup>();

            verticalLayoutGroup.enabled = false;
            contentSizeFitter.enabled   = false;

            variants.PageChanged += VariantsOnPageChanged;
            elementPanels         = new SourceElementPanel[elementsPerPage];
            for (var i = 0; i < elementsPerPage; i++)
            {
                elementPanels[i] = Instantiate(elementPanelPrefab, elementsPanel);
            }
            variants.Setup(source.Variants, elementsPerPage);
            gameObject.SetActive(variants.PagesCount > 0);
            pageControlPanel.SetActive(variants.PagesCount > 1);
            pagesCountText.text = variants.PagesCount.ToString();

            //Rebuild the UI layout
            contentSizeFitter.enabled   = true;
            verticalLayoutGroup.enabled = true;
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Deinitialization method
 /// </summary>
 public void Deinitialize()
 {
     if (Variant != null)
     {
         Variant.Prepared -= VariantOnPrepared;
     }
     source  = null;
     variant = null;
 }
Ejemplo n.º 5
0
 /// <inheritdoc/>
 public override void Setup(ScenarioElementSource source, SourceVariant variant)
 {
     OverriddenTransformToResize = transform;
     base.Setup(source, variant);
     ScenarioManager.Instance.GetExtension <ScenarioControllablesManager>().RegisterControllable(this);
 }
Ejemplo n.º 6
0
 /// <inheritdoc/>
 public override void Setup(ScenarioElementSource source, SourceVariant variant)
 {
     base.Setup(source, variant);
     ScenarioManager.Instance.GetExtension <ScenarioAgentsManager>().RegisterAgent(this);
 }