private void DemolishTrack(IBuildableData demolishData, out BuildingResult result) { Tile <TileData> tile = demolishData.Tile; RemoveTracksFromTile(tile); gameManager.transitSystem.UpdateAllStationConnections(); result = BuildingResult.Success; }
public void Demolish(IBuildableData demolishData) { BuildingResult result = BuildingResult.Init; if (moneyManager.CanSpend(demolishData.Price)) { switch (demolishData.Buildable) { case Buildable.Station: DemolishStation(demolishData as StationData, out result); break; case Buildable.Track: DemolishTrack(demolishData as TrackData, out result); break; case Buildable.All: DemolishAll(demolishData, out result); break; default: throw new ArgumentOutOfRangeException(); break; } } else { result = BuildingResult.InsufficientFunds; } switch (result) { case BuildingResult.Success: moneyManager.Spend(demolishData.Price); break; case BuildingResult.InsufficientFunds: case BuildingResult.SpaceBlocked: case BuildingResult.IllegalPlacement: case BuildingResult.NothingThere: Debug.LogWarning("Demolish Failed - " + demolishData.Buildable + " - " + result); break; default: throw new ArgumentOutOfRangeException(); break; } }
public void Build(IBuildableData buildableData) { BuildingResult result = BuildingResult.Init; if (moneyManager.CanSpend(buildableData.Price)) { switch (buildableData.Buildable) { case Buildable.Station: BuildStation(buildableData as StationData, out result); break; case Buildable.Track: BuildTrack(buildableData as TrackData, out result); break; default: throw new ArgumentOutOfRangeException(); } } else { result = BuildingResult.InsufficientFunds; } switch (result) { case BuildingResult.Success: moneyManager.Spend(buildableData.Price); break; case BuildingResult.InsufficientFunds: case BuildingResult.SpaceBlocked: case BuildingResult.IllegalPlacement: Debug.LogWarning("Build Failed - " + buildableData.Buildable + " - " + result); break; default: Debug.LogError("BuildResult was not properly set"); break; } }
private void DemolishAll(IBuildableData demolishData, out BuildingResult result) { throw new NotImplementedException(); }
public DemolishCommand(Builder builder, T buildableData) { this.builder = builder; this.buildableData = buildableData; }
public BuildCommand(Builder builder, T buildableData) { this.builder = builder; this.buildableData = buildableData; }