public static string SerializeActionBar(ActionBarSerialization abs) { string result = ""; for (int i = 0; i < abs.grid.Count; i++) { if (abs.grid[i].transform.GetChild(0).childCount > 0) { //if we are here, it means that this slot has assigned item result += "1"; result += abs.grid[i].GetComponent <ActionBarSlot>().originalItem.itemX; result += abs.grid[i].GetComponent <ActionBarSlot>().originalItem.itemY; } else { result += "000"; } } return(result); }
public static void DeserializeActionBar(string actionBar, Inventory inventory, ActionBarSerialization abs) { bool noItem = false; int currentX = -5; int currentY = -5; int currentActionBarSlot = -1; for (int i = 0; i < actionBar.Length; i++) { if (i % 3 == 0) { currentActionBarSlot++; if (actionBar[i] == '0') { noItem = true; } else { noItem = false; } } else if (i % 3 == 1) { if (!noItem) { currentX = (int)Char.GetNumericValue(actionBar[i]); } } else if (i % 3 == 2) { if (!noItem) { currentY = (int)Char.GetNumericValue(actionBar[i]); inventory.MousePickItem(inventory.FindItem(currentX, currentY)); inventory.MousePutDownOnActionBar(abs.grid[currentActionBarSlot].GetComponent <ActionBarSlot>()); } } } }