Exemplo n.º 1
0
 private void ResetAddLink()
 {
     mSourceContainerGroup = null;
     mSourceContainerInner = null;
     mTargetContainerGroup = null;
     mTargetContainerInner = null;
 }
Exemplo n.º 2
0
    public ConfirmDialog RemoveInnerSchemeAdv(UIScheme.InnerContainer container)
    {
        var dialog = Instantiate(mConfirmDialogPrefab, mUICanvas).GetComponent <ConfirmDialog>();

        StartCoroutine(removeInnerScheme(container, dialog));
        return(dialog);
    }
Exemplo n.º 3
0
 public void AddLinkAsSource(UIScheme.InnerContainer innerContainer)
 {
     mSourceContainerInner = innerContainer;
     if (AddLinkStateChanged != null)
     {
         AddLinkStateChanged.Invoke(true);
     }
 }
Exemplo n.º 4
0
    public override void Init(UIScheme.InnerContainer container)
    {
        base.Init(container);

        gameObject.name         = "Scheme: " + mContainer.InnerBuildInfo.BuildString.Name;
        transform.localPosition = mContainer.InnerBuildInfo.Position.ToVector3();
        (transform as RectTransform).sizeDelta = mContainer.InnerBuildInfo.Size;
        mName.text = mContainer.InnerBuildInfo.BuildString.Name;
        mType.text = mContainer.InnerBuildInfo.BuildString.Type;

        mRemoveButton.onClick.AddListener(() => SchemeDesigner.Instance.RemoveInnerScheme(mContainer));

        var inputCount  = mContainer.Scheme.IOGroups.Count((x) => x.Value.IO == IO.Input);
        var outputCount = mContainer.Scheme.IOGroups.Count - inputCount;

        mInputDesigns   = new List <IOInnerGroupDesign>(inputCount);
        mOutputDesigns  = new List <IOInnerGroupDesign>(outputCount);
        mIOGroupDesigns = new Dictionary <string, IOInnerGroupDesign>(inputCount + outputCount);

        foreach (var ioGroup in mContainer.Scheme.IOGroups)
        {
            IOInnerGroupDesign design = null;
            switch (ioGroup.Value.IO)
            {
            case IO.Input:
                design = Instantiate(mInputIOGroupPrefab, mInputs).GetComponent <IOInnerGroupDesign>();
                mInputDesigns.Add(design);
                mIOGroupDesigns.Add(ioGroup.Key, design);
                break;

            case IO.Output:
                design = Instantiate(mOutputIOGroupPrefab, mOutputs).GetComponent <IOInnerGroupDesign>();
                mOutputDesigns.Add(design);
                mIOGroupDesigns.Add(ioGroup.Key, design);
                break;
            }
            design.Init(ioGroup.Key, ioGroup.Value, mContainer.Scheme);
        }

        SchemeDesigner.Instance.AddLinkStateChanged += OnAddLinkStateChanged;

        if (inputCount > 0)
        {
            //mAddInputLink.gameObject.SetActive(true);
            mAddInputLink.onClick.AddListener(() => SchemeDesigner.Instance.AddLinkAsTarget(mContainer));
        }

        if (outputCount > 0)
        {
            mAddOutputLink.gameObject.SetActive(true);
            mAddOutputLink.onClick.AddListener(() =>
            {
                mSelfClick = true;
                SchemeDesigner.Instance.AddLinkAsSource(mContainer);
            });
        }
    }
Exemplo n.º 5
0
    public BaseInnerSchemeDesign CreateInnerScheme(UIScheme.InnerContainer container)
    {
        var designName      = SchemeManager.Instance.GetBuildingRule(container.InnerBuildInfo.BuildString.Type).DesignType;
        var designContainer = mDesigns[designName];
        var innerScheme     = (BaseInnerSchemeDesign)Instantiate(designContainer.Prefab, mSchemeContainer).GetComponent(designContainer.Type);

        innerScheme.Init(container);
        return(innerScheme);
    }
