//this is used to process the incomming data from the item public override void recieveNetworkData(CSteamID steamID, string[] dataSplit) { PlayerNetworkIndividualController playerNetworkIndividualController = GameReference.self.playerNetwork.getIndividualController(steamID); base.recieveNetworkData(steamID, dataSplit); if (dataSplit[1] == "InPlayerHand") { onEnterHandsNetwork(playerNetworkIndividualController); } else if (dataSplit[1] == "OutPlayerHand") { //print(rig.velocity); onExitHandsNetwork(playerNetworkIndividualController, false); transform.parent = null; transform.position = new Vector3(float.Parse(dataSplit[2]), float.Parse(dataSplit[3]), float.Parse(dataSplit[4])); transform.rotation = new Quaternion(float.Parse(dataSplit[5]), float.Parse(dataSplit[6]), float.Parse(dataSplit[7]), float.Parse(dataSplit[8])); rig.velocity = new Vector3(float.Parse(dataSplit[9]), float.Parse(dataSplit[10]), float.Parse(dataSplit[11])); rig.angularVelocity = new Vector3(float.Parse(dataSplit[12]), float.Parse(dataSplit[13]), float.Parse(dataSplit[14])); rig.isKinematic = false; } else if (dataSplit[1] == "Dropped") { onExitHandsNetwork(playerNetworkIndividualController, true); transform.parent = null; transform.position = new Vector3(float.Parse(dataSplit[2]), float.Parse(dataSplit[3]), float.Parse(dataSplit[4])); transform.rotation = new Quaternion(float.Parse(dataSplit[5]), float.Parse(dataSplit[6]), float.Parse(dataSplit[7]), float.Parse(dataSplit[8])); rig.velocity = new Vector3(float.Parse(dataSplit[9]), float.Parse(dataSplit[10]), float.Parse(dataSplit[11])); rig.angularVelocity = new Vector3(float.Parse(dataSplit[12]), float.Parse(dataSplit[13]), float.Parse(dataSplit[14])); rig.isKinematic = false; } else if (dataSplit[1] == "InInv") { onPutInContainerNetwork(Savable.findGameObjectByID((int)StringToFloat(dataSplit[2])).GetComponent <Container>(), playerNetworkIndividualController); } else if (dataSplit[1] == "OutInv") { onTakenOutOfContainerNetwork(); transform.position = new Vector3(float.Parse(dataSplit[2]), float.Parse(dataSplit[3]), float.Parse(dataSplit[4])); transform.rotation = new Quaternion(float.Parse(dataSplit[5]), float.Parse(dataSplit[6]), float.Parse(dataSplit[7]), float.Parse(dataSplit[8])); rig.velocity = new Vector3(float.Parse(dataSplit[9]), float.Parse(dataSplit[10]), float.Parse(dataSplit[11])); rig.angularVelocity = new Vector3(float.Parse(dataSplit[12]), float.Parse(dataSplit[13]), float.Parse(dataSplit[14])); } else if (dataSplit[1] == "Anim") { anim.SetBool(dataSplit[2], StringToBool(dataSplit[3])); } else if (dataSplit[1] == "InvRot") { rotatedItem = StringToBool(dataSplit[2]); } }
private void SaveFlush() { SavedObject.Clear(); foreach (DictionaryEntry Entry in ObjectHandler) { string Name = (string)Entry.Key; Savable Handler = (Savable)Entry.Value; SavedObject.Add(Name, Handler.Save()); } }
public void LoadSavables() { foreach (string s in currentWorld.savables) { if (Savable.GetRealm(s) == currentWorld.realm) { Savable.Deserialize(s); } } }
public bool Handle(string Name, Savable Handler) { if (ObjectHandler.Contains(Name)) { return(false); } ObjectHandler.Add(Name, Handler); if (SavedObject.Contains(Name)) { Handler.Load(SavedObject[Name]); } return(true); }
public override void OnInspectorGUI() { DrawDefaultInspector(); Savable savable = (Savable)target; if (string.IsNullOrEmpty(savable.PrefabId)) { if (GUILayout.Button("Assign Prefab Id")) { savable.PrefabId = Guid.NewGuid().ToString(); } } }
public static Savable Deserialize(string json) { Data data = JsonUtility.FromJson <Data>(json); Savable s = Instantiate(Resources.Load <Savable>(data.resourcePath), data.position, data.rotation); s.resourcePath = data.resourcePath; s.data = data.data; if (s.OnDeserialized != null) { s.OnDeserialized.Invoke(); } return(s); }
void save() { MonoBehaviour[] sceneActive = FindObjectsOfType <MonoBehaviour>(); foreach (MonoBehaviour mono in sceneActive) { FieldInfo[] objectFields = mono.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public); for (int i = 0; i < objectFields.Length; i++) { Savable attribute = Attribute.GetCustomAttribute(objectFields[i], typeof(Savable)) as Savable; if (attribute != null) { if (!datas.ContainsKey(sceneActiveName)) { datas.Add(sceneActiveName, new List <Data>()); } switch (objectFields[i].GetValue(mono).GetType().ToString()) { case "Character": Console.WriteLine("Character"); Character tempChar = (Character)objectFields[i].GetValue(mono); List <string> tempInventory = new List <string>(); foreach (Item item in tempChar.inventory) { tempInventory.Add(item.ToString().Substring(0, tempChar.armor.ToString().IndexOf('(') - 1)); } datas[sceneActiveName].Add(new CharacterData(sceneActiveName, mono.name, mono.GetType().ToString(), objectFields[i].Name, objectFields[i].GetValue(mono).ToString(), objectFields[i].GetValue(mono).GetType().ToString(), tempChar.name, tempChar.lvl, tempChar.isAlly, tempChar.currentHealth, tempChar.currentMana, tempInventory, tempChar.armor.ToString().Substring(0, tempChar.armor.ToString().IndexOf('(') - 1), tempChar.weapon.ToString().Substring(0, tempChar.weapon.ToString().IndexOf('(') - 1), tempChar.gold)); break; case "2": break; default: datas[sceneActiveName].Add(new Data(sceneActiveName, mono.name, mono.GetType().ToString(), objectFields[i].Name, objectFields[i].GetValue(mono).ToString(), objectFields[i].GetValue(mono).GetType().ToString())); break; } // Debug.Log("#1#" + mono.GetType() + " #2#" + objectFields[i].Name + " #3#" + objectFields[i].GetValue(mono) + " #4#" + mono.name + " #5#" + objectFields[i].GetValue(mono).GetType()); } //Componenet name //valueName // value } } sqlite.Save(this.datas); }
public static void SaveWorld(World world) { for (int i = 0; i < world.savables.Count; i++) { string s = world.savables[i]; if (Savable.GetRealm(s) == world.realm) { world.savables.Remove(s); } } Savable[] savables = FindObjectsOfType <Savable>(); foreach (Savable s in savables) { world.savables.Add(s.Serialize()); } SaveObject(world.name.ToLower(), world, "Worlds"); print(savables.Length + " savables found"); print("Saved world: " + world.name); }
private static PrefabStatus GetPrefabStatus(GameObject prefab, Dictionary <Type, Type> surrogateMap) { Savable savable = prefab.GetComponent <Savable>(); if (savable == null) { return(PrefabStatus.MissingSavable); } if (string.IsNullOrEmpty(savable.PrefabId)) { return(PrefabStatus.MissingId); } if (prefab.GetComponents <MonoBehaviour>().Any(component => !surrogateMap.ContainsKey(component.GetType()) && !component.GetType().GetAttributes <DontSaveAttribute>(false).Any())) { return(PrefabStatus.MissingSurrogate); } return(PrefabStatus.Savable); }
//sets the item's attributes once loaded from a text file public override void setAttributes(List <Attribute> attributes) { base.setAttributes(attributes); bool testHidden = false; foreach (Attribute attr in attributes) { if (attr.Key == "InvRot") { rotatedItem = StringToBool(attr.Value); //if (rotatedItem) { // Debug.Break(); // } } if (attr.Key == "Hidden") { testHidden = true; } if (attr.Key == "containerIn") { if (attr.Value != "-1") { // Debug.Log(attr.Value, gameObject); isWithinContainer = Savable.findGameObjectByID((int)StringToFloat(attr.Value)).GetComponent <Container>(); } } } if (testHidden) { hideFromWorld(); } else { showToWorld(); } }