private void BlueprintClicked(BlueprintButton sender) { //craftTimer = new Timer_Bar(new Size(200,15), new TimeSpan(0,0,0,10)); if (_playerManager != null) if (_playerManager.ControlledEntity != null) if (_playerManager.ControlledEntity.HasComponent(ComponentFamily.Inventory)) { var invComp = (InventoryComponent) _playerManager.ControlledEntity.GetComponent(ComponentFamily.Inventory); if (!invComp.ContainsEntity(sender.Compo1) || !invComp.ContainsEntity(sender.Compo2)) { _craftStatus.Text = "Status: You do not have the required items."; _craftStatus.Color = Color.DarkRed; } else { _craftSlot1.SetEntity(invComp.GetEntity(sender.Compo1)); _craftSlot2.SetEntity(invComp.GetEntity(sender.Compo2)); CraftButtonClicked(null); //This is pretty dumb but i hate duplicate code. } } }
private void AddBlueprint(NetIncomingMessage message) { string compo1Temp = message.ReadString(); string compo1Name = message.ReadString(); string compo2Temp = message.ReadString(); string compo2Name = message.ReadString(); string resultTemp = message.ReadString(); string resultName = message.ReadString(); _craftStatus.Text = "Status: You successfully create '" + resultName + "'"; _craftStatus.Color = Color.Green; foreach (BlueprintButton bpbutt in _blueprints.components) { var req = new List<string> {compo1Temp, compo2Temp}; if (req.Exists(x => x.ToLowerInvariant() == bpbutt.Compo1.ToLowerInvariant())) req.Remove(req.First(x => x.ToLowerInvariant() == bpbutt.Compo1.ToLowerInvariant())); if (req.Exists(x => x.ToLowerInvariant() == bpbutt.Compo2.ToLowerInvariant())) req.Remove(req.First(x => x.ToLowerInvariant() == bpbutt.Compo2.ToLowerInvariant())); if (!req.Any()) return; } var newBpb = new BlueprintButton(compo1Temp, compo1Name, compo2Temp, compo2Name, resultTemp, resultName, _resourceManager); newBpb.Update(0); newBpb.Clicked += BlueprintClicked; newBpb.Position = new Point(0, _blueprintsOffset); _blueprintsOffset += newBpb.ClientArea.Height; _blueprints.components.Add(newBpb); }