Ejemplo n.º 1
0
    Chunk makeCornerChunk()
    {
        GameObject nextChunkPrefab = chunkBag.getRandomChunkFrom(random, chunkBag.cornerChunkPrefab);

        if (nextChunkPrefab == null)
        {
            return(null);
        }

        Chunk newChunk = createAndPlaceNewChunk(nextChunkPrefab, nextChunkId, 0.1F);

        newChunk.orientation = this.rotation;
        nextChunkId++;

        if (newChunk.upExitX != -1)
        {
            Vector3 movement = new Vector3(-newChunk.width + newChunk.upExitX, newChunk.height, 0);
            float   newAngle = (rotation + 90) % 360;

            makeFlow(newChunk, movement, newAngle, nextChunkId);
        }

        if (newChunk.downExitX != -1)
        {
            Vector3 movement = new Vector3(-newChunk.width + newChunk.downExitX, 0, 0);
            float   newAngle = (rotation - 90) % 360;

            makeFlow(newChunk, movement, newAngle, nextChunkId);
        }

        if (newChunk.rightExitY == -1)
        {
            proceduralGeneratorOfChunk.chunkFlowsToRemove.Add(this);
        }
        return(newChunk);
    }