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