private void AddTopicControls(CraftType craft) { var metadata = craft.Metadata(); AddControl(new Overlay(metadata.Overlay)); AddControl(new Label(24, 5, metadata.Name, Font.Large, ColorScheme.LightPurple)); var nextDescriptionTop = 40; foreach (var descriptionLine in metadata.DescriptionLines) { var top = nextDescriptionTop; nextDescriptionTop += 8; AddControl(new Label(top, 5, descriptionLine, Font.Normal, ColorScheme.LightPurple)); } var left = metadata.ShowStatsOnBottom ? 5 : 160; var nextStatTop = metadata.ShowStatsOnBottom ? 110 : 5; var stats = new[] { Tuple.Create("MAXIMUM SPEED>", metadata.Speed), Tuple.Create("ACCELERATION>", metadata.Acceleration), Tuple.Create("FUEL CAPACITY>", metadata.Fuel), Tuple.Create("WEAPON PODS>", metadata.WeaponCount), Tuple.Create("CARGO SPACE>", metadata.Space), Tuple.Create("HWP CAPACITY>", metadata.HwpCount) }; foreach (var stat in stats) { var top = nextStatTop; nextStatTop += 8; AddControl(new Label(top, left, stat.Item1, Font.Normal, ColorScheme.LightPurple)); AddControl(new Label(top, left + Font.Normal.MeasureString(stat.Item1) - 1, stat.Item2.FormatNumber(), Font.Normal, ColorScheme.LightAqua)); } }
protected override void OnLoad(ConfigNode configNode) { base.OnLoad(configNode); url = ConfigNodeUtil.ParseValue<string>(configNode, "url"); craftType = ConfigNodeUtil.ParseValue<CraftType>(configNode, "craftType"); }
internal override void InternalDeserialize(NetIncomingMessage lidgrenMsg) { base.InternalDeserialize(lidgrenMsg); CraftType = (CraftType)lidgrenMsg.ReadInt32(); CraftName = lidgrenMsg.ReadString(); }
protected override void OnLoad(ConfigNode configNode) { base.OnLoad(configNode); url = ConfigNodeUtil.ParseValue <string>(configNode, "url"); craftType = ConfigNodeUtil.ParseValue <CraftType>(configNode, "craftType"); }
private static void SaveCraftFile(CraftType craftType, string craftName, byte[] craftData) { var savePath = ""; switch (craftType) { case CraftType.Vab: savePath = System.VabPath; break; case CraftType.Sph: savePath = System.SphPath; break; case CraftType.Subassembly: savePath = System.SubassemblyPath; break; } if (!Directory.Exists(savePath)) { Directory.CreateDirectory(savePath); } var craftFile = CommonUtil.CombinePaths(savePath, $"{craftName}.craft"); File.WriteAllBytes(craftFile, craftData); ScreenMessages.PostScreenMessage($"Craft {craftName} saved!", 5f, ScreenMessageStyle.UPPER_CENTER); }
public void Craft_Microwave(MicrowaveController microwave, Item hand, CraftType craftType, CraftTable craftTable) { if (microwave.isOpen && microwave.itemInside) { microwave.Close(); } else if (!microwave.isOpen && microwave.itemInside) { StartCoroutine(microwave.Work()); ItemCraftData recept = FindRecept(hand, microwave.itemInside, craftType, craftTable); if (recept == null) { Debug.Log("no recept"); return; } Item craftResult = recept.recept.craftResult; Debug.Log(craftResult.itemName); microwave.itemInside = craftResult; AddExpReward(recept); } }
private void DrawUploadScreen() { foreach (KeyValuePair <CraftType, List <string> > entryType in uploadList) { GUILayout.Label(entryType.Key.ToString(), labelStyle); foreach (string entryName in entryType.Value) { if (playerList.ContainsKey(dmpSettings.playerName)) { if (playerList[dmpSettings.playerName].ContainsKey(entryType.Key)) { if (playerList[dmpSettings.playerName][entryType.Key].Contains(entryName)) { GUI.enabled = false; } } } if (GUILayout.Button(entryName, buttonStyle)) { uploadCraftType = entryType.Key; uploadCraftName = entryName; } GUI.enabled = true; } } }
private void SaveCraftFile(CraftType craftType, string craftName, byte[] craftData) { string savePath = ""; switch (craftType) { case CraftType.VAB: savePath = vabPath; break; case CraftType.SPH: savePath = sphPath; break; case CraftType.SUBASSEMBLY: savePath = subassemblyPath; break; } if (!Directory.Exists(savePath)) { Directory.CreateDirectory(savePath); } string craftFile = Path.Combine(savePath, craftName + ".craft"); File.WriteAllBytes(craftFile, craftData); ScreenMessages.PostScreenMessage("Craft " + craftName + " saved!", 5f, ScreenMessageStyle.UPPER_CENTER); }
/// <summary>Sets the selected value of the specified list.</summary> /// <param name="listId">The list identifier.</param> /// <param name="value">The value to select.</param> public override void SetListValue(String listId, String value) { this._type = value; this._craftType = Enum.TryParse <CraftType>(value, ignoreCase: true, result: out var craftType) ? craftType : default; }
public static string ToNiceString(this CraftType type) { return(type switch { CraftType.Bake => "Bakeable", CraftType.Chop => "Choppable", _ => type.ToString() });
private static void DownloadCraftFile(string playerName, CraftType craftType, string craftName) { System.MessageSender.SendMessage(new CraftLibraryRequestMsgData { PlayerName = SettingsSystem.CurrentSettings.PlayerName, RequestedType = craftType, CraftOwner = playerName, RequestedName = craftName }); }
void AddExpReward(ItemCraftData itemCraftData) { CraftType craftType = itemCraftData.craftType; float exp = itemCraftData.expReward; if (craftType == CraftType.Cooking) { skillsInit.cooking.AddExp(exp); } }
public bool Craft_Table(RaycastHit2D[] hits, Item tool, CraftType craftType, CraftTable craftTable) { GameObject GameObjOnTable = GetGameObjOnTable(hits); if (GameObjOnTable == null) { Debug.Log("TableIsEmpty"); return(false); } Item itemOnTabe = GameObjOnTable.GetComponent <ItemCell>().item; ItemCraftData recept = FindRecept(tool, itemOnTabe, craftType, craftTable); if (recept == null) { Debug.Log("no recept"); return(false); } if (!IsSuitableMinLvl(recept)) { Debug.Log("recept lvl bigger then skill lvl"); return(false); } Item craftResult = recept.recept.craftResult; // для вызова actionWindow if (itemOnTabe.itemOptionData.actionWindowTag != string.Empty) { Item _itemOnTabe = Instantiate(itemOnTabe); Item _craftResult = Instantiate(craftResult); ActionWindowController actionWindow = Global.Component.GetActionWindowController(); actionWindow.OpenActionWindow(itemOnTabe.itemOptionData.actionWindowTag); actionWindow.InitActioWindow(itemOnTabe.itemOptionData.actionWindowTag, GameObjOnTable, _itemOnTabe, _craftResult); //UpdateGameObjItem(GameObjOnTable, craftResult); return(recept.removeTool); } UpdateGameObjItem(GameObjOnTable, craftResult); AddExpReward(recept); return(recept.removeTool); }
public CraftRecipe(int id, string name, bool isNeedLearn, CraftType type, int[] needItemIDs, int[] needItemCount, int[] getItemIDs, int[] getItemCount) { this.ID = id; this.Name = name; this.IsNeedLearn = isNeedLearn; this.Type = type; this.NeedItemIDs = needItemIDs; this.NeedItemCount = needItemCount; this.GetItemIDs = getItemIDs; this.GetItemCount = getItemCount; }
private static void DownloadCraftFile(string playerName, CraftType craftType, string craftName) { var msgData = NetworkMain.CliMsgFactory.CreateNewMessageData <CraftLibraryRequestMsgData>(); msgData.PlayerName = SettingsSystem.CurrentSettings.PlayerName; msgData.RequestedType = craftType; msgData.CraftOwner = playerName; msgData.RequestedName = craftName; System.MessageSender.SendMessage(msgData); }
private void DownloadCraftFile(string playerName, CraftType craftType, string craftName) { using (MessageWriter mw = new MessageWriter()) { mw.Write <int>((int)CraftMessageType.REQUEST_FILE); mw.Write <string>(dmpSettings.playerName); mw.Write <string>(playerName); mw.Write <int>((int)craftType); mw.Write <string>(craftName); networkWorker.SendCraftLibraryMessage(mw.GetMessageBytes()); } }
public CraftBuilding(StructureSize size, CraftType craft) : base(size) { Craft = craft; // Hardcoded construction of workable materials usableItems = new List <ItemType>(); if (craft == CraftType.CARPENTERY) { usableItems.Add(ItemType.WOOD_PINE); } }
bool IsSuitableMinLvl(ItemCraftData itemCraftData) { CraftType craftType = itemCraftData.craftType; int minCraftLvl = itemCraftData.craftMinLVL; if (craftType == CraftType.Cooking && skillsInit.cooking.GetSkillLvl() >= minCraftLvl) { return(true); } return(false); }
public void Deserialize(NetIncomingMessage lidgrenMsg) { FolderName = lidgrenMsg.ReadString(); CraftName = lidgrenMsg.ReadString(); CraftType = (CraftType)lidgrenMsg.ReadInt32(); NumBytes = lidgrenMsg.ReadInt32(); if (Data.Length < NumBytes) { Data = new byte[NumBytes]; } lidgrenMsg.ReadBytes(Data, 0, NumBytes); }
internal override void InternalDeserialize(NetIncomingMessage lidgrenMsg) { base.InternalDeserialize(lidgrenMsg); UploadType = (CraftType)lidgrenMsg.ReadInt32(); UploadName = lidgrenMsg.ReadString(); NumBytes = lidgrenMsg.ReadInt32(); if (CraftData.Length < NumBytes) { CraftData = new byte[NumBytes]; } lidgrenMsg.ReadBytes(CraftData, 0, NumBytes); }
public void Deserialize(NetIncomingMessage lidgrenMsg) { FolderName = lidgrenMsg.ReadString(); CraftName = lidgrenMsg.ReadString(); CraftType = (CraftType)lidgrenMsg.ReadInt32(); NumBytes = lidgrenMsg.ReadInt32(); if (Data.Length < NumBytes) { Data = new byte[NumBytes]; } lidgrenMsg.ReadBytes(Data, 0, NumBytes); Common.ThreadSafeDecompress(this, ref Data, NumBytes, out NumBytes); }
private void UploadCraftFile(CraftType type, string name) { string uploadPath = ""; switch (uploadCraftType) { case CraftType.VAB: uploadPath = vabPath; break; case CraftType.SPH: uploadPath = sphPath; break; case CraftType.SUBASSEMBLY: uploadPath = subassemblyPath; break; default: break; } string filePath = Path.Combine(uploadPath, name + ".craft"); if (File.Exists(filePath)) { byte[] fileData = File.ReadAllBytes(filePath); using (MessageWriter mw = new MessageWriter()) { mw.Write <int>((int)CraftMessageType.UPLOAD_FILE); mw.Write <string>(dmpSettings.playerName); mw.Write <int>((int)type); mw.Write <string>(name); mw.Write <byte[]>(fileData); networkWorker.SendCraftLibraryMessage(mw.GetMessageBytes()); AddCraftEntry(dmpSettings.playerName, uploadCraftType, uploadCraftName); displayCraftUploadingMessage = true; } } else { DarkLog.Debug("Cannot upload file, " + filePath + " does not exist!"); } }
private void AddCraftEntry(string playerName, CraftType craftType, string craftName) { if (!playersWithCrafts.Contains(playerName)) { playersWithCrafts.Add(playerName); } if (!playerList.ContainsKey(playerName)) { playerList.Add(playerName, new Dictionary <CraftType, List <string> >()); } if (!playerList[playerName].ContainsKey(craftType)) { playerList[playerName].Add(craftType, new List <string>()); } if (!playerList[playerName][craftType].Contains(craftName)) { DarkLog.Debug("Adding " + craftName + ", type: " + craftType.ToString() + " from " + playerName); playerList[playerName][craftType].Add(craftName); } }
private static void AddCraftEntry(string playerName, CraftType craftType, string craftName) { if (!System.PlayersWithCrafts.Contains(playerName)) { System.PlayersWithCrafts.Add(playerName); } if (!System.PlayerList.ContainsKey(playerName)) { System.PlayerList.Add(playerName, new Dictionary <CraftType, List <string> >()); } if (!System.PlayerList[playerName].ContainsKey(craftType)) { System.PlayerList[playerName].Add(craftType, new List <string>()); } if (!System.PlayerList[playerName][craftType].Contains(craftName)) { LunaLog.Log($"[LMP]: Adding {craftName}, type: {craftType} from {playerName}"); System.PlayerList[playerName][craftType].Add(craftName); } }
private static void DeleteCraftEntry(string playerName, CraftType craftType, string craftName) { if (System.PlayerList.ContainsKey(playerName) && System.PlayerList[playerName].ContainsKey(craftType) && System.PlayerList[playerName][craftType].Contains(craftName)) { System.PlayerList[playerName][craftType].Remove(craftName); if (System.PlayerList[playerName][craftType].Count == 0) { System.PlayerList[playerName].Remove(craftType); } if (System.PlayerList[playerName].Count == 0 && playerName != SettingsSystem.CurrentSettings.PlayerName) { System.PlayerList.Remove(playerName); if (System.PlayersWithCrafts.Contains(playerName)) { System.PlayersWithCrafts.Remove(playerName); } } } }
private void DeleteCraftEntry(string playerName, CraftType craftType, string craftName) { if (playerList.ContainsKey(playerName)) { if (playerList[playerName].ContainsKey(craftType)) { if (playerList[playerName][craftType].Contains(craftName)) { playerList[playerName][craftType].Remove(craftName); if (playerList[playerName][craftType].Count == 0) { playerList[playerName].Remove(craftType); } if (playerList[playerName].Count == 0) { if (playerName != dmpSettings.playerName) { playerList.Remove(playerName); if (playersWithCrafts.Contains(playerName)) { playersWithCrafts.Remove(playerName); } } } } else { DarkLog.Debug("Cannot remove craft entry " + craftName + " for player " + playerName + ", craft does not exist"); } } else { DarkLog.Debug("Cannot remove craft entry " + craftName + " for player " + playerName + ", player does not have any " + craftType + " entries"); } } else { DarkLog.Debug("Cannot remove craft entry " + craftName + " for player " + playerName + ", no player entry"); } }
private void UploadCraftFile(CraftType type, string name) { var uploadPath = ""; switch (System.UploadCraftType) { case CraftType.Vab: uploadPath = System.VabPath; break; case CraftType.Sph: uploadPath = System.SphPath; break; case CraftType.Subassembly: uploadPath = System.SubassemblyPath; break; } var filePath = CommonUtil.CombinePaths(uploadPath, $"{name}.craft"); if (File.Exists(filePath)) { var fileData = File.ReadAllBytes(filePath); var msgData = NetworkMain.CliMsgFactory.CreateNewMessageData <CraftLibraryUploadMsgData>(); msgData.PlayerName = SettingsSystem.CurrentSettings.PlayerName; msgData.UploadType = type; msgData.UploadName = name; msgData.CraftData = fileData; msgData.NumBytes = fileData.Length; System.MessageSender.SendMessage(msgData); AddCraftEntry(SettingsSystem.CurrentSettings.PlayerName, System.UploadCraftType, System.UploadCraftName); DisplayCraftUploadingMessage = true; } else { LunaLog.LogError($"[LMP]: Cannot upload file, {filePath} does not exist!"); } }
private void UploadCraftFile(CraftType type, string name) { var uploadPath = ""; switch (System.UploadCraftType) { case CraftType.VAB: uploadPath = System.VabPath; break; case CraftType.SPH: uploadPath = System.SphPath; break; case CraftType.SUBASSEMBLY: uploadPath = System.SubassemblyPath; break; } var filePath = CommonUtil.CombinePaths(uploadPath, name + ".craft"); if (File.Exists(filePath)) { var fileData = File.ReadAllBytes(filePath); System.MessageSender.SendMessage(new CraftLibraryUploadMsgData { PlayerName = SettingsSystem.CurrentSettings.PlayerName, UploadType = type, UploadName = name, CraftData = fileData }); AddCraftEntry(SettingsSystem.CurrentSettings.PlayerName, System.UploadCraftType, System.UploadCraftName); DisplayCraftUploadingMessage = true; } else { Debug.LogError("[LMP]: Cannot upload file, " + filePath + " does not exist!"); } }
ItemCraftData FindRecept(Item tool, Item originItem, CraftType craftType, CraftTable craftTable) { List <ItemCraftData> sameTool = new List <ItemCraftData>(); foreach (var cd in itemCraftData) { if (cd.recept.craftTool.Find(c => c.IsSameItems(tool))) { sameTool.Add(cd); } } List <ItemCraftData> sameType = sameTool .Where(r => r.craftType == craftType) .Where(r => r.craftTable == craftTable).ToList(); ItemCraftData recept = sameType .Where(r => r.recept.ingredients[0].itemName.Equals(originItem.itemName)) .FirstOrDefault(); return(recept); }
private void DrawDownloadScreen() { if (playerList.ContainsKey(selectedPlayer)) { foreach (KeyValuePair <CraftType, List <string> > entry in playerList[selectedPlayer]) { GUILayout.Label(entry.Key.ToString(), labelStyle); foreach (string craftName in entry.Value) { if (selectedPlayer == dmpSettings.playerName) { //Also draw remove button on player screen GUILayout.BeginHorizontal(); if (GUILayout.Button(craftName, buttonStyle)) { downloadCraftType = entry.Key; downloadCraftName = craftName; } if (GUILayout.Button("Remove", buttonStyle)) { deleteCraftType = entry.Key; deleteCraftName = craftName; } GUILayout.EndHorizontal(); } else { if (GUILayout.Button(craftName, buttonStyle)) { downloadCraftType = entry.Key; downloadCraftName = craftName; } } } } } }
private void DownloadCraftFile(string playerName, CraftType craftType, string craftName) { using (MessageWriter mw = new MessageWriter()) { mw.Write<int>((int)CraftMessageType.REQUEST_FILE); mw.Write<string>(Settings.fetch.playerName); mw.Write<string>(playerName); mw.Write<int>((int)craftType); mw.Write<string>(craftName); NetworkWorker.fetch.SendCraftLibraryMessage(mw.GetMessageBytes()); } }
private static TopicMetadata Craft(CraftType craft, params ResearchType[] requiredResearch) { return new TopicMetadata { Name = craft.Metadata().Name, Category = TopicCategory.CraftAndArmament, Scheme = ColorScheme.LightPurple, RequiredResearch = requiredResearch, Subject = craft }; }
public CopyCraftFile(string url, CraftType craftType, State onState, List<string> parameter) : base(onState, parameter) { this.url = url; this.craftType = craftType; }
private void Update() { safeDisplay = display; if (workerEnabled) { while (craftAddQueue.Count > 0) { CraftChangeEntry cce = craftAddQueue.Dequeue(); AddCraftEntry(cce.playerName, cce.craftType, cce.craftName); } while (craftDeleteQueue.Count > 0) { CraftChangeEntry cce = craftDeleteQueue.Dequeue(); DeleteCraftEntry(cce.playerName, cce.craftType, cce.craftName); } while (craftResponseQueue.Count > 0) { CraftResponseEntry cre = craftResponseQueue.Dequeue(); SaveCraftFile(cre.craftType, cre.craftName, cre.craftData); } if (uploadCraftName != null) { UploadCraftFile(uploadCraftType, uploadCraftName); uploadCraftName = null; uploadCraftType = CraftType.VAB; } if (downloadCraftName != null) { DownloadCraftFile(selectedPlayer, downloadCraftType, downloadCraftName); downloadCraftName = null; downloadCraftType = CraftType.VAB; } if (deleteCraftName != null) { DeleteCraftEntry(Settings.fetch.playerName, deleteCraftType, deleteCraftName); using (MessageWriter mw = new MessageWriter()) { mw.Write<int>((int)CraftMessageType.DELETE_FILE); mw.Write<string>(Settings.fetch.playerName); mw.Write<int>((int)deleteCraftType); mw.Write<string>(deleteCraftName); NetworkWorker.fetch.SendCraftLibraryMessage(mw.GetMessageBytes()); } deleteCraftName = null; deleteCraftType = CraftType.VAB; } if (displayCraftUploadingMessage && ((UnityEngine.Time.realtimeSinceStartup - lastCraftMessageCheck) > CRAFT_MESSAGE_CHECK_INTERVAL)) { lastCraftMessageCheck = UnityEngine.Time.realtimeSinceStartup; if (craftUploadMessage != null) { craftUploadMessage.duration = 0f; } if (finishedUploadingCraft) { displayCraftUploadingMessage = false; craftUploadMessage = ScreenMessages.PostScreenMessage("Craft uploaded!", 2f, ScreenMessageStyle.UPPER_CENTER); } else { craftUploadMessage = ScreenMessages.PostScreenMessage("Uploading craft...", 1f, ScreenMessageStyle.UPPER_CENTER); } } } }
private void AddCraftEntry(string playerName, CraftType craftType, string craftName) { if (!playersWithCrafts.Contains(playerName)) { playersWithCrafts.Add(playerName); } if (!playerList.ContainsKey(playerName)) { playerList.Add(playerName, new Dictionary<CraftType, List<string>>()); } if (!playerList[playerName].ContainsKey(craftType)) { playerList[playerName].Add(craftType, new List<string>()); } if (!playerList[playerName][craftType].Contains(craftName)) { DarkLog.Debug("Adding " + craftName + ", type: " + craftType.ToString() + " from " + playerName); playerList[playerName][craftType].Add(craftName); } }
private void DeleteCraftEntry(string playerName, CraftType craftType, string craftName) { if (playerList.ContainsKey(playerName)) { if (playerList[playerName].ContainsKey(craftType)) { if (playerList[playerName][craftType].Contains(craftName)) { playerList[playerName][craftType].Remove(craftName); if (playerList[playerName][craftType].Count == 0) { playerList[playerName].Remove(craftType); } if (playerList[playerName].Count == 0) { if (playerName != Settings.fetch.playerName) { playerList.Remove(playerName); if (playersWithCrafts.Contains(playerName)) { playersWithCrafts.Remove(playerName); } } } } else { DarkLog.Debug("Cannot remove craft entry " + craftName + " for player " + playerName + ", craft does not exist"); } } else { DarkLog.Debug("Cannot remove craft entry " + craftName + " for player " + playerName + ", player does not have any " + craftType + " entries"); } } else { DarkLog.Debug("Cannot remove craft entry " + craftName + " for player " + playerName + ", no player entry"); } }
public static void CraftItem(PlayerSetup.Player player, Room.Room room, string craftItem, CraftType craftType) { CanCraftAsync(player, room, craftItem, craftType); }
private int CountCrafts(CraftType craftType) { return Crafts.Count(craft => craft.CraftType == craftType) + TransferredCrafts.Count(craft => craft.Item.CraftType == craftType); }
private void SaveCraftFile(CraftType craftType, string craftName, byte[] craftData) { string savePath = ""; switch (uploadCraftType) { case CraftType.VAB: savePath = vabPath; break; case CraftType.SPH: savePath = sphPath; break; case CraftType.SUBASSEMBLY: savePath = subassemblyPath; break; } if (!Directory.Exists(savePath)) { Directory.CreateDirectory(savePath); } string craftFile = Path.Combine(savePath, craftName + ".craft"); File.WriteAllBytes(craftFile, craftData); ScreenMessages.PostScreenMessage("Craft " + craftName + " saved!", 5f, ScreenMessageStyle.UPPER_CENTER); }
private void Update() { if (workerEnabled) { while (craftAddQueue.Count > 0) { CraftAddEntry cae = craftAddQueue.Dequeue(); AddCraftEntry(cae.playerName, cae.craftType, cae.craftName); } while (craftDeleteQueue.Count > 0) { CraftDeleteEntry cde = craftDeleteQueue.Dequeue(); DeleteCraftEntry(cde.playerName, cde.craftType, cde.craftName); } while (craftResponseQueue.Count > 0) { CraftResponseEntry cre = craftResponseQueue.Dequeue(); SaveCraftFile(cre.craftType, cre.craftName, cre.craftData); } safeDisplay = display; if (uploadCraftName != null) { UploadCraftFile(uploadCraftType, uploadCraftName); uploadCraftName = null; uploadCraftType = CraftType.VAB; } if (downloadCraftName != null) { DownloadCraftFile(selectedPlayer, downloadCraftType, downloadCraftName); downloadCraftName = null; downloadCraftType = CraftType.VAB; } if (deleteCraftName != null) { DeleteCraftEntry(Settings.fetch.playerName, deleteCraftType, deleteCraftName); using (MessageWriter mw = new MessageWriter()) { mw.Write<int>((int)CraftMessageType.DELETE_FILE); mw.Write<string>(Settings.fetch.playerName); mw.Write<int>((int)deleteCraftType); mw.Write<string>(deleteCraftName); NetworkWorker.fetch.SendCraftLibraryMessage(mw.GetMessageBytes()); } deleteCraftName = null; deleteCraftType = CraftType.VAB; } } }
private void UploadCraftFile(CraftType type, string name) { string uploadPath = ""; switch (uploadCraftType) { case CraftType.VAB: uploadPath = vabPath; break; case CraftType.SPH: uploadPath = sphPath; break; case CraftType.SUBASSEMBLY: uploadPath = subassemblyPath; break; } string filePath = Path.Combine(uploadPath, name + ".craft"); if (File.Exists(filePath)) { byte[] fileData = File.ReadAllBytes(filePath); using (MessageWriter mw = new MessageWriter()) { mw.Write<int>((int)CraftMessageType.UPLOAD_FILE); mw.Write<string>(Settings.fetch.playerName); mw.Write<int>((int)type); mw.Write<string>(name); mw.Write<byte[]>(fileData); NetworkWorker.fetch.SendCraftLibraryMessage(mw.GetMessageBytes()); AddCraftEntry(Settings.fetch.playerName, uploadCraftType, uploadCraftName); ScreenMessages.PostScreenMessage("Uploading " + uploadCraftName, 3f, ScreenMessageStyle.UPPER_CENTER); } } else { DarkLog.Debug("Cannot upload file, " + filePath + " does not exist!"); } }
private void DrawDownloadScreen() { if (playerList.ContainsKey(selectedPlayer)) { foreach (KeyValuePair<CraftType, List<string>> entry in playerList[selectedPlayer]) { GUILayout.Label(entry.Key.ToString(), labelStyle); foreach (string craftName in entry.Value) { if (selectedPlayer == Settings.fetch.playerName) { //Also draw remove button on player screen GUILayout.BeginHorizontal(); if (GUILayout.Button(craftName, buttonStyle)) { downloadCraftType = entry.Key; downloadCraftName = craftName; } if (GUILayout.Button("Remove", buttonStyle)) { deleteCraftType = entry.Key; deleteCraftName = craftName; } GUILayout.EndHorizontal(); } else { if (GUILayout.Button(craftName, buttonStyle)) { downloadCraftType = entry.Key; downloadCraftName = craftName; } } } } } }
private void DrawUploadScreen() { foreach (KeyValuePair<CraftType, List<string>> entryType in uploadList) { GUILayout.Label(entryType.Key.ToString(), labelStyle); foreach (string entryName in entryType.Value) { if (playerList.ContainsKey(Settings.fetch.playerName)) { if (playerList[Settings.fetch.playerName].ContainsKey(entryType.Key)) { if (playerList[Settings.fetch.playerName][entryType.Key].Contains(entryName)) { GUI.enabled = false; } } } if (GUILayout.Button(entryName, buttonStyle)) { uploadCraftType = entryType.Key; uploadCraftName = entryName; } GUI.enabled = true; } } }
public static async Task CanCraftAsync(PlayerSetup.Player player, Room.Room room, string craftItem, CraftType craftType) { if (string.IsNullOrEmpty(craftItem) && craftType == CraftType.Craft) { HubContext.Instance.SendToClient("What do you want to craft?", player.HubGuid); return; } //if (string.IsNullOrEmpty(craftItem)) //{ // HubContext.Instance.SendToClient("What do you want to " + craftType + "?", player.HubGuid); // return; //} var findCraft = Crafting.CraftList().FirstOrDefault(x => x.Name.ToLower().Contains(craftItem.ToLower())); var hasCraft = player.CraftingRecipes.FirstOrDefault(x => x.ToLower().Contains(craftItem.ToLower())); if (hasCraft == null && findCraft == null) { HubContext.Instance.SendToClient("You don't know how to craft that.", player.HubGuid); return; } if (string.IsNullOrEmpty(hasCraft)) { HubContext.Instance.SendToClient("You don't know how to do that.", player.HubGuid); return; } bool hasMaterials = false; if (craftType == CraftType.Craft && findCraft.CraftCommand == CraftType.Craft) { hasMaterials = findCraft != null && HasAllMaterials(player, findCraft.Materials, hasCraft); } else if (craftType == CraftType.Chop && findCraft.CraftCommand == CraftType.Chop) { hasMaterials = findCraft != null && room.items.FirstOrDefault( x => x.name.Equals("Chopping block", StringComparison.CurrentCultureIgnoreCase)) != null && player.Inventory.FirstOrDefault(x => x.weaponType == Item.Item.WeaponType.Axe) != null; if (!hasMaterials) { HubContext.Instance.SendToClient("You don't have all the required materials.", player.HubGuid); return; } } else if (craftType == CraftType.Cook && findCraft.CraftCommand == CraftType.Cook) { var hasIngredients = false; foreach (var item in room.items) { if (findCraft != null && item.description.room.Contains("fire") || findCraft != null && item.description.room.Contains("stove")) { hasIngredients = true; hasMaterials = true; } } if (!hasIngredients) { HubContext.Instance.SendToClient("You don't have all the required ingredients.", player.HubGuid); return; } } else if (craftType == CraftType.Brew && findCraft.CraftCommand == CraftType.Brew) { var hasIngredients = false; foreach (var item in room.items) { if (findCraft != null && item.name.Contains("Alchemists work bench")) { hasIngredients = true; hasMaterials = true; } } if (!hasIngredients) { HubContext.Instance.SendToClient("You don't have all the required components.", player.HubGuid); return; } } else if (craftType == CraftType.Forge && findCraft.CraftCommand == CraftType.Forge) { hasMaterials = findCraft != null && room.items.FirstOrDefault( x => x.name.Equals("Furnace", StringComparison.CurrentCultureIgnoreCase)) != null && HasAllMaterials(player, findCraft.Materials, hasCraft);; if (!hasMaterials) { HubContext.Instance.SendToClient("You don't have all the required materials.", player.HubGuid); return; } } else if (craftType == CraftType.Carve && findCraft.CraftCommand == CraftType.Carve) { hasMaterials = findCraft != null && HasAllMaterials(player, findCraft.Materials, hasCraft); if (room.items.Count == 0 || room.items.FirstOrDefault( x => x.name.Equals("Carpentry work bench", StringComparison.CurrentCultureIgnoreCase)) == null) { HubContext.Instance.SendToClient("You need to be at a Carpentry work bench.", player.HubGuid); return; } } else if (craftType == CraftType.Knitting && findCraft.CraftCommand == CraftType.Knitting) { hasMaterials = findCraft != null && HasAllMaterials(player, findCraft.Materials, hasCraft);; if (room.items.Count == 0 || room.items.FirstOrDefault( x => x.name.Equals("Knitting desk", StringComparison.CurrentCultureIgnoreCase)) == null) { HubContext.Instance.SendToClient("You need to be at a Knitting desk.", player.HubGuid); return; } } if (!hasMaterials) { if (findCraft.CraftCommand != craftType) { HubContext.Instance.SendToClient("You can't do that. try " + findCraft.CraftCommand, player.HubGuid); return; } return; } await CraftItem(player, room, findCraft); }
public static Craft CreateRefueled(CraftType craftType, int number) { return new Craft { Id = GameState.Current.Data.NextCraftId++, CraftType = craftType, Number = number, Damage = 0, Fuel = craftType.Metadata().Fuel, Weapons = new List<CraftWeapon>(), Status = CraftStatus.Ready, SoldierIds = new List<int>(), Stores = Stores.Create() }; }