public void DispatchPart(ShipBuilderPart part, ShipBuilder.TransferMode mode) { var culledInfo = ShipBuilder.CullSpatialValues(part.info); if (!builderPartDict.ContainsKey(culledInfo)) { int size = ResourceManager.GetAsset <PartBlueprint>(part.info.partID).size; ShipBuilderInventoryScript builderPartDictInvButton = Instantiate(buttonPrefab, contentsArray[size]).GetComponent <ShipBuilderInventoryScript>(); builderPartDict.Add(culledInfo, builderPartDictInvButton); contentTexts[size].SetActive(true); builderPartDict[culledInfo].part = culledInfo; builderPartDict[culledInfo].cursor = cursorScript; } builderPartDict[culledInfo].IncrementCount(); cursorScript.buildValue -= EntityBlueprint.GetPartValue(part.info); cursorScript.parts.Remove(part); Destroy(part.gameObject); }
private void AddPart(EntityBlueprint.PartInfo part) { if (!builderPartDict.ContainsKey(part)) { int size = ResourceManager.GetAsset <PartBlueprint>(part.partID).size; ShipBuilderInventoryScript invButton = Instantiate(buttonPrefab, contentsArray[size]).GetComponent <ShipBuilderInventoryScript>(); builderPartDict.Add(part, invButton); contentTexts[size].SetActive(true); invButton.part = part; invButton.cursor = cursorScript; invButton.IncrementCount(); invButton.mode = BuilderMode.Yard; } else { builderPartDict[part].IncrementCount(); } }
public void DispatchPart(ShipBuilderPart part, TransferMode transferMode) { var culledInfo = CullSpatialValues(part.info); Dictionary <EntityBlueprint.PartInfo, ShipBuilderInventoryScript> dict; Transform[] dictContentsArray; GameObject[] dictContentTexts; switch (transferMode) { case TransferMode.Sell: cursorScript.buildCost -= EntityBlueprint.GetPartValue(part.info); dictContentsArray = traderContentsArray; dict = traderPartDict; dictContentTexts = traderContentTexts; break; case TransferMode.Buy: dictContentsArray = contentsArray; dict = partDict; dictContentTexts = contentTexts; break; default: // transfer back to original inventory if (part.mode == BuilderMode.Trader) { cursorScript.buildCost -= EntityBlueprint.GetPartValue(part.info); } dict = (part.mode == BuilderMode.Yard ? partDict : traderPartDict); dictContentsArray = (part.mode == BuilderMode.Yard ? contentsArray : traderContentsArray); dictContentTexts = (part.mode == BuilderMode.Yard ? contentTexts : traderContentTexts); break; } if (!dict.ContainsKey(culledInfo)) { int size = ResourceManager.GetAsset <PartBlueprint>(part.info.partID).size; ShipBuilderInventoryScript dictInvButton = Instantiate(buttonPrefab, dictContentsArray[size]).GetComponent <ShipBuilderInventoryScript>(); switch (transferMode) // set the new button's transfer mode { case TransferMode.Buy: dictInvButton.mode = BuilderMode.Yard; break; case TransferMode.Sell: dictInvButton.mode = BuilderMode.Trader; break; case TransferMode.Return: dictInvButton.mode = part.mode; break; } dict.Add(culledInfo, dictInvButton); dictContentTexts[size].SetActive(true); dict[culledInfo].part = culledInfo; dict[culledInfo].cursor = cursorScript; } dict[culledInfo].IncrementCount(); cursorScript.buildValue -= EntityBlueprint.GetPartValue(part.info); cursorScript.parts.Remove(part); Destroy(part.gameObject); }