Exemplo n.º 6
0
 public void AddLinkAsTarget(UIScheme.InnerContainer innerContainer, bool complete = true)
 {
     mTargetContainerInner = innerContainer;
     if (AddLinkStateChanged != null)
     {
         AddLinkStateChanged.Invoke(false);
     }
     if (complete)
     {
         AddLinkAdv();
     }
 }
Exemplo n.º 7
0
    public virtual void Init(UIScheme.InnerContainer container)
    {
        mContainer = container;

        EventTrigger.Entry entry = new EventTrigger.Entry();
        entry.eventID = EventTriggerType.Drag;
        entry.callback.AddListener((data) => { OnDrag((PointerEventData)data); });
        mEventTrigger.triggers.Add(entry);

        entry         = new EventTrigger.Entry();
        entry.eventID = EventTriggerType.BeginDrag;
        entry.callback.AddListener((data) => { OnBeginDrag((PointerEventData)data); });
        mEventTrigger.triggers.Add(entry);
    }
Exemplo n.º 8
0
    public void ShowDialog(string title,
                           UIScheme.IOGroupContainer mSourceContainerGroup, UIScheme.InnerContainer mSourceContainerInner,
                           UIScheme.IOGroupContainer mTargetContainerGroup, UIScheme.InnerContainer mTargetContainerInner)
    {
        mTitle.text = title;

        mSourceStart.text = "0";
        mTargetStart.text = "0";

        if (mSourceContainerGroup != null)
        {
            mSourceGroupName.options = new List <Dropdown.OptionData>()
            {
                new Dropdown.OptionData(mSourceContainerGroup.BuildInfo.BuildString.Name)
            };
            mSourceGroupName.interactable = false;
            mSourceCount.text             = mSourceContainerGroup.BuildInfo.BuildString.Size.ToString();
        }
        if (mSourceContainerInner != null)
        {
            var ioGroups = mSourceContainerInner.Scheme.IOGroups.Where((x) => x.Value.IO == IO.Output);
            mSourceGroupName.options = ioGroups.Select((x) => new Dropdown.OptionData(x.Key)).ToList();
            if (ioGroups.Count() > 0)
            {
                mSourceCount.text = ioGroups.First().Value.Size.ToString();
            }
        }
        if (mTargetContainerGroup != null)
        {
            mTargetGroupName.options = new List <Dropdown.OptionData>()
            {
                new Dropdown.OptionData(mTargetContainerGroup.BuildInfo.BuildString.Name)
            };
            mTargetGroupName.interactable = false;
            mTargetCount.text             = mTargetContainerGroup.BuildInfo.BuildString.Size.ToString();
        }
        if (mTargetContainerInner != null)
        {
            var ioGroups = mTargetContainerInner.Scheme.IOGroups.Where((x) => x.Value.IO == IO.Input);
            mTargetGroupName.options = ioGroups.Select((x) => new Dropdown.OptionData(x.Key)).ToList();
            if (ioGroups.Count() > 0)
            {
                mTargetCount.text = ioGroups.First().Value.Size.ToString();
            }
        }
        gameObject.SetActive(true);
    }
Exemplo n.º 9
0
    private IEnumerator removeInnerScheme(UIScheme.InnerContainer container, ConfirmDialog dialog)
    {
        dialog.ShowDialog("Удалить схему " + container.SchemeName + "?", "Удалив схему, будут удалены все связанные с ней ссылки");
        yield return(new WaitWhile(() => dialog.DialogResult == DialogResult.NotReady));

        var dialogResult = dialog.DialogResult;

        dialog.Dispose();

        if (dialogResult == DialogResult.Cancel)
        {
            yield break;
        }

        CurrentScheme.DeleteInnerScheme(container);
        yield break;
    }
Exemplo n.º 10
0
 public void RemoveInnerScheme(UIScheme.InnerContainer container)
 {
     RemoveInnerSchemeAdv(container);
 }