public void Save() { if(Board.master != null){ // Save Pictures pictures = new List<SessionPicture>(); foreach(Picture picture in Board.master.pictures){ SessionPicture sessionPicture = new SessionPicture(); sessionPicture.position = picture.position; sessionPicture.rotation = picture.rotation; sessionPicture.subject = picture.subject; pictures.Add(sessionPicture); } // Save Pins pins = new List<SessionPin>(); foreach(Pin pin in Board.master.pins){ SessionPin sessionPin = new SessionPin(); sessionPin.position = pin.position; sessionPin.colour = pin.colour; pins.Add(sessionPin); } // Save PostIts postits = new List<SessionPostIt>(); foreach(PostIt postit in Board.master.postits){ SessionPostIt sessionPostIt = new SessionPostIt(); sessionPostIt.position = postit.position; sessionPostIt.rotation = postit.rotation; sessionPostIt.message = postit.simpleText; postits.Add(sessionPostIt); } // Save Strings strings = new List<SessionString>(); foreach(String currentString in Board.master.strings){ SessionString sessionString = new SessionString(); sessionString.startPoint = currentString.startPoint; sessionString.endPoint = currentString.endPoint; strings.Add(sessionString); } } // Save Time/Events if(TimeManager.master){ day = TimeManager.master.currentDayReference; time = TimeManager.master.time; completedEvents = EventManager.completedEvents; failedEvents = EventManager.failedEvents; dayEvents = new Dictionary<string,List<string>>(); foreach (Day currentDay in TimeManager.master.days){ List<string> eventList = new List<string>(); foreach (Event eventCheck in currentDay.events){ if(eventCheck.eventHappened == true){ eventList.Add(eventCheck.eventName); } } dayEvents.Add(currentDay.dayName, eventList); } } // Save Items if(Inventory.master){ items = new Dictionary<string, SessionItem>(); foreach(KeyValuePair<string,Item> item in Inventory.master.itemDictionary){ SessionItem sessionItem = new SessionItem(); sessionItem.position = item.Value.position; sessionItem.location = item.Value.currentLocation.id; if(item.Value.owner != null){ sessionItem.owner = item.Value.owner.id; } else { sessionItem.owner = null; } if(item.Value.holder != null){ sessionItem.holder = item.Value.holder.id; } else { sessionItem.holder = null; } sessionItem.health = item.Value.health; sessionItem.uses = item.Value.uses; sessionItem.cost= item.Value.cost; sessionItem.power = item.Value.power; sessionItem.range = item.Value.range; sessionItem.state = item.Value.state; items.Add(item.Value.id, sessionItem); } } // Save Locations if(Map.master){ locations = new Dictionary<string, SessionLocation>(); foreach (string key in Map.master.locationDictionary.Keys){ Location location = Map.master.locationDictionary[key]; SessionLocation sessionLocation = new SessionLocation(); sessionLocation.accessable = location.accessable; if(location.owner != null){ sessionLocation.owner = location.owner.name; } else { sessionLocation.owner = null; } sessionLocation.state = location.state; locations.Add(location.id, sessionLocation); } } // Save People if(Population.master){ people = new Dictionary<string, SessionPerson>(); foreach(KeyValuePair<string,Person> person in Population.master.peopleDictionary){ SessionPerson sessionPerson = new SessionPerson(); sessionPerson.position = person.Value.transform.position; sessionPerson.location = person.Value.currentLocation.id; sessionPerson.health = person.Value.health; sessionPerson.energy = person.Value.energy; sessionPerson.hunger = person.Value.hunger; sessionPerson.money = person.Value.money; sessionPerson.power = person.Value.power; sessionPerson.speed = person.Value.speed; sessionPerson.range = person.Value.range; sessionPerson.state = person.Value.state; sessionPerson.emotion = person.Value.emotion; sessionPerson.reputations = new Dictionary<string, float>(); foreach(Person key in person.Value.reputation.reputations.Keys){ sessionPerson.reputations.Add(key.id, person.Value.reputation.reputations[key]); } people.Add(person.Value.id, sessionPerson); } } //Save Conversations if(ConversationManager.master){ conversations = new List<SessionConversation>(); foreach(Conversation _conversation in ConversationManager.master.conversations){ SessionConversation sessionConversation = new SessionConversation(); sessionConversation.id = _conversation.conversationReference; foreach(Person _participant in _conversation.participants){ string id = _participant.id; sessionConversation.participants.Add(id); } sessionConversation.lineReference = _conversation.currentLineRef; sessionConversation.currentTime = _conversation.currentTime; conversations.Add(sessionConversation); } } }
public void Read() { // Load Time/Events Session.master.time = time; Session.master.day = currentDay; Session.master.completedEvents = completedEvents; Session.master.failedEvents = failedEvents; Session.master.dayEvents = new Dictionary<string, List<string>>(); foreach(DaySave day in days){ Session.master.dayEvents.Add(day.dayName, day.events); } //Load Locations Session.master.locations = new Dictionary<string, SessionLocation>(); foreach(LocationSave locationSave in mapSave){ SessionLocation sessionLocation = new SessionLocation(); sessionLocation.accessable = bool.Parse(locationSave.accessable); sessionLocation.owner = locationSave.owner; sessionLocation.state = locationSave.state; Session.master.locations.Add(locationSave.id, sessionLocation); } //Load People Session.master.people = new Dictionary<string, SessionPerson>(); foreach(PersonSave personSave in peopleSave){ SessionPerson sessionPerson = new SessionPerson(); sessionPerson.location = personSave.location; sessionPerson.position = new Vector3(personSave.position[0], personSave.position[1], personSave.position[2]); sessionPerson.health = personSave.health; sessionPerson.energy = personSave.energy; sessionPerson.hunger = personSave.hunger; sessionPerson.money = personSave.money; sessionPerson.power = personSave.power; sessionPerson.speed = personSave.speed; sessionPerson.range = personSave.range; sessionPerson.state = personSave.state; sessionPerson.emotion = personSave.emotion; sessionPerson.reputations = new Dictionary<string, float>(); for(int i=0; i<personSave.reputationPeople.Count; i++){ sessionPerson.reputations.Add(personSave.reputationPeople[i], personSave.reputations[i]); } Session.master.people.Add(personSave.id, sessionPerson); } // Load Items Session.master.items = new Dictionary<string, SessionItem>(); foreach(ItemSave itemSave in inventorySave){ SessionItem sessionItem = new SessionItem(); sessionItem.location = itemSave.location; sessionItem.position = new Vector3(itemSave.position[0], itemSave.position[1], itemSave.position[2]); sessionItem.owner = itemSave.owner; sessionItem.holder = itemSave.holder; sessionItem.properties = itemSave.properties; sessionItem.health = itemSave.health; sessionItem.uses = itemSave.uses; sessionItem.cost = itemSave.cost; sessionItem.power = itemSave.power; sessionItem.range = itemSave.range; sessionItem.state = itemSave.state; Session.master.items.Add(itemSave.name, sessionItem); } // Load Pictures Session.master.pictures = new List<SessionPicture>(); foreach(PictureSave pictureSave in picturesSave){ SessionPicture sessionPicture = new SessionPicture(); sessionPicture.position = new Vector3(pictureSave.position[0], pictureSave.position[1], pictureSave.position[2]); sessionPicture.subject = pictureSave.subject; sessionPicture.rotation = pictureSave.rotation; Session.master.pictures.Add(sessionPicture); } // Load Pins Session.master.pins = new List<SessionPin>(); foreach(PinSave pinSave in pinsSave){ SessionPin sessionPin = new SessionPin(); sessionPin.position = new Vector3(pinSave.position[0], pinSave.position[1], pinSave.position[2]); sessionPin.colour = new Color(pinSave.colour[0], pinSave.colour[1], pinSave.colour[2]); Session.master.pins.Add(sessionPin); } // Load PostIts Session.master.postits = new List<SessionPostIt>(); foreach(PostItSave postitSave in postitsSave){ SessionPostIt sessionPostIt = new SessionPostIt(); sessionPostIt.position = new Vector3(postitSave.position[0], postitSave.position[1], postitSave.position[2]); sessionPostIt.message = postitSave.message; sessionPostIt.rotation = postitSave.rotation; Session.master.postits.Add(sessionPostIt); } // Load Strings Session.master.strings = new List<SessionString>(); foreach(StringSave stringSave in stringsSave){ SessionString sessionString = new SessionString(); sessionString.startPoint = new Vector3(stringSave.startPoint[0], stringSave.startPoint[1], stringSave.startPoint[2]); sessionString.endPoint = new Vector3(stringSave.endPoint[0], stringSave.endPoint[1], stringSave.endPoint[2]); Session.master.strings.Add(sessionString); } }