Ejemplo n.º 1
0
    RoomIdentity GenerateSingleRoom(bool firstRoom)
    {
        //Skeleton structure
        GameObject room = new GameObject();

        room.transform.position = Vector3.forward * -20;
        room.name = "room";
        RoomIdentity roomIdentity = room.AddComponent <RoomIdentity> ();

        roomIdentity.gmref = room;

        //Room Dimension Generation
        int roomWidth  = Mathf.CeilToInt(Random.value * (_minMaxRoomTileSize.y - _minMaxRoomTileSize.x));
        int roomHeight = Mathf.CeilToInt(Random.value * (_minMaxRoomTileSize.y - _minMaxRoomTileSize.x));

        //Floor
        GameObject floor = Instantiate(_floor, Vector3.zero, Quaternion.identity, room.transform);

        floor.transform.localPosition = Vector3.zero;
        RoomGeography floorScript = floor.GetComponent <RoomGeography> ();

        floorScript.SetSprite(_floorSprite);
        floorScript.SetSize(new Vector3(roomWidth * _tileSize, roomHeight * _tileSize));

        //Walls
        MakeWall(roomWidth * _tileSize, 0, ((roomHeight * _tileSize) / 2) + _tileSize / 2, 0, room);
        MakeWall(roomHeight * _tileSize, ((-roomWidth * _tileSize) / 2) - _tileSize / 2, 0, 90, room);
        MakeWall(roomWidth * _tileSize, 0, ((-roomHeight * _tileSize) / 2) - _tileSize / 2, 180, room);
        MakeWall(roomHeight * _tileSize, ((roomWidth * _tileSize) / 2) + _tileSize / 2, 0, -90, room);

        //Corners
        MakeCorner(((roomWidth * _tileSize) / 2) + _tileSize / 2, ((roomHeight * _tileSize) / 2) + _tileSize / 2, -90, room);
        MakeCorner(((-roomWidth * _tileSize) / 2) - _tileSize / 2, ((-roomHeight * _tileSize) / 2) - _tileSize / 2, 90, room);
        MakeCorner(((-roomWidth * _tileSize) / 2) - _tileSize / 2, ((roomHeight * _tileSize) / 2) + _tileSize / 2, 0, room);
        MakeCorner(((roomWidth * _tileSize) / 2) + _tileSize / 2, ((-roomHeight * _tileSize) / 2) - _tileSize / 2, 180, room);


        //Let the room generate its content
        roomIdentity.GenerateContent();

        return(roomIdentity);
    }
Ejemplo n.º 2
0
    void GenerateFirstRoom()
    {
        RoomIdentity room = GenerateSingleRoom(true);

        room.gmref.transform.position = Vector3.zero;
    }