示例#1
0
    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);
            }
        }
    }
示例#2
0
    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);
        }
    }