Ejemplo n.º 1
0
    public override void SetupPorts()
    {
        CraftingNode node = myNode as CraftingNode;

        for (int i = 0; i < node.inputs.Count; i++)
        {
            inputPorts.Add(
                Instantiate(inputPortPrefab, inputParent).GetComponent <NodePortGfx>()
                .Setup(
                    this,
                    NodePortGfx.PortType.craftInput,
                    node.inputs[i].count
                    )
                );
        }

        for (int i = 0; i < node.outputs.Count; i++)
        {
            outputPorts.Add(
                Instantiate(outputPortPrefab, outputParent).GetComponent <NodePortGfx>()
                .Setup(
                    this,
                    NodePortGfx.PortType.craftOutput,
                    node.outputs[i].count
                    )
                );
        }

        AddPort(true);
        AddPort(false);
    }
Ejemplo n.º 2
0
    public CraftingNode AddCraftingNode(Vector3 pos)
    {
        var craftNode = new CraftingNode(GetNextId(), recipeSetUniqueName);

        myCraftingNodes.Add(craftNode);
        return(craftNode);
    }
 public void SetUp(CraftingNode _cp, GUI_CraftingController c)
 {
     myCraftingNode = _cp;
     progress       = 0;
     timeReq        = myCraftingNode.timeCost;
     myItem         = DataHolder.s.GetItem(DataHolder.s.GetConnections(myCraftingNode, false)[0].itemUniqueName);
     myImg.sprite   = myItem.GetSprite();
     cont           = c;
 }
    public void CreateItemNodeAtPosition(PointerEventData data)
    {
        var originalObj = data.pointerDrag;

        if (originalObj == null)
        {
            return;
        }

        var dragMe = originalObj.GetComponent <DragMe>();

        if (dragMe == null)
        {
            return;
        }

        var myItem = dragMe.myItem;

        if (myItem == null)
        {
            return;
        }
        GameObject node;

        lastIdGiven += 1;
        if (myItem.uniqueName == "CraftingProcess")
        {
            node = Instantiate(CraftingNodePrefab, NodeParent);
            var craftingNode = new CraftingNode(lastIdGiven);
            myRecipeSet.myCraftingNodes.Add(craftingNode);
            node.GetComponent <CraftingNodeGfx>().SetUp(this, craftingNode);
            node.GetComponent <CraftingNodeGfx>().SetupPorts();
            node.GetComponent <CraftingNodeGfx>().PositionUpdated();
        }
        else
        {
            node = Instantiate(ItemNodePrefab, NodeParent);
            var itemNode = new ItemNode(lastIdGiven, myItem);
            myRecipeSet.myItemNodes.Add(itemNode);
            node.GetComponent <ItemNodeGfx>().SetUp(this, itemNode);
            node.GetComponent <ItemNodeGfx>().SetupPorts();
            node.GetComponent <ItemNodeGfx>().PositionUpdated();
        }

        allNodeGfxs.Add(node.GetComponent <NodeGfx>());
        //node.transform.position = mycam.ScreenToWorldPoint(data.position);
        node.transform.position   = data.position;
        node.transform.position   = new Vector3(node.transform.position.x, node.transform.position.y, 0);
        node.transform.localScale = Vector3.one;
    }
Ejemplo n.º 5
0
    public override void SetupConnections()
    {
        CraftingNode node = myNode as CraftingNode;

        for (int i = 0; i < node.inputs.Count; i++)
        {
            inputPorts[i].AddConnection(myMaster.GetNodeGfxFromNode(node.inputs[i].itemNode as Node).GetNextEmptyNode(false));
        }

        for (int i = 0; i < node.outputs.Count; i++)
        {
            outputPorts[i].AddConnection(myMaster.GetNodeGfxFromNode(node.outputs[i].itemNode as Node).GetNextEmptyNode(true));
        }

        RebuildLayout();
    }
Ejemplo n.º 6
0
    public void SetUp(RecipeTreeMaster master, CraftingNode node)
    {
        base.SetUp(master, node);

        myNode = node;

        if (dropDownOptions == null)
        {
            craftingTypes   = (CraftingNode.CraftingTypes[])Enum.GetValues(typeof(CraftingNode.CraftingTypes));
            dropDownOptions = new string[craftingTypes.Length];
            for (int i = 0; i < craftingTypes.Length; i++)
            {
                dropDownOptions[i] = craftingTypes[i].ToString();
            }
        }
        craftingTypeRegion.SetUp(ValueRegion.type.craftingType, dropDownOptions, this, (int)node.myCraftingType);
        craftingTierRegion.SetUp(ValueRegion.type.craftingTier, null, this, node.tier);
        timeCostRegion.SetUp(ValueRegion.type.timeCost, null, this, node.craftingTime);
    }
