示例#1
0
    public static void Main()
    {
        ConsoleKeyInfo key;
        bool           finished = false;
        Fishes         myFish   = new Fishes();
        Environment    myEnv    = new Environment();
        Coral          myCoral  = new Coral();
        SeaWeed        myWeed   = new SeaWeed();
        Rocks          myRock   = new Rocks();
        Bubbles        myBubble = new Bubbles();

        while (!finished)
        {
            Console.Clear();

            myFish.Draw();
            myFish.Move();

            myEnv.Draw();
            myCoral.Draw();
            myWeed.Draw();
            myRock.Draw();
            myBubble.Draw();

            Thread.Sleep(100);

            if (Console.KeyAvailable)
            {
                key = Console.ReadKey();
                if (key.Key == ConsoleKey.Escape)
                {
                    finished = true;
                }
            }
        }

        Console.Clear();
        Console.SetCursorPosition(35, 12);
        Console.ForegroundColor = ConsoleColor.White;
        Console.WriteLine("Bye Bye!");
        Console.ReadKey();
    }
    // Detects all foodsource tiles and place
    public List <FoodSource> getFoodSources()
    {
        BoundsInt bounds = terrainMap.cellBounds;

        tiles        = tileMap.GetTilesBlock(bounds);
        terrainTiles = terrainMap.GetTilesBlock(bounds);
        List <FoodSource> foodSources = new List <FoodSource>();

        for (int x = 0; x < bounds.size.x; x++)
        {
            for (int y = 0; y < bounds.size.y; y++)
            {
                TileBase tile         = tiles[x + y * bounds.size.x];
                Vector2  tilePosition = new Vector2(x, y);
                if (tile != null)
                {
                    if (tile.name == FoodSourceTileNames.SPACE_MAPLE_TILE_NAME)
                    {
                        Dictionary <string, int> terrainTiles = getTerrainTiles(new Vector2Int(x, y), bounds, 4);
                        int modifiedOutput = SpaceMapleCalc.modifyOutput(xVal, yVal, zVal, tempVal, lightVal, terrainTiles);
                        foodSources.Add(new SpaceMaple(tilePosition, modifiedOutput));
                        displayResult(modifiedOutput, new Vector2(x - 53, y - 37));
                    }
                    else if (tile.name == FoodSourceTileNames.FRUIT_TREE_TILE_NAME)
                    {
                        Dictionary <string, int> terrainTiles = getTerrainTiles(new Vector2Int(x, y), bounds, 4);
                        int modifiedOutput = FruitTreeCalc.modifyOutput(tempVal, lightVal, terrainTiles);
                        foodSources.Add(new FruitTree(tilePosition, modifiedOutput));
                        displayResult(modifiedOutput, new Vector2(x - 53, y - 37));
                    }
                    else if (tile.name == FoodSourceTileNames.LEAF_TREE_TILE_NAME)
                    {
                        Dictionary <string, int> terrainTiles = getTerrainTiles(new Vector2Int(x, y), bounds, 4);
                        int modifiedOutput = LeafTreeCalc.modifyOutput(yVal, zVal, tempVal, lightVal, terrainTiles);
                        foodSources.Add(new LeafTree(tilePosition, modifiedOutput));
                        displayResult(modifiedOutput, new Vector2(x - 53, y - 37));
                    }
                    else if (tile.name == FoodSourceTileNames.BERRY_TREE_TILE_NAME)
                    {
                        Dictionary <string, int> terrainTiles = getTerrainTiles(new Vector2Int(x, y), bounds, 4);
                        int modifiedOutput = BerryTreeCalc.modifyOutput(yVal, zVal, tempVal, lightVal, terrainTiles);
                        foodSources.Add(new BerryTree(tilePosition, modifiedOutput));
                        displayResult(modifiedOutput, new Vector2(x - 53, y - 37));
                    }
                    else if (tile.name == FoodSourceTileNames.TALL_GRASS_TILE_NAME)
                    {
                        Dictionary <string, int> terrainTiles = getTerrainTiles(new Vector2Int(x, y), bounds, 1);
                        int modifiedOutput = TallgrassCalc.modifyOutput(yVal, tempVal, lightVal, terrainTiles);
                        foodSources.Add(new Tallgrass(tilePosition, modifiedOutput));
                        displayResult(modifiedOutput, new Vector2(x - 53.5f, y - 36.8f));
                    }
                    else if (tile.name == FoodSourceTileNames.BERRY_BUSH_TILE_NAME)
                    {
                        Dictionary <string, int> terrainTiles = getTerrainTiles(new Vector2Int(x, y), bounds, 1);
                        int modifiedOutput = BerryBushCalc.modifyOutput(yVal, zVal, tempVal, lightVal, terrainTiles);
                        foodSources.Add(new BerryBush(tilePosition, modifiedOutput));
                        displayResult(modifiedOutput, new Vector2(x - 53.5f, y - 36.8f));
                    }
                    else if (tile.name == FoodSourceTileNames.ARID_BUSH_TILE_NAME)
                    {
                        Dictionary <string, int> terrainTiles = getTerrainTiles(new Vector2Int(x, y), bounds, 1);
                        int modifiedOutput = AridBushCalc.modifyOutput(tempVal, lightVal, terrainTiles);
                        foodSources.Add(new AridBush(tilePosition, modifiedOutput));
                        displayResult(modifiedOutput, new Vector2(x - 53.5f, y - 36.8f));
                    }
                    else if (tile.name == FoodSourceTileNames.LEAFY_BUSH_TILE_NAME)
                    {
                        Dictionary <string, int> terrainTiles = getTerrainTiles(new Vector2Int(x, y), bounds, 2);
                        int modifiedOutput = LeafyBushCalc.modifyOutput(yVal, zVal, tempVal, lightVal, terrainTiles);
                        foodSources.Add(new LeafyBush(tilePosition, modifiedOutput));
                        displayResult(modifiedOutput, new Vector2(x - 53.0f, y - 36.8f));
                    }
                }
            }
        }

        // Seaweed is an object in the scene instead of a tile
        foreach (GameObject SeaWeed in GameObject.FindGameObjectsWithTag("SeaWeed"))
        {
            Liquid comp           = SeaWeed.GetComponentInParent <Liquid>();
            int    modifiedOutput = SeaWeedCalc.modifyOutput((int)comp.green, (int)comp.blue, xVal, yVal, tempVal, lightVal);
            foodSources.Add(new SeaWeed(SeaWeed.transform.position, modifiedOutput));
            SeaWeed.GetComponentInChildren <Text>().text = modifiedOutput.ToString();
        }

        return(foodSources);
    }