Example #1
0
    TileSiding NewSideing(TileSiding currentSiding)
    {
        int rand  = Random.Range(0, 100);
        int value = (int)currentSiding;

        if (rand < 50)
        {
            value = value - 1;
            if (value < 0)
            {
                value = 3;
            }
        }
        else
        {
            value = value + 1;
            if (value == 4)
            {
                value = 0;
            }
        }

        TileSiding newSide = (TileSiding)value;

        if (newSide == currentSiding || sidings[value] == null)
        {
            return(NewSideing(currentSiding)); //try again
        }
        else
        {
            return(newSide);
        }
    }
Example #2
0
    public void SetSiding(TileSiding sidingType)
    {
        if (sidings.Length == 0)
        {
            siding = TileSiding.Ground;
        }
        else
        {
            if (sidings[(int)sidingType] == null)//if we cant set this tile as this type find new one
            {
                SetSiding(NewSideing(sidingType));
            }
            else
            {
                siding = sidingType;
                AddRemoveSidingViaIndex((int)sidingType);

                switch (sidingType)
                {
                case TileSiding.Ground:
                    //  AddRemoveSidingViaIndex(0);

                    //AllowDisallowBuildings(true,false);

                    if (Alt_RightBuildings != null)
                    {
                        Destroy(RightBuildings);
                    }
                    if (Alt_LeftBuildings != null)
                    {
                        Destroy(LeftBuildings);
                    }
                    break;

                case TileSiding.LeftBeach:
                    //AddRemoveSidingViaIndex(1);

                    //Destroy(LeftBuildings);
                    KeepBuildings(false, true);
                    PlaceAlternativeBuildings();

                    break;

                case TileSiding.RightBeach:
                    // AddRemoveSidingViaIndex(3);
                    KeepBuildings(true, false);
                    PlaceAlternativeBuildings();

                    // Destroy(RightBuildings);
                    break;

                case TileSiding.Beach:
                    // AddRemoveSidingViaIndex(2);

                    KeepBuildings(false, false);

                    PlaceAlternativeBuildings();
                    break;
                }
            }
        }
        SpawnBuildings();
    }