示例#1
0
    private void ConvertDataToRoom(RoomData roomData)
    {
        ObjectMover.hasPlaced = false;

        GameObject room = roomPrefabs.Where(roomPrefab =>
                                            roomPrefab.GetComponent <ObjectScript>().objectNum == roomData.objectNum).Select(roomPrefab =>
                                                                                                                             Instantiate(roomPrefab, new Vector3(roomData.x, roomData.y, 0), Quaternion.identity)).FirstOrDefault();

        ObjectMover  om        = room.GetComponent <ObjectMover>();
        ObjectScript os        = room.GetComponent <ObjectScript>();
        RoomStats    roomStats = room.GetComponent <RoomStats>();

        os.ResetData();

        om.TurnOffBeingDragged();
        os.preplacedRoom   = roomData.isPrePlaced;
        roomStats.usedRoom = roomData.usedRoom;
        roomStats.ChangeRoomLevel(roomData.roomLevel); // starts at 1 so only change if greater than 1
        roomStats.currentCrew = roomData.crew;
        if (!roomStats.flatOutput)
        {
            StartCoroutine(UpdateRoomStat(roomStats, roomData));
        }

        room.transform.GetChild(0).transform.Rotate(0, 0, -90 * (roomData.rotation - 1));

        if ((os.shapeType != 0 || os.shapeType != 1 || os.shapeType != 3) && (os.rotAdjust == 1 || os.rotAdjust == 3) && (roomData.rotation == 2 || roomData.rotation == 4))
        {
            room.transform.GetChild(0).transform.position += os.rotAdjustVal;
        }
        else if ((os.shapeType != 0 || os.shapeType != 1 || os.shapeType != 3) && (os.rotAdjust == 2 || os.rotAdjust == 4) && (roomData.rotation == 1 || roomData.rotation == 3))
        {
            room.transform.GetChild(0).transform.position -= os.rotAdjustVal;
        }

        os.rotAdjust = roomData.rotation;
        om.UpdateMouseBounds(os.boundsDown, os.boundsUp, os.boundsLeft, os.boundsRight);

        ObjectMover.hasPlaced = true;

        om.enabled = false;

        room.transform.GetChild(0).gameObject.GetComponent <SpriteRenderer>().color = new Color(1, 1, 1, 1);

        StartCoroutine(UpdateSpotChecker(room, roomData.isPrePlaced, roomData.rotation));
    }