//////////////// private static TrainTunnelTileEntity CreateTunnelEndpoint(TrainTunnelTileEntity start_tunnel_ent, int end_tile_x, int end_tile_y) { var mymod = OnARailMod.Instance; if (!TileHelpers.PlaceTile(end_tile_x + 2, end_tile_y + 2, mymod.TileType <TrainTunnelTile>())) { start_tunnel_ent.IsInitialized = true; // This destroys the tunnel Main.NewText("Error placing tunnel exit.", Color.Red); return(null); } var base_ent = mymod.GetTileEntity <TrainTunnelTileEntity>(); if (base_ent == null) { throw new HamstarException("Could not find base tile entity."); } int id = base_ent.Place(end_tile_x, end_tile_y); var exit_tunnel_ent = (TrainTunnelTileEntity)ModTileEntity.ByID[id]; if (exit_tunnel_ent == null) { throw new HamstarException("Cannot create tunnel exit - No train tunnel entity associated with id " + id + " at x:" + end_tile_x + ", y:" + end_tile_y); } start_tunnel_ent.ExitTileX = end_tile_x; start_tunnel_ent.ExitTileY = end_tile_y; exit_tunnel_ent.ExitTileX = start_tunnel_ent.Position.X; exit_tunnel_ent.ExitTileY = start_tunnel_ent.Position.Y; start_tunnel_ent.IsInitialized = true; exit_tunnel_ent.IsInitialized = true; return(exit_tunnel_ent); }