Exemple #1
0
    public void CreateRoom(Guid roomId, Enums.RoomTypes roomType, Enums.RoomSizes roomSize, Enums.RoomOverUnder roomOverUnder, GridIndex leftMostIndex)
    {
        RoomDefData RoomDefData = RoomFactory.Ref.GetRoomDefData(roomType, roomSize, roomOverUnder);

        RoomInstanceData RoomData = new RoomInstanceData();

        RoomData.RoomId              = roomId;
        RoomData.RoomName            = RoomDefData.RoomName;
        RoomData.RoomSize            = RoomDefData.RoomSize;
        RoomData.RoomCategory        = RoomDefData.RoomCategory;
        RoomData.RoomType            = RoomDefData.RoomType;
        RoomData.RoomOverUnder       = RoomDefData.RoomOverUnder;
        RoomData.ManSlotCount        = RoomDefData.ManSlotCount;
        RoomData.ManSlotsPositions   = new Vector3[RoomDefData.ManSlotCount];    // Data will be set by object script on Start()
        RoomData.ManSlotsRotations   = new Quaternion[RoomDefData.ManSlotCount]; // Data will be set by object script on Start()
        RoomData.ManSlotsAssignments = new Guid[RoomDefData.ManSlotCount];
        for (int i = 0; i < RoomData.ManSlotCount; i++)
        {
            RoomData.ManSlotsAssignments[i] = Guid.Empty;
        }
        RoomData.ManWorkingStates = RoomDefData.ManWorkingStates;
        RoomData.CoveredIndizes   = GridManager.Ref.GetOccupiedindizes(roomSize, leftMostIndex);

        CreateRoom(RoomData);
    }
Exemple #2
0
    public void CreateRoom(RoomInstanceData roomData)
    {
        if (roomData == null)
        {
            return;
        }

        GameObject RoomObject = RoomFactory.Ref.CreateRoom(roomData.RoomType, roomData.RoomSize, roomData.RoomOverUnder);
        RoomScript RoomScript = RoomObject.GetComponent <RoomScript>();

        RoomScript.RoomData = roomData;

        _RoomList[roomData.RoomId]    = new RoomRef(RoomObject, RoomScript);
        RoomObject.transform.position = GridManager.Ref.GetWorldPositionFromGridIndex(roomData.GetLeftMostIndex());
        GridManager.Ref.RegisterAtGrid(roomData.RoomSize, roomData.RoomId, roomData.GetLeftMostIndex());
    }
Exemple #3
0
    public void SaveRoomList(string fileName)
    {
        XmlSerializer Serializer = new XmlSerializer(typeof(RoomInstanceData[]));

        RoomInstanceData[] tmpOutput = new RoomInstanceData[_RoomList.Count];

        // Saving as an array. Key GUID is also in the data
        int Count = 0;

        foreach (KeyValuePair <Guid, RoomRef> Entry in _RoomList)
        {
            tmpOutput[Count] = Entry.Value.RoomScript.RoomData;
            Count++;
        }

        using (StreamWriter Writer = new StreamWriter(fileName))
        {
            Serializer.Serialize(Writer, tmpOutput);
        }
    }