Esempio n. 1
0
 public void OnRequestCopy()
 {
     if (model.GetId() == BehaviorCards.GetMiscPanelId())
     {
         return;
     }
     panelManager.OnRequestCopyPanel(this);
 }
Esempio n. 2
0
 void AddNewCard(string category)
 {
     // Close();
     BehaviorCards.CardMetadata md = BehaviorCards.CardMetadata.DefaultCardMetadata;
     md.cardSystemCardData.categories = new string[] { category };
     string             metadataJson = JsonUtility.ToJson(md);
     UnassignedBehavior newBehavior  = behaviorSystem.CreateNewBehavior(
         BehaviorCards.GetDefaultCodeForCategory(category), metadataJson);
     // onCodeRequest(newBehavior.GetId());
 }
Esempio n. 3
0
    public void Setup(IAssignedPanel model, CardManager cardManager, PanelManager panelManager, DynamicPopup popups)
    {
        this.model        = model;
        this.cardManager  = cardManager;
        this.panelManager = panelManager;
        this.popups       = popups;

        cardPanelUI.headerIcon.sprite = model.GetIcon();
        initialTitle = model.GetTitle();
        cardPanelUI.SetHeaderText(model.GetTitle());
        cardPanelUI.closeButton.onClick.AddListener(DeletePanel);

        cardPanelUI.headerTextInput.onEndEdit.AddListener(OnEditTitle);

        foreach (var slot in model.GetDecks())
        {
            GameObject newSlotObj = Instantiate(cardSlotPrefab, cardPanelUI.deckParent);
            CardDeck   newslot    = newSlotObj.GetComponentInChildren <CardDeck>();
            newslot.Setup(slot);
            newslot.SetColor(model.GetColor());
            string propName = slot.GetPropertyName();
            if (propName != null)
            {
                cardSlotForProperty[propName] = newSlotObj;
            }
        }

        cardPanelUI.headerBackground.color = model.GetColor();

        GameObject propsObject = Instantiate(propertyFieldsPrefab, cardPanelUI.fieldsParent);

        propsObject.transform.SetAsFirstSibling();
        propsLayoutElement = cardPanelUI.fieldsParent.GetComponent <UnityEngine.UI.LayoutElement>();
        cardPropertiesUX   = propsObject.GetComponent <BehaviorUX.CardPropertiesUX>();

        cardPropertiesUX.Setup(model.GetBehavior()?.GetProperties());
        cardPropertiesUX.onValueChanged += (type) =>
        {
            UpdateSlotsVisibility();
        };
        cardPropertiesUX.gameObject.SetActive(cardPropertiesUX.HasAnyProps());

        parentRect = transform.parent.GetComponent <RectTransform>();

        // I don't like this.
        if (GetModel().GetId() == BehaviorCards.GetMiscPanelId())
        {
            cardPanelUI.closeButton.gameObject.SetActive(false);
        }

        UpdateSlotsVisibility();
    }
Esempio n. 4
0
    static void DelBrainDead(CommandArg[] args)
    {
        bool rbOnly = args.Length > 0 && args[0].String == "rbonly";

        if (rbOnly)
        {
            Log($"Destroying rigidbodies only");
        }

        BehaviorCards cards = FindObjectOfType <BehaviorCards>();

        bool ShouldDestroy(VoosActor actor)
        {
            var rb = actor.GetComponent <Rigidbody>();

            if (rbOnly && rb.isKinematic)
            {
                return(false);
            }

            if (actor.GetBrainName() == VoosEngine.DefaultBrainUid)
            {
                return(true);
            }

            if (cards.GetCardManager(actor).GetAssignedPanels().Sum(p => p.GetDecks().Sum(d => d.GetAssignedCards().Count())) == 0)
            {
                return(true);
            }

            return(false);
        }

        var toDestroy = new HashSet <VoosActor>(
            from a in main.voosEngine.EnumerateActors()
            where ShouldDestroy(a)
            select a);

        foreach (var actor in toDestroy)
        {
            main.voosEngine.DestroyActor(actor);
        }

        Log($"OK destroyed {toDestroy.Count} actors");
    }
    string GetBehaviorTitle(string brainId, string useId)
    {
        var uri = behaviorSystem.GetBrain(brainId).GetUse(useId).behaviorUri;
        var beh = behaviorSystem.GetBehaviorData(uri);

        var behaviorDesc = "";

        if (BehaviorCards.IsCard(beh))
        {
            var md = BehaviorCards.CardMetadata.GetMetaDataFor(beh);
            behaviorDesc = $"{md.title}";
        }
        else if (BehaviorCards.IsPanel(beh))
        {
            var md = BehaviorCards.PanelMetadata.Get(beh);
            behaviorDesc = $"{md.title}";
        }
        return(behaviorDesc);
    }
    public void Open(string openCardUri = null, VoosEngine.BehaviorLogItem?error = null)
    {
        gameObject.SetActive(true);

        resourceClaimer.Unclaim();
        isNewCard = false;

        this.error = null;
        // Which card are we editing ?
        if (openCardUri != null && behaviorSystem.IsBehaviorUriValid(openCardUri))
        {
            cardUri    = openCardUri;
            this.error = error;
        }
        else if (cardUri == null || !behaviorSystem.IsBehaviorUriValid(cardUri))
        {
            UnassignedBehavior newBehavior = behaviorSystem.CreateNewBehavior(
                CodeTemplates.MISC, BehaviorCards.GetMiscMetadataJson());
            cardUri   = newBehavior.GetBehaviorUri();
            isNewCard = true;
        }

        resourceClaimer.Claim(UnassignedBehavior.GetClaimResourceId(cardUri), OnClaimStatusChanged);
    }
Esempio n. 7
0
 public string GetId()
 {
     return(BehaviorCards.GetMiscPanelId());
 }
Esempio n. 8
0
 private bool IsPanelOverTrash()
 {
     return(RectTransformUtility.RectangleContainsScreenPoint(cardManager.trash, Input.mousePosition) &&
            draggedPanel != null &&
            draggedPanel.GetModel().GetId() != BehaviorCards.GetMiscPanelId());
 }