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); } }
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(); }