public void loadIAP() { if (File.Exists(Application.persistentDataPath + "/purchases.dat")) { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Open(Application.persistentDataPath + "/purchases.dat", FileMode.Open); IAPData data = null; try { data = (IAPData)bf.Deserialize(file); } catch (Exception e) { Debug.LogError("Failed to load IAP: " + e.Message); } file.Close(); knifeCollectionPurchased = data.knifeCollectionPurchased; knifeID = data.knifeID; saberColor = data.saberColor; x3Time = data.x3Time; x7Time = data.x7Time; x2Time = data.x2Time; saveVersion(); } }
public void saveIAP() { BinaryFormatter bf = new BinaryFormatter(); FileStream file = File.Create(Application.persistentDataPath + "/purchases.dat"); IAPData data = new IAPData(); data.knifeCollectionPurchased = knifeCollectionPurchased; data.knifeID = knifeID; data.saberColor = saberColor; if (x3Time < 0) { x3Time = 0; } if (x7Time < 0) { x7Time = 0; } if (x2Time < 0) { x2Time = 0; } data.x3Time = x3Time; data.x7Time = x7Time; data.x2Time = x2Time; bf.Serialize(file, data); file.Close(); }
public override void Write(object obj, ES2Writer writer) { IAPData data = (IAPData)obj; writer.Write(data.Receipt); writer.Write(data.LocalItemId); writer.Write((int)data.State); writer.Write(data.UpdateTime); writer.Write(data.tokens); writer.Write(data.StoreSpecificId); writer.Write(data.TransactionId); }
public void ResetData(IAPData newData) { data = newData; if (display_name != null) { display_name.text = newData.name; } if (price != null) { int pricebase = 100; price.text = "$ " + newData.price / pricebase + "." + newData.price % pricebase; } if (description != null) { description.text = "" + newData.description; } if (sprite != null) { sprite.sprite = CatfePlayerScript.script.GetDecorationSprite(newData.sprite); } }
public static void DrawListOfIAPData(string caption, List <IAPData> list, ref bool dirty) { if (list == null) { return; } contentColor = GUI.contentColor; backgroundColor = GUI.backgroundColor; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(caption, GUILayout.Width(100)); GUI.backgroundColor = greenColor; if (GUILayout.Button("Add", GUILayout.Width(60))) { list.Add(new IAPData(StoreType.All, "")); dirty = true; } GUI.backgroundColor = backgroundColor; EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); GUILayout.Space(30); EditorGUILayout.BeginVertical(); int removedIndex = -1; for (int i = 0; i < list.Count; ++i) { IAPData element = list[i]; EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Store: ", GUILayout.Width(60)); StoreType oldStore = element.store; element.store = (StoreType)EditorGUILayout.EnumPopup(element.store, GUILayout.Width(60)); if (oldStore != element.store) { dirty = true; } string oldId = element.iapId; element.iapId = EditorGUILayout.TextField(element.iapId, GUILayout.Width(250)); if (oldId != element.iapId) { dirty = true; } GUILayout.Space(20); GUI.backgroundColor = redColor; if (GUILayout.Button("Delete this entry", GUILayout.Width(100))) { removedIndex = i; } GUI.backgroundColor = backgroundColor; EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndVertical(); EditorGUILayout.EndHorizontal(); if (removedIndex != -1) { list.RemoveAt(removedIndex); dirty = true; } }
bool DrawLoadService() { contentColor = GUI.contentColor; backgroundColor = GUI.backgroundColor; EditorGUILayout.BeginHorizontal(); GUI.backgroundColor = EditorHelpers.orangeColor; if (GUILayout.Button("Load", GUILayout.Width(60))) { LoadData(); } GUI.backgroundColor = EditorHelpers.yellowColor; if (GUILayout.Button("New", GUILayout.Width(60))) { ItemConfigData newData = new ItemConfigData(); newData.id = "New Item " + newItemNameSufix.ToString(); ++newItemNameSufix; EditorHelpers.allItems.Insert(0, newData); EditorHelpers.InitItemConfigNames(); selectedItemIndex = 0; itemData = newData; ShowNotification(new GUIContent("New Item added.")); dirty = true; } GUI.backgroundColor = EditorHelpers.greenColor; if (GUILayout.Button("Save", GUILayout.Width(60))) { Save(); } GUI.backgroundColor = backgroundColor; EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); if (EditorHelpers.allItems == null) { EditorGUILayout.HelpBox("It seems that there is no data... try reopening the editor.", MessageType.Error); return(false); } iapCreatorSectionOpened = EditorGUILayout.Foldout(iapCreatorSectionOpened, "iAP Creator"); if (iapCreatorSectionOpened) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("iAP Name:", GUILayout.Width(100)); iapName = EditorGUILayout.TextField(iapName, GUILayout.Width(250)); if (GUILayout.Button("Create", GUILayout.Width(70))) { if (iapName.Length > 0) { bool exists = false; foreach (var id in EditorHelpers.allIAPs) { if (id.id == iapName) { ShowNotification(new GUIContent("iAP with id (" + iapName + ") already exists.")); exists = true; break; } } if (!exists) { IAPConfigData newiAP = new IAPConfigData(); newiAP.id = iapName; newiAP.name = iapName; var newIAPData = new IAPData(StoreType.All, iapName); newiAP.iapData.Add(newIAPData); EditorHelpers.allIAPs.Add(newiAP); EditorHelpers.InitIAPNames(true); ShowNotification(new GUIContent("New iAP created.")); if (EditorHelpers.allIAPs.Count > 0) { EditorHelpers.gameDB.DeleteAllConfigs(EditorHelpers.allIAPs[0].GetTableName()); } foreach (var p in EditorHelpers.allIAPs) { EditorHelpers.gameDB.SaveConfig(p.GetTableName(), p.id, LitJson.JsonMapper.ToJson(p)); } EditorHelpers.gameDB.IncrementLocalDBVersion(); } } else { ShowNotification(new GUIContent("iAP must have a name.")); } } EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); } if (EditorHelpers.DrawItemsFilter("Item Filter:")) { selectedItemIndex = -1; itemData = null; } if (EditorHelpers.allItems.Count > 0) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Items:", GUILayout.Width(100)); int oldIntValue = selectedItemIndex; selectedItemIndex = EditorGUILayout.Popup(oldIntValue, EditorHelpers.itemConfigNames, GUILayout.Width(250)); if (oldIntValue != selectedItemIndex) { itemData = EditorHelpers.allItems[selectedItemIndex]; } if (itemData != null) { GUI.backgroundColor = EditorHelpers.redColor; if (GUILayout.Button("Delete", GUILayout.Width(70))) { if (EditorUtility.DisplayDialog("Deleting Item!", "Are you sure you want to delete parameter '" + itemData.id + "'?", "Yes, Delete it.", "No!")) { EditorHelpers.gameDB.DeleteConfig(itemData.GetTableName(), itemData.id); EditorHelpers.allItems.Remove(itemData); EditorHelpers.InitItemConfigNames(); selectedItemIndex = -1; itemData = null; ShowNotification(new GUIContent("Item deleted.")); return(false); } } GUI.backgroundColor = EditorHelpers.blueColor; if (GUILayout.Button("Duplicate", GUILayout.Width(100))) { ItemConfigData newData = itemData.Clone() as ItemConfigData; newData.id = itemData.id + "(Clone)"; EditorHelpers.allItems.Insert(0, newData); EditorHelpers.InitItemConfigNames(); selectedItemIndex = 0; itemData = newData; ShowNotification(new GUIContent("Item duplicated.")); dirty = true; } GUI.backgroundColor = backgroundColor; } EditorGUILayout.EndHorizontal(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); EditorGUILayout.Separator(); } return(itemData != null); }