Ejemplo n.º 7
0
    public void ReDrawnNode(RecipeTreeViewer master, CraftingNode node)
    {
        base.ReDrawnNode(master, node);

        myNode = node;

        if (dropDownOptions == null)
        {
            craftingTypes   = (CraftingNode.cTypes[])Enum.GetValues(typeof(CraftingNode.cTypes));
            dropDownOptions = new string[craftingTypes.Length];
            for (int i = 0; i < craftingTypes.Length; i++)
            {
                dropDownOptions[i] = craftingTypes[i].ToString();
            }
        }
        craftingTypeRegion.SetUp(ValueRegion.type.craftingType, true, "Crafting Type", dropDownOptions, this, (int)node.CraftingType);
        craftingTierRegion.SetUp(ValueRegion.type.craftingTier, true, "Crafting Tier", null, this, node.tier);
        timeCostRegion.SetUp(ValueRegion.type.timeCost, true, "Time Cost", null, this, node.timeCost);

        UpdateVisuals();
    }
Ejemplo n.º 8
0
    /// <summary>
    /// Get Adapter connections as a list of counted items
    /// use "isLeft == true" for inputs and vice versa for outputs
    /// </summary>
    /// <param name="craftingNode"></param>
    /// <param name="isLeft"></param>
    /// <returns></returns>
    public List <CountedItem> GetConnections(CraftingNode craftingNode, bool isLeft)
    {
        var countedItems = new List <CountedItem>();

        for (int i = 0; i < craftingNode.myAdapters.Count; i++)
        {
            var myAdapter = craftingNode.myAdapters[i];
            if (myAdapter.isLeftAdapter == isLeft)
            {
                for (int n = 0; n < myAdapter.connections.Count; n++)
                {
                    var myConnection = myAdapter.connections[n];
                    countedItems.Add(new CountedItem()
                    {
                        itemUniqueName = GetItemNode(myConnection.recipeSetName, myConnection.nodeId).itemUniqueName, count = myConnection.count
                    });
                }
            }
        }

        return(countedItems);
    }
Ejemplo n.º 9
0
    public void UpdateVisuals()
    {
        bool         isLegal = false;
        CraftingNode node    = (myNode as CraftingNode);

        switch (node.myCraftingType)
        {
        case CraftingNode.CraftingTypes.Miner:
            if (node.inputs.Count == 0 && node.outputs.Count == 1)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[0];
            break;

        case CraftingNode.CraftingTypes.Furnace:
            if (true)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[1];
            break;

        case CraftingNode.CraftingTypes.ProcessorSingle:
            if (node.inputs.Count == 1)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[2];
            break;

        case CraftingNode.CraftingTypes.ProcessorDouble:
            if (node.inputs.Count == 2)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[3];
            break;

        case CraftingNode.CraftingTypes.Press:
            if (node.inputs.Count == 1 && node.outputs.Count == 1)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[4];
            break;

        case CraftingNode.CraftingTypes.Coiler:
            if (node.inputs.Count == 1 && node.outputs.Count == 1)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[5];
            break;

        case CraftingNode.CraftingTypes.Cutter:
            if (node.inputs.Count == 1 && node.outputs.Count == 1)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[6];
            break;

        case CraftingNode.CraftingTypes.Lab:
            if (true)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[7];
            break;

        case CraftingNode.CraftingTypes.Building:
            if (node.outputs.Count == 1)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[8];
            break;
        }

        if (!isLegal)
        {
            SetNonLegalColor();
        }

        craftingName.text = node.myCraftingType.ToString() + " Process";
    }
Ejemplo n.º 10
0
    public void UpdateVisuals()
    {
        bool         isLegal = false;
        CraftingNode node    = (myNode as CraftingNode);

        var inputCount  = node.GetAdapterConnectionCount(true);
        var outputCount = node.GetAdapterConnectionCount(false);

        switch (node.CraftingType)
        {
        case CraftingNode.cTypes.Miner:
            // for miner we want zero inputs and a single ore as output
            if (inputCount == 0 && outputCount == 1)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[0];
            break;

        case CraftingNode.cTypes.Furnace:
            if (true)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[1];
            break;

        case CraftingNode.cTypes.ProcessorSingle:
            if (inputCount == 1 && outputCount > 0)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[2];
            break;

        case CraftingNode.cTypes.ProcessorDouble:
            if (inputCount == 2 && outputCount > 0)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[3];
            break;

        case CraftingNode.cTypes.Press:
            if (inputCount == 1 && outputCount == 1)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[4];
            break;

        case CraftingNode.cTypes.Coiler:
            if (inputCount == 1 && outputCount == 1)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[5];
            break;

        case CraftingNode.cTypes.Cutter:
            if (inputCount == 1 && outputCount == 1)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[6];
            break;

        case CraftingNode.cTypes.Lab:
            if (true)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[7];
            break;

        case CraftingNode.cTypes.Building:
            if (outputCount == 1)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[8];
            break;

        case CraftingNode.cTypes.House:
            if (inputCount > 0 && outputCount == 0)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[9];
            break;

        case CraftingNode.cTypes.Farm:
            if (outputCount > 0)
            {
                isLegal = true;
            }
            background.color = craftingTypeColors[10];
            break;
        }

        if (!isLegal)
        {
            SetNonLegalColor();
        }

        craftingName.text = node.CraftingType.ToString() + " Process";
